From e754d7cc4e5653ba367a8b4f422f032cb1b9c9bd Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Thu, 15 Oct 2020 17:13:09 -0700 Subject: [PATCH] chore: update stage0 --- stage0/src/Lean/Elab/Do.lean | 3 + stage0/stdlib/Lean/Elab/Do.c | 5521 +++++++++++++++++----------------- 2 files changed, 2798 insertions(+), 2726 deletions(-) diff --git a/stage0/src/Lean/Elab/Do.lean b/stage0/src/Lean/Elab/Do.lean index d851971323..c76db8e9dc 100644 --- a/stage0/src/Lean/Elab/Do.lean +++ b/stage0/src/Lean/Elab/Do.lean @@ -1451,6 +1451,9 @@ partial def doSeqToCode : List Syntax → M CodeBlock mkSeq doElem <$> doSeqToCode doElems else if k == `Lean.Parser.Term.doAssert then mkSeq doElem <$> doSeqToCode doElems + else if k == `Lean.Parser.Term.doNested then + let nestedDoSeq := doElem[1] + doSeqToCode (getDoSeqElems nestedDoSeq ++ doElems) else if k == `Lean.Parser.Term.doExpr then let term := doElem[0] if doElems.isEmpty then diff --git a/stage0/stdlib/Lean/Elab/Do.c b/stage0/stdlib/Lean/Elab/Do.c index 031a66759a..e1a7f7a093 100644 --- a/stage0/stdlib/Lean/Elab/Do.c +++ b/stage0/stdlib/Lean/Elab/Do.c @@ -48,6 +48,7 @@ lean_object* l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_ToCodeBlock_doTry lean_object* l_Lean_Expr_mvarId_x21(lean_object*); uint8_t l_Lean_Elab_Term_Do_hasExitPointPred_loop___at_Lean_Elab_Term_Do_hasBreakContinue___spec__1(lean_object*); lean_object* l_Lean_Elab_Term_Do_hasExitPointPred_loop___lambda__1(lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__10; lean_object* l_Lean_Elab_Term_Do_hasBreakContinueReturn_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_eraseVars___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); @@ -332,6 +333,7 @@ lean_object* l_Lean_Elab_Term_elabLiftMethod___boxed(lean_object*, lean_object*, lean_object* l_Lean_Elab_Term_Do_ToTerm_mkJoinPoint(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_ToTerm_returnToTermCore___closed__24; lean_object* l_Lean_Elab_Term_Do_ToTerm_returnToTermCore___closed__18; +lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; lean_object* l_Lean_Elab_Term_Do_ToTerm_actionTerminalToTermCore___closed__13; extern lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDone___closed__1; lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -683,7 +685,7 @@ lean_object* l_Lean_Elab_Term_Do_ToTerm_continueToTermCore___closed__11; lean_object* l_Lean_Elab_Term_Do_ToTerm_returnToTerm___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_pullExitPointsAux___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_hasExitPointPred_loop___at_Lean_Elab_Term_Do_hasTerminalAction___spec__1___boxed(lean_object*); -lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Do___hyg_22910_(lean_object*); +lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Do___hyg_22929_(lean_object*); lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_ensureEOS___closed__3; lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__3; lean_object* l_Array_anyRangeMAux___main___at_Lean_Elab_Term_Do_hasBreakContinueReturn___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -41496,20 +41498,38 @@ static lean_object* _init_l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__ _start: { lean_object* x_1; -x_1 = lean_mk_string("unexpected do-element\n"); +x_1 = lean_mk_string("doNested"); return x_1; } } static lean_object* _init_l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__8() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_mkAppStx___closed__6; +x_2 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__7; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("unexpected do-element\n"); +return x_1; +} +} +static lean_object* _init_l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__10() { +_start: +{ lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__7; +x_1 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9() { +static lean_object* _init_l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11() { _start: { lean_object* x_1; @@ -41668,7 +41688,7 @@ if (lean_is_exclusive(x_1)) { x_52 = !lean_is_exclusive(x_7); if (x_52 == 0) { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_439; lean_object* x_440; lean_object* x_441; lean_object* x_442; lean_object* x_443; lean_object* x_444; lean_object* x_445; lean_object* x_446; lean_object* x_447; lean_object* x_448; lean_object* x_449; lean_object* x_450; lean_object* x_451; lean_object* x_452; lean_object* x_453; lean_object* x_454; +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_446; lean_object* x_447; lean_object* x_448; lean_object* x_449; lean_object* x_450; lean_object* x_451; lean_object* x_452; lean_object* x_453; lean_object* x_454; lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; lean_object* x_459; lean_object* x_460; lean_object* x_461; x_53 = lean_ctor_get(x_7, 1); x_54 = lean_ctor_get(x_7, 2); x_55 = lean_ctor_get(x_7, 3); @@ -41681,199 +41701,199 @@ lean_dec(x_57); lean_inc(x_54); lean_inc(x_53); lean_ctor_set(x_7, 3, x_58); -x_439 = lean_st_ref_get(x_8, x_9); -x_440 = lean_ctor_get(x_439, 0); -lean_inc(x_440); -x_441 = lean_ctor_get(x_439, 1); -lean_inc(x_441); -lean_dec(x_439); -x_442 = lean_ctor_get(x_440, 0); -lean_inc(x_442); -lean_dec(x_440); -x_443 = l_Lean_Elab_Term_getCurrMacroScope(x_3, x_4, x_5, x_6, x_7, x_8, x_441); -x_444 = lean_ctor_get(x_443, 0); -lean_inc(x_444); -x_445 = lean_ctor_get(x_443, 1); -lean_inc(x_445); -lean_dec(x_443); -x_446 = lean_st_ref_get(x_8, x_445); +x_446 = lean_st_ref_get(x_8, x_9); x_447 = lean_ctor_get(x_446, 0); lean_inc(x_447); x_448 = lean_ctor_get(x_446, 1); lean_inc(x_448); lean_dec(x_446); -x_449 = lean_ctor_get(x_447, 1); +x_449 = lean_ctor_get(x_447, 0); lean_inc(x_449); lean_dec(x_447); -lean_inc(x_442); -x_450 = lean_alloc_closure((void*)(l___private_Lean_Elab_Util_0__Lean_Elab_expandMacro_x3f___boxed), 4, 1); -lean_closure_set(x_450, 0, x_442); -x_451 = x_450; -x_452 = lean_environment_main_module(x_442); -lean_inc(x_54); -lean_inc(x_53); -x_453 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_453, 0, x_451); -lean_ctor_set(x_453, 1, x_452); -lean_ctor_set(x_453, 2, x_444); -lean_ctor_set(x_453, 3, x_53); -lean_ctor_set(x_453, 4, x_54); -x_454 = l_Lean_Elab_Term_Do_ToCodeBlock_expandLiftMethod(x_49, x_453, x_449); -if (lean_obj_tag(x_454) == 0) -{ -lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; lean_object* x_459; uint8_t x_460; -x_455 = lean_ctor_get(x_454, 0); +x_450 = l_Lean_Elab_Term_getCurrMacroScope(x_3, x_4, x_5, x_6, x_7, x_8, x_448); +x_451 = lean_ctor_get(x_450, 0); +lean_inc(x_451); +x_452 = lean_ctor_get(x_450, 1); +lean_inc(x_452); +lean_dec(x_450); +x_453 = lean_st_ref_get(x_8, x_452); +x_454 = lean_ctor_get(x_453, 0); +lean_inc(x_454); +x_455 = lean_ctor_get(x_453, 1); lean_inc(x_455); +lean_dec(x_453); x_456 = lean_ctor_get(x_454, 1); lean_inc(x_456); lean_dec(x_454); -x_457 = lean_st_ref_take(x_8, x_448); -x_458 = lean_ctor_get(x_457, 0); -lean_inc(x_458); -x_459 = lean_ctor_get(x_457, 1); -lean_inc(x_459); -lean_dec(x_457); -x_460 = !lean_is_exclusive(x_458); -if (x_460 == 0) +lean_inc(x_449); +x_457 = lean_alloc_closure((void*)(l___private_Lean_Elab_Util_0__Lean_Elab_expandMacro_x3f___boxed), 4, 1); +lean_closure_set(x_457, 0, x_449); +x_458 = x_457; +x_459 = lean_environment_main_module(x_449); +lean_inc(x_54); +lean_inc(x_53); +x_460 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_460, 0, x_458); +lean_ctor_set(x_460, 1, x_459); +lean_ctor_set(x_460, 2, x_451); +lean_ctor_set(x_460, 3, x_53); +lean_ctor_set(x_460, 4, x_54); +x_461 = l_Lean_Elab_Term_Do_ToCodeBlock_expandLiftMethod(x_49, x_460, x_456); +if (lean_obj_tag(x_461) == 0) { -lean_object* x_461; lean_object* x_462; lean_object* x_463; -x_461 = lean_ctor_get(x_458, 1); -lean_dec(x_461); -lean_ctor_set(x_458, 1, x_456); -x_462 = lean_st_ref_set(x_8, x_458, x_459); -x_463 = lean_ctor_get(x_462, 1); +lean_object* x_462; lean_object* x_463; lean_object* x_464; lean_object* x_465; lean_object* x_466; uint8_t x_467; +x_462 = lean_ctor_get(x_461, 0); +lean_inc(x_462); +x_463 = lean_ctor_get(x_461, 1); lean_inc(x_463); -lean_dec(x_462); -x_59 = x_455; -x_60 = x_463; -goto block_438; -} -else -{ -lean_object* x_464; lean_object* x_465; lean_object* x_466; lean_object* x_467; lean_object* x_468; lean_object* x_469; -x_464 = lean_ctor_get(x_458, 0); -x_465 = lean_ctor_get(x_458, 2); -x_466 = lean_ctor_get(x_458, 3); -lean_inc(x_466); +lean_dec(x_461); +x_464 = lean_st_ref_take(x_8, x_455); +x_465 = lean_ctor_get(x_464, 0); lean_inc(x_465); -lean_inc(x_464); -lean_dec(x_458); -x_467 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_467, 0, x_464); -lean_ctor_set(x_467, 1, x_456); -lean_ctor_set(x_467, 2, x_465); -lean_ctor_set(x_467, 3, x_466); -x_468 = lean_st_ref_set(x_8, x_467, x_459); -x_469 = lean_ctor_get(x_468, 1); -lean_inc(x_469); +x_466 = lean_ctor_get(x_464, 1); +lean_inc(x_466); +lean_dec(x_464); +x_467 = !lean_is_exclusive(x_465); +if (x_467 == 0) +{ +lean_object* x_468; lean_object* x_469; lean_object* x_470; +x_468 = lean_ctor_get(x_465, 1); lean_dec(x_468); -x_59 = x_455; -x_60 = x_469; -goto block_438; +lean_ctor_set(x_465, 1, x_463); +x_469 = lean_st_ref_set(x_8, x_465, x_466); +x_470 = lean_ctor_get(x_469, 1); +lean_inc(x_470); +lean_dec(x_469); +x_59 = x_462; +x_60 = x_470; +goto block_445; +} +else +{ +lean_object* x_471; lean_object* x_472; lean_object* x_473; lean_object* x_474; lean_object* x_475; lean_object* x_476; +x_471 = lean_ctor_get(x_465, 0); +x_472 = lean_ctor_get(x_465, 2); +x_473 = lean_ctor_get(x_465, 3); +lean_inc(x_473); +lean_inc(x_472); +lean_inc(x_471); +lean_dec(x_465); +x_474 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_474, 0, x_471); +lean_ctor_set(x_474, 1, x_463); +lean_ctor_set(x_474, 2, x_472); +lean_ctor_set(x_474, 3, x_473); +x_475 = lean_st_ref_set(x_8, x_474, x_466); +x_476 = lean_ctor_get(x_475, 1); +lean_inc(x_476); +lean_dec(x_475); +x_59 = x_462; +x_60 = x_476; +goto block_445; } } else { -lean_object* x_470; +lean_object* x_477; lean_dec(x_54); lean_dec(x_53); lean_dec(x_51); lean_dec(x_50); lean_dec(x_2); -x_470 = lean_ctor_get(x_454, 0); -lean_inc(x_470); -lean_dec(x_454); -if (lean_obj_tag(x_470) == 0) +x_477 = lean_ctor_get(x_461, 0); +lean_inc(x_477); +lean_dec(x_461); +if (lean_obj_tag(x_477) == 0) { -lean_object* x_471; lean_object* x_472; lean_object* x_473; lean_object* x_474; lean_object* x_475; uint8_t x_476; -x_471 = lean_ctor_get(x_470, 0); -lean_inc(x_471); -x_472 = lean_ctor_get(x_470, 1); -lean_inc(x_472); -lean_dec(x_470); -x_473 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_473, 0, x_472); -x_474 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_474, 0, x_473); -x_475 = l_Lean_throwErrorAt___at___private_Lean_Elab_Term_21__elabTermAux___main___spec__1___rarg(x_471, x_474, x_3, x_4, x_5, x_6, x_7, x_8, x_448); +lean_object* x_478; lean_object* x_479; lean_object* x_480; lean_object* x_481; lean_object* x_482; uint8_t x_483; +x_478 = lean_ctor_get(x_477, 0); +lean_inc(x_478); +x_479 = lean_ctor_get(x_477, 1); +lean_inc(x_479); +lean_dec(x_477); +x_480 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_480, 0, x_479); +x_481 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_481, 0, x_480); +x_482 = l_Lean_throwErrorAt___at___private_Lean_Elab_Term_21__elabTermAux___main___spec__1___rarg(x_478, x_481, x_3, x_4, x_5, x_6, x_7, x_8, x_455); lean_dec(x_8); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -lean_dec(x_471); -x_476 = !lean_is_exclusive(x_475); -if (x_476 == 0) +lean_dec(x_478); +x_483 = !lean_is_exclusive(x_482); +if (x_483 == 0) { -return x_475; +return x_482; } else { -lean_object* x_477; lean_object* x_478; lean_object* x_479; -x_477 = lean_ctor_get(x_475, 0); -x_478 = lean_ctor_get(x_475, 1); -lean_inc(x_478); -lean_inc(x_477); -lean_dec(x_475); -x_479 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_479, 0, x_477); -lean_ctor_set(x_479, 1, x_478); -return x_479; +lean_object* x_484; lean_object* x_485; lean_object* x_486; +x_484 = lean_ctor_get(x_482, 0); +x_485 = lean_ctor_get(x_482, 1); +lean_inc(x_485); +lean_inc(x_484); +lean_dec(x_482); +x_486 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_486, 0, x_484); +lean_ctor_set(x_486, 1, x_485); +return x_486; } } else { -lean_object* x_480; uint8_t x_481; +lean_object* x_487; uint8_t x_488; lean_dec(x_7); lean_dec(x_8); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_480 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___spec__2___rarg(x_448); -x_481 = !lean_is_exclusive(x_480); -if (x_481 == 0) +x_487 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___spec__2___rarg(x_455); +x_488 = !lean_is_exclusive(x_487); +if (x_488 == 0) { -return x_480; +return x_487; } else { -lean_object* x_482; lean_object* x_483; lean_object* x_484; -x_482 = lean_ctor_get(x_480, 0); -x_483 = lean_ctor_get(x_480, 1); -lean_inc(x_483); -lean_inc(x_482); -lean_dec(x_480); -x_484 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_484, 0, x_482); -lean_ctor_set(x_484, 1, x_483); -return x_484; +lean_object* x_489; lean_object* x_490; lean_object* x_491; +x_489 = lean_ctor_get(x_487, 0); +x_490 = lean_ctor_get(x_487, 1); +lean_inc(x_490); +lean_inc(x_489); +lean_dec(x_487); +x_491 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_491, 0, x_489); +lean_ctor_set(x_491, 1, x_490); +return x_491; } } } -block_438: +block_445: { -lean_object* x_61; lean_object* x_62; uint8_t x_63; uint8_t x_435; +lean_object* x_61; lean_object* x_62; uint8_t x_63; uint8_t x_442; x_61 = lean_ctor_get(x_59, 0); lean_inc(x_61); x_62 = lean_ctor_get(x_59, 1); lean_inc(x_62); lean_dec(x_59); -x_435 = l_List_isEmpty___rarg(x_61); -if (x_435 == 0) +x_442 = l_List_isEmpty___rarg(x_61); +if (x_442 == 0) { -uint8_t x_436; -x_436 = 1; -x_63 = x_436; -goto block_434; +uint8_t x_443; +x_443 = 1; +x_63 = x_443; +goto block_441; } else { -uint8_t x_437; -x_437 = 0; -x_63 = x_437; -goto block_434; +uint8_t x_444; +x_444 = 0; +x_63 = x_444; +goto block_441; } -block_434: +block_441: { if (x_63 == 0) { @@ -41961,199 +41981,204 @@ x_96 = lean_name_eq(x_64, x_95); if (x_96 == 0) { lean_object* x_97; uint8_t x_98; -x_97 = l_Lean_Elab_Term_Do_mkAuxDeclFor___rarg___lambda__3___closed__8; +x_97 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__8; x_98 = lean_name_eq(x_64, x_97); -lean_dec(x_64); if (x_98 == 0) { -lean_object* x_99; lean_object* x_100; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; -x_111 = lean_st_ref_get(x_8, x_60); -x_112 = lean_ctor_get(x_111, 0); -lean_inc(x_112); -x_113 = lean_ctor_get(x_111, 1); -lean_inc(x_113); -lean_dec(x_111); -x_114 = lean_ctor_get(x_112, 0); +lean_object* x_99; uint8_t x_100; +x_99 = l_Lean_Elab_Term_Do_mkAuxDeclFor___rarg___lambda__3___closed__8; +x_100 = lean_name_eq(x_64, x_99); +lean_dec(x_64); +if (x_100 == 0) +{ +lean_object* x_101; lean_object* x_102; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; +x_113 = lean_st_ref_get(x_8, x_60); +x_114 = lean_ctor_get(x_113, 0); lean_inc(x_114); -lean_dec(x_112); -x_115 = l_Lean_Elab_Term_getCurrMacroScope(x_3, x_4, x_5, x_6, x_7, x_8, x_113); -x_116 = lean_ctor_get(x_115, 0); +x_115 = lean_ctor_get(x_113, 1); +lean_inc(x_115); +lean_dec(x_113); +x_116 = lean_ctor_get(x_114, 0); lean_inc(x_116); -x_117 = lean_ctor_get(x_115, 1); -lean_inc(x_117); -lean_dec(x_115); -x_118 = lean_st_ref_get(x_8, x_117); -x_119 = lean_ctor_get(x_118, 0); +lean_dec(x_114); +x_117 = l_Lean_Elab_Term_getCurrMacroScope(x_3, x_4, x_5, x_6, x_7, x_8, x_115); +x_118 = lean_ctor_get(x_117, 0); +lean_inc(x_118); +x_119 = lean_ctor_get(x_117, 1); lean_inc(x_119); -x_120 = lean_ctor_get(x_118, 1); -lean_inc(x_120); -lean_dec(x_118); -x_121 = lean_ctor_get(x_119, 1); +lean_dec(x_117); +x_120 = lean_st_ref_get(x_8, x_119); +x_121 = lean_ctor_get(x_120, 0); lean_inc(x_121); -lean_dec(x_119); -lean_inc(x_114); -x_122 = lean_alloc_closure((void*)(l___private_Lean_Elab_Util_0__Lean_Elab_expandMacro_x3f___boxed), 4, 1); -lean_closure_set(x_122, 0, x_114); -x_123 = x_122; -x_124 = lean_environment_main_module(x_114); -x_125 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_125, 0, x_123); -lean_ctor_set(x_125, 1, x_124); -lean_ctor_set(x_125, 2, x_116); -lean_ctor_set(x_125, 3, x_53); -lean_ctor_set(x_125, 4, x_54); +x_122 = lean_ctor_get(x_120, 1); +lean_inc(x_122); +lean_dec(x_120); +x_123 = lean_ctor_get(x_121, 1); +lean_inc(x_123); +lean_dec(x_121); +lean_inc(x_116); +x_124 = lean_alloc_closure((void*)(l___private_Lean_Elab_Util_0__Lean_Elab_expandMacro_x3f___boxed), 4, 1); +lean_closure_set(x_124, 0, x_116); +x_125 = x_124; +x_126 = lean_environment_main_module(x_116); +x_127 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_127, 0, x_125); +lean_ctor_set(x_127, 1, x_126); +lean_ctor_set(x_127, 2, x_118); +lean_ctor_set(x_127, 3, x_53); +lean_ctor_set(x_127, 4, x_54); lean_inc(x_62); -x_126 = l_Lean_Macro_expandMacro_x3fImp(x_62, x_125, x_121); -if (lean_obj_tag(x_126) == 0) +x_128 = l_Lean_Macro_expandMacro_x3fImp(x_62, x_127, x_123); +if (lean_obj_tag(x_128) == 0) { -lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; uint8_t x_132; -x_127 = lean_ctor_get(x_126, 0); -lean_inc(x_127); -x_128 = lean_ctor_get(x_126, 1); -lean_inc(x_128); -lean_dec(x_126); -x_129 = lean_st_ref_take(x_8, x_120); -x_130 = lean_ctor_get(x_129, 0); +lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; uint8_t x_134; +x_129 = lean_ctor_get(x_128, 0); +lean_inc(x_129); +x_130 = lean_ctor_get(x_128, 1); lean_inc(x_130); -x_131 = lean_ctor_get(x_129, 1); -lean_inc(x_131); -lean_dec(x_129); -x_132 = !lean_is_exclusive(x_130); -if (x_132 == 0) +lean_dec(x_128); +x_131 = lean_st_ref_take(x_8, x_122); +x_132 = lean_ctor_get(x_131, 0); +lean_inc(x_132); +x_133 = lean_ctor_get(x_131, 1); +lean_inc(x_133); +lean_dec(x_131); +x_134 = !lean_is_exclusive(x_132); +if (x_134 == 0) { -lean_object* x_133; lean_object* x_134; lean_object* x_135; -x_133 = lean_ctor_get(x_130, 1); -lean_dec(x_133); -lean_ctor_set(x_130, 1, x_128); -x_134 = lean_st_ref_set(x_8, x_130, x_131); -x_135 = lean_ctor_get(x_134, 1); -lean_inc(x_135); -lean_dec(x_134); -x_99 = x_127; -x_100 = x_135; -goto block_110; -} -else -{ -lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; -x_136 = lean_ctor_get(x_130, 0); -x_137 = lean_ctor_get(x_130, 2); -x_138 = lean_ctor_get(x_130, 3); -lean_inc(x_138); +lean_object* x_135; lean_object* x_136; lean_object* x_137; +x_135 = lean_ctor_get(x_132, 1); +lean_dec(x_135); +lean_ctor_set(x_132, 1, x_130); +x_136 = lean_st_ref_set(x_8, x_132, x_133); +x_137 = lean_ctor_get(x_136, 1); lean_inc(x_137); -lean_inc(x_136); -lean_dec(x_130); -x_139 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_139, 0, x_136); -lean_ctor_set(x_139, 1, x_128); -lean_ctor_set(x_139, 2, x_137); -lean_ctor_set(x_139, 3, x_138); -x_140 = lean_st_ref_set(x_8, x_139, x_131); -x_141 = lean_ctor_get(x_140, 1); -lean_inc(x_141); -lean_dec(x_140); -x_99 = x_127; -x_100 = x_141; -goto block_110; -} +lean_dec(x_136); +x_101 = x_129; +x_102 = x_137; +goto block_112; } else { -lean_object* x_142; -lean_dec(x_62); -lean_dec(x_51); -lean_dec(x_50); -x_142 = lean_ctor_get(x_126, 0); -lean_inc(x_142); -lean_dec(x_126); -if (lean_obj_tag(x_142) == 0) -{ -lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; uint8_t x_148; -x_143 = lean_ctor_get(x_142, 0); +lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; +x_138 = lean_ctor_get(x_132, 0); +x_139 = lean_ctor_get(x_132, 2); +x_140 = lean_ctor_get(x_132, 3); +lean_inc(x_140); +lean_inc(x_139); +lean_inc(x_138); +lean_dec(x_132); +x_141 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_141, 0, x_138); +lean_ctor_set(x_141, 1, x_130); +lean_ctor_set(x_141, 2, x_139); +lean_ctor_set(x_141, 3, x_140); +x_142 = lean_st_ref_set(x_8, x_141, x_133); +x_143 = lean_ctor_get(x_142, 1); lean_inc(x_143); -x_144 = lean_ctor_get(x_142, 1); -lean_inc(x_144); lean_dec(x_142); -x_145 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_145, 0, x_144); -x_146 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_146, 0, x_145); -x_147 = l_Lean_throwErrorAt___at_Lean_Elab_Term_Do_ToCodeBlock_mkForInBody___spec__1___rarg(x_143, x_146, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_120); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_143); -x_148 = !lean_is_exclusive(x_147); -if (x_148 == 0) -{ -return x_147; -} -else -{ -lean_object* x_149; lean_object* x_150; lean_object* x_151; -x_149 = lean_ctor_get(x_147, 0); -x_150 = lean_ctor_get(x_147, 1); -lean_inc(x_150); -lean_inc(x_149); -lean_dec(x_147); -x_151 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_151, 0, x_149); -lean_ctor_set(x_151, 1, x_150); -return x_151; +x_101 = x_129; +x_102 = x_143; +goto block_112; } } else { -lean_object* x_152; uint8_t x_153; -lean_dec(x_7); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_152 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___spec__1___rarg(x_120); -x_153 = !lean_is_exclusive(x_152); -if (x_153 == 0) -{ -return x_152; -} -else -{ -lean_object* x_154; lean_object* x_155; lean_object* x_156; -x_154 = lean_ctor_get(x_152, 0); -x_155 = lean_ctor_get(x_152, 1); -lean_inc(x_155); -lean_inc(x_154); -lean_dec(x_152); -x_156 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_156, 0, x_154); -lean_ctor_set(x_156, 1, x_155); -return x_156; -} -} -} -block_110: -{ -if (lean_obj_tag(x_99) == 0) -{ -lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; +lean_object* x_144; +lean_dec(x_62); lean_dec(x_51); lean_dec(x_50); -x_101 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_101, 0, x_62); -x_102 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__8; -x_103 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_103, 0, x_102); -lean_ctor_set(x_103, 1, x_101); -x_104 = l_Lean_Elab_Term_elabLetDeclAux___closed__4; +x_144 = lean_ctor_get(x_128, 0); +lean_inc(x_144); +lean_dec(x_128); +if (lean_obj_tag(x_144) == 0) +{ +lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; uint8_t x_150; +x_145 = lean_ctor_get(x_144, 0); +lean_inc(x_145); +x_146 = lean_ctor_get(x_144, 1); +lean_inc(x_146); +lean_dec(x_144); +x_147 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_147, 0, x_146); +x_148 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_148, 0, x_147); +x_149 = l_Lean_throwErrorAt___at_Lean_Elab_Term_Do_ToCodeBlock_mkForInBody___spec__1___rarg(x_145, x_148, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_122); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_145); +x_150 = !lean_is_exclusive(x_149); +if (x_150 == 0) +{ +return x_149; +} +else +{ +lean_object* x_151; lean_object* x_152; lean_object* x_153; +x_151 = lean_ctor_get(x_149, 0); +x_152 = lean_ctor_get(x_149, 1); +lean_inc(x_152); +lean_inc(x_151); +lean_dec(x_149); +x_153 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_153, 0, x_151); +lean_ctor_set(x_153, 1, x_152); +return x_153; +} +} +else +{ +lean_object* x_154; uint8_t x_155; +lean_dec(x_7); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_154 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___spec__1___rarg(x_122); +x_155 = !lean_is_exclusive(x_154); +if (x_155 == 0) +{ +return x_154; +} +else +{ +lean_object* x_156; lean_object* x_157; lean_object* x_158; +x_156 = lean_ctor_get(x_154, 0); +x_157 = lean_ctor_get(x_154, 1); +lean_inc(x_157); +lean_inc(x_156); +lean_dec(x_154); +x_158 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_158, 0, x_156); +lean_ctor_set(x_158, 1, x_157); +return x_158; +} +} +} +block_112: +{ +if (lean_obj_tag(x_101) == 0) +{ +lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; +lean_dec(x_51); +lean_dec(x_50); +x_103 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_103, 0, x_62); +x_104 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__10; x_105 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_105, 0, x_103); -lean_ctor_set(x_105, 1, x_104); -x_106 = l_Lean_throwError___at_Lean_Elab_Term_Do_ToCodeBlock_checkReassignable___spec__1___rarg(x_105, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_100); +lean_ctor_set(x_105, 0, x_104); +lean_ctor_set(x_105, 1, x_103); +x_106 = l_Lean_Elab_Term_elabLetDeclAux___closed__4; +x_107 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_107, 0, x_105); +lean_ctor_set(x_107, 1, x_106); +x_108 = l_Lean_throwError___at_Lean_Elab_Term_Do_ToCodeBlock_checkReassignable___spec__1___rarg(x_107, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_102); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -42161,433 +42186,344 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -return x_106; +return x_108; } else { -lean_object* x_107; lean_object* x_108; +lean_object* x_109; lean_object* x_110; lean_dec(x_62); -x_107 = lean_ctor_get(x_99, 0); -lean_inc(x_107); -lean_dec(x_99); +x_109 = lean_ctor_get(x_101, 0); +lean_inc(x_109); +lean_dec(x_101); if (lean_is_scalar(x_51)) { - x_108 = lean_alloc_ctor(1, 2, 0); + x_110 = lean_alloc_ctor(1, 2, 0); } else { - x_108 = x_51; + x_110 = x_51; } -lean_ctor_set(x_108, 0, x_107); -lean_ctor_set(x_108, 1, x_50); -x_1 = x_108; -x_9 = x_100; +lean_ctor_set(x_110, 0, x_109); +lean_ctor_set(x_110, 1, x_50); +x_1 = x_110; +x_9 = x_102; goto _start; } } } else { -lean_object* x_157; lean_object* x_158; uint8_t x_159; +lean_object* x_159; lean_object* x_160; uint8_t x_161; lean_dec(x_54); lean_dec(x_53); lean_dec(x_51); -x_157 = lean_unsigned_to_nat(0u); -x_158 = l_Lean_Syntax_getArg(x_62, x_157); +x_159 = lean_unsigned_to_nat(0u); +x_160 = l_Lean_Syntax_getArg(x_62, x_159); lean_dec(x_62); -x_159 = l_List_isEmpty___rarg(x_50); -if (x_159 == 0) -{ -lean_object* x_160; -x_160 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_160) == 0) -{ -uint8_t x_161; -x_161 = !lean_is_exclusive(x_160); +x_161 = l_List_isEmpty___rarg(x_50); if (x_161 == 0) { -lean_object* x_162; lean_object* x_163; -x_162 = lean_ctor_get(x_160, 0); -x_163 = l_Lean_Elab_Term_Do_mkSeq(x_158, x_162); -lean_ctor_set(x_160, 0, x_163); -return x_160; +lean_object* x_162; +x_162 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_162) == 0) +{ +uint8_t x_163; +x_163 = !lean_is_exclusive(x_162); +if (x_163 == 0) +{ +lean_object* x_164; lean_object* x_165; +x_164 = lean_ctor_get(x_162, 0); +x_165 = l_Lean_Elab_Term_Do_mkSeq(x_160, x_164); +lean_ctor_set(x_162, 0, x_165); +return x_162; } else { -lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; -x_164 = lean_ctor_get(x_160, 0); -x_165 = lean_ctor_get(x_160, 1); -lean_inc(x_165); -lean_inc(x_164); +lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; +x_166 = lean_ctor_get(x_162, 0); +x_167 = lean_ctor_get(x_162, 1); +lean_inc(x_167); +lean_inc(x_166); +lean_dec(x_162); +x_168 = l_Lean_Elab_Term_Do_mkSeq(x_160, x_166); +x_169 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_169, 0, x_168); +lean_ctor_set(x_169, 1, x_167); +return x_169; +} +} +else +{ +uint8_t x_170; lean_dec(x_160); -x_166 = l_Lean_Elab_Term_Do_mkSeq(x_158, x_164); -x_167 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_167, 0, x_166); -lean_ctor_set(x_167, 1, x_165); -return x_167; -} +x_170 = !lean_is_exclusive(x_162); +if (x_170 == 0) +{ +return x_162; } else { -uint8_t x_168; -lean_dec(x_158); -x_168 = !lean_is_exclusive(x_160); -if (x_168 == 0) -{ -return x_160; -} -else -{ -lean_object* x_169; lean_object* x_170; lean_object* x_171; -x_169 = lean_ctor_get(x_160, 0); -x_170 = lean_ctor_get(x_160, 1); -lean_inc(x_170); -lean_inc(x_169); -lean_dec(x_160); -x_171 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_171, 0, x_169); -lean_ctor_set(x_171, 1, x_170); -return x_171; -} -} -} -else -{ -lean_object* x_172; lean_object* x_173; -lean_dec(x_7); -lean_dec(x_50); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_172 = l_Lean_Elab_Term_Do_mkTerminalAction(x_158); -x_173 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_173, 0, x_172); -lean_ctor_set(x_173, 1, x_60); +lean_object* x_171; lean_object* x_172; lean_object* x_173; +x_171 = lean_ctor_get(x_162, 0); +x_172 = lean_ctor_get(x_162, 1); +lean_inc(x_172); +lean_inc(x_171); +lean_dec(x_162); +x_173 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_173, 0, x_171); +lean_ctor_set(x_173, 1, x_172); return x_173; } } } else { -lean_object* x_174; +lean_object* x_174; lean_object* x_175; +lean_dec(x_7); +lean_dec(x_50); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_174 = l_Lean_Elab_Term_Do_mkTerminalAction(x_160); +x_175 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_175, 0, x_174); +lean_ctor_set(x_175, 1, x_60); +return x_175; +} +} +} +else +{ +lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_dec(x_64); lean_dec(x_54); lean_dec(x_53); lean_dec(x_51); -x_174 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_174) == 0) -{ -uint8_t x_175; -x_175 = !lean_is_exclusive(x_174); -if (x_175 == 0) -{ -lean_object* x_176; lean_object* x_177; -x_176 = lean_ctor_get(x_174, 0); -x_177 = l_Lean_Elab_Term_Do_mkSeq(x_62, x_176); -lean_ctor_set(x_174, 0, x_177); -return x_174; -} -else -{ -lean_object* x_178; lean_object* x_179; lean_object* x_180; lean_object* x_181; -x_178 = lean_ctor_get(x_174, 0); -x_179 = lean_ctor_get(x_174, 1); -lean_inc(x_179); -lean_inc(x_178); -lean_dec(x_174); -x_180 = l_Lean_Elab_Term_Do_mkSeq(x_62, x_178); -x_181 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_181, 0, x_180); -lean_ctor_set(x_181, 1, x_179); -return x_181; +x_176 = lean_unsigned_to_nat(1u); +x_177 = l_Lean_Syntax_getArg(x_62, x_176); +lean_dec(x_62); +x_178 = l___private_Lean_Elab_Do_0__Lean_Elab_Term_getDoSeqElems(x_177); +x_179 = l_List_append___rarg(x_178, x_50); +x_1 = x_179; +x_9 = x_60; +goto _start; } } else { +lean_object* x_181; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +x_181 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_181) == 0) +{ uint8_t x_182; -lean_dec(x_62); -x_182 = !lean_is_exclusive(x_174); +x_182 = !lean_is_exclusive(x_181); if (x_182 == 0) { -return x_174; +lean_object* x_183; lean_object* x_184; +x_183 = lean_ctor_get(x_181, 0); +x_184 = l_Lean_Elab_Term_Do_mkSeq(x_62, x_183); +lean_ctor_set(x_181, 0, x_184); +return x_181; } else { -lean_object* x_183; lean_object* x_184; lean_object* x_185; -x_183 = lean_ctor_get(x_174, 0); -x_184 = lean_ctor_get(x_174, 1); -lean_inc(x_184); -lean_inc(x_183); -lean_dec(x_174); -x_185 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_185, 0, x_183); -lean_ctor_set(x_185, 1, x_184); -return x_185; -} -} +lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; +x_185 = lean_ctor_get(x_181, 0); +x_186 = lean_ctor_get(x_181, 1); +lean_inc(x_186); +lean_inc(x_185); +lean_dec(x_181); +x_187 = l_Lean_Elab_Term_Do_mkSeq(x_62, x_185); +x_188 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_188, 0, x_187); +lean_ctor_set(x_188, 1, x_186); +return x_188; } } else { -lean_object* x_186; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -x_186 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_186) == 0) +uint8_t x_189; +lean_dec(x_62); +x_189 = !lean_is_exclusive(x_181); +if (x_189 == 0) { -uint8_t x_187; -x_187 = !lean_is_exclusive(x_186); -if (x_187 == 0) -{ -lean_object* x_188; lean_object* x_189; -x_188 = lean_ctor_get(x_186, 0); -x_189 = l_Lean_Elab_Term_Do_mkSeq(x_62, x_188); -lean_ctor_set(x_186, 0, x_189); -return x_186; +return x_181; } else { -lean_object* x_190; lean_object* x_191; lean_object* x_192; lean_object* x_193; -x_190 = lean_ctor_get(x_186, 0); -x_191 = lean_ctor_get(x_186, 1); +lean_object* x_190; lean_object* x_191; lean_object* x_192; +x_190 = lean_ctor_get(x_181, 0); +x_191 = lean_ctor_get(x_181, 1); lean_inc(x_191); lean_inc(x_190); -lean_dec(x_186); -x_192 = l_Lean_Elab_Term_Do_mkSeq(x_62, x_190); -x_193 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_193, 0, x_192); -lean_ctor_set(x_193, 1, x_191); -return x_193; +lean_dec(x_181); +x_192 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_192, 0, x_190); +lean_ctor_set(x_192, 1, x_191); +return x_192; +} +} } } else { +lean_object* x_193; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +x_193 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_193) == 0) +{ uint8_t x_194; -lean_dec(x_62); -x_194 = !lean_is_exclusive(x_186); +x_194 = !lean_is_exclusive(x_193); if (x_194 == 0) { -return x_186; +lean_object* x_195; lean_object* x_196; +x_195 = lean_ctor_get(x_193, 0); +x_196 = l_Lean_Elab_Term_Do_mkSeq(x_62, x_195); +lean_ctor_set(x_193, 0, x_196); +return x_193; } else { -lean_object* x_195; lean_object* x_196; lean_object* x_197; -x_195 = lean_ctor_get(x_186, 0); -x_196 = lean_ctor_get(x_186, 1); -lean_inc(x_196); -lean_inc(x_195); -lean_dec(x_186); -x_197 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_197, 0, x_195); -lean_ctor_set(x_197, 1, x_196); -return x_197; -} -} +lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; +x_197 = lean_ctor_get(x_193, 0); +x_198 = lean_ctor_get(x_193, 1); +lean_inc(x_198); +lean_inc(x_197); +lean_dec(x_193); +x_199 = l_Lean_Elab_Term_Do_mkSeq(x_62, x_197); +x_200 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_200, 0, x_199); +lean_ctor_set(x_200, 1, x_198); +return x_200; } } else { -lean_object* x_198; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -x_198 = l_Lean_Elab_Term_Do_ToCodeBlock_doReturnToCode(x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_50); -return x_198; -} -} -else -{ -lean_object* x_199; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -x_199 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureInsideFor(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_199) == 0) -{ -lean_object* x_200; lean_object* x_201; -x_200 = lean_ctor_get(x_199, 1); -lean_inc(x_200); -lean_dec(x_199); -x_201 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureEOS(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_200); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_50); -if (lean_obj_tag(x_201) == 0) -{ -uint8_t x_202; -x_202 = !lean_is_exclusive(x_201); -if (x_202 == 0) -{ -lean_object* x_203; lean_object* x_204; -x_203 = lean_ctor_get(x_201, 0); -lean_dec(x_203); -x_204 = l_Lean_Elab_Term_Do_mkContinue(x_62); -lean_ctor_set(x_201, 0, x_204); -return x_201; -} -else -{ -lean_object* x_205; lean_object* x_206; lean_object* x_207; -x_205 = lean_ctor_get(x_201, 1); -lean_inc(x_205); -lean_dec(x_201); -x_206 = l_Lean_Elab_Term_Do_mkContinue(x_62); -x_207 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_207, 0, x_206); -lean_ctor_set(x_207, 1, x_205); -return x_207; -} -} -else -{ -uint8_t x_208; +uint8_t x_201; lean_dec(x_62); -x_208 = !lean_is_exclusive(x_201); -if (x_208 == 0) +x_201 = !lean_is_exclusive(x_193); +if (x_201 == 0) { -return x_201; +return x_193; } else { -lean_object* x_209; lean_object* x_210; lean_object* x_211; -x_209 = lean_ctor_get(x_201, 0); -x_210 = lean_ctor_get(x_201, 1); -lean_inc(x_210); -lean_inc(x_209); -lean_dec(x_201); -x_211 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_211, 0, x_209); -lean_ctor_set(x_211, 1, x_210); -return x_211; +lean_object* x_202; lean_object* x_203; lean_object* x_204; +x_202 = lean_ctor_get(x_193, 0); +x_203 = lean_ctor_get(x_193, 1); +lean_inc(x_203); +lean_inc(x_202); +lean_dec(x_193); +x_204 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_204, 0, x_202); +lean_ctor_set(x_204, 1, x_203); +return x_204; +} } } } else { -uint8_t x_212; -lean_dec(x_62); -lean_dec(x_7); -lean_dec(x_50); +lean_object* x_205; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +x_205 = l_Lean_Elab_Term_Do_ToCodeBlock_doReturnToCode(x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); lean_dec(x_8); +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_212 = !lean_is_exclusive(x_199); -if (x_212 == 0) -{ -return x_199; -} -else -{ -lean_object* x_213; lean_object* x_214; lean_object* x_215; -x_213 = lean_ctor_get(x_199, 0); -x_214 = lean_ctor_get(x_199, 1); -lean_inc(x_214); -lean_inc(x_213); -lean_dec(x_199); -x_215 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_215, 0, x_213); -lean_ctor_set(x_215, 1, x_214); -return x_215; -} -} +lean_dec(x_50); +return x_205; } } else { -lean_object* x_216; +lean_object* x_206; lean_dec(x_64); lean_dec(x_54); lean_dec(x_53); lean_dec(x_51); -x_216 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureInsideFor(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_216) == 0) +x_206 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureInsideFor(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_206) == 0) { -lean_object* x_217; lean_object* x_218; -x_217 = lean_ctor_get(x_216, 1); +lean_object* x_207; lean_object* x_208; +x_207 = lean_ctor_get(x_206, 1); +lean_inc(x_207); +lean_dec(x_206); +x_208 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureEOS(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_207); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_50); +if (lean_obj_tag(x_208) == 0) +{ +uint8_t x_209; +x_209 = !lean_is_exclusive(x_208); +if (x_209 == 0) +{ +lean_object* x_210; lean_object* x_211; +x_210 = lean_ctor_get(x_208, 0); +lean_dec(x_210); +x_211 = l_Lean_Elab_Term_Do_mkContinue(x_62); +lean_ctor_set(x_208, 0, x_211); +return x_208; +} +else +{ +lean_object* x_212; lean_object* x_213; lean_object* x_214; +x_212 = lean_ctor_get(x_208, 1); +lean_inc(x_212); +lean_dec(x_208); +x_213 = l_Lean_Elab_Term_Do_mkContinue(x_62); +x_214 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_214, 0, x_213); +lean_ctor_set(x_214, 1, x_212); +return x_214; +} +} +else +{ +uint8_t x_215; +lean_dec(x_62); +x_215 = !lean_is_exclusive(x_208); +if (x_215 == 0) +{ +return x_208; +} +else +{ +lean_object* x_216; lean_object* x_217; lean_object* x_218; +x_216 = lean_ctor_get(x_208, 0); +x_217 = lean_ctor_get(x_208, 1); lean_inc(x_217); -lean_dec(x_216); -x_218 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureEOS(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_217); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_50); -if (lean_obj_tag(x_218) == 0) +lean_inc(x_216); +lean_dec(x_208); +x_218 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_218, 0, x_216); +lean_ctor_set(x_218, 1, x_217); +return x_218; +} +} +} +else { uint8_t x_219; -x_219 = !lean_is_exclusive(x_218); -if (x_219 == 0) -{ -lean_object* x_220; lean_object* x_221; -x_220 = lean_ctor_get(x_218, 0); -lean_dec(x_220); -x_221 = l_Lean_Elab_Term_Do_mkBreak(x_62); -lean_ctor_set(x_218, 0, x_221); -return x_218; -} -else -{ -lean_object* x_222; lean_object* x_223; lean_object* x_224; -x_222 = lean_ctor_get(x_218, 1); -lean_inc(x_222); -lean_dec(x_218); -x_223 = l_Lean_Elab_Term_Do_mkBreak(x_62); -x_224 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_224, 0, x_223); -lean_ctor_set(x_224, 1, x_222); -return x_224; -} -} -else -{ -uint8_t x_225; -lean_dec(x_62); -x_225 = !lean_is_exclusive(x_218); -if (x_225 == 0) -{ -return x_218; -} -else -{ -lean_object* x_226; lean_object* x_227; lean_object* x_228; -x_226 = lean_ctor_get(x_218, 0); -x_227 = lean_ctor_get(x_218, 1); -lean_inc(x_227); -lean_inc(x_226); -lean_dec(x_218); -x_228 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_228, 0, x_226); -lean_ctor_set(x_228, 1, x_227); -return x_228; -} -} -} -else -{ -uint8_t x_229; lean_dec(x_62); lean_dec(x_7); lean_dec(x_50); @@ -42597,165 +42533,271 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_229 = !lean_is_exclusive(x_216); -if (x_229 == 0) +x_219 = !lean_is_exclusive(x_206); +if (x_219 == 0) { -return x_216; +return x_206; } else { -lean_object* x_230; lean_object* x_231; lean_object* x_232; -x_230 = lean_ctor_get(x_216, 0); -x_231 = lean_ctor_get(x_216, 1); -lean_inc(x_231); -lean_inc(x_230); -lean_dec(x_216); -x_232 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_232, 0, x_230); -lean_ctor_set(x_232, 1, x_231); -return x_232; +lean_object* x_220; lean_object* x_221; lean_object* x_222; +x_220 = lean_ctor_get(x_206, 0); +x_221 = lean_ctor_get(x_206, 1); +lean_inc(x_221); +lean_inc(x_220); +lean_dec(x_206); +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_233; lean_object* x_234; +lean_object* x_223; lean_dec(x_64); lean_dec(x_54); lean_dec(x_53); lean_dec(x_51); -x_233 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_234 = l_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode(x_233, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -lean_dec(x_62); -return x_234; -} -} -else +x_223 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureInsideFor(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_223) == 0) { -lean_object* x_235; lean_object* x_236; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -x_235 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_236 = l_Lean_Elab_Term_Do_ToCodeBlock_doMatchToCode(x_235, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -return x_236; -} -} -else -{ -lean_object* x_237; lean_object* x_238; lean_object* x_239; uint8_t x_240; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -x_237 = lean_st_ref_take(x_8, x_60); -x_238 = lean_ctor_get(x_237, 0); -lean_inc(x_238); -x_239 = lean_ctor_get(x_237, 1); -lean_inc(x_239); -lean_dec(x_237); -x_240 = !lean_is_exclusive(x_238); -if (x_240 == 0) -{ -lean_object* x_241; lean_object* x_242; lean_object* x_243; lean_object* x_244; lean_object* x_245; uint8_t x_246; -x_241 = lean_ctor_get(x_238, 1); -x_242 = lean_unsigned_to_nat(1u); -x_243 = lean_nat_add(x_241, x_242); -lean_ctor_set(x_238, 1, x_243); -x_244 = lean_st_ref_set(x_8, x_238, x_239); -x_245 = lean_ctor_get(x_244, 1); -lean_inc(x_245); -lean_dec(x_244); -x_246 = !lean_is_exclusive(x_3); -if (x_246 == 0) -{ -lean_object* x_247; lean_object* x_248; lean_object* x_249; -x_247 = lean_ctor_get(x_3, 7); -lean_dec(x_247); -lean_ctor_set(x_3, 7, x_241); -x_248 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_249 = l_Lean_Elab_Term_Do_ToCodeBlock_doForToCode(x_248, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_245); -lean_dec(x_62); -return x_249; -} -else -{ -lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; lean_object* x_256; uint8_t x_257; uint8_t x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; -x_250 = lean_ctor_get(x_3, 0); -x_251 = lean_ctor_get(x_3, 1); -x_252 = lean_ctor_get(x_3, 2); -x_253 = lean_ctor_get(x_3, 3); -x_254 = lean_ctor_get(x_3, 4); -x_255 = lean_ctor_get(x_3, 5); -x_256 = lean_ctor_get(x_3, 6); -x_257 = lean_ctor_get_uint8(x_3, sizeof(void*)*8); -x_258 = lean_ctor_get_uint8(x_3, sizeof(void*)*8 + 1); -lean_inc(x_256); -lean_inc(x_255); -lean_inc(x_254); -lean_inc(x_253); -lean_inc(x_252); -lean_inc(x_251); -lean_inc(x_250); +lean_object* x_224; lean_object* x_225; +x_224 = lean_ctor_get(x_223, 1); +lean_inc(x_224); +lean_dec(x_223); +x_225 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureEOS(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_224); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); lean_dec(x_3); -x_259 = lean_alloc_ctor(0, 8, 2); -lean_ctor_set(x_259, 0, x_250); -lean_ctor_set(x_259, 1, x_251); -lean_ctor_set(x_259, 2, x_252); -lean_ctor_set(x_259, 3, x_253); -lean_ctor_set(x_259, 4, x_254); -lean_ctor_set(x_259, 5, x_255); -lean_ctor_set(x_259, 6, x_256); -lean_ctor_set(x_259, 7, x_241); -lean_ctor_set_uint8(x_259, sizeof(void*)*8, x_257); -lean_ctor_set_uint8(x_259, sizeof(void*)*8 + 1, x_258); -x_260 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_261 = l_Lean_Elab_Term_Do_ToCodeBlock_doForToCode(x_260, x_62, x_50, x_2, x_259, x_4, x_5, x_6, x_7, x_8, x_245); -lean_dec(x_62); -return x_261; +lean_dec(x_2); +lean_dec(x_50); +if (lean_obj_tag(x_225) == 0) +{ +uint8_t x_226; +x_226 = !lean_is_exclusive(x_225); +if (x_226 == 0) +{ +lean_object* x_227; lean_object* x_228; +x_227 = lean_ctor_get(x_225, 0); +lean_dec(x_227); +x_228 = l_Lean_Elab_Term_Do_mkBreak(x_62); +lean_ctor_set(x_225, 0, x_228); +return x_225; +} +else +{ +lean_object* x_229; lean_object* x_230; lean_object* x_231; +x_229 = lean_ctor_get(x_225, 1); +lean_inc(x_229); +lean_dec(x_225); +x_230 = l_Lean_Elab_Term_Do_mkBreak(x_62); +x_231 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_231, 0, x_230); +lean_ctor_set(x_231, 1, x_229); +return x_231; } } else { -lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; lean_object* x_277; uint8_t x_278; uint8_t x_279; lean_object* x_280; lean_object* x_281; lean_object* x_282; lean_object* x_283; -x_262 = lean_ctor_get(x_238, 0); -x_263 = lean_ctor_get(x_238, 1); -x_264 = lean_ctor_get(x_238, 2); -x_265 = lean_ctor_get(x_238, 3); -lean_inc(x_265); -lean_inc(x_264); +uint8_t x_232; +lean_dec(x_62); +x_232 = !lean_is_exclusive(x_225); +if (x_232 == 0) +{ +return x_225; +} +else +{ +lean_object* x_233; lean_object* x_234; lean_object* x_235; +x_233 = lean_ctor_get(x_225, 0); +x_234 = lean_ctor_get(x_225, 1); +lean_inc(x_234); +lean_inc(x_233); +lean_dec(x_225); +x_235 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_235, 0, x_233); +lean_ctor_set(x_235, 1, x_234); +return x_235; +} +} +} +else +{ +uint8_t x_236; +lean_dec(x_62); +lean_dec(x_7); +lean_dec(x_50); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_236 = !lean_is_exclusive(x_223); +if (x_236 == 0) +{ +return x_223; +} +else +{ +lean_object* x_237; lean_object* x_238; lean_object* x_239; +x_237 = lean_ctor_get(x_223, 0); +x_238 = lean_ctor_get(x_223, 1); +lean_inc(x_238); +lean_inc(x_237); +lean_dec(x_223); +x_239 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_239, 0, x_237); +lean_ctor_set(x_239, 1, x_238); +return x_239; +} +} +} +} +else +{ +lean_object* x_240; lean_object* x_241; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +x_240 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_241 = l_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode(x_240, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +lean_dec(x_62); +return x_241; +} +} +else +{ +lean_object* x_242; lean_object* x_243; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +x_242 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_243 = l_Lean_Elab_Term_Do_ToCodeBlock_doMatchToCode(x_242, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +return x_243; +} +} +else +{ +lean_object* x_244; lean_object* x_245; lean_object* x_246; uint8_t x_247; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +x_244 = lean_st_ref_take(x_8, x_60); +x_245 = lean_ctor_get(x_244, 0); +lean_inc(x_245); +x_246 = lean_ctor_get(x_244, 1); +lean_inc(x_246); +lean_dec(x_244); +x_247 = !lean_is_exclusive(x_245); +if (x_247 == 0) +{ +lean_object* x_248; lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; uint8_t x_253; +x_248 = lean_ctor_get(x_245, 1); +x_249 = lean_unsigned_to_nat(1u); +x_250 = lean_nat_add(x_248, x_249); +lean_ctor_set(x_245, 1, x_250); +x_251 = lean_st_ref_set(x_8, x_245, x_246); +x_252 = lean_ctor_get(x_251, 1); +lean_inc(x_252); +lean_dec(x_251); +x_253 = !lean_is_exclusive(x_3); +if (x_253 == 0) +{ +lean_object* x_254; lean_object* x_255; lean_object* x_256; +x_254 = lean_ctor_get(x_3, 7); +lean_dec(x_254); +lean_ctor_set(x_3, 7, x_248); +x_255 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_256 = l_Lean_Elab_Term_Do_ToCodeBlock_doForToCode(x_255, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_252); +lean_dec(x_62); +return x_256; +} +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; lean_object* x_263; uint8_t x_264; uint8_t x_265; lean_object* x_266; lean_object* x_267; lean_object* x_268; +x_257 = lean_ctor_get(x_3, 0); +x_258 = lean_ctor_get(x_3, 1); +x_259 = lean_ctor_get(x_3, 2); +x_260 = lean_ctor_get(x_3, 3); +x_261 = lean_ctor_get(x_3, 4); +x_262 = lean_ctor_get(x_3, 5); +x_263 = lean_ctor_get(x_3, 6); +x_264 = lean_ctor_get_uint8(x_3, sizeof(void*)*8); +x_265 = lean_ctor_get_uint8(x_3, sizeof(void*)*8 + 1); lean_inc(x_263); lean_inc(x_262); -lean_dec(x_238); -x_266 = lean_unsigned_to_nat(1u); -x_267 = lean_nat_add(x_263, x_266); -x_268 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_268, 0, x_262); -lean_ctor_set(x_268, 1, x_267); -lean_ctor_set(x_268, 2, x_264); -lean_ctor_set(x_268, 3, x_265); -x_269 = lean_st_ref_set(x_8, x_268, x_239); -x_270 = lean_ctor_get(x_269, 1); -lean_inc(x_270); -lean_dec(x_269); -x_271 = lean_ctor_get(x_3, 0); -lean_inc(x_271); -x_272 = lean_ctor_get(x_3, 1); +lean_inc(x_261); +lean_inc(x_260); +lean_inc(x_259); +lean_inc(x_258); +lean_inc(x_257); +lean_dec(x_3); +x_266 = lean_alloc_ctor(0, 8, 2); +lean_ctor_set(x_266, 0, x_257); +lean_ctor_set(x_266, 1, x_258); +lean_ctor_set(x_266, 2, x_259); +lean_ctor_set(x_266, 3, x_260); +lean_ctor_set(x_266, 4, x_261); +lean_ctor_set(x_266, 5, x_262); +lean_ctor_set(x_266, 6, x_263); +lean_ctor_set(x_266, 7, x_248); +lean_ctor_set_uint8(x_266, sizeof(void*)*8, x_264); +lean_ctor_set_uint8(x_266, sizeof(void*)*8 + 1, x_265); +x_267 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_268 = l_Lean_Elab_Term_Do_ToCodeBlock_doForToCode(x_267, x_62, x_50, x_2, x_266, x_4, x_5, x_6, x_7, x_8, x_252); +lean_dec(x_62); +return x_268; +} +} +else +{ +lean_object* x_269; lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; lean_object* x_277; lean_object* x_278; lean_object* x_279; lean_object* x_280; lean_object* x_281; lean_object* x_282; lean_object* x_283; lean_object* x_284; uint8_t x_285; uint8_t x_286; lean_object* x_287; lean_object* x_288; lean_object* x_289; lean_object* x_290; +x_269 = lean_ctor_get(x_245, 0); +x_270 = lean_ctor_get(x_245, 1); +x_271 = lean_ctor_get(x_245, 2); +x_272 = lean_ctor_get(x_245, 3); lean_inc(x_272); -x_273 = lean_ctor_get(x_3, 2); -lean_inc(x_273); -x_274 = lean_ctor_get(x_3, 3); -lean_inc(x_274); -x_275 = lean_ctor_get(x_3, 4); -lean_inc(x_275); -x_276 = lean_ctor_get(x_3, 5); -lean_inc(x_276); -x_277 = lean_ctor_get(x_3, 6); +lean_inc(x_271); +lean_inc(x_270); +lean_inc(x_269); +lean_dec(x_245); +x_273 = lean_unsigned_to_nat(1u); +x_274 = lean_nat_add(x_270, x_273); +x_275 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_275, 0, x_269); +lean_ctor_set(x_275, 1, x_274); +lean_ctor_set(x_275, 2, x_271); +lean_ctor_set(x_275, 3, x_272); +x_276 = lean_st_ref_set(x_8, x_275, x_246); +x_277 = lean_ctor_get(x_276, 1); lean_inc(x_277); -x_278 = lean_ctor_get_uint8(x_3, sizeof(void*)*8); -x_279 = lean_ctor_get_uint8(x_3, sizeof(void*)*8 + 1); +lean_dec(x_276); +x_278 = lean_ctor_get(x_3, 0); +lean_inc(x_278); +x_279 = lean_ctor_get(x_3, 1); +lean_inc(x_279); +x_280 = lean_ctor_get(x_3, 2); +lean_inc(x_280); +x_281 = lean_ctor_get(x_3, 3); +lean_inc(x_281); +x_282 = lean_ctor_get(x_3, 4); +lean_inc(x_282); +x_283 = lean_ctor_get(x_3, 5); +lean_inc(x_283); +x_284 = lean_ctor_get(x_3, 6); +lean_inc(x_284); +x_285 = lean_ctor_get_uint8(x_3, sizeof(void*)*8); +x_286 = lean_ctor_get_uint8(x_3, sizeof(void*)*8 + 1); if (lean_is_exclusive(x_3)) { lean_ctor_release(x_3, 0); lean_ctor_release(x_3, 1); @@ -42765,230 +42807,85 @@ if (lean_is_exclusive(x_3)) { lean_ctor_release(x_3, 5); lean_ctor_release(x_3, 6); lean_ctor_release(x_3, 7); - x_280 = x_3; + x_287 = x_3; } else { lean_dec_ref(x_3); - x_280 = lean_box(0); + x_287 = lean_box(0); } -if (lean_is_scalar(x_280)) { - x_281 = lean_alloc_ctor(0, 8, 2); +if (lean_is_scalar(x_287)) { + x_288 = lean_alloc_ctor(0, 8, 2); } else { - x_281 = x_280; + x_288 = x_287; } -lean_ctor_set(x_281, 0, x_271); -lean_ctor_set(x_281, 1, x_272); -lean_ctor_set(x_281, 2, x_273); -lean_ctor_set(x_281, 3, x_274); -lean_ctor_set(x_281, 4, x_275); -lean_ctor_set(x_281, 5, x_276); -lean_ctor_set(x_281, 6, x_277); -lean_ctor_set(x_281, 7, x_263); -lean_ctor_set_uint8(x_281, sizeof(void*)*8, x_278); -lean_ctor_set_uint8(x_281, sizeof(void*)*8 + 1, x_279); -x_282 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_283 = l_Lean_Elab_Term_Do_ToCodeBlock_doForToCode(x_282, x_62, x_50, x_2, x_281, x_4, x_5, x_6, x_7, x_8, x_270); +lean_ctor_set(x_288, 0, x_278); +lean_ctor_set(x_288, 1, x_279); +lean_ctor_set(x_288, 2, x_280); +lean_ctor_set(x_288, 3, x_281); +lean_ctor_set(x_288, 4, x_282); +lean_ctor_set(x_288, 5, x_283); +lean_ctor_set(x_288, 6, x_284); +lean_ctor_set(x_288, 7, x_270); +lean_ctor_set_uint8(x_288, sizeof(void*)*8, x_285); +lean_ctor_set_uint8(x_288, sizeof(void*)*8 + 1, x_286); +x_289 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_290 = l_Lean_Elab_Term_Do_ToCodeBlock_doForToCode(x_289, x_62, x_50, x_2, x_288, x_4, x_5, x_6, x_7, x_8, x_277); lean_dec(x_62); -return x_283; +return x_290; } } } else { -lean_object* x_284; lean_object* x_285; +lean_object* x_291; lean_object* x_292; lean_dec(x_64); lean_dec(x_54); lean_dec(x_53); lean_dec(x_51); -x_284 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_285 = l_Lean_Elab_Term_Do_ToCodeBlock_doUnlessToCode(x_284, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -return x_285; -} -} -else -{ -lean_object* x_286; lean_object* x_287; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -x_286 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_287 = l_Lean_Elab_Term_Do_ToCodeBlock_doIfToCode(x_286, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -return x_287; -} -} -else -{ -lean_object* x_288; lean_object* x_289; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -x_288 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_289 = l_Lean_Elab_Term_Do_ToCodeBlock_doReassignArrowToCode(x_288, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -lean_dec(x_62); -return x_289; -} -} -else -{ -lean_object* x_290; lean_object* x_291; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -x_290 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_291 = l_Lean_Elab_Term_Do_ToCodeBlock_doLetArrowToCode(x_290, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -return x_291; -} -} -else -{ -lean_object* x_292; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -x_292 = l_Lean_Elab_Term_Do_getDoReassignVars(x_62, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_292) == 0) -{ -lean_object* x_293; lean_object* x_294; lean_object* x_295; -x_293 = lean_ctor_get(x_292, 0); -lean_inc(x_293); -x_294 = lean_ctor_get(x_292, 1); -lean_inc(x_294); -lean_dec(x_292); -lean_inc(x_5); -x_295 = l_Lean_Elab_Term_Do_ToCodeBlock_checkReassignable(x_293, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_294); -if (lean_obj_tag(x_295) == 0) -{ -lean_object* x_296; lean_object* x_297; -x_296 = lean_ctor_get(x_295, 1); -lean_inc(x_296); -lean_dec(x_295); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -x_297 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_296); -if (lean_obj_tag(x_297) == 0) -{ -lean_object* x_298; lean_object* x_299; lean_object* x_300; -x_298 = lean_ctor_get(x_297, 0); -lean_inc(x_298); -x_299 = lean_ctor_get(x_297, 1); -lean_inc(x_299); -lean_dec(x_297); -x_300 = l_Lean_Elab_Term_Do_mkReassignCore(x_293, x_62, x_298, x_3, x_4, x_5, x_6, x_7, x_8, x_299); -return x_300; -} -else -{ -uint8_t x_301; -lean_dec(x_293); -lean_dec(x_62); -lean_dec(x_7); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_301 = !lean_is_exclusive(x_297); -if (x_301 == 0) -{ -return x_297; -} -else -{ -lean_object* x_302; lean_object* x_303; lean_object* x_304; -x_302 = lean_ctor_get(x_297, 0); -x_303 = lean_ctor_get(x_297, 1); -lean_inc(x_303); -lean_inc(x_302); -lean_dec(x_297); -x_304 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_304, 0, x_302); -lean_ctor_set(x_304, 1, x_303); -return x_304; -} -} -} -else -{ -uint8_t x_305; -lean_dec(x_293); -lean_dec(x_62); -lean_dec(x_7); -lean_dec(x_50); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_305 = !lean_is_exclusive(x_295); -if (x_305 == 0) -{ -return x_295; -} -else -{ -lean_object* x_306; lean_object* x_307; lean_object* x_308; -x_306 = lean_ctor_get(x_295, 0); -x_307 = lean_ctor_get(x_295, 1); -lean_inc(x_307); -lean_inc(x_306); -lean_dec(x_295); -x_308 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_308, 0, x_306); -lean_ctor_set(x_308, 1, x_307); -return x_308; -} -} -} -else -{ -uint8_t x_309; -lean_dec(x_62); -lean_dec(x_7); -lean_dec(x_50); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_309 = !lean_is_exclusive(x_292); -if (x_309 == 0) -{ +x_291 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_292 = l_Lean_Elab_Term_Do_ToCodeBlock_doUnlessToCode(x_291, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); return x_292; } +} else { -lean_object* x_310; lean_object* x_311; lean_object* x_312; -x_310 = lean_ctor_get(x_292, 0); -x_311 = lean_ctor_get(x_292, 1); -lean_inc(x_311); -lean_inc(x_310); -lean_dec(x_292); -x_312 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_312, 0, x_310); -lean_ctor_set(x_312, 1, x_311); -return x_312; -} -} +lean_object* x_293; lean_object* x_294; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +x_293 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_294 = l_Lean_Elab_Term_Do_ToCodeBlock_doIfToCode(x_293, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +return x_294; } } else { -lean_object* x_313; +lean_object* x_295; lean_object* x_296; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +x_295 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_296 = l_Lean_Elab_Term_Do_ToCodeBlock_doReassignArrowToCode(x_295, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +lean_dec(x_62); +return x_296; +} +} +else +{ +lean_object* x_297; lean_object* x_298; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +x_297 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_298 = l_Lean_Elab_Term_Do_ToCodeBlock_doLetArrowToCode(x_297, x_62, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +return x_298; +} +} +else +{ +lean_object* x_299; lean_dec(x_64); lean_dec(x_54); lean_dec(x_53); @@ -42999,328 +42896,141 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_313 = l_Lean_Elab_Term_Do_getDoLetRecVars(x_62, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_313) == 0) +x_299 = l_Lean_Elab_Term_Do_getDoReassignVars(x_62, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_299) == 0) { -lean_object* x_314; lean_object* x_315; uint8_t x_316; -x_314 = lean_ctor_get(x_313, 0); +lean_object* x_300; lean_object* x_301; lean_object* x_302; +x_300 = lean_ctor_get(x_299, 0); +lean_inc(x_300); +x_301 = lean_ctor_get(x_299, 1); +lean_inc(x_301); +lean_dec(x_299); +lean_inc(x_5); +x_302 = l_Lean_Elab_Term_Do_ToCodeBlock_checkReassignable(x_300, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_301); +if (lean_obj_tag(x_302) == 0) +{ +lean_object* x_303; lean_object* x_304; +x_303 = lean_ctor_get(x_302, 1); +lean_inc(x_303); +lean_dec(x_302); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_304 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_303); +if (lean_obj_tag(x_304) == 0) +{ +lean_object* x_305; lean_object* x_306; lean_object* x_307; +x_305 = lean_ctor_get(x_304, 0); +lean_inc(x_305); +x_306 = lean_ctor_get(x_304, 1); +lean_inc(x_306); +lean_dec(x_304); +x_307 = l_Lean_Elab_Term_Do_mkReassignCore(x_300, x_62, x_305, x_3, x_4, x_5, x_6, x_7, x_8, x_306); +return x_307; +} +else +{ +uint8_t x_308; +lean_dec(x_300); +lean_dec(x_62); +lean_dec(x_7); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_308 = !lean_is_exclusive(x_304); +if (x_308 == 0) +{ +return x_304; +} +else +{ +lean_object* x_309; lean_object* x_310; lean_object* x_311; +x_309 = lean_ctor_get(x_304, 0); +x_310 = lean_ctor_get(x_304, 1); +lean_inc(x_310); +lean_inc(x_309); +lean_dec(x_304); +x_311 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_311, 0, x_309); +lean_ctor_set(x_311, 1, x_310); +return x_311; +} +} +} +else +{ +uint8_t x_312; +lean_dec(x_300); +lean_dec(x_62); +lean_dec(x_7); +lean_dec(x_50); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_312 = !lean_is_exclusive(x_302); +if (x_312 == 0) +{ +return x_302; +} +else +{ +lean_object* x_313; lean_object* x_314; lean_object* x_315; +x_313 = lean_ctor_get(x_302, 0); +x_314 = lean_ctor_get(x_302, 1); lean_inc(x_314); -x_315 = lean_ctor_get(x_313, 1); -lean_inc(x_315); -lean_dec(x_313); -x_316 = !lean_is_exclusive(x_2); +lean_inc(x_313); +lean_dec(x_302); +x_315 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_315, 0, x_313); +lean_ctor_set(x_315, 1, x_314); +return x_315; +} +} +} +else +{ +uint8_t x_316; +lean_dec(x_62); +lean_dec(x_7); +lean_dec(x_50); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_316 = !lean_is_exclusive(x_299); if (x_316 == 0) { -lean_object* x_317; lean_object* x_318; lean_object* x_319; lean_object* x_320; -x_317 = lean_ctor_get(x_2, 2); -x_318 = lean_unsigned_to_nat(0u); -x_319 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_314, x_314, x_318, x_317); -lean_ctor_set(x_2, 2, x_319); -x_320 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_315); -if (lean_obj_tag(x_320) == 0) -{ -uint8_t x_321; -x_321 = !lean_is_exclusive(x_320); -if (x_321 == 0) -{ -lean_object* x_322; lean_object* x_323; -x_322 = lean_ctor_get(x_320, 0); -x_323 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_314, x_62, x_322); -lean_ctor_set(x_320, 0, x_323); -return x_320; +return x_299; } else { -lean_object* x_324; lean_object* x_325; lean_object* x_326; lean_object* x_327; -x_324 = lean_ctor_get(x_320, 0); -x_325 = lean_ctor_get(x_320, 1); -lean_inc(x_325); -lean_inc(x_324); -lean_dec(x_320); -x_326 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_314, x_62, x_324); -x_327 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_327, 0, x_326); -lean_ctor_set(x_327, 1, x_325); -return x_327; -} -} -else -{ -uint8_t x_328; -lean_dec(x_314); -lean_dec(x_62); -x_328 = !lean_is_exclusive(x_320); -if (x_328 == 0) -{ -return x_320; -} -else -{ -lean_object* x_329; lean_object* x_330; lean_object* x_331; -x_329 = lean_ctor_get(x_320, 0); -x_330 = lean_ctor_get(x_320, 1); -lean_inc(x_330); -lean_inc(x_329); -lean_dec(x_320); -x_331 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_331, 0, x_329); -lean_ctor_set(x_331, 1, x_330); -return x_331; -} -} -} -else -{ -lean_object* x_332; lean_object* x_333; lean_object* x_334; uint8_t x_335; lean_object* x_336; lean_object* x_337; lean_object* x_338; lean_object* x_339; -x_332 = lean_ctor_get(x_2, 0); -x_333 = lean_ctor_get(x_2, 1); -x_334 = lean_ctor_get(x_2, 2); -x_335 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); -lean_inc(x_334); -lean_inc(x_333); -lean_inc(x_332); -lean_dec(x_2); -x_336 = lean_unsigned_to_nat(0u); -x_337 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_314, x_314, x_336, x_334); -x_338 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_338, 0, x_332); -lean_ctor_set(x_338, 1, x_333); -lean_ctor_set(x_338, 2, x_337); -lean_ctor_set_uint8(x_338, sizeof(void*)*3, x_335); -x_339 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_338, x_3, x_4, x_5, x_6, x_7, x_8, x_315); -if (lean_obj_tag(x_339) == 0) -{ -lean_object* x_340; lean_object* x_341; lean_object* x_342; lean_object* x_343; lean_object* x_344; -x_340 = lean_ctor_get(x_339, 0); -lean_inc(x_340); -x_341 = lean_ctor_get(x_339, 1); -lean_inc(x_341); -if (lean_is_exclusive(x_339)) { - lean_ctor_release(x_339, 0); - lean_ctor_release(x_339, 1); - x_342 = x_339; -} else { - lean_dec_ref(x_339); - x_342 = lean_box(0); -} -x_343 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_314, x_62, x_340); -if (lean_is_scalar(x_342)) { - x_344 = lean_alloc_ctor(0, 2, 0); -} else { - x_344 = x_342; -} -lean_ctor_set(x_344, 0, x_343); -lean_ctor_set(x_344, 1, x_341); -return x_344; -} -else -{ -lean_object* x_345; lean_object* x_346; lean_object* x_347; lean_object* x_348; -lean_dec(x_314); -lean_dec(x_62); -x_345 = lean_ctor_get(x_339, 0); -lean_inc(x_345); -x_346 = lean_ctor_get(x_339, 1); -lean_inc(x_346); -if (lean_is_exclusive(x_339)) { - lean_ctor_release(x_339, 0); - lean_ctor_release(x_339, 1); - x_347 = x_339; -} else { - lean_dec_ref(x_339); - x_347 = lean_box(0); -} -if (lean_is_scalar(x_347)) { - x_348 = lean_alloc_ctor(1, 2, 0); -} else { - x_348 = x_347; -} -lean_ctor_set(x_348, 0, x_345); -lean_ctor_set(x_348, 1, x_346); -return x_348; -} -} -} -else -{ -uint8_t x_349; -lean_dec(x_62); -lean_dec(x_7); -lean_dec(x_50); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_349 = !lean_is_exclusive(x_313); -if (x_349 == 0) -{ -return x_313; -} -else -{ -lean_object* x_350; lean_object* x_351; lean_object* x_352; -x_350 = lean_ctor_get(x_313, 0); -x_351 = lean_ctor_get(x_313, 1); -lean_inc(x_351); -lean_inc(x_350); -lean_dec(x_313); -x_352 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_352, 0, x_350); -lean_ctor_set(x_352, 1, x_351); -return x_352; +lean_object* x_317; lean_object* x_318; lean_object* x_319; +x_317 = lean_ctor_get(x_299, 0); +x_318 = lean_ctor_get(x_299, 1); +lean_inc(x_318); +lean_inc(x_317); +lean_dec(x_299); +x_319 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_319, 0, x_317); +lean_ctor_set(x_319, 1, x_318); +return x_319; } } } } else { -lean_object* x_353; lean_object* x_354; lean_object* x_355; uint8_t x_356; -lean_dec(x_64); -lean_dec(x_54); -lean_dec(x_53); -lean_dec(x_51); -x_353 = l_Lean_Elab_Term_Do_getDoHaveVar(x_62); -x_354 = l_Lean_mkOptionalNode___closed__2; -x_355 = lean_array_push(x_354, x_353); -x_356 = !lean_is_exclusive(x_2); -if (x_356 == 0) -{ -lean_object* x_357; lean_object* x_358; lean_object* x_359; lean_object* x_360; -x_357 = lean_ctor_get(x_2, 2); -x_358 = lean_unsigned_to_nat(0u); -x_359 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_355, x_355, x_358, x_357); -lean_ctor_set(x_2, 2, x_359); -x_360 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_360) == 0) -{ -uint8_t x_361; -x_361 = !lean_is_exclusive(x_360); -if (x_361 == 0) -{ -lean_object* x_362; lean_object* x_363; -x_362 = lean_ctor_get(x_360, 0); -x_363 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_355, x_62, x_362); -lean_ctor_set(x_360, 0, x_363); -return x_360; -} -else -{ -lean_object* x_364; lean_object* x_365; lean_object* x_366; lean_object* x_367; -x_364 = lean_ctor_get(x_360, 0); -x_365 = lean_ctor_get(x_360, 1); -lean_inc(x_365); -lean_inc(x_364); -lean_dec(x_360); -x_366 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_355, x_62, x_364); -x_367 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_367, 0, x_366); -lean_ctor_set(x_367, 1, x_365); -return x_367; -} -} -else -{ -uint8_t x_368; -lean_dec(x_355); -lean_dec(x_62); -x_368 = !lean_is_exclusive(x_360); -if (x_368 == 0) -{ -return x_360; -} -else -{ -lean_object* x_369; lean_object* x_370; lean_object* x_371; -x_369 = lean_ctor_get(x_360, 0); -x_370 = lean_ctor_get(x_360, 1); -lean_inc(x_370); -lean_inc(x_369); -lean_dec(x_360); -x_371 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_371, 0, x_369); -lean_ctor_set(x_371, 1, x_370); -return x_371; -} -} -} -else -{ -lean_object* x_372; lean_object* x_373; lean_object* x_374; uint8_t x_375; lean_object* x_376; lean_object* x_377; lean_object* x_378; lean_object* x_379; -x_372 = lean_ctor_get(x_2, 0); -x_373 = lean_ctor_get(x_2, 1); -x_374 = lean_ctor_get(x_2, 2); -x_375 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); -lean_inc(x_374); -lean_inc(x_373); -lean_inc(x_372); -lean_dec(x_2); -x_376 = lean_unsigned_to_nat(0u); -x_377 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_355, x_355, x_376, x_374); -x_378 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_378, 0, x_372); -lean_ctor_set(x_378, 1, x_373); -lean_ctor_set(x_378, 2, x_377); -lean_ctor_set_uint8(x_378, sizeof(void*)*3, x_375); -x_379 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_378, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_379) == 0) -{ -lean_object* x_380; lean_object* x_381; lean_object* x_382; lean_object* x_383; lean_object* x_384; -x_380 = lean_ctor_get(x_379, 0); -lean_inc(x_380); -x_381 = lean_ctor_get(x_379, 1); -lean_inc(x_381); -if (lean_is_exclusive(x_379)) { - lean_ctor_release(x_379, 0); - lean_ctor_release(x_379, 1); - x_382 = x_379; -} else { - lean_dec_ref(x_379); - x_382 = lean_box(0); -} -x_383 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_355, x_62, x_380); -if (lean_is_scalar(x_382)) { - x_384 = lean_alloc_ctor(0, 2, 0); -} else { - x_384 = x_382; -} -lean_ctor_set(x_384, 0, x_383); -lean_ctor_set(x_384, 1, x_381); -return x_384; -} -else -{ -lean_object* x_385; lean_object* x_386; lean_object* x_387; lean_object* x_388; -lean_dec(x_355); -lean_dec(x_62); -x_385 = lean_ctor_get(x_379, 0); -lean_inc(x_385); -x_386 = lean_ctor_get(x_379, 1); -lean_inc(x_386); -if (lean_is_exclusive(x_379)) { - lean_ctor_release(x_379, 0); - lean_ctor_release(x_379, 1); - x_387 = x_379; -} else { - lean_dec_ref(x_379); - x_387 = lean_box(0); -} -if (lean_is_scalar(x_387)) { - x_388 = lean_alloc_ctor(1, 2, 0); -} else { - x_388 = x_387; -} -lean_ctor_set(x_388, 0, x_385); -lean_ctor_set(x_388, 1, x_386); -return x_388; -} -} -} -} -else -{ -lean_object* x_389; +lean_object* x_320; lean_dec(x_64); lean_dec(x_54); lean_dec(x_53); @@ -43331,151 +43041,151 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_389 = l_Lean_Elab_Term_Do_getDoLetVars(x_62, x_3, x_4, x_5, x_6, x_7, x_8, x_60); -if (lean_obj_tag(x_389) == 0) +x_320 = l_Lean_Elab_Term_Do_getDoLetRecVars(x_62, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_320) == 0) { -lean_object* x_390; lean_object* x_391; uint8_t x_392; -x_390 = lean_ctor_get(x_389, 0); -lean_inc(x_390); -x_391 = lean_ctor_get(x_389, 1); -lean_inc(x_391); -lean_dec(x_389); -x_392 = !lean_is_exclusive(x_2); -if (x_392 == 0) +lean_object* x_321; lean_object* x_322; uint8_t x_323; +x_321 = lean_ctor_get(x_320, 0); +lean_inc(x_321); +x_322 = lean_ctor_get(x_320, 1); +lean_inc(x_322); +lean_dec(x_320); +x_323 = !lean_is_exclusive(x_2); +if (x_323 == 0) { -lean_object* x_393; lean_object* x_394; lean_object* x_395; lean_object* x_396; -x_393 = lean_ctor_get(x_2, 2); -x_394 = lean_unsigned_to_nat(0u); -x_395 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_390, x_390, x_394, x_393); -lean_ctor_set(x_2, 2, x_395); -x_396 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_391); -if (lean_obj_tag(x_396) == 0) +lean_object* x_324; lean_object* x_325; lean_object* x_326; lean_object* x_327; +x_324 = lean_ctor_get(x_2, 2); +x_325 = lean_unsigned_to_nat(0u); +x_326 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_321, x_321, x_325, x_324); +lean_ctor_set(x_2, 2, x_326); +x_327 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_322); +if (lean_obj_tag(x_327) == 0) { -uint8_t x_397; -x_397 = !lean_is_exclusive(x_396); -if (x_397 == 0) +uint8_t x_328; +x_328 = !lean_is_exclusive(x_327); +if (x_328 == 0) { -lean_object* x_398; lean_object* x_399; -x_398 = lean_ctor_get(x_396, 0); -x_399 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_390, x_62, x_398); -lean_ctor_set(x_396, 0, x_399); -return x_396; +lean_object* x_329; lean_object* x_330; +x_329 = lean_ctor_get(x_327, 0); +x_330 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_321, x_62, x_329); +lean_ctor_set(x_327, 0, x_330); +return x_327; } else { -lean_object* x_400; lean_object* x_401; lean_object* x_402; lean_object* x_403; -x_400 = lean_ctor_get(x_396, 0); -x_401 = lean_ctor_get(x_396, 1); -lean_inc(x_401); -lean_inc(x_400); -lean_dec(x_396); -x_402 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_390, x_62, x_400); -x_403 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_403, 0, x_402); -lean_ctor_set(x_403, 1, x_401); -return x_403; +lean_object* x_331; lean_object* x_332; lean_object* x_333; lean_object* x_334; +x_331 = lean_ctor_get(x_327, 0); +x_332 = lean_ctor_get(x_327, 1); +lean_inc(x_332); +lean_inc(x_331); +lean_dec(x_327); +x_333 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_321, x_62, x_331); +x_334 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_334, 0, x_333); +lean_ctor_set(x_334, 1, x_332); +return x_334; } } else { -uint8_t x_404; -lean_dec(x_390); +uint8_t x_335; +lean_dec(x_321); lean_dec(x_62); -x_404 = !lean_is_exclusive(x_396); -if (x_404 == 0) +x_335 = !lean_is_exclusive(x_327); +if (x_335 == 0) { -return x_396; +return x_327; } else { -lean_object* x_405; lean_object* x_406; lean_object* x_407; -x_405 = lean_ctor_get(x_396, 0); -x_406 = lean_ctor_get(x_396, 1); -lean_inc(x_406); -lean_inc(x_405); -lean_dec(x_396); -x_407 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_407, 0, x_405); -lean_ctor_set(x_407, 1, x_406); -return x_407; +lean_object* x_336; lean_object* x_337; lean_object* x_338; +x_336 = lean_ctor_get(x_327, 0); +x_337 = lean_ctor_get(x_327, 1); +lean_inc(x_337); +lean_inc(x_336); +lean_dec(x_327); +x_338 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_338, 0, x_336); +lean_ctor_set(x_338, 1, x_337); +return x_338; } } } else { -lean_object* x_408; lean_object* x_409; lean_object* x_410; uint8_t x_411; lean_object* x_412; lean_object* x_413; lean_object* x_414; lean_object* x_415; -x_408 = lean_ctor_get(x_2, 0); -x_409 = lean_ctor_get(x_2, 1); -x_410 = lean_ctor_get(x_2, 2); -x_411 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); -lean_inc(x_410); -lean_inc(x_409); -lean_inc(x_408); +lean_object* x_339; lean_object* x_340; lean_object* x_341; uint8_t x_342; lean_object* x_343; lean_object* x_344; lean_object* x_345; lean_object* x_346; +x_339 = lean_ctor_get(x_2, 0); +x_340 = lean_ctor_get(x_2, 1); +x_341 = lean_ctor_get(x_2, 2); +x_342 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); +lean_inc(x_341); +lean_inc(x_340); +lean_inc(x_339); lean_dec(x_2); -x_412 = lean_unsigned_to_nat(0u); -x_413 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_390, x_390, x_412, x_410); -x_414 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_414, 0, x_408); -lean_ctor_set(x_414, 1, x_409); -lean_ctor_set(x_414, 2, x_413); -lean_ctor_set_uint8(x_414, sizeof(void*)*3, x_411); -x_415 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_414, x_3, x_4, x_5, x_6, x_7, x_8, x_391); -if (lean_obj_tag(x_415) == 0) +x_343 = lean_unsigned_to_nat(0u); +x_344 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_321, x_321, x_343, x_341); +x_345 = lean_alloc_ctor(0, 3, 1); +lean_ctor_set(x_345, 0, x_339); +lean_ctor_set(x_345, 1, x_340); +lean_ctor_set(x_345, 2, x_344); +lean_ctor_set_uint8(x_345, sizeof(void*)*3, x_342); +x_346 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_345, x_3, x_4, x_5, x_6, x_7, x_8, x_322); +if (lean_obj_tag(x_346) == 0) { -lean_object* x_416; lean_object* x_417; lean_object* x_418; lean_object* x_419; lean_object* x_420; -x_416 = lean_ctor_get(x_415, 0); -lean_inc(x_416); -x_417 = lean_ctor_get(x_415, 1); -lean_inc(x_417); -if (lean_is_exclusive(x_415)) { - lean_ctor_release(x_415, 0); - lean_ctor_release(x_415, 1); - x_418 = x_415; +lean_object* x_347; lean_object* x_348; lean_object* x_349; lean_object* x_350; lean_object* x_351; +x_347 = lean_ctor_get(x_346, 0); +lean_inc(x_347); +x_348 = lean_ctor_get(x_346, 1); +lean_inc(x_348); +if (lean_is_exclusive(x_346)) { + lean_ctor_release(x_346, 0); + lean_ctor_release(x_346, 1); + x_349 = x_346; } else { - lean_dec_ref(x_415); - x_418 = lean_box(0); + lean_dec_ref(x_346); + x_349 = lean_box(0); } -x_419 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_390, x_62, x_416); -if (lean_is_scalar(x_418)) { - x_420 = lean_alloc_ctor(0, 2, 0); +x_350 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_321, x_62, x_347); +if (lean_is_scalar(x_349)) { + x_351 = lean_alloc_ctor(0, 2, 0); } else { - x_420 = x_418; + x_351 = x_349; } -lean_ctor_set(x_420, 0, x_419); -lean_ctor_set(x_420, 1, x_417); -return x_420; +lean_ctor_set(x_351, 0, x_350); +lean_ctor_set(x_351, 1, x_348); +return x_351; } else { -lean_object* x_421; lean_object* x_422; lean_object* x_423; lean_object* x_424; -lean_dec(x_390); +lean_object* x_352; lean_object* x_353; lean_object* x_354; lean_object* x_355; +lean_dec(x_321); lean_dec(x_62); -x_421 = lean_ctor_get(x_415, 0); -lean_inc(x_421); -x_422 = lean_ctor_get(x_415, 1); -lean_inc(x_422); -if (lean_is_exclusive(x_415)) { - lean_ctor_release(x_415, 0); - lean_ctor_release(x_415, 1); - x_423 = x_415; +x_352 = lean_ctor_get(x_346, 0); +lean_inc(x_352); +x_353 = lean_ctor_get(x_346, 1); +lean_inc(x_353); +if (lean_is_exclusive(x_346)) { + lean_ctor_release(x_346, 0); + lean_ctor_release(x_346, 1); + x_354 = x_346; } else { - lean_dec_ref(x_415); - x_423 = lean_box(0); + lean_dec_ref(x_346); + x_354 = lean_box(0); } -if (lean_is_scalar(x_423)) { - x_424 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_354)) { + x_355 = lean_alloc_ctor(1, 2, 0); } else { - x_424 = x_423; + x_355 = x_354; } -lean_ctor_set(x_424, 0, x_421); -lean_ctor_set(x_424, 1, x_422); -return x_424; +lean_ctor_set(x_355, 0, x_352); +lean_ctor_set(x_355, 1, x_353); +return x_355; } } } else { -uint8_t x_425; +uint8_t x_356; lean_dec(x_62); lean_dec(x_7); lean_dec(x_50); @@ -43485,43 +43195,375 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_425 = !lean_is_exclusive(x_389); -if (x_425 == 0) +x_356 = !lean_is_exclusive(x_320); +if (x_356 == 0) { -return x_389; +return x_320; } else { -lean_object* x_426; lean_object* x_427; lean_object* x_428; -x_426 = lean_ctor_get(x_389, 0); -x_427 = lean_ctor_get(x_389, 1); -lean_inc(x_427); -lean_inc(x_426); -lean_dec(x_389); -x_428 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_428, 0, x_426); -lean_ctor_set(x_428, 1, x_427); -return x_428; +lean_object* x_357; lean_object* x_358; lean_object* x_359; +x_357 = lean_ctor_get(x_320, 0); +x_358 = lean_ctor_get(x_320, 1); +lean_inc(x_358); +lean_inc(x_357); +lean_dec(x_320); +x_359 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_359, 0, x_357); +lean_ctor_set(x_359, 1, x_358); +return x_359; } } } } else { -lean_object* x_429; lean_object* x_430; lean_object* x_431; lean_object* x_432; +lean_object* x_360; lean_object* x_361; lean_object* x_362; uint8_t x_363; +lean_dec(x_64); lean_dec(x_54); lean_dec(x_53); -x_429 = lean_box(0); -if (lean_is_scalar(x_51)) { - x_430 = lean_alloc_ctor(1, 2, 0); -} else { - x_430 = x_51; +lean_dec(x_51); +x_360 = l_Lean_Elab_Term_Do_getDoHaveVar(x_62); +x_361 = l_Lean_mkOptionalNode___closed__2; +x_362 = lean_array_push(x_361, x_360); +x_363 = !lean_is_exclusive(x_2); +if (x_363 == 0) +{ +lean_object* x_364; lean_object* x_365; lean_object* x_366; lean_object* x_367; +x_364 = lean_ctor_get(x_2, 2); +x_365 = lean_unsigned_to_nat(0u); +x_366 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_362, x_362, x_365, x_364); +lean_ctor_set(x_2, 2, x_366); +x_367 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_367) == 0) +{ +uint8_t x_368; +x_368 = !lean_is_exclusive(x_367); +if (x_368 == 0) +{ +lean_object* x_369; lean_object* x_370; +x_369 = lean_ctor_get(x_367, 0); +x_370 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_362, x_62, x_369); +lean_ctor_set(x_367, 0, x_370); +return x_367; } -lean_ctor_set(x_430, 0, x_62); -lean_ctor_set(x_430, 1, x_429); -x_431 = l_List_append___rarg(x_61, x_430); -x_432 = l_List_append___rarg(x_431, x_50); -x_1 = x_432; +else +{ +lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; +x_371 = lean_ctor_get(x_367, 0); +x_372 = lean_ctor_get(x_367, 1); +lean_inc(x_372); +lean_inc(x_371); +lean_dec(x_367); +x_373 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_362, x_62, x_371); +x_374 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_374, 0, x_373); +lean_ctor_set(x_374, 1, x_372); +return x_374; +} +} +else +{ +uint8_t x_375; +lean_dec(x_362); +lean_dec(x_62); +x_375 = !lean_is_exclusive(x_367); +if (x_375 == 0) +{ +return x_367; +} +else +{ +lean_object* x_376; lean_object* x_377; lean_object* x_378; +x_376 = lean_ctor_get(x_367, 0); +x_377 = lean_ctor_get(x_367, 1); +lean_inc(x_377); +lean_inc(x_376); +lean_dec(x_367); +x_378 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_378, 0, x_376); +lean_ctor_set(x_378, 1, x_377); +return x_378; +} +} +} +else +{ +lean_object* x_379; lean_object* x_380; lean_object* x_381; uint8_t x_382; lean_object* x_383; lean_object* x_384; lean_object* x_385; lean_object* x_386; +x_379 = lean_ctor_get(x_2, 0); +x_380 = lean_ctor_get(x_2, 1); +x_381 = lean_ctor_get(x_2, 2); +x_382 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); +lean_inc(x_381); +lean_inc(x_380); +lean_inc(x_379); +lean_dec(x_2); +x_383 = lean_unsigned_to_nat(0u); +x_384 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_362, x_362, x_383, x_381); +x_385 = lean_alloc_ctor(0, 3, 1); +lean_ctor_set(x_385, 0, x_379); +lean_ctor_set(x_385, 1, x_380); +lean_ctor_set(x_385, 2, x_384); +lean_ctor_set_uint8(x_385, sizeof(void*)*3, x_382); +x_386 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_385, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_386) == 0) +{ +lean_object* x_387; lean_object* x_388; lean_object* x_389; lean_object* x_390; lean_object* x_391; +x_387 = lean_ctor_get(x_386, 0); +lean_inc(x_387); +x_388 = lean_ctor_get(x_386, 1); +lean_inc(x_388); +if (lean_is_exclusive(x_386)) { + lean_ctor_release(x_386, 0); + lean_ctor_release(x_386, 1); + x_389 = x_386; +} else { + lean_dec_ref(x_386); + x_389 = lean_box(0); +} +x_390 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_362, x_62, x_387); +if (lean_is_scalar(x_389)) { + x_391 = lean_alloc_ctor(0, 2, 0); +} else { + x_391 = x_389; +} +lean_ctor_set(x_391, 0, x_390); +lean_ctor_set(x_391, 1, x_388); +return x_391; +} +else +{ +lean_object* x_392; lean_object* x_393; lean_object* x_394; lean_object* x_395; +lean_dec(x_362); +lean_dec(x_62); +x_392 = lean_ctor_get(x_386, 0); +lean_inc(x_392); +x_393 = lean_ctor_get(x_386, 1); +lean_inc(x_393); +if (lean_is_exclusive(x_386)) { + lean_ctor_release(x_386, 0); + lean_ctor_release(x_386, 1); + x_394 = x_386; +} else { + lean_dec_ref(x_386); + x_394 = lean_box(0); +} +if (lean_is_scalar(x_394)) { + x_395 = lean_alloc_ctor(1, 2, 0); +} else { + x_395 = x_394; +} +lean_ctor_set(x_395, 0, x_392); +lean_ctor_set(x_395, 1, x_393); +return x_395; +} +} +} +} +else +{ +lean_object* x_396; +lean_dec(x_64); +lean_dec(x_54); +lean_dec(x_53); +lean_dec(x_51); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_396 = l_Lean_Elab_Term_Do_getDoLetVars(x_62, x_3, x_4, x_5, x_6, x_7, x_8, x_60); +if (lean_obj_tag(x_396) == 0) +{ +lean_object* x_397; lean_object* x_398; uint8_t x_399; +x_397 = lean_ctor_get(x_396, 0); +lean_inc(x_397); +x_398 = lean_ctor_get(x_396, 1); +lean_inc(x_398); +lean_dec(x_396); +x_399 = !lean_is_exclusive(x_2); +if (x_399 == 0) +{ +lean_object* x_400; lean_object* x_401; lean_object* x_402; lean_object* x_403; +x_400 = lean_ctor_get(x_2, 2); +x_401 = lean_unsigned_to_nat(0u); +x_402 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_397, x_397, x_401, x_400); +lean_ctor_set(x_2, 2, x_402); +x_403 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_398); +if (lean_obj_tag(x_403) == 0) +{ +uint8_t x_404; +x_404 = !lean_is_exclusive(x_403); +if (x_404 == 0) +{ +lean_object* x_405; lean_object* x_406; +x_405 = lean_ctor_get(x_403, 0); +x_406 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_397, x_62, x_405); +lean_ctor_set(x_403, 0, x_406); +return x_403; +} +else +{ +lean_object* x_407; lean_object* x_408; lean_object* x_409; lean_object* x_410; +x_407 = lean_ctor_get(x_403, 0); +x_408 = lean_ctor_get(x_403, 1); +lean_inc(x_408); +lean_inc(x_407); +lean_dec(x_403); +x_409 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_397, x_62, x_407); +x_410 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_410, 0, x_409); +lean_ctor_set(x_410, 1, x_408); +return x_410; +} +} +else +{ +uint8_t x_411; +lean_dec(x_397); +lean_dec(x_62); +x_411 = !lean_is_exclusive(x_403); +if (x_411 == 0) +{ +return x_403; +} +else +{ +lean_object* x_412; lean_object* x_413; lean_object* x_414; +x_412 = lean_ctor_get(x_403, 0); +x_413 = lean_ctor_get(x_403, 1); +lean_inc(x_413); +lean_inc(x_412); +lean_dec(x_403); +x_414 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_414, 0, x_412); +lean_ctor_set(x_414, 1, x_413); +return x_414; +} +} +} +else +{ +lean_object* x_415; lean_object* x_416; lean_object* x_417; uint8_t x_418; lean_object* x_419; lean_object* x_420; lean_object* x_421; lean_object* x_422; +x_415 = lean_ctor_get(x_2, 0); +x_416 = lean_ctor_get(x_2, 1); +x_417 = lean_ctor_get(x_2, 2); +x_418 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); +lean_inc(x_417); +lean_inc(x_416); +lean_inc(x_415); +lean_dec(x_2); +x_419 = lean_unsigned_to_nat(0u); +x_420 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_397, x_397, x_419, x_417); +x_421 = lean_alloc_ctor(0, 3, 1); +lean_ctor_set(x_421, 0, x_415); +lean_ctor_set(x_421, 1, x_416); +lean_ctor_set(x_421, 2, x_420); +lean_ctor_set_uint8(x_421, sizeof(void*)*3, x_418); +x_422 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_421, x_3, x_4, x_5, x_6, x_7, x_8, x_398); +if (lean_obj_tag(x_422) == 0) +{ +lean_object* x_423; lean_object* x_424; lean_object* x_425; lean_object* x_426; lean_object* x_427; +x_423 = lean_ctor_get(x_422, 0); +lean_inc(x_423); +x_424 = lean_ctor_get(x_422, 1); +lean_inc(x_424); +if (lean_is_exclusive(x_422)) { + lean_ctor_release(x_422, 0); + lean_ctor_release(x_422, 1); + x_425 = x_422; +} else { + lean_dec_ref(x_422); + x_425 = lean_box(0); +} +x_426 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_397, x_62, x_423); +if (lean_is_scalar(x_425)) { + x_427 = lean_alloc_ctor(0, 2, 0); +} else { + x_427 = x_425; +} +lean_ctor_set(x_427, 0, x_426); +lean_ctor_set(x_427, 1, x_424); +return x_427; +} +else +{ +lean_object* x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; +lean_dec(x_397); +lean_dec(x_62); +x_428 = lean_ctor_get(x_422, 0); +lean_inc(x_428); +x_429 = lean_ctor_get(x_422, 1); +lean_inc(x_429); +if (lean_is_exclusive(x_422)) { + lean_ctor_release(x_422, 0); + lean_ctor_release(x_422, 1); + x_430 = x_422; +} else { + lean_dec_ref(x_422); + x_430 = lean_box(0); +} +if (lean_is_scalar(x_430)) { + x_431 = lean_alloc_ctor(1, 2, 0); +} else { + x_431 = x_430; +} +lean_ctor_set(x_431, 0, x_428); +lean_ctor_set(x_431, 1, x_429); +return x_431; +} +} +} +else +{ +uint8_t x_432; +lean_dec(x_62); +lean_dec(x_7); +lean_dec(x_50); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_432 = !lean_is_exclusive(x_396); +if (x_432 == 0) +{ +return x_396; +} +else +{ +lean_object* x_433; lean_object* x_434; lean_object* x_435; +x_433 = lean_ctor_get(x_396, 0); +x_434 = lean_ctor_get(x_396, 1); +lean_inc(x_434); +lean_inc(x_433); +lean_dec(x_396); +x_435 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_435, 0, x_433); +lean_ctor_set(x_435, 1, x_434); +return x_435; +} +} +} +} +else +{ +lean_object* x_436; lean_object* x_437; lean_object* x_438; lean_object* x_439; +lean_dec(x_54); +lean_dec(x_53); +x_436 = lean_box(0); +if (lean_is_scalar(x_51)) { + x_437 = lean_alloc_ctor(1, 2, 0); +} else { + x_437 = x_51; +} +lean_ctor_set(x_437, 0, x_62); +lean_ctor_set(x_437, 1, x_436); +x_438 = l_List_append___rarg(x_61, x_437); +x_439 = l_List_append___rarg(x_438, x_50); +x_1 = x_439; x_9 = x_60; goto _start; } @@ -43530,597 +43572,602 @@ goto _start; } else { -lean_object* x_485; lean_object* x_486; lean_object* x_487; lean_object* x_488; lean_object* x_489; lean_object* x_490; lean_object* x_491; lean_object* x_492; lean_object* x_493; lean_object* x_494; lean_object* x_794; lean_object* x_795; lean_object* x_796; lean_object* x_797; lean_object* x_798; lean_object* x_799; lean_object* x_800; lean_object* x_801; lean_object* x_802; lean_object* x_803; lean_object* x_804; lean_object* x_805; lean_object* x_806; lean_object* x_807; lean_object* x_808; lean_object* x_809; -x_485 = lean_ctor_get(x_7, 0); -x_486 = lean_ctor_get(x_7, 1); -x_487 = lean_ctor_get(x_7, 2); -x_488 = lean_ctor_get(x_7, 3); -lean_inc(x_488); -lean_inc(x_487); -lean_inc(x_486); -lean_inc(x_485); +lean_object* x_492; lean_object* x_493; lean_object* x_494; lean_object* x_495; lean_object* x_496; lean_object* x_497; lean_object* x_498; lean_object* x_499; lean_object* x_500; lean_object* x_501; lean_object* x_808; lean_object* x_809; lean_object* x_810; lean_object* x_811; lean_object* x_812; lean_object* x_813; lean_object* x_814; lean_object* x_815; lean_object* x_816; lean_object* x_817; lean_object* x_818; lean_object* x_819; lean_object* x_820; lean_object* x_821; lean_object* x_822; lean_object* x_823; +x_492 = lean_ctor_get(x_7, 0); +x_493 = lean_ctor_get(x_7, 1); +x_494 = lean_ctor_get(x_7, 2); +x_495 = lean_ctor_get(x_7, 3); +lean_inc(x_495); +lean_inc(x_494); +lean_inc(x_493); +lean_inc(x_492); lean_dec(x_7); -x_489 = l_Lean_replaceRef(x_49, x_488); -x_490 = l_Lean_replaceRef(x_489, x_488); -lean_dec(x_489); -x_491 = l_Lean_replaceRef(x_490, x_488); -lean_dec(x_488); -lean_dec(x_490); -lean_inc(x_487); -lean_inc(x_486); -x_492 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_492, 0, x_485); -lean_ctor_set(x_492, 1, x_486); -lean_ctor_set(x_492, 2, x_487); -lean_ctor_set(x_492, 3, x_491); -x_794 = lean_st_ref_get(x_8, x_9); -x_795 = lean_ctor_get(x_794, 0); -lean_inc(x_795); -x_796 = lean_ctor_get(x_794, 1); -lean_inc(x_796); -lean_dec(x_794); -x_797 = lean_ctor_get(x_795, 0); -lean_inc(x_797); -lean_dec(x_795); -x_798 = l_Lean_Elab_Term_getCurrMacroScope(x_3, x_4, x_5, x_6, x_492, x_8, x_796); -x_799 = lean_ctor_get(x_798, 0); -lean_inc(x_799); -x_800 = lean_ctor_get(x_798, 1); -lean_inc(x_800); -lean_dec(x_798); -x_801 = lean_st_ref_get(x_8, x_800); -x_802 = lean_ctor_get(x_801, 0); -lean_inc(x_802); -x_803 = lean_ctor_get(x_801, 1); -lean_inc(x_803); -lean_dec(x_801); -x_804 = lean_ctor_get(x_802, 1); -lean_inc(x_804); -lean_dec(x_802); -lean_inc(x_797); -x_805 = lean_alloc_closure((void*)(l___private_Lean_Elab_Util_0__Lean_Elab_expandMacro_x3f___boxed), 4, 1); -lean_closure_set(x_805, 0, x_797); -x_806 = x_805; -x_807 = lean_environment_main_module(x_797); -lean_inc(x_487); -lean_inc(x_486); -x_808 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_808, 0, x_806); -lean_ctor_set(x_808, 1, x_807); -lean_ctor_set(x_808, 2, x_799); -lean_ctor_set(x_808, 3, x_486); -lean_ctor_set(x_808, 4, x_487); -x_809 = l_Lean_Elab_Term_Do_ToCodeBlock_expandLiftMethod(x_49, x_808, x_804); -if (lean_obj_tag(x_809) == 0) -{ -lean_object* x_810; lean_object* x_811; lean_object* x_812; lean_object* x_813; lean_object* x_814; lean_object* x_815; lean_object* x_816; lean_object* x_817; lean_object* x_818; lean_object* x_819; lean_object* x_820; lean_object* x_821; -x_810 = lean_ctor_get(x_809, 0); +x_496 = l_Lean_replaceRef(x_49, x_495); +x_497 = l_Lean_replaceRef(x_496, x_495); +lean_dec(x_496); +x_498 = l_Lean_replaceRef(x_497, x_495); +lean_dec(x_495); +lean_dec(x_497); +lean_inc(x_494); +lean_inc(x_493); +x_499 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_499, 0, x_492); +lean_ctor_set(x_499, 1, x_493); +lean_ctor_set(x_499, 2, x_494); +lean_ctor_set(x_499, 3, x_498); +x_808 = lean_st_ref_get(x_8, x_9); +x_809 = lean_ctor_get(x_808, 0); +lean_inc(x_809); +x_810 = lean_ctor_get(x_808, 1); lean_inc(x_810); -x_811 = lean_ctor_get(x_809, 1); +lean_dec(x_808); +x_811 = lean_ctor_get(x_809, 0); lean_inc(x_811); lean_dec(x_809); -x_812 = lean_st_ref_take(x_8, x_803); +x_812 = l_Lean_Elab_Term_getCurrMacroScope(x_3, x_4, x_5, x_6, x_499, x_8, x_810); x_813 = lean_ctor_get(x_812, 0); lean_inc(x_813); x_814 = lean_ctor_get(x_812, 1); lean_inc(x_814); lean_dec(x_812); -x_815 = lean_ctor_get(x_813, 0); -lean_inc(x_815); -x_816 = lean_ctor_get(x_813, 2); +x_815 = lean_st_ref_get(x_8, x_814); +x_816 = lean_ctor_get(x_815, 0); lean_inc(x_816); -x_817 = lean_ctor_get(x_813, 3); +x_817 = lean_ctor_get(x_815, 1); lean_inc(x_817); -if (lean_is_exclusive(x_813)) { - lean_ctor_release(x_813, 0); - lean_ctor_release(x_813, 1); - lean_ctor_release(x_813, 2); - lean_ctor_release(x_813, 3); - x_818 = x_813; -} else { - lean_dec_ref(x_813); - x_818 = lean_box(0); -} -if (lean_is_scalar(x_818)) { - x_819 = lean_alloc_ctor(0, 4, 0); -} else { - x_819 = x_818; -} -lean_ctor_set(x_819, 0, x_815); -lean_ctor_set(x_819, 1, x_811); -lean_ctor_set(x_819, 2, x_816); -lean_ctor_set(x_819, 3, x_817); -x_820 = lean_st_ref_set(x_8, x_819, x_814); -x_821 = lean_ctor_get(x_820, 1); -lean_inc(x_821); -lean_dec(x_820); -x_493 = x_810; -x_494 = x_821; -goto block_793; -} -else +lean_dec(x_815); +x_818 = lean_ctor_get(x_816, 1); +lean_inc(x_818); +lean_dec(x_816); +lean_inc(x_811); +x_819 = lean_alloc_closure((void*)(l___private_Lean_Elab_Util_0__Lean_Elab_expandMacro_x3f___boxed), 4, 1); +lean_closure_set(x_819, 0, x_811); +x_820 = x_819; +x_821 = lean_environment_main_module(x_811); +lean_inc(x_494); +lean_inc(x_493); +x_822 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_822, 0, x_820); +lean_ctor_set(x_822, 1, x_821); +lean_ctor_set(x_822, 2, x_813); +lean_ctor_set(x_822, 3, x_493); +lean_ctor_set(x_822, 4, x_494); +x_823 = l_Lean_Elab_Term_Do_ToCodeBlock_expandLiftMethod(x_49, x_822, x_818); +if (lean_obj_tag(x_823) == 0) { -lean_object* x_822; -lean_dec(x_487); -lean_dec(x_486); -lean_dec(x_51); -lean_dec(x_50); -lean_dec(x_2); -x_822 = lean_ctor_get(x_809, 0); -lean_inc(x_822); -lean_dec(x_809); -if (lean_obj_tag(x_822) == 0) -{ -lean_object* x_823; lean_object* x_824; lean_object* x_825; lean_object* x_826; lean_object* x_827; lean_object* x_828; lean_object* x_829; lean_object* x_830; lean_object* x_831; -x_823 = lean_ctor_get(x_822, 0); -lean_inc(x_823); -x_824 = lean_ctor_get(x_822, 1); +lean_object* x_824; lean_object* x_825; lean_object* x_826; lean_object* x_827; lean_object* x_828; lean_object* x_829; lean_object* x_830; lean_object* x_831; lean_object* x_832; lean_object* x_833; lean_object* x_834; lean_object* x_835; +x_824 = lean_ctor_get(x_823, 0); lean_inc(x_824); -lean_dec(x_822); -x_825 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_825, 0, x_824); -x_826 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_826, 0, x_825); -x_827 = l_Lean_throwErrorAt___at___private_Lean_Elab_Term_21__elabTermAux___main___spec__1___rarg(x_823, x_826, x_3, x_4, x_5, x_6, x_492, x_8, x_803); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); +x_825 = lean_ctor_get(x_823, 1); +lean_inc(x_825); lean_dec(x_823); -x_828 = lean_ctor_get(x_827, 0); +x_826 = lean_st_ref_take(x_8, x_817); +x_827 = lean_ctor_get(x_826, 0); +lean_inc(x_827); +x_828 = lean_ctor_get(x_826, 1); lean_inc(x_828); -x_829 = lean_ctor_get(x_827, 1); +lean_dec(x_826); +x_829 = lean_ctor_get(x_827, 0); lean_inc(x_829); +x_830 = lean_ctor_get(x_827, 2); +lean_inc(x_830); +x_831 = lean_ctor_get(x_827, 3); +lean_inc(x_831); if (lean_is_exclusive(x_827)) { lean_ctor_release(x_827, 0); lean_ctor_release(x_827, 1); - x_830 = x_827; + lean_ctor_release(x_827, 2); + lean_ctor_release(x_827, 3); + x_832 = x_827; } else { lean_dec_ref(x_827); - x_830 = lean_box(0); + x_832 = lean_box(0); } -if (lean_is_scalar(x_830)) { - x_831 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_832)) { + x_833 = lean_alloc_ctor(0, 4, 0); } else { - x_831 = x_830; + x_833 = x_832; } -lean_ctor_set(x_831, 0, x_828); -lean_ctor_set(x_831, 1, x_829); -return x_831; +lean_ctor_set(x_833, 0, x_829); +lean_ctor_set(x_833, 1, x_825); +lean_ctor_set(x_833, 2, x_830); +lean_ctor_set(x_833, 3, x_831); +x_834 = lean_st_ref_set(x_8, x_833, x_828); +x_835 = lean_ctor_get(x_834, 1); +lean_inc(x_835); +lean_dec(x_834); +x_500 = x_824; +x_501 = x_835; +goto block_807; } else { -lean_object* x_832; lean_object* x_833; lean_object* x_834; lean_object* x_835; lean_object* x_836; -lean_dec(x_492); +lean_object* x_836; +lean_dec(x_494); +lean_dec(x_493); +lean_dec(x_51); +lean_dec(x_50); +lean_dec(x_2); +x_836 = lean_ctor_get(x_823, 0); +lean_inc(x_836); +lean_dec(x_823); +if (lean_obj_tag(x_836) == 0) +{ +lean_object* x_837; lean_object* x_838; lean_object* x_839; lean_object* x_840; lean_object* x_841; lean_object* x_842; lean_object* x_843; lean_object* x_844; lean_object* x_845; +x_837 = lean_ctor_get(x_836, 0); +lean_inc(x_837); +x_838 = lean_ctor_get(x_836, 1); +lean_inc(x_838); +lean_dec(x_836); +x_839 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_839, 0, x_838); +x_840 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_840, 0, x_839); +x_841 = l_Lean_throwErrorAt___at___private_Lean_Elab_Term_21__elabTermAux___main___spec__1___rarg(x_837, x_840, x_3, x_4, x_5, x_6, x_499, x_8, x_817); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_837); +x_842 = lean_ctor_get(x_841, 0); +lean_inc(x_842); +x_843 = lean_ctor_get(x_841, 1); +lean_inc(x_843); +if (lean_is_exclusive(x_841)) { + lean_ctor_release(x_841, 0); + lean_ctor_release(x_841, 1); + x_844 = x_841; +} else { + lean_dec_ref(x_841); + x_844 = lean_box(0); +} +if (lean_is_scalar(x_844)) { + x_845 = lean_alloc_ctor(1, 2, 0); +} else { + x_845 = x_844; +} +lean_ctor_set(x_845, 0, x_842); +lean_ctor_set(x_845, 1, x_843); +return x_845; +} +else +{ +lean_object* x_846; lean_object* x_847; lean_object* x_848; lean_object* x_849; lean_object* x_850; +lean_dec(x_499); lean_dec(x_8); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_832 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___spec__2___rarg(x_803); -x_833 = lean_ctor_get(x_832, 0); -lean_inc(x_833); -x_834 = lean_ctor_get(x_832, 1); -lean_inc(x_834); -if (lean_is_exclusive(x_832)) { - lean_ctor_release(x_832, 0); - lean_ctor_release(x_832, 1); - x_835 = x_832; +x_846 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___spec__2___rarg(x_817); +x_847 = lean_ctor_get(x_846, 0); +lean_inc(x_847); +x_848 = lean_ctor_get(x_846, 1); +lean_inc(x_848); +if (lean_is_exclusive(x_846)) { + lean_ctor_release(x_846, 0); + lean_ctor_release(x_846, 1); + x_849 = x_846; } else { - lean_dec_ref(x_832); - x_835 = lean_box(0); + lean_dec_ref(x_846); + x_849 = lean_box(0); } -if (lean_is_scalar(x_835)) { - x_836 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_849)) { + x_850 = lean_alloc_ctor(1, 2, 0); } else { - x_836 = x_835; + x_850 = x_849; } -lean_ctor_set(x_836, 0, x_833); -lean_ctor_set(x_836, 1, x_834); -return x_836; +lean_ctor_set(x_850, 0, x_847); +lean_ctor_set(x_850, 1, x_848); +return x_850; } } -block_793: +block_807: { -lean_object* x_495; lean_object* x_496; uint8_t x_497; uint8_t x_790; -x_495 = lean_ctor_get(x_493, 0); -lean_inc(x_495); -x_496 = lean_ctor_get(x_493, 1); -lean_inc(x_496); -lean_dec(x_493); -x_790 = l_List_isEmpty___rarg(x_495); -if (x_790 == 0) +lean_object* x_502; lean_object* x_503; uint8_t x_504; uint8_t x_804; +x_502 = lean_ctor_get(x_500, 0); +lean_inc(x_502); +x_503 = lean_ctor_get(x_500, 1); +lean_inc(x_503); +lean_dec(x_500); +x_804 = l_List_isEmpty___rarg(x_502); +if (x_804 == 0) { -uint8_t x_791; -x_791 = 1; -x_497 = x_791; -goto block_789; +uint8_t x_805; +x_805 = 1; +x_504 = x_805; +goto block_803; } else { -uint8_t x_792; -x_792 = 0; -x_497 = x_792; -goto block_789; +uint8_t x_806; +x_806 = 0; +x_504 = x_806; +goto block_803; } -block_789: +block_803: { -if (x_497 == 0) -{ -lean_object* x_498; lean_object* x_499; uint8_t x_500; -lean_dec(x_495); -lean_inc(x_496); -x_498 = l_Lean_Syntax_getKind(x_496); -x_499 = l_Lean_Elab_Term_Do_ToTerm_declToTermCore___closed__2; -x_500 = lean_name_eq(x_498, x_499); -if (x_500 == 0) -{ -lean_object* x_501; uint8_t x_502; -x_501 = l_Lean_Elab_Term_Do_ToTerm_declToTermCore___closed__6; -x_502 = lean_name_eq(x_498, x_501); -if (x_502 == 0) -{ -lean_object* x_503; uint8_t x_504; -x_503 = l_Lean_Elab_Term_Do_ToTerm_declToTermCore___closed__4; -x_504 = lean_name_eq(x_498, x_503); if (x_504 == 0) { -lean_object* x_505; uint8_t x_506; -x_505 = l_Lean_Elab_Term_Do_ToTerm_reassignToTermCore___closed__2; -x_506 = lean_name_eq(x_498, x_505); -if (x_506 == 0) +lean_object* x_505; lean_object* x_506; uint8_t x_507; +lean_dec(x_502); +lean_inc(x_503); +x_505 = l_Lean_Syntax_getKind(x_503); +x_506 = l_Lean_Elab_Term_Do_ToTerm_declToTermCore___closed__2; +x_507 = lean_name_eq(x_505, x_506); +if (x_507 == 0) { -lean_object* x_507; uint8_t x_508; -x_507 = l_Lean_Elab_Term_Do_mkAuxDeclFor___rarg___lambda__3___closed__2; -x_508 = lean_name_eq(x_498, x_507); -if (x_508 == 0) +lean_object* x_508; uint8_t x_509; +x_508 = l_Lean_Elab_Term_Do_ToTerm_declToTermCore___closed__6; +x_509 = lean_name_eq(x_505, x_508); +if (x_509 == 0) { -lean_object* x_509; uint8_t x_510; -x_509 = l_Lean_Elab_Term_Do_ToCodeBlock_checkLetArrowRHS___closed__6; -x_510 = lean_name_eq(x_498, x_509); -if (x_510 == 0) +lean_object* x_510; uint8_t x_511; +x_510 = l_Lean_Elab_Term_Do_ToTerm_declToTermCore___closed__4; +x_511 = lean_name_eq(x_505, x_510); +if (x_511 == 0) { -lean_object* x_511; uint8_t x_512; -x_511 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Lean_Elab_Do_0__Lean_Elab_Term_Do_expandDoIf___spec__1___closed__2; -x_512 = lean_name_eq(x_498, x_511); -if (x_512 == 0) +lean_object* x_512; uint8_t x_513; +x_512 = l_Lean_Elab_Term_Do_ToTerm_reassignToTermCore___closed__2; +x_513 = lean_name_eq(x_505, x_512); +if (x_513 == 0) { -lean_object* x_513; uint8_t x_514; -x_513 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__2; -x_514 = lean_name_eq(x_498, x_513); -if (x_514 == 0) +lean_object* x_514; uint8_t x_515; +x_514 = l_Lean_Elab_Term_Do_mkAuxDeclFor___rarg___lambda__3___closed__2; +x_515 = lean_name_eq(x_505, x_514); +if (x_515 == 0) { -lean_object* x_515; uint8_t x_516; -x_515 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__4; -x_516 = lean_name_eq(x_498, x_515); -if (x_516 == 0) +lean_object* x_516; uint8_t x_517; +x_516 = l_Lean_Elab_Term_Do_ToCodeBlock_checkLetArrowRHS___closed__6; +x_517 = lean_name_eq(x_505, x_516); +if (x_517 == 0) { -lean_object* x_517; uint8_t x_518; -x_517 = l_Lean_Elab_Term_Do_ToTerm_matchNestedTermResult___closed__11; -x_518 = lean_name_eq(x_498, x_517); -if (x_518 == 0) +lean_object* x_518; uint8_t x_519; +x_518 = l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Lean_Elab_Do_0__Lean_Elab_Term_Do_expandDoIf___spec__1___closed__2; +x_519 = lean_name_eq(x_505, x_518); +if (x_519 == 0) { -lean_object* x_519; uint8_t x_520; -x_519 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__6; -x_520 = lean_name_eq(x_498, x_519); -if (x_520 == 0) +lean_object* x_520; uint8_t x_521; +x_520 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__2; +x_521 = lean_name_eq(x_505, x_520); +if (x_521 == 0) { -lean_object* x_521; uint8_t x_522; -x_521 = l_Lean_Elab_Term_Do_ToTerm_matchNestedTermResult___closed__21; -x_522 = lean_name_eq(x_498, x_521); -if (x_522 == 0) +lean_object* x_522; uint8_t x_523; +x_522 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__4; +x_523 = lean_name_eq(x_505, x_522); +if (x_523 == 0) { -lean_object* x_523; uint8_t x_524; -x_523 = l_Lean_Elab_Term_Do_ToTerm_matchNestedTermResult___closed__29; -x_524 = lean_name_eq(x_498, x_523); -if (x_524 == 0) +lean_object* x_524; uint8_t x_525; +x_524 = l_Lean_Elab_Term_Do_ToTerm_matchNestedTermResult___closed__11; +x_525 = lean_name_eq(x_505, x_524); +if (x_525 == 0) { -lean_object* x_525; uint8_t x_526; -x_525 = l_Lean_Elab_Term_Do_ToTerm_matchNestedTermResult___closed__41; -x_526 = lean_name_eq(x_498, x_525); -if (x_526 == 0) +lean_object* x_526; uint8_t x_527; +x_526 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__6; +x_527 = lean_name_eq(x_505, x_526); +if (x_527 == 0) { -lean_object* x_527; uint8_t x_528; -x_527 = l_Lean_Elab_Term_Do_ToTerm_seqToTermCore___closed__2; -x_528 = lean_name_eq(x_498, x_527); -if (x_528 == 0) +lean_object* x_528; uint8_t x_529; +x_528 = l_Lean_Elab_Term_Do_ToTerm_matchNestedTermResult___closed__21; +x_529 = lean_name_eq(x_505, x_528); +if (x_529 == 0) { -lean_object* x_529; uint8_t x_530; -x_529 = l_Lean_Elab_Term_Do_ToTerm_seqToTermCore___closed__4; -x_530 = lean_name_eq(x_498, x_529); -if (x_530 == 0) +lean_object* x_530; uint8_t x_531; +x_530 = l_Lean_Elab_Term_Do_ToTerm_matchNestedTermResult___closed__29; +x_531 = lean_name_eq(x_505, x_530); +if (x_531 == 0) { -lean_object* x_531; uint8_t x_532; -x_531 = l_Lean_Elab_Term_Do_mkAuxDeclFor___rarg___lambda__3___closed__8; -x_532 = lean_name_eq(x_498, x_531); -lean_dec(x_498); -if (x_532 == 0) +lean_object* x_532; uint8_t x_533; +x_532 = l_Lean_Elab_Term_Do_ToTerm_matchNestedTermResult___closed__41; +x_533 = lean_name_eq(x_505, x_532); +if (x_533 == 0) { -lean_object* x_533; lean_object* x_534; lean_object* x_545; lean_object* x_546; lean_object* x_547; lean_object* x_548; lean_object* x_549; lean_object* x_550; lean_object* x_551; lean_object* x_552; lean_object* x_553; lean_object* x_554; lean_object* x_555; lean_object* x_556; lean_object* x_557; lean_object* x_558; lean_object* x_559; lean_object* x_560; -x_545 = lean_st_ref_get(x_8, x_494); -x_546 = lean_ctor_get(x_545, 0); -lean_inc(x_546); -x_547 = lean_ctor_get(x_545, 1); -lean_inc(x_547); -lean_dec(x_545); -x_548 = lean_ctor_get(x_546, 0); -lean_inc(x_548); -lean_dec(x_546); -x_549 = l_Lean_Elab_Term_getCurrMacroScope(x_3, x_4, x_5, x_6, x_492, x_8, x_547); -x_550 = lean_ctor_get(x_549, 0); -lean_inc(x_550); -x_551 = lean_ctor_get(x_549, 1); -lean_inc(x_551); -lean_dec(x_549); -x_552 = lean_st_ref_get(x_8, x_551); -x_553 = lean_ctor_get(x_552, 0); -lean_inc(x_553); -x_554 = lean_ctor_get(x_552, 1); -lean_inc(x_554); -lean_dec(x_552); -x_555 = lean_ctor_get(x_553, 1); +lean_object* x_534; uint8_t x_535; +x_534 = l_Lean_Elab_Term_Do_ToTerm_seqToTermCore___closed__2; +x_535 = lean_name_eq(x_505, x_534); +if (x_535 == 0) +{ +lean_object* x_536; uint8_t x_537; +x_536 = l_Lean_Elab_Term_Do_ToTerm_seqToTermCore___closed__4; +x_537 = lean_name_eq(x_505, x_536); +if (x_537 == 0) +{ +lean_object* x_538; uint8_t x_539; +x_538 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__8; +x_539 = lean_name_eq(x_505, x_538); +if (x_539 == 0) +{ +lean_object* x_540; uint8_t x_541; +x_540 = l_Lean_Elab_Term_Do_mkAuxDeclFor___rarg___lambda__3___closed__8; +x_541 = lean_name_eq(x_505, x_540); +lean_dec(x_505); +if (x_541 == 0) +{ +lean_object* x_542; lean_object* x_543; lean_object* x_554; lean_object* x_555; lean_object* x_556; lean_object* x_557; lean_object* x_558; lean_object* x_559; lean_object* x_560; lean_object* x_561; lean_object* x_562; lean_object* x_563; lean_object* x_564; lean_object* x_565; lean_object* x_566; lean_object* x_567; lean_object* x_568; lean_object* x_569; +x_554 = lean_st_ref_get(x_8, x_501); +x_555 = lean_ctor_get(x_554, 0); lean_inc(x_555); -lean_dec(x_553); -lean_inc(x_548); -x_556 = lean_alloc_closure((void*)(l___private_Lean_Elab_Util_0__Lean_Elab_expandMacro_x3f___boxed), 4, 1); -lean_closure_set(x_556, 0, x_548); -x_557 = x_556; -x_558 = lean_environment_main_module(x_548); -x_559 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_559, 0, x_557); -lean_ctor_set(x_559, 1, x_558); -lean_ctor_set(x_559, 2, x_550); -lean_ctor_set(x_559, 3, x_486); -lean_ctor_set(x_559, 4, x_487); -lean_inc(x_496); -x_560 = l_Lean_Macro_expandMacro_x3fImp(x_496, x_559, x_555); -if (lean_obj_tag(x_560) == 0) -{ -lean_object* x_561; lean_object* x_562; lean_object* x_563; lean_object* x_564; lean_object* x_565; lean_object* x_566; lean_object* x_567; lean_object* x_568; lean_object* x_569; lean_object* x_570; lean_object* x_571; lean_object* x_572; -x_561 = lean_ctor_get(x_560, 0); -lean_inc(x_561); -x_562 = lean_ctor_get(x_560, 1); +x_556 = lean_ctor_get(x_554, 1); +lean_inc(x_556); +lean_dec(x_554); +x_557 = lean_ctor_get(x_555, 0); +lean_inc(x_557); +lean_dec(x_555); +x_558 = l_Lean_Elab_Term_getCurrMacroScope(x_3, x_4, x_5, x_6, x_499, x_8, x_556); +x_559 = lean_ctor_get(x_558, 0); +lean_inc(x_559); +x_560 = lean_ctor_get(x_558, 1); +lean_inc(x_560); +lean_dec(x_558); +x_561 = lean_st_ref_get(x_8, x_560); +x_562 = lean_ctor_get(x_561, 0); lean_inc(x_562); -lean_dec(x_560); -x_563 = lean_st_ref_take(x_8, x_554); -x_564 = lean_ctor_get(x_563, 0); +x_563 = lean_ctor_get(x_561, 1); +lean_inc(x_563); +lean_dec(x_561); +x_564 = lean_ctor_get(x_562, 1); lean_inc(x_564); -x_565 = lean_ctor_get(x_563, 1); -lean_inc(x_565); -lean_dec(x_563); -x_566 = lean_ctor_get(x_564, 0); -lean_inc(x_566); -x_567 = lean_ctor_get(x_564, 2); -lean_inc(x_567); -x_568 = lean_ctor_get(x_564, 3); -lean_inc(x_568); -if (lean_is_exclusive(x_564)) { - lean_ctor_release(x_564, 0); - lean_ctor_release(x_564, 1); - lean_ctor_release(x_564, 2); - lean_ctor_release(x_564, 3); - x_569 = x_564; -} else { - lean_dec_ref(x_564); - x_569 = lean_box(0); -} -if (lean_is_scalar(x_569)) { - x_570 = lean_alloc_ctor(0, 4, 0); -} else { - x_570 = x_569; -} -lean_ctor_set(x_570, 0, x_566); -lean_ctor_set(x_570, 1, x_562); -lean_ctor_set(x_570, 2, x_567); -lean_ctor_set(x_570, 3, x_568); -x_571 = lean_st_ref_set(x_8, x_570, x_565); -x_572 = lean_ctor_get(x_571, 1); -lean_inc(x_572); -lean_dec(x_571); -x_533 = x_561; -x_534 = x_572; -goto block_544; -} -else +lean_dec(x_562); +lean_inc(x_557); +x_565 = lean_alloc_closure((void*)(l___private_Lean_Elab_Util_0__Lean_Elab_expandMacro_x3f___boxed), 4, 1); +lean_closure_set(x_565, 0, x_557); +x_566 = x_565; +x_567 = lean_environment_main_module(x_557); +x_568 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_568, 0, x_566); +lean_ctor_set(x_568, 1, x_567); +lean_ctor_set(x_568, 2, x_559); +lean_ctor_set(x_568, 3, x_493); +lean_ctor_set(x_568, 4, x_494); +lean_inc(x_503); +x_569 = l_Lean_Macro_expandMacro_x3fImp(x_503, x_568, x_564); +if (lean_obj_tag(x_569) == 0) { -lean_object* x_573; -lean_dec(x_496); -lean_dec(x_51); -lean_dec(x_50); -x_573 = lean_ctor_get(x_560, 0); +lean_object* x_570; lean_object* x_571; lean_object* x_572; lean_object* x_573; lean_object* x_574; lean_object* x_575; lean_object* x_576; lean_object* x_577; lean_object* x_578; lean_object* x_579; lean_object* x_580; lean_object* x_581; +x_570 = lean_ctor_get(x_569, 0); +lean_inc(x_570); +x_571 = lean_ctor_get(x_569, 1); +lean_inc(x_571); +lean_dec(x_569); +x_572 = lean_st_ref_take(x_8, x_563); +x_573 = lean_ctor_get(x_572, 0); lean_inc(x_573); -lean_dec(x_560); -if (lean_obj_tag(x_573) == 0) -{ -lean_object* x_574; lean_object* x_575; lean_object* x_576; lean_object* x_577; lean_object* x_578; lean_object* x_579; lean_object* x_580; lean_object* x_581; lean_object* x_582; -x_574 = lean_ctor_get(x_573, 0); +x_574 = lean_ctor_get(x_572, 1); lean_inc(x_574); -x_575 = lean_ctor_get(x_573, 1); +lean_dec(x_572); +x_575 = lean_ctor_get(x_573, 0); lean_inc(x_575); -lean_dec(x_573); -x_576 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_576, 0, x_575); -x_577 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_577, 0, x_576); -x_578 = l_Lean_throwErrorAt___at_Lean_Elab_Term_Do_ToCodeBlock_mkForInBody___spec__1___rarg(x_574, x_577, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_554); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_574); -x_579 = lean_ctor_get(x_578, 0); -lean_inc(x_579); -x_580 = lean_ctor_get(x_578, 1); -lean_inc(x_580); -if (lean_is_exclusive(x_578)) { - lean_ctor_release(x_578, 0); - lean_ctor_release(x_578, 1); - x_581 = x_578; +x_576 = lean_ctor_get(x_573, 2); +lean_inc(x_576); +x_577 = lean_ctor_get(x_573, 3); +lean_inc(x_577); +if (lean_is_exclusive(x_573)) { + lean_ctor_release(x_573, 0); + lean_ctor_release(x_573, 1); + lean_ctor_release(x_573, 2); + lean_ctor_release(x_573, 3); + x_578 = x_573; } else { - lean_dec_ref(x_578); - x_581 = lean_box(0); + lean_dec_ref(x_573); + x_578 = lean_box(0); } -if (lean_is_scalar(x_581)) { - x_582 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_578)) { + x_579 = lean_alloc_ctor(0, 4, 0); } else { - x_582 = x_581; + x_579 = x_578; } -lean_ctor_set(x_582, 0, x_579); -lean_ctor_set(x_582, 1, x_580); -return x_582; +lean_ctor_set(x_579, 0, x_575); +lean_ctor_set(x_579, 1, x_571); +lean_ctor_set(x_579, 2, x_576); +lean_ctor_set(x_579, 3, x_577); +x_580 = lean_st_ref_set(x_8, x_579, x_574); +x_581 = lean_ctor_get(x_580, 1); +lean_inc(x_581); +lean_dec(x_580); +x_542 = x_570; +x_543 = x_581; +goto block_553; } else { -lean_object* x_583; lean_object* x_584; lean_object* x_585; lean_object* x_586; lean_object* x_587; -lean_dec(x_492); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_583 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___spec__1___rarg(x_554); -x_584 = lean_ctor_get(x_583, 0); -lean_inc(x_584); -x_585 = lean_ctor_get(x_583, 1); -lean_inc(x_585); -if (lean_is_exclusive(x_583)) { - lean_ctor_release(x_583, 0); - lean_ctor_release(x_583, 1); - x_586 = x_583; -} else { - lean_dec_ref(x_583); - x_586 = lean_box(0); -} -if (lean_is_scalar(x_586)) { - x_587 = lean_alloc_ctor(1, 2, 0); -} else { - x_587 = x_586; -} -lean_ctor_set(x_587, 0, x_584); -lean_ctor_set(x_587, 1, x_585); -return x_587; -} -} -block_544: -{ -if (lean_obj_tag(x_533) == 0) -{ -lean_object* x_535; lean_object* x_536; lean_object* x_537; lean_object* x_538; lean_object* x_539; lean_object* x_540; +lean_object* x_582; +lean_dec(x_503); lean_dec(x_51); lean_dec(x_50); -x_535 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_535, 0, x_496); -x_536 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__8; -x_537 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_537, 0, x_536); -lean_ctor_set(x_537, 1, x_535); -x_538 = l_Lean_Elab_Term_elabLetDeclAux___closed__4; -x_539 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_539, 0, x_537); -lean_ctor_set(x_539, 1, x_538); -x_540 = l_Lean_throwError___at_Lean_Elab_Term_Do_ToCodeBlock_checkReassignable___spec__1___rarg(x_539, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_534); +x_582 = lean_ctor_get(x_569, 0); +lean_inc(x_582); +lean_dec(x_569); +if (lean_obj_tag(x_582) == 0) +{ +lean_object* x_583; lean_object* x_584; lean_object* x_585; lean_object* x_586; lean_object* x_587; lean_object* x_588; lean_object* x_589; lean_object* x_590; lean_object* x_591; +x_583 = lean_ctor_get(x_582, 0); +lean_inc(x_583); +x_584 = lean_ctor_get(x_582, 1); +lean_inc(x_584); +lean_dec(x_582); +x_585 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_585, 0, x_584); +x_586 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_586, 0, x_585); +x_587 = l_Lean_throwErrorAt___at_Lean_Elab_Term_Do_ToCodeBlock_mkForInBody___spec__1___rarg(x_583, x_586, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_563); lean_dec(x_8); -lean_dec(x_492); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -return x_540; +lean_dec(x_583); +x_588 = lean_ctor_get(x_587, 0); +lean_inc(x_588); +x_589 = lean_ctor_get(x_587, 1); +lean_inc(x_589); +if (lean_is_exclusive(x_587)) { + lean_ctor_release(x_587, 0); + lean_ctor_release(x_587, 1); + x_590 = x_587; +} else { + lean_dec_ref(x_587); + x_590 = lean_box(0); +} +if (lean_is_scalar(x_590)) { + x_591 = lean_alloc_ctor(1, 2, 0); +} else { + x_591 = x_590; +} +lean_ctor_set(x_591, 0, x_588); +lean_ctor_set(x_591, 1, x_589); +return x_591; } else { -lean_object* x_541; lean_object* x_542; -lean_dec(x_496); -x_541 = lean_ctor_get(x_533, 0); -lean_inc(x_541); -lean_dec(x_533); -if (lean_is_scalar(x_51)) { - x_542 = lean_alloc_ctor(1, 2, 0); +lean_object* x_592; lean_object* x_593; lean_object* x_594; lean_object* x_595; lean_object* x_596; +lean_dec(x_499); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_592 = l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___spec__1___rarg(x_563); +x_593 = lean_ctor_get(x_592, 0); +lean_inc(x_593); +x_594 = lean_ctor_get(x_592, 1); +lean_inc(x_594); +if (lean_is_exclusive(x_592)) { + lean_ctor_release(x_592, 0); + lean_ctor_release(x_592, 1); + x_595 = x_592; } else { - x_542 = x_51; + lean_dec_ref(x_592); + x_595 = lean_box(0); } -lean_ctor_set(x_542, 0, x_541); -lean_ctor_set(x_542, 1, x_50); -x_1 = x_542; -x_7 = x_492; -x_9 = x_534; +if (lean_is_scalar(x_595)) { + x_596 = lean_alloc_ctor(1, 2, 0); +} else { + x_596 = x_595; +} +lean_ctor_set(x_596, 0, x_593); +lean_ctor_set(x_596, 1, x_594); +return x_596; +} +} +block_553: +{ +if (lean_obj_tag(x_542) == 0) +{ +lean_object* x_544; lean_object* x_545; lean_object* x_546; lean_object* x_547; lean_object* x_548; lean_object* x_549; +lean_dec(x_51); +lean_dec(x_50); +x_544 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_544, 0, x_503); +x_545 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__10; +x_546 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_546, 0, x_545); +lean_ctor_set(x_546, 1, x_544); +x_547 = l_Lean_Elab_Term_elabLetDeclAux___closed__4; +x_548 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_548, 0, x_546); +lean_ctor_set(x_548, 1, x_547); +x_549 = l_Lean_throwError___at_Lean_Elab_Term_Do_ToCodeBlock_checkReassignable___spec__1___rarg(x_548, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_543); +lean_dec(x_8); +lean_dec(x_499); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_549; +} +else +{ +lean_object* x_550; lean_object* x_551; +lean_dec(x_503); +x_550 = lean_ctor_get(x_542, 0); +lean_inc(x_550); +lean_dec(x_542); +if (lean_is_scalar(x_51)) { + x_551 = lean_alloc_ctor(1, 2, 0); +} else { + x_551 = x_51; +} +lean_ctor_set(x_551, 0, x_550); +lean_ctor_set(x_551, 1, x_50); +x_1 = x_551; +x_7 = x_499; +x_9 = x_543; goto _start; } } } else { -lean_object* x_588; lean_object* x_589; uint8_t x_590; -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_597; lean_object* x_598; uint8_t x_599; +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_588 = lean_unsigned_to_nat(0u); -x_589 = l_Lean_Syntax_getArg(x_496, x_588); -lean_dec(x_496); -x_590 = l_List_isEmpty___rarg(x_50); -if (x_590 == 0) +x_597 = lean_unsigned_to_nat(0u); +x_598 = l_Lean_Syntax_getArg(x_503, x_597); +lean_dec(x_503); +x_599 = l_List_isEmpty___rarg(x_50); +if (x_599 == 0) { -lean_object* x_591; -x_591 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -if (lean_obj_tag(x_591) == 0) +lean_object* x_600; +x_600 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +if (lean_obj_tag(x_600) == 0) { -lean_object* x_592; lean_object* x_593; lean_object* x_594; lean_object* x_595; lean_object* x_596; -x_592 = lean_ctor_get(x_591, 0); -lean_inc(x_592); -x_593 = lean_ctor_get(x_591, 1); -lean_inc(x_593); -if (lean_is_exclusive(x_591)) { - lean_ctor_release(x_591, 0); - lean_ctor_release(x_591, 1); - x_594 = x_591; +lean_object* x_601; lean_object* x_602; lean_object* x_603; lean_object* x_604; lean_object* x_605; +x_601 = lean_ctor_get(x_600, 0); +lean_inc(x_601); +x_602 = lean_ctor_get(x_600, 1); +lean_inc(x_602); +if (lean_is_exclusive(x_600)) { + lean_ctor_release(x_600, 0); + lean_ctor_release(x_600, 1); + x_603 = x_600; } else { - lean_dec_ref(x_591); - x_594 = lean_box(0); + lean_dec_ref(x_600); + x_603 = lean_box(0); } -x_595 = l_Lean_Elab_Term_Do_mkSeq(x_589, x_592); -if (lean_is_scalar(x_594)) { - x_596 = lean_alloc_ctor(0, 2, 0); +x_604 = l_Lean_Elab_Term_Do_mkSeq(x_598, x_601); +if (lean_is_scalar(x_603)) { + x_605 = lean_alloc_ctor(0, 2, 0); } else { - x_596 = x_594; + x_605 = x_603; } -lean_ctor_set(x_596, 0, x_595); -lean_ctor_set(x_596, 1, x_593); -return x_596; +lean_ctor_set(x_605, 0, x_604); +lean_ctor_set(x_605, 1, x_602); +return x_605; } else { -lean_object* x_597; lean_object* x_598; lean_object* x_599; lean_object* x_600; -lean_dec(x_589); -x_597 = lean_ctor_get(x_591, 0); -lean_inc(x_597); -x_598 = lean_ctor_get(x_591, 1); -lean_inc(x_598); -if (lean_is_exclusive(x_591)) { - lean_ctor_release(x_591, 0); - lean_ctor_release(x_591, 1); - x_599 = x_591; +lean_object* x_606; lean_object* x_607; lean_object* x_608; lean_object* x_609; +lean_dec(x_598); +x_606 = lean_ctor_get(x_600, 0); +lean_inc(x_606); +x_607 = lean_ctor_get(x_600, 1); +lean_inc(x_607); +if (lean_is_exclusive(x_600)) { + lean_ctor_release(x_600, 0); + lean_ctor_release(x_600, 1); + x_608 = x_600; } else { - lean_dec_ref(x_591); - x_599 = lean_box(0); + lean_dec_ref(x_600); + x_608 = lean_box(0); } -if (lean_is_scalar(x_599)) { - x_600 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_608)) { + x_609 = lean_alloc_ctor(1, 2, 0); } else { - x_600 = x_599; + x_609 = x_608; } -lean_ctor_set(x_600, 0, x_597); -lean_ctor_set(x_600, 1, x_598); -return x_600; +lean_ctor_set(x_609, 0, x_606); +lean_ctor_set(x_609, 1, x_607); +return x_609; } } else { -lean_object* x_601; lean_object* x_602; -lean_dec(x_492); +lean_object* x_610; lean_object* x_611; +lean_dec(x_499); lean_dec(x_50); lean_dec(x_8); lean_dec(x_6); @@ -44128,337 +44175,248 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_601 = l_Lean_Elab_Term_Do_mkTerminalAction(x_589); -x_602 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_602, 0, x_601); -lean_ctor_set(x_602, 1, x_494); -return x_602; +x_610 = l_Lean_Elab_Term_Do_mkTerminalAction(x_598); +x_611 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_611, 0, x_610); +lean_ctor_set(x_611, 1, x_501); +return x_611; } } } else { -lean_object* x_603; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_612; lean_object* x_613; lean_object* x_614; lean_object* x_615; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_603 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -if (lean_obj_tag(x_603) == 0) -{ -lean_object* x_604; lean_object* x_605; lean_object* x_606; lean_object* x_607; lean_object* x_608; -x_604 = lean_ctor_get(x_603, 0); -lean_inc(x_604); -x_605 = lean_ctor_get(x_603, 1); -lean_inc(x_605); -if (lean_is_exclusive(x_603)) { - lean_ctor_release(x_603, 0); - lean_ctor_release(x_603, 1); - x_606 = x_603; -} else { - lean_dec_ref(x_603); - x_606 = lean_box(0); -} -x_607 = l_Lean_Elab_Term_Do_mkSeq(x_496, x_604); -if (lean_is_scalar(x_606)) { - x_608 = lean_alloc_ctor(0, 2, 0); -} else { - x_608 = x_606; -} -lean_ctor_set(x_608, 0, x_607); -lean_ctor_set(x_608, 1, x_605); -return x_608; -} -else -{ -lean_object* x_609; lean_object* x_610; lean_object* x_611; lean_object* x_612; -lean_dec(x_496); -x_609 = lean_ctor_get(x_603, 0); -lean_inc(x_609); -x_610 = lean_ctor_get(x_603, 1); -lean_inc(x_610); -if (lean_is_exclusive(x_603)) { - lean_ctor_release(x_603, 0); - lean_ctor_release(x_603, 1); - x_611 = x_603; -} else { - lean_dec_ref(x_603); - x_611 = lean_box(0); -} -if (lean_is_scalar(x_611)) { - x_612 = lean_alloc_ctor(1, 2, 0); -} else { - x_612 = x_611; -} -lean_ctor_set(x_612, 0, x_609); -lean_ctor_set(x_612, 1, x_610); -return x_612; -} +x_612 = lean_unsigned_to_nat(1u); +x_613 = l_Lean_Syntax_getArg(x_503, x_612); +lean_dec(x_503); +x_614 = l___private_Lean_Elab_Do_0__Lean_Elab_Term_getDoSeqElems(x_613); +x_615 = l_List_append___rarg(x_614, x_50); +x_1 = x_615; +x_7 = x_499; +x_9 = x_501; +goto _start; } } else { -lean_object* x_613; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_617; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_613 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -if (lean_obj_tag(x_613) == 0) +x_617 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +if (lean_obj_tag(x_617) == 0) { -lean_object* x_614; lean_object* x_615; lean_object* x_616; lean_object* x_617; lean_object* x_618; -x_614 = lean_ctor_get(x_613, 0); -lean_inc(x_614); -x_615 = lean_ctor_get(x_613, 1); -lean_inc(x_615); -if (lean_is_exclusive(x_613)) { - lean_ctor_release(x_613, 0); - lean_ctor_release(x_613, 1); - x_616 = x_613; -} else { - lean_dec_ref(x_613); - x_616 = lean_box(0); -} -x_617 = l_Lean_Elab_Term_Do_mkSeq(x_496, x_614); -if (lean_is_scalar(x_616)) { - x_618 = lean_alloc_ctor(0, 2, 0); -} else { - x_618 = x_616; -} -lean_ctor_set(x_618, 0, x_617); -lean_ctor_set(x_618, 1, x_615); -return x_618; -} -else -{ -lean_object* x_619; lean_object* x_620; lean_object* x_621; lean_object* x_622; -lean_dec(x_496); -x_619 = lean_ctor_get(x_613, 0); +lean_object* x_618; lean_object* x_619; lean_object* x_620; lean_object* x_621; lean_object* x_622; +x_618 = lean_ctor_get(x_617, 0); +lean_inc(x_618); +x_619 = lean_ctor_get(x_617, 1); lean_inc(x_619); -x_620 = lean_ctor_get(x_613, 1); -lean_inc(x_620); -if (lean_is_exclusive(x_613)) { - lean_ctor_release(x_613, 0); - lean_ctor_release(x_613, 1); - x_621 = x_613; +if (lean_is_exclusive(x_617)) { + lean_ctor_release(x_617, 0); + lean_ctor_release(x_617, 1); + x_620 = x_617; } else { - lean_dec_ref(x_613); - x_621 = lean_box(0); + lean_dec_ref(x_617); + x_620 = lean_box(0); } -if (lean_is_scalar(x_621)) { - x_622 = lean_alloc_ctor(1, 2, 0); +x_621 = l_Lean_Elab_Term_Do_mkSeq(x_503, x_618); +if (lean_is_scalar(x_620)) { + x_622 = lean_alloc_ctor(0, 2, 0); } else { - x_622 = x_621; + x_622 = x_620; } -lean_ctor_set(x_622, 0, x_619); -lean_ctor_set(x_622, 1, x_620); +lean_ctor_set(x_622, 0, x_621); +lean_ctor_set(x_622, 1, x_619); return x_622; } +else +{ +lean_object* x_623; lean_object* x_624; lean_object* x_625; lean_object* x_626; +lean_dec(x_503); +x_623 = lean_ctor_get(x_617, 0); +lean_inc(x_623); +x_624 = lean_ctor_get(x_617, 1); +lean_inc(x_624); +if (lean_is_exclusive(x_617)) { + lean_ctor_release(x_617, 0); + lean_ctor_release(x_617, 1); + x_625 = x_617; +} else { + lean_dec_ref(x_617); + x_625 = lean_box(0); +} +if (lean_is_scalar(x_625)) { + x_626 = lean_alloc_ctor(1, 2, 0); +} else { + x_626 = x_625; +} +lean_ctor_set(x_626, 0, x_623); +lean_ctor_set(x_626, 1, x_624); +return x_626; +} } } else { -lean_object* x_623; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_627; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_623 = l_Lean_Elab_Term_Do_ToCodeBlock_doReturnToCode(x_496, x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -lean_dec(x_8); -lean_dec(x_492); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_50); -return x_623; +x_627 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +if (lean_obj_tag(x_627) == 0) +{ +lean_object* x_628; lean_object* x_629; lean_object* x_630; lean_object* x_631; lean_object* x_632; +x_628 = lean_ctor_get(x_627, 0); +lean_inc(x_628); +x_629 = lean_ctor_get(x_627, 1); +lean_inc(x_629); +if (lean_is_exclusive(x_627)) { + lean_ctor_release(x_627, 0); + lean_ctor_release(x_627, 1); + x_630 = x_627; +} else { + lean_dec_ref(x_627); + x_630 = lean_box(0); +} +x_631 = l_Lean_Elab_Term_Do_mkSeq(x_503, x_628); +if (lean_is_scalar(x_630)) { + x_632 = lean_alloc_ctor(0, 2, 0); +} else { + x_632 = x_630; +} +lean_ctor_set(x_632, 0, x_631); +lean_ctor_set(x_632, 1, x_629); +return x_632; +} +else +{ +lean_object* x_633; lean_object* x_634; lean_object* x_635; lean_object* x_636; +lean_dec(x_503); +x_633 = lean_ctor_get(x_627, 0); +lean_inc(x_633); +x_634 = lean_ctor_get(x_627, 1); +lean_inc(x_634); +if (lean_is_exclusive(x_627)) { + lean_ctor_release(x_627, 0); + lean_ctor_release(x_627, 1); + x_635 = x_627; +} else { + lean_dec_ref(x_627); + x_635 = lean_box(0); +} +if (lean_is_scalar(x_635)) { + x_636 = lean_alloc_ctor(1, 2, 0); +} else { + x_636 = x_635; +} +lean_ctor_set(x_636, 0, x_633); +lean_ctor_set(x_636, 1, x_634); +return x_636; +} } } else { -lean_object* x_624; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_637; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_624 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureInsideFor(x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -if (lean_obj_tag(x_624) == 0) -{ -lean_object* x_625; lean_object* x_626; -x_625 = lean_ctor_get(x_624, 1); -lean_inc(x_625); -lean_dec(x_624); -x_626 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureEOS(x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_625); +x_637 = l_Lean_Elab_Term_Do_ToCodeBlock_doReturnToCode(x_503, x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); lean_dec(x_8); -lean_dec(x_492); +lean_dec(x_499); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_50); -if (lean_obj_tag(x_626) == 0) -{ -lean_object* x_627; lean_object* x_628; lean_object* x_629; lean_object* x_630; -x_627 = lean_ctor_get(x_626, 1); -lean_inc(x_627); -if (lean_is_exclusive(x_626)) { - lean_ctor_release(x_626, 0); - lean_ctor_release(x_626, 1); - x_628 = x_626; -} else { - lean_dec_ref(x_626); - x_628 = lean_box(0); -} -x_629 = l_Lean_Elab_Term_Do_mkContinue(x_496); -if (lean_is_scalar(x_628)) { - x_630 = lean_alloc_ctor(0, 2, 0); -} else { - x_630 = x_628; -} -lean_ctor_set(x_630, 0, x_629); -lean_ctor_set(x_630, 1, x_627); -return x_630; -} -else -{ -lean_object* x_631; lean_object* x_632; lean_object* x_633; lean_object* x_634; -lean_dec(x_496); -x_631 = lean_ctor_get(x_626, 0); -lean_inc(x_631); -x_632 = lean_ctor_get(x_626, 1); -lean_inc(x_632); -if (lean_is_exclusive(x_626)) { - lean_ctor_release(x_626, 0); - lean_ctor_release(x_626, 1); - x_633 = x_626; -} else { - lean_dec_ref(x_626); - x_633 = lean_box(0); -} -if (lean_is_scalar(x_633)) { - x_634 = lean_alloc_ctor(1, 2, 0); -} else { - x_634 = x_633; -} -lean_ctor_set(x_634, 0, x_631); -lean_ctor_set(x_634, 1, x_632); -return x_634; +return x_637; } } else { -lean_object* x_635; lean_object* x_636; lean_object* x_637; lean_object* x_638; -lean_dec(x_496); -lean_dec(x_492); -lean_dec(x_50); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_635 = lean_ctor_get(x_624, 0); -lean_inc(x_635); -x_636 = lean_ctor_get(x_624, 1); -lean_inc(x_636); -if (lean_is_exclusive(x_624)) { - lean_ctor_release(x_624, 0); - lean_ctor_release(x_624, 1); - x_637 = x_624; -} else { - lean_dec_ref(x_624); - x_637 = lean_box(0); -} -if (lean_is_scalar(x_637)) { - x_638 = lean_alloc_ctor(1, 2, 0); -} else { - x_638 = x_637; -} -lean_ctor_set(x_638, 0, x_635); -lean_ctor_set(x_638, 1, x_636); -return x_638; -} -} -} -else -{ -lean_object* x_639; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_638; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_639 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureInsideFor(x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -if (lean_obj_tag(x_639) == 0) +x_638 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureInsideFor(x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +if (lean_obj_tag(x_638) == 0) { -lean_object* x_640; lean_object* x_641; -x_640 = lean_ctor_get(x_639, 1); -lean_inc(x_640); -lean_dec(x_639); -x_641 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureEOS(x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_640); +lean_object* x_639; lean_object* x_640; +x_639 = lean_ctor_get(x_638, 1); +lean_inc(x_639); +lean_dec(x_638); +x_640 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureEOS(x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_639); lean_dec(x_8); -lean_dec(x_492); +lean_dec(x_499); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_50); -if (lean_obj_tag(x_641) == 0) +if (lean_obj_tag(x_640) == 0) { -lean_object* x_642; lean_object* x_643; lean_object* x_644; lean_object* x_645; -x_642 = lean_ctor_get(x_641, 1); -lean_inc(x_642); -if (lean_is_exclusive(x_641)) { - lean_ctor_release(x_641, 0); - lean_ctor_release(x_641, 1); - x_643 = x_641; +lean_object* x_641; lean_object* x_642; lean_object* x_643; lean_object* x_644; +x_641 = lean_ctor_get(x_640, 1); +lean_inc(x_641); +if (lean_is_exclusive(x_640)) { + lean_ctor_release(x_640, 0); + lean_ctor_release(x_640, 1); + x_642 = x_640; } else { - lean_dec_ref(x_641); - x_643 = lean_box(0); + lean_dec_ref(x_640); + x_642 = lean_box(0); } -x_644 = l_Lean_Elab_Term_Do_mkBreak(x_496); -if (lean_is_scalar(x_643)) { - x_645 = lean_alloc_ctor(0, 2, 0); +x_643 = l_Lean_Elab_Term_Do_mkContinue(x_503); +if (lean_is_scalar(x_642)) { + x_644 = lean_alloc_ctor(0, 2, 0); } else { - x_645 = x_643; + x_644 = x_642; } -lean_ctor_set(x_645, 0, x_644); -lean_ctor_set(x_645, 1, x_642); -return x_645; +lean_ctor_set(x_644, 0, x_643); +lean_ctor_set(x_644, 1, x_641); +return x_644; } else { -lean_object* x_646; lean_object* x_647; lean_object* x_648; lean_object* x_649; -lean_dec(x_496); -x_646 = lean_ctor_get(x_641, 0); +lean_object* x_645; lean_object* x_646; lean_object* x_647; lean_object* x_648; +lean_dec(x_503); +x_645 = lean_ctor_get(x_640, 0); +lean_inc(x_645); +x_646 = lean_ctor_get(x_640, 1); lean_inc(x_646); -x_647 = lean_ctor_get(x_641, 1); -lean_inc(x_647); -if (lean_is_exclusive(x_641)) { - lean_ctor_release(x_641, 0); - lean_ctor_release(x_641, 1); - x_648 = x_641; +if (lean_is_exclusive(x_640)) { + lean_ctor_release(x_640, 0); + lean_ctor_release(x_640, 1); + x_647 = x_640; } else { - lean_dec_ref(x_641); - x_648 = lean_box(0); + lean_dec_ref(x_640); + x_647 = lean_box(0); } -if (lean_is_scalar(x_648)) { - x_649 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_647)) { + x_648 = lean_alloc_ctor(1, 2, 0); } else { - x_649 = x_648; + x_648 = x_647; } -lean_ctor_set(x_649, 0, x_646); -lean_ctor_set(x_649, 1, x_647); -return x_649; +lean_ctor_set(x_648, 0, x_645); +lean_ctor_set(x_648, 1, x_646); +return x_648; } } else { -lean_object* x_650; lean_object* x_651; lean_object* x_652; lean_object* x_653; -lean_dec(x_496); -lean_dec(x_492); +lean_object* x_649; lean_object* x_650; lean_object* x_651; lean_object* x_652; +lean_dec(x_503); +lean_dec(x_499); lean_dec(x_50); lean_dec(x_8); lean_dec(x_6); @@ -44466,116 +44424,223 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_650 = lean_ctor_get(x_639, 0); +x_649 = lean_ctor_get(x_638, 0); +lean_inc(x_649); +x_650 = lean_ctor_get(x_638, 1); lean_inc(x_650); -x_651 = lean_ctor_get(x_639, 1); -lean_inc(x_651); -if (lean_is_exclusive(x_639)) { - lean_ctor_release(x_639, 0); - lean_ctor_release(x_639, 1); - x_652 = x_639; +if (lean_is_exclusive(x_638)) { + lean_ctor_release(x_638, 0); + lean_ctor_release(x_638, 1); + x_651 = x_638; } else { - lean_dec_ref(x_639); - x_652 = lean_box(0); + lean_dec_ref(x_638); + x_651 = lean_box(0); } -if (lean_is_scalar(x_652)) { - x_653 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_651)) { + x_652 = lean_alloc_ctor(1, 2, 0); } else { - x_653 = x_652; + x_652 = x_651; } -lean_ctor_set(x_653, 0, x_650); -lean_ctor_set(x_653, 1, x_651); -return x_653; +lean_ctor_set(x_652, 0, x_649); +lean_ctor_set(x_652, 1, x_650); +return x_652; } } } else { +lean_object* x_653; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); +lean_dec(x_51); +x_653 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureInsideFor(x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +if (lean_obj_tag(x_653) == 0) +{ lean_object* x_654; lean_object* x_655; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); -lean_dec(x_51); -x_654 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_655 = l_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode(x_654, x_496, x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -lean_dec(x_496); -return x_655; +x_654 = lean_ctor_get(x_653, 1); +lean_inc(x_654); +lean_dec(x_653); +x_655 = l_Lean_Elab_Term_Do_ToCodeBlock_ensureEOS(x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_654); +lean_dec(x_8); +lean_dec(x_499); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_50); +if (lean_obj_tag(x_655) == 0) +{ +lean_object* x_656; lean_object* x_657; lean_object* x_658; lean_object* x_659; +x_656 = lean_ctor_get(x_655, 1); +lean_inc(x_656); +if (lean_is_exclusive(x_655)) { + lean_ctor_release(x_655, 0); + lean_ctor_release(x_655, 1); + x_657 = x_655; +} else { + lean_dec_ref(x_655); + x_657 = lean_box(0); } +x_658 = l_Lean_Elab_Term_Do_mkBreak(x_503); +if (lean_is_scalar(x_657)) { + x_659 = lean_alloc_ctor(0, 2, 0); +} else { + x_659 = x_657; +} +lean_ctor_set(x_659, 0, x_658); +lean_ctor_set(x_659, 1, x_656); +return x_659; } else { -lean_object* x_656; lean_object* x_657; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); -lean_dec(x_51); -x_656 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_657 = l_Lean_Elab_Term_Do_ToCodeBlock_doMatchToCode(x_656, x_496, x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -return x_657; -} -} -else -{ -lean_object* x_658; lean_object* x_659; lean_object* x_660; lean_object* x_661; lean_object* x_662; lean_object* x_663; lean_object* x_664; lean_object* x_665; lean_object* x_666; lean_object* x_667; lean_object* x_668; lean_object* x_669; lean_object* x_670; lean_object* x_671; lean_object* x_672; lean_object* x_673; lean_object* x_674; lean_object* x_675; lean_object* x_676; lean_object* x_677; uint8_t x_678; uint8_t x_679; lean_object* x_680; lean_object* x_681; lean_object* x_682; lean_object* x_683; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); -lean_dec(x_51); -x_658 = lean_st_ref_take(x_8, x_494); -x_659 = lean_ctor_get(x_658, 0); -lean_inc(x_659); -x_660 = lean_ctor_get(x_658, 1); +lean_object* x_660; lean_object* x_661; lean_object* x_662; lean_object* x_663; +lean_dec(x_503); +x_660 = lean_ctor_get(x_655, 0); lean_inc(x_660); -lean_dec(x_658); -x_661 = lean_ctor_get(x_659, 0); +x_661 = lean_ctor_get(x_655, 1); lean_inc(x_661); -x_662 = lean_ctor_get(x_659, 1); -lean_inc(x_662); -x_663 = lean_ctor_get(x_659, 2); -lean_inc(x_663); -x_664 = lean_ctor_get(x_659, 3); +if (lean_is_exclusive(x_655)) { + lean_ctor_release(x_655, 0); + lean_ctor_release(x_655, 1); + x_662 = x_655; +} else { + lean_dec_ref(x_655); + x_662 = lean_box(0); +} +if (lean_is_scalar(x_662)) { + x_663 = lean_alloc_ctor(1, 2, 0); +} else { + x_663 = x_662; +} +lean_ctor_set(x_663, 0, x_660); +lean_ctor_set(x_663, 1, x_661); +return x_663; +} +} +else +{ +lean_object* x_664; lean_object* x_665; lean_object* x_666; lean_object* x_667; +lean_dec(x_503); +lean_dec(x_499); +lean_dec(x_50); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_664 = lean_ctor_get(x_653, 0); lean_inc(x_664); -if (lean_is_exclusive(x_659)) { - lean_ctor_release(x_659, 0); - lean_ctor_release(x_659, 1); - lean_ctor_release(x_659, 2); - lean_ctor_release(x_659, 3); - x_665 = x_659; +x_665 = lean_ctor_get(x_653, 1); +lean_inc(x_665); +if (lean_is_exclusive(x_653)) { + lean_ctor_release(x_653, 0); + lean_ctor_release(x_653, 1); + x_666 = x_653; } else { - lean_dec_ref(x_659); - x_665 = lean_box(0); + lean_dec_ref(x_653); + x_666 = lean_box(0); } -x_666 = lean_unsigned_to_nat(1u); -x_667 = lean_nat_add(x_662, x_666); -if (lean_is_scalar(x_665)) { - x_668 = lean_alloc_ctor(0, 4, 0); +if (lean_is_scalar(x_666)) { + x_667 = lean_alloc_ctor(1, 2, 0); } else { - x_668 = x_665; + x_667 = x_666; } -lean_ctor_set(x_668, 0, x_661); -lean_ctor_set(x_668, 1, x_667); -lean_ctor_set(x_668, 2, x_663); -lean_ctor_set(x_668, 3, x_664); -x_669 = lean_st_ref_set(x_8, x_668, x_660); -x_670 = lean_ctor_get(x_669, 1); -lean_inc(x_670); -lean_dec(x_669); -x_671 = lean_ctor_get(x_3, 0); -lean_inc(x_671); -x_672 = lean_ctor_get(x_3, 1); -lean_inc(x_672); -x_673 = lean_ctor_get(x_3, 2); +lean_ctor_set(x_667, 0, x_664); +lean_ctor_set(x_667, 1, x_665); +return x_667; +} +} +} +else +{ +lean_object* x_668; lean_object* x_669; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); +lean_dec(x_51); +x_668 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_669 = l_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode(x_668, x_503, x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +lean_dec(x_503); +return x_669; +} +} +else +{ +lean_object* x_670; lean_object* x_671; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); +lean_dec(x_51); +x_670 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_671 = l_Lean_Elab_Term_Do_ToCodeBlock_doMatchToCode(x_670, x_503, x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +return x_671; +} +} +else +{ +lean_object* x_672; lean_object* x_673; lean_object* x_674; lean_object* x_675; lean_object* x_676; lean_object* x_677; lean_object* x_678; lean_object* x_679; lean_object* x_680; lean_object* x_681; lean_object* x_682; lean_object* x_683; lean_object* x_684; lean_object* x_685; lean_object* x_686; lean_object* x_687; lean_object* x_688; lean_object* x_689; lean_object* x_690; lean_object* x_691; uint8_t x_692; uint8_t x_693; lean_object* x_694; lean_object* x_695; lean_object* x_696; lean_object* x_697; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); +lean_dec(x_51); +x_672 = lean_st_ref_take(x_8, x_501); +x_673 = lean_ctor_get(x_672, 0); lean_inc(x_673); -x_674 = lean_ctor_get(x_3, 3); +x_674 = lean_ctor_get(x_672, 1); lean_inc(x_674); -x_675 = lean_ctor_get(x_3, 4); +lean_dec(x_672); +x_675 = lean_ctor_get(x_673, 0); lean_inc(x_675); -x_676 = lean_ctor_get(x_3, 5); +x_676 = lean_ctor_get(x_673, 1); lean_inc(x_676); -x_677 = lean_ctor_get(x_3, 6); +x_677 = lean_ctor_get(x_673, 2); lean_inc(x_677); -x_678 = lean_ctor_get_uint8(x_3, sizeof(void*)*8); -x_679 = lean_ctor_get_uint8(x_3, sizeof(void*)*8 + 1); +x_678 = lean_ctor_get(x_673, 3); +lean_inc(x_678); +if (lean_is_exclusive(x_673)) { + lean_ctor_release(x_673, 0); + lean_ctor_release(x_673, 1); + lean_ctor_release(x_673, 2); + lean_ctor_release(x_673, 3); + x_679 = x_673; +} else { + lean_dec_ref(x_673); + x_679 = lean_box(0); +} +x_680 = lean_unsigned_to_nat(1u); +x_681 = lean_nat_add(x_676, x_680); +if (lean_is_scalar(x_679)) { + x_682 = lean_alloc_ctor(0, 4, 0); +} else { + x_682 = x_679; +} +lean_ctor_set(x_682, 0, x_675); +lean_ctor_set(x_682, 1, x_681); +lean_ctor_set(x_682, 2, x_677); +lean_ctor_set(x_682, 3, x_678); +x_683 = lean_st_ref_set(x_8, x_682, x_674); +x_684 = lean_ctor_get(x_683, 1); +lean_inc(x_684); +lean_dec(x_683); +x_685 = lean_ctor_get(x_3, 0); +lean_inc(x_685); +x_686 = lean_ctor_get(x_3, 1); +lean_inc(x_686); +x_687 = lean_ctor_get(x_3, 2); +lean_inc(x_687); +x_688 = lean_ctor_get(x_3, 3); +lean_inc(x_688); +x_689 = lean_ctor_get(x_3, 4); +lean_inc(x_689); +x_690 = lean_ctor_get(x_3, 5); +lean_inc(x_690); +x_691 = lean_ctor_get(x_3, 6); +lean_inc(x_691); +x_692 = lean_ctor_get_uint8(x_3, sizeof(void*)*8); +x_693 = lean_ctor_get_uint8(x_3, sizeof(void*)*8 + 1); if (lean_is_exclusive(x_3)) { lean_ctor_release(x_3, 0); lean_ctor_release(x_3, 1); @@ -44585,339 +44650,168 @@ if (lean_is_exclusive(x_3)) { lean_ctor_release(x_3, 5); lean_ctor_release(x_3, 6); lean_ctor_release(x_3, 7); - x_680 = x_3; + x_694 = x_3; } else { lean_dec_ref(x_3); - x_680 = lean_box(0); + x_694 = lean_box(0); } -if (lean_is_scalar(x_680)) { - x_681 = lean_alloc_ctor(0, 8, 2); +if (lean_is_scalar(x_694)) { + x_695 = lean_alloc_ctor(0, 8, 2); } else { - x_681 = x_680; + x_695 = x_694; } -lean_ctor_set(x_681, 0, x_671); -lean_ctor_set(x_681, 1, x_672); -lean_ctor_set(x_681, 2, x_673); -lean_ctor_set(x_681, 3, x_674); -lean_ctor_set(x_681, 4, x_675); -lean_ctor_set(x_681, 5, x_676); -lean_ctor_set(x_681, 6, x_677); -lean_ctor_set(x_681, 7, x_662); -lean_ctor_set_uint8(x_681, sizeof(void*)*8, x_678); -lean_ctor_set_uint8(x_681, sizeof(void*)*8 + 1, x_679); -x_682 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_683 = l_Lean_Elab_Term_Do_ToCodeBlock_doForToCode(x_682, x_496, x_50, x_2, x_681, x_4, x_5, x_6, x_492, x_8, x_670); -lean_dec(x_496); -return x_683; +lean_ctor_set(x_695, 0, x_685); +lean_ctor_set(x_695, 1, x_686); +lean_ctor_set(x_695, 2, x_687); +lean_ctor_set(x_695, 3, x_688); +lean_ctor_set(x_695, 4, x_689); +lean_ctor_set(x_695, 5, x_690); +lean_ctor_set(x_695, 6, x_691); +lean_ctor_set(x_695, 7, x_676); +lean_ctor_set_uint8(x_695, sizeof(void*)*8, x_692); +lean_ctor_set_uint8(x_695, sizeof(void*)*8 + 1, x_693); +x_696 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_697 = l_Lean_Elab_Term_Do_ToCodeBlock_doForToCode(x_696, x_503, x_50, x_2, x_695, x_4, x_5, x_6, x_499, x_8, x_684); +lean_dec(x_503); +return x_697; } } else { -lean_object* x_684; lean_object* x_685; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_698; lean_object* x_699; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_684 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_685 = l_Lean_Elab_Term_Do_ToCodeBlock_doUnlessToCode(x_684, x_496, x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -return x_685; +x_698 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_699 = l_Lean_Elab_Term_Do_ToCodeBlock_doUnlessToCode(x_698, x_503, x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +return x_699; } } else { -lean_object* x_686; lean_object* x_687; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_700; lean_object* x_701; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_686 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_687 = l_Lean_Elab_Term_Do_ToCodeBlock_doIfToCode(x_686, x_496, x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -return x_687; +x_700 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_701 = l_Lean_Elab_Term_Do_ToCodeBlock_doIfToCode(x_700, x_503, x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +return x_701; } } else { -lean_object* x_688; lean_object* x_689; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_702; lean_object* x_703; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_688 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_689 = l_Lean_Elab_Term_Do_ToCodeBlock_doReassignArrowToCode(x_688, x_496, x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -lean_dec(x_496); -return x_689; +x_702 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_703 = l_Lean_Elab_Term_Do_ToCodeBlock_doReassignArrowToCode(x_702, x_503, x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +lean_dec(x_503); +return x_703; } } else { -lean_object* x_690; lean_object* x_691; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_704; lean_object* x_705; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); -x_690 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9; -x_691 = l_Lean_Elab_Term_Do_ToCodeBlock_doLetArrowToCode(x_690, x_496, x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -return x_691; +x_704 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; +x_705 = l_Lean_Elab_Term_Do_ToCodeBlock_doLetArrowToCode(x_704, x_503, x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +return x_705; } } else { -lean_object* x_692; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_706; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); lean_inc(x_8); -lean_inc(x_492); +lean_inc(x_499); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_692 = l_Lean_Elab_Term_Do_getDoReassignVars(x_496, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -if (lean_obj_tag(x_692) == 0) +x_706 = l_Lean_Elab_Term_Do_getDoReassignVars(x_503, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +if (lean_obj_tag(x_706) == 0) { -lean_object* x_693; lean_object* x_694; lean_object* x_695; -x_693 = lean_ctor_get(x_692, 0); -lean_inc(x_693); -x_694 = lean_ctor_get(x_692, 1); -lean_inc(x_694); -lean_dec(x_692); +lean_object* x_707; lean_object* x_708; lean_object* x_709; +x_707 = lean_ctor_get(x_706, 0); +lean_inc(x_707); +x_708 = lean_ctor_get(x_706, 1); +lean_inc(x_708); +lean_dec(x_706); lean_inc(x_5); -x_695 = l_Lean_Elab_Term_Do_ToCodeBlock_checkReassignable(x_693, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_694); -if (lean_obj_tag(x_695) == 0) +x_709 = l_Lean_Elab_Term_Do_ToCodeBlock_checkReassignable(x_707, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_708); +if (lean_obj_tag(x_709) == 0) { -lean_object* x_696; lean_object* x_697; -x_696 = lean_ctor_get(x_695, 1); -lean_inc(x_696); -lean_dec(x_695); -lean_inc(x_8); -lean_inc(x_492); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -x_697 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_492, x_8, x_696); -if (lean_obj_tag(x_697) == 0) -{ -lean_object* x_698; lean_object* x_699; lean_object* x_700; -x_698 = lean_ctor_get(x_697, 0); -lean_inc(x_698); -x_699 = lean_ctor_get(x_697, 1); -lean_inc(x_699); -lean_dec(x_697); -x_700 = l_Lean_Elab_Term_Do_mkReassignCore(x_693, x_496, x_698, x_3, x_4, x_5, x_6, x_492, x_8, x_699); -return x_700; -} -else -{ -lean_object* x_701; lean_object* x_702; lean_object* x_703; lean_object* x_704; -lean_dec(x_693); -lean_dec(x_496); -lean_dec(x_492); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_701 = lean_ctor_get(x_697, 0); -lean_inc(x_701); -x_702 = lean_ctor_get(x_697, 1); -lean_inc(x_702); -if (lean_is_exclusive(x_697)) { - lean_ctor_release(x_697, 0); - lean_ctor_release(x_697, 1); - x_703 = x_697; -} else { - lean_dec_ref(x_697); - x_703 = lean_box(0); -} -if (lean_is_scalar(x_703)) { - x_704 = lean_alloc_ctor(1, 2, 0); -} else { - x_704 = x_703; -} -lean_ctor_set(x_704, 0, x_701); -lean_ctor_set(x_704, 1, x_702); -return x_704; -} -} -else -{ -lean_object* x_705; lean_object* x_706; lean_object* x_707; lean_object* x_708; -lean_dec(x_693); -lean_dec(x_496); -lean_dec(x_492); -lean_dec(x_50); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_705 = lean_ctor_get(x_695, 0); -lean_inc(x_705); -x_706 = lean_ctor_get(x_695, 1); -lean_inc(x_706); -if (lean_is_exclusive(x_695)) { - lean_ctor_release(x_695, 0); - lean_ctor_release(x_695, 1); - x_707 = x_695; -} else { - lean_dec_ref(x_695); - x_707 = lean_box(0); -} -if (lean_is_scalar(x_707)) { - x_708 = lean_alloc_ctor(1, 2, 0); -} else { - x_708 = x_707; -} -lean_ctor_set(x_708, 0, x_705); -lean_ctor_set(x_708, 1, x_706); -return x_708; -} -} -else -{ -lean_object* x_709; lean_object* x_710; lean_object* x_711; lean_object* x_712; -lean_dec(x_496); -lean_dec(x_492); -lean_dec(x_50); -lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_709 = lean_ctor_get(x_692, 0); -lean_inc(x_709); -x_710 = lean_ctor_get(x_692, 1); +lean_object* x_710; lean_object* x_711; +x_710 = lean_ctor_get(x_709, 1); lean_inc(x_710); -if (lean_is_exclusive(x_692)) { - lean_ctor_release(x_692, 0); - lean_ctor_release(x_692, 1); - x_711 = x_692; -} else { - lean_dec_ref(x_692); - x_711 = lean_box(0); -} -if (lean_is_scalar(x_711)) { - x_712 = lean_alloc_ctor(1, 2, 0); -} else { - x_712 = x_711; -} -lean_ctor_set(x_712, 0, x_709); -lean_ctor_set(x_712, 1, x_710); -return x_712; -} -} -} -else -{ -lean_object* x_713; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); -lean_dec(x_51); +lean_dec(x_709); lean_inc(x_8); -lean_inc(x_492); +lean_inc(x_499); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_713 = l_Lean_Elab_Term_Do_getDoLetRecVars(x_496, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -if (lean_obj_tag(x_713) == 0) +x_711 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_2, x_3, x_4, x_5, x_6, x_499, x_8, x_710); +if (lean_obj_tag(x_711) == 0) { -lean_object* x_714; lean_object* x_715; lean_object* x_716; lean_object* x_717; lean_object* x_718; uint8_t x_719; lean_object* x_720; lean_object* x_721; lean_object* x_722; lean_object* x_723; lean_object* x_724; -x_714 = lean_ctor_get(x_713, 0); -lean_inc(x_714); -x_715 = lean_ctor_get(x_713, 1); +lean_object* x_712; lean_object* x_713; lean_object* x_714; +x_712 = lean_ctor_get(x_711, 0); +lean_inc(x_712); +x_713 = lean_ctor_get(x_711, 1); +lean_inc(x_713); +lean_dec(x_711); +x_714 = l_Lean_Elab_Term_Do_mkReassignCore(x_707, x_503, x_712, x_3, x_4, x_5, x_6, x_499, x_8, x_713); +return x_714; +} +else +{ +lean_object* x_715; lean_object* x_716; lean_object* x_717; lean_object* x_718; +lean_dec(x_707); +lean_dec(x_503); +lean_dec(x_499); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_715 = lean_ctor_get(x_711, 0); lean_inc(x_715); -lean_dec(x_713); -x_716 = lean_ctor_get(x_2, 0); +x_716 = lean_ctor_get(x_711, 1); lean_inc(x_716); -x_717 = lean_ctor_get(x_2, 1); -lean_inc(x_717); -x_718 = lean_ctor_get(x_2, 2); -lean_inc(x_718); -x_719 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); -if (lean_is_exclusive(x_2)) { - lean_ctor_release(x_2, 0); - lean_ctor_release(x_2, 1); - lean_ctor_release(x_2, 2); - x_720 = x_2; +if (lean_is_exclusive(x_711)) { + lean_ctor_release(x_711, 0); + lean_ctor_release(x_711, 1); + x_717 = x_711; } else { - lean_dec_ref(x_2); - x_720 = lean_box(0); + lean_dec_ref(x_711); + x_717 = lean_box(0); } -x_721 = lean_unsigned_to_nat(0u); -x_722 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_714, x_714, x_721, x_718); -if (lean_is_scalar(x_720)) { - x_723 = lean_alloc_ctor(0, 3, 1); +if (lean_is_scalar(x_717)) { + x_718 = lean_alloc_ctor(1, 2, 0); } else { - x_723 = x_720; + x_718 = x_717; } -lean_ctor_set(x_723, 0, x_716); -lean_ctor_set(x_723, 1, x_717); -lean_ctor_set(x_723, 2, x_722); -lean_ctor_set_uint8(x_723, sizeof(void*)*3, x_719); -x_724 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_723, x_3, x_4, x_5, x_6, x_492, x_8, x_715); -if (lean_obj_tag(x_724) == 0) -{ -lean_object* x_725; lean_object* x_726; lean_object* x_727; lean_object* x_728; lean_object* x_729; -x_725 = lean_ctor_get(x_724, 0); -lean_inc(x_725); -x_726 = lean_ctor_get(x_724, 1); -lean_inc(x_726); -if (lean_is_exclusive(x_724)) { - lean_ctor_release(x_724, 0); - lean_ctor_release(x_724, 1); - x_727 = x_724; -} else { - lean_dec_ref(x_724); - x_727 = lean_box(0); -} -x_728 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_714, x_496, x_725); -if (lean_is_scalar(x_727)) { - x_729 = lean_alloc_ctor(0, 2, 0); -} else { - x_729 = x_727; -} -lean_ctor_set(x_729, 0, x_728); -lean_ctor_set(x_729, 1, x_726); -return x_729; -} -else -{ -lean_object* x_730; lean_object* x_731; lean_object* x_732; lean_object* x_733; -lean_dec(x_714); -lean_dec(x_496); -x_730 = lean_ctor_get(x_724, 0); -lean_inc(x_730); -x_731 = lean_ctor_get(x_724, 1); -lean_inc(x_731); -if (lean_is_exclusive(x_724)) { - lean_ctor_release(x_724, 0); - lean_ctor_release(x_724, 1); - x_732 = x_724; -} else { - lean_dec_ref(x_724); - x_732 = lean_box(0); -} -if (lean_is_scalar(x_732)) { - x_733 = lean_alloc_ctor(1, 2, 0); -} else { - x_733 = x_732; -} -lean_ctor_set(x_733, 0, x_730); -lean_ctor_set(x_733, 1, x_731); -return x_733; +lean_ctor_set(x_718, 0, x_715); +lean_ctor_set(x_718, 1, x_716); +return x_718; } } else { -lean_object* x_734; lean_object* x_735; lean_object* x_736; lean_object* x_737; -lean_dec(x_496); -lean_dec(x_492); +lean_object* x_719; lean_object* x_720; lean_object* x_721; lean_object* x_722; +lean_dec(x_707); +lean_dec(x_503); +lean_dec(x_499); lean_dec(x_50); lean_dec(x_8); lean_dec(x_6); @@ -44925,227 +44819,398 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_734 = lean_ctor_get(x_713, 0); -lean_inc(x_734); -x_735 = lean_ctor_get(x_713, 1); -lean_inc(x_735); -if (lean_is_exclusive(x_713)) { - lean_ctor_release(x_713, 0); - lean_ctor_release(x_713, 1); - x_736 = x_713; +x_719 = lean_ctor_get(x_709, 0); +lean_inc(x_719); +x_720 = lean_ctor_get(x_709, 1); +lean_inc(x_720); +if (lean_is_exclusive(x_709)) { + lean_ctor_release(x_709, 0); + lean_ctor_release(x_709, 1); + x_721 = x_709; } else { - lean_dec_ref(x_713); - x_736 = lean_box(0); + lean_dec_ref(x_709); + x_721 = lean_box(0); } -if (lean_is_scalar(x_736)) { - x_737 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_721)) { + x_722 = lean_alloc_ctor(1, 2, 0); } else { - x_737 = x_736; + x_722 = x_721; } -lean_ctor_set(x_737, 0, x_734); -lean_ctor_set(x_737, 1, x_735); -return x_737; +lean_ctor_set(x_722, 0, x_719); +lean_ctor_set(x_722, 1, x_720); +return x_722; +} +} +else +{ +lean_object* x_723; lean_object* x_724; lean_object* x_725; lean_object* x_726; +lean_dec(x_503); +lean_dec(x_499); +lean_dec(x_50); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_723 = lean_ctor_get(x_706, 0); +lean_inc(x_723); +x_724 = lean_ctor_get(x_706, 1); +lean_inc(x_724); +if (lean_is_exclusive(x_706)) { + lean_ctor_release(x_706, 0); + lean_ctor_release(x_706, 1); + x_725 = x_706; +} else { + lean_dec_ref(x_706); + x_725 = lean_box(0); +} +if (lean_is_scalar(x_725)) { + x_726 = lean_alloc_ctor(1, 2, 0); +} else { + x_726 = x_725; +} +lean_ctor_set(x_726, 0, x_723); +lean_ctor_set(x_726, 1, x_724); +return x_726; } } } else { -lean_object* x_738; lean_object* x_739; lean_object* x_740; lean_object* x_741; lean_object* x_742; lean_object* x_743; uint8_t x_744; lean_object* x_745; lean_object* x_746; lean_object* x_747; lean_object* x_748; lean_object* x_749; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); -lean_dec(x_51); -x_738 = l_Lean_Elab_Term_Do_getDoHaveVar(x_496); -x_739 = l_Lean_mkOptionalNode___closed__2; -x_740 = lean_array_push(x_739, x_738); -x_741 = lean_ctor_get(x_2, 0); -lean_inc(x_741); -x_742 = lean_ctor_get(x_2, 1); -lean_inc(x_742); -x_743 = lean_ctor_get(x_2, 2); -lean_inc(x_743); -x_744 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); -if (lean_is_exclusive(x_2)) { - lean_ctor_release(x_2, 0); - lean_ctor_release(x_2, 1); - lean_ctor_release(x_2, 2); - x_745 = x_2; -} else { - lean_dec_ref(x_2); - x_745 = lean_box(0); -} -x_746 = lean_unsigned_to_nat(0u); -x_747 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_740, x_740, x_746, x_743); -if (lean_is_scalar(x_745)) { - x_748 = lean_alloc_ctor(0, 3, 1); -} else { - x_748 = x_745; -} -lean_ctor_set(x_748, 0, x_741); -lean_ctor_set(x_748, 1, x_742); -lean_ctor_set(x_748, 2, x_747); -lean_ctor_set_uint8(x_748, sizeof(void*)*3, x_744); -x_749 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_748, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -if (lean_obj_tag(x_749) == 0) -{ -lean_object* x_750; lean_object* x_751; lean_object* x_752; lean_object* x_753; lean_object* x_754; -x_750 = lean_ctor_get(x_749, 0); -lean_inc(x_750); -x_751 = lean_ctor_get(x_749, 1); -lean_inc(x_751); -if (lean_is_exclusive(x_749)) { - lean_ctor_release(x_749, 0); - lean_ctor_release(x_749, 1); - x_752 = x_749; -} else { - lean_dec_ref(x_749); - x_752 = lean_box(0); -} -x_753 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_740, x_496, x_750); -if (lean_is_scalar(x_752)) { - x_754 = lean_alloc_ctor(0, 2, 0); -} else { - x_754 = x_752; -} -lean_ctor_set(x_754, 0, x_753); -lean_ctor_set(x_754, 1, x_751); -return x_754; -} -else -{ -lean_object* x_755; lean_object* x_756; lean_object* x_757; lean_object* x_758; -lean_dec(x_740); -lean_dec(x_496); -x_755 = lean_ctor_get(x_749, 0); -lean_inc(x_755); -x_756 = lean_ctor_get(x_749, 1); -lean_inc(x_756); -if (lean_is_exclusive(x_749)) { - lean_ctor_release(x_749, 0); - lean_ctor_release(x_749, 1); - x_757 = x_749; -} else { - lean_dec_ref(x_749); - x_757 = lean_box(0); -} -if (lean_is_scalar(x_757)) { - x_758 = lean_alloc_ctor(1, 2, 0); -} else { - x_758 = x_757; -} -lean_ctor_set(x_758, 0, x_755); -lean_ctor_set(x_758, 1, x_756); -return x_758; -} -} -} -else -{ -lean_object* x_759; -lean_dec(x_498); -lean_dec(x_487); -lean_dec(x_486); +lean_object* x_727; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); lean_dec(x_51); lean_inc(x_8); -lean_inc(x_492); +lean_inc(x_499); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_759 = l_Lean_Elab_Term_Do_getDoLetVars(x_496, x_3, x_4, x_5, x_6, x_492, x_8, x_494); -if (lean_obj_tag(x_759) == 0) +x_727 = l_Lean_Elab_Term_Do_getDoLetRecVars(x_503, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +if (lean_obj_tag(x_727) == 0) { -lean_object* x_760; lean_object* x_761; lean_object* x_762; lean_object* x_763; lean_object* x_764; uint8_t x_765; lean_object* x_766; lean_object* x_767; lean_object* x_768; lean_object* x_769; lean_object* x_770; -x_760 = lean_ctor_get(x_759, 0); -lean_inc(x_760); -x_761 = lean_ctor_get(x_759, 1); -lean_inc(x_761); -lean_dec(x_759); -x_762 = lean_ctor_get(x_2, 0); -lean_inc(x_762); -x_763 = lean_ctor_get(x_2, 1); -lean_inc(x_763); -x_764 = lean_ctor_get(x_2, 2); -lean_inc(x_764); -x_765 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); +lean_object* x_728; lean_object* x_729; lean_object* x_730; lean_object* x_731; lean_object* x_732; uint8_t x_733; lean_object* x_734; lean_object* x_735; lean_object* x_736; lean_object* x_737; lean_object* x_738; +x_728 = lean_ctor_get(x_727, 0); +lean_inc(x_728); +x_729 = lean_ctor_get(x_727, 1); +lean_inc(x_729); +lean_dec(x_727); +x_730 = lean_ctor_get(x_2, 0); +lean_inc(x_730); +x_731 = lean_ctor_get(x_2, 1); +lean_inc(x_731); +x_732 = lean_ctor_get(x_2, 2); +lean_inc(x_732); +x_733 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); if (lean_is_exclusive(x_2)) { lean_ctor_release(x_2, 0); lean_ctor_release(x_2, 1); lean_ctor_release(x_2, 2); - x_766 = x_2; + x_734 = x_2; } else { lean_dec_ref(x_2); + x_734 = lean_box(0); +} +x_735 = lean_unsigned_to_nat(0u); +x_736 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_728, x_728, x_735, x_732); +if (lean_is_scalar(x_734)) { + x_737 = lean_alloc_ctor(0, 3, 1); +} else { + x_737 = x_734; +} +lean_ctor_set(x_737, 0, x_730); +lean_ctor_set(x_737, 1, x_731); +lean_ctor_set(x_737, 2, x_736); +lean_ctor_set_uint8(x_737, sizeof(void*)*3, x_733); +x_738 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_737, x_3, x_4, x_5, x_6, x_499, x_8, x_729); +if (lean_obj_tag(x_738) == 0) +{ +lean_object* x_739; lean_object* x_740; lean_object* x_741; lean_object* x_742; lean_object* x_743; +x_739 = lean_ctor_get(x_738, 0); +lean_inc(x_739); +x_740 = lean_ctor_get(x_738, 1); +lean_inc(x_740); +if (lean_is_exclusive(x_738)) { + lean_ctor_release(x_738, 0); + lean_ctor_release(x_738, 1); + x_741 = x_738; +} else { + lean_dec_ref(x_738); + x_741 = lean_box(0); +} +x_742 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_728, x_503, x_739); +if (lean_is_scalar(x_741)) { + x_743 = lean_alloc_ctor(0, 2, 0); +} else { + x_743 = x_741; +} +lean_ctor_set(x_743, 0, x_742); +lean_ctor_set(x_743, 1, x_740); +return x_743; +} +else +{ +lean_object* x_744; lean_object* x_745; lean_object* x_746; lean_object* x_747; +lean_dec(x_728); +lean_dec(x_503); +x_744 = lean_ctor_get(x_738, 0); +lean_inc(x_744); +x_745 = lean_ctor_get(x_738, 1); +lean_inc(x_745); +if (lean_is_exclusive(x_738)) { + lean_ctor_release(x_738, 0); + lean_ctor_release(x_738, 1); + x_746 = x_738; +} else { + lean_dec_ref(x_738); + x_746 = lean_box(0); +} +if (lean_is_scalar(x_746)) { + x_747 = lean_alloc_ctor(1, 2, 0); +} else { + x_747 = x_746; +} +lean_ctor_set(x_747, 0, x_744); +lean_ctor_set(x_747, 1, x_745); +return x_747; +} +} +else +{ +lean_object* x_748; lean_object* x_749; lean_object* x_750; lean_object* x_751; +lean_dec(x_503); +lean_dec(x_499); +lean_dec(x_50); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_748 = lean_ctor_get(x_727, 0); +lean_inc(x_748); +x_749 = lean_ctor_get(x_727, 1); +lean_inc(x_749); +if (lean_is_exclusive(x_727)) { + lean_ctor_release(x_727, 0); + lean_ctor_release(x_727, 1); + x_750 = x_727; +} else { + lean_dec_ref(x_727); + x_750 = lean_box(0); +} +if (lean_is_scalar(x_750)) { + x_751 = lean_alloc_ctor(1, 2, 0); +} else { + x_751 = x_750; +} +lean_ctor_set(x_751, 0, x_748); +lean_ctor_set(x_751, 1, x_749); +return x_751; +} +} +} +else +{ +lean_object* x_752; lean_object* x_753; lean_object* x_754; lean_object* x_755; lean_object* x_756; lean_object* x_757; uint8_t x_758; lean_object* x_759; lean_object* x_760; lean_object* x_761; lean_object* x_762; lean_object* x_763; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); +lean_dec(x_51); +x_752 = l_Lean_Elab_Term_Do_getDoHaveVar(x_503); +x_753 = l_Lean_mkOptionalNode___closed__2; +x_754 = lean_array_push(x_753, x_752); +x_755 = lean_ctor_get(x_2, 0); +lean_inc(x_755); +x_756 = lean_ctor_get(x_2, 1); +lean_inc(x_756); +x_757 = lean_ctor_get(x_2, 2); +lean_inc(x_757); +x_758 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); +if (lean_is_exclusive(x_2)) { + lean_ctor_release(x_2, 0); + lean_ctor_release(x_2, 1); + lean_ctor_release(x_2, 2); + x_759 = x_2; +} else { + lean_dec_ref(x_2); + x_759 = lean_box(0); +} +x_760 = lean_unsigned_to_nat(0u); +x_761 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_754, x_754, x_760, x_757); +if (lean_is_scalar(x_759)) { + x_762 = lean_alloc_ctor(0, 3, 1); +} else { + x_762 = x_759; +} +lean_ctor_set(x_762, 0, x_755); +lean_ctor_set(x_762, 1, x_756); +lean_ctor_set(x_762, 2, x_761); +lean_ctor_set_uint8(x_762, sizeof(void*)*3, x_758); +x_763 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_762, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +if (lean_obj_tag(x_763) == 0) +{ +lean_object* x_764; lean_object* x_765; lean_object* x_766; lean_object* x_767; lean_object* x_768; +x_764 = lean_ctor_get(x_763, 0); +lean_inc(x_764); +x_765 = lean_ctor_get(x_763, 1); +lean_inc(x_765); +if (lean_is_exclusive(x_763)) { + lean_ctor_release(x_763, 0); + lean_ctor_release(x_763, 1); + x_766 = x_763; +} else { + lean_dec_ref(x_763); x_766 = lean_box(0); } -x_767 = lean_unsigned_to_nat(0u); -x_768 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_760, x_760, x_767, x_764); +x_767 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_754, x_503, x_764); if (lean_is_scalar(x_766)) { - x_769 = lean_alloc_ctor(0, 3, 1); + x_768 = lean_alloc_ctor(0, 2, 0); } else { - x_769 = x_766; + x_768 = x_766; } -lean_ctor_set(x_769, 0, x_762); -lean_ctor_set(x_769, 1, x_763); -lean_ctor_set(x_769, 2, x_768); -lean_ctor_set_uint8(x_769, sizeof(void*)*3, x_765); -x_770 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_769, x_3, x_4, x_5, x_6, x_492, x_8, x_761); -if (lean_obj_tag(x_770) == 0) -{ -lean_object* x_771; lean_object* x_772; lean_object* x_773; lean_object* x_774; lean_object* x_775; -x_771 = lean_ctor_get(x_770, 0); -lean_inc(x_771); -x_772 = lean_ctor_get(x_770, 1); -lean_inc(x_772); -if (lean_is_exclusive(x_770)) { - lean_ctor_release(x_770, 0); - lean_ctor_release(x_770, 1); - x_773 = x_770; -} else { - lean_dec_ref(x_770); - x_773 = lean_box(0); -} -x_774 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_760, x_496, x_771); -if (lean_is_scalar(x_773)) { - x_775 = lean_alloc_ctor(0, 2, 0); -} else { - x_775 = x_773; -} -lean_ctor_set(x_775, 0, x_774); -lean_ctor_set(x_775, 1, x_772); -return x_775; +lean_ctor_set(x_768, 0, x_767); +lean_ctor_set(x_768, 1, x_765); +return x_768; } else { -lean_object* x_776; lean_object* x_777; lean_object* x_778; lean_object* x_779; -lean_dec(x_760); -lean_dec(x_496); -x_776 = lean_ctor_get(x_770, 0); +lean_object* x_769; lean_object* x_770; lean_object* x_771; lean_object* x_772; +lean_dec(x_754); +lean_dec(x_503); +x_769 = lean_ctor_get(x_763, 0); +lean_inc(x_769); +x_770 = lean_ctor_get(x_763, 1); +lean_inc(x_770); +if (lean_is_exclusive(x_763)) { + lean_ctor_release(x_763, 0); + lean_ctor_release(x_763, 1); + x_771 = x_763; +} else { + lean_dec_ref(x_763); + x_771 = lean_box(0); +} +if (lean_is_scalar(x_771)) { + x_772 = lean_alloc_ctor(1, 2, 0); +} else { + x_772 = x_771; +} +lean_ctor_set(x_772, 0, x_769); +lean_ctor_set(x_772, 1, x_770); +return x_772; +} +} +} +else +{ +lean_object* x_773; +lean_dec(x_505); +lean_dec(x_494); +lean_dec(x_493); +lean_dec(x_51); +lean_inc(x_8); +lean_inc(x_499); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_773 = l_Lean_Elab_Term_Do_getDoLetVars(x_503, x_3, x_4, x_5, x_6, x_499, x_8, x_501); +if (lean_obj_tag(x_773) == 0) +{ +lean_object* x_774; lean_object* x_775; lean_object* x_776; lean_object* x_777; lean_object* x_778; uint8_t x_779; lean_object* x_780; lean_object* x_781; lean_object* x_782; lean_object* x_783; lean_object* x_784; +x_774 = lean_ctor_get(x_773, 0); +lean_inc(x_774); +x_775 = lean_ctor_get(x_773, 1); +lean_inc(x_775); +lean_dec(x_773); +x_776 = lean_ctor_get(x_2, 0); lean_inc(x_776); -x_777 = lean_ctor_get(x_770, 1); +x_777 = lean_ctor_get(x_2, 1); lean_inc(x_777); -if (lean_is_exclusive(x_770)) { - lean_ctor_release(x_770, 0); - lean_ctor_release(x_770, 1); - x_778 = x_770; +x_778 = lean_ctor_get(x_2, 2); +lean_inc(x_778); +x_779 = lean_ctor_get_uint8(x_2, sizeof(void*)*3); +if (lean_is_exclusive(x_2)) { + lean_ctor_release(x_2, 0); + lean_ctor_release(x_2, 1); + lean_ctor_release(x_2, 2); + x_780 = x_2; } else { - lean_dec_ref(x_770); - x_778 = lean_box(0); + lean_dec_ref(x_2); + x_780 = lean_box(0); } -if (lean_is_scalar(x_778)) { - x_779 = lean_alloc_ctor(1, 2, 0); +x_781 = lean_unsigned_to_nat(0u); +x_782 = l_Array_iterateMAux___main___at_Lean_Elab_Term_Do_insertVars___spec__1(x_774, x_774, x_781, x_778); +if (lean_is_scalar(x_780)) { + x_783 = lean_alloc_ctor(0, 3, 1); } else { - x_779 = x_778; + x_783 = x_780; } -lean_ctor_set(x_779, 0, x_776); -lean_ctor_set(x_779, 1, x_777); -return x_779; +lean_ctor_set(x_783, 0, x_776); +lean_ctor_set(x_783, 1, x_777); +lean_ctor_set(x_783, 2, x_782); +lean_ctor_set_uint8(x_783, sizeof(void*)*3, x_779); +x_784 = l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode(x_50, x_783, x_3, x_4, x_5, x_6, x_499, x_8, x_775); +if (lean_obj_tag(x_784) == 0) +{ +lean_object* x_785; lean_object* x_786; lean_object* x_787; lean_object* x_788; lean_object* x_789; +x_785 = lean_ctor_get(x_784, 0); +lean_inc(x_785); +x_786 = lean_ctor_get(x_784, 1); +lean_inc(x_786); +if (lean_is_exclusive(x_784)) { + lean_ctor_release(x_784, 0); + lean_ctor_release(x_784, 1); + x_787 = x_784; +} else { + lean_dec_ref(x_784); + x_787 = lean_box(0); +} +x_788 = l_Lean_Elab_Term_Do_mkVarDeclCore(x_774, x_503, x_785); +if (lean_is_scalar(x_787)) { + x_789 = lean_alloc_ctor(0, 2, 0); +} else { + x_789 = x_787; +} +lean_ctor_set(x_789, 0, x_788); +lean_ctor_set(x_789, 1, x_786); +return x_789; +} +else +{ +lean_object* x_790; lean_object* x_791; lean_object* x_792; lean_object* x_793; +lean_dec(x_774); +lean_dec(x_503); +x_790 = lean_ctor_get(x_784, 0); +lean_inc(x_790); +x_791 = lean_ctor_get(x_784, 1); +lean_inc(x_791); +if (lean_is_exclusive(x_784)) { + lean_ctor_release(x_784, 0); + lean_ctor_release(x_784, 1); + x_792 = x_784; +} else { + lean_dec_ref(x_784); + x_792 = lean_box(0); +} +if (lean_is_scalar(x_792)) { + x_793 = lean_alloc_ctor(1, 2, 0); +} else { + x_793 = x_792; +} +lean_ctor_set(x_793, 0, x_790); +lean_ctor_set(x_793, 1, x_791); +return x_793; } } else { -lean_object* x_780; lean_object* x_781; lean_object* x_782; lean_object* x_783; -lean_dec(x_496); -lean_dec(x_492); +lean_object* x_794; lean_object* x_795; lean_object* x_796; lean_object* x_797; +lean_dec(x_503); +lean_dec(x_499); lean_dec(x_50); lean_dec(x_8); lean_dec(x_6); @@ -45153,47 +45218,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_780 = lean_ctor_get(x_759, 0); -lean_inc(x_780); -x_781 = lean_ctor_get(x_759, 1); -lean_inc(x_781); -if (lean_is_exclusive(x_759)) { - lean_ctor_release(x_759, 0); - lean_ctor_release(x_759, 1); - x_782 = x_759; +x_794 = lean_ctor_get(x_773, 0); +lean_inc(x_794); +x_795 = lean_ctor_get(x_773, 1); +lean_inc(x_795); +if (lean_is_exclusive(x_773)) { + lean_ctor_release(x_773, 0); + lean_ctor_release(x_773, 1); + x_796 = x_773; } else { - lean_dec_ref(x_759); - x_782 = lean_box(0); + lean_dec_ref(x_773); + x_796 = lean_box(0); } -if (lean_is_scalar(x_782)) { - x_783 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_796)) { + x_797 = lean_alloc_ctor(1, 2, 0); } else { - x_783 = x_782; + x_797 = x_796; } -lean_ctor_set(x_783, 0, x_780); -lean_ctor_set(x_783, 1, x_781); -return x_783; +lean_ctor_set(x_797, 0, x_794); +lean_ctor_set(x_797, 1, x_795); +return x_797; } } } else { -lean_object* x_784; lean_object* x_785; lean_object* x_786; lean_object* x_787; -lean_dec(x_487); -lean_dec(x_486); -x_784 = lean_box(0); +lean_object* x_798; lean_object* x_799; lean_object* x_800; lean_object* x_801; +lean_dec(x_494); +lean_dec(x_493); +x_798 = lean_box(0); if (lean_is_scalar(x_51)) { - x_785 = lean_alloc_ctor(1, 2, 0); + x_799 = lean_alloc_ctor(1, 2, 0); } else { - x_785 = x_51; + x_799 = x_51; } -lean_ctor_set(x_785, 0, x_496); -lean_ctor_set(x_785, 1, x_784); -x_786 = l_List_append___rarg(x_495, x_785); -x_787 = l_List_append___rarg(x_786, x_50); -x_1 = x_787; -x_7 = x_492; -x_9 = x_494; +lean_ctor_set(x_799, 0, x_503); +lean_ctor_set(x_799, 1, x_798); +x_800 = l_List_append___rarg(x_502, x_799); +x_801 = l_List_append___rarg(x_800, x_50); +x_1 = x_801; +x_7 = x_499; +x_9 = x_501; goto _start; } } @@ -45993,7 +46058,7 @@ x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); return x_5; } } -lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Do___hyg_22910_(lean_object* x_1) { +lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Do___hyg_22929_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; @@ -46840,6 +46905,10 @@ l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__8 = _init_l_Lean_Elab_Term lean_mark_persistent(l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__8); l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9 = _init_l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9(); lean_mark_persistent(l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__9); +l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__10 = _init_l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__10(); +lean_mark_persistent(l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__10); +l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11 = _init_l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11(); +lean_mark_persistent(l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11); l___private_Lean_Elab_Do_0__Lean_Elab_Term_Do_mkMonadAlias___closed__1 = _init_l___private_Lean_Elab_Do_0__Lean_Elab_Term_Do_mkMonadAlias___closed__1(); lean_mark_persistent(l___private_Lean_Elab_Do_0__Lean_Elab_Term_Do_mkMonadAlias___closed__1); l___private_Lean_Elab_Do_0__Lean_Elab_Term_Do_mkMonadAlias___closed__2 = _init_l___private_Lean_Elab_Do_0__Lean_Elab_Term_Do_mkMonadAlias___closed__2(); @@ -46859,7 +46928,7 @@ lean_mark_persistent(l___regBuiltin_Lean_Elab_Term_Do_elabDo___closed__1); res = l___regBuiltin_Lean_Elab_Term_Do_elabDo(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -res = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Do___hyg_22910_(lean_io_mk_world()); +res = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Do___hyg_22929_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); return lean_io_result_mk_ok(lean_box(0));