From b03589757a4711e5a86bb4b3b1345783e15ce7ca Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 15 Aug 2020 15:56:09 -0700 Subject: [PATCH] chore: update stage0 --- stage0/src/Lean/Elab/Binders.lean | 3 +- stage0/src/Lean/Elab/DoNotation.lean | 6 +- stage0/src/Lean/Elab/Match.lean | 8 +- stage0/src/Lean/Elab/StructInst.lean | 2 +- stage0/src/Lean/Elab/Structure.lean | 3 +- stage0/src/Lean/Elab/SyntheticMVars.lean | 2 +- stage0/src/Lean/Elab/Term.lean | 8 +- stage0/src/Lean/Meta/ExprDefEq.lean | 34 +- stage0/src/frontends/lean/builtin_exprs.cpp | 4 +- stage0/stdlib/Lean/Elab/App.c | 4 + stage0/stdlib/Lean/Elab/Binders.c | 354 +- stage0/stdlib/Lean/Elab/BuiltinNotation.c | 4 + stage0/stdlib/Lean/Elab/DoNotation.c | 1456 ++---- stage0/stdlib/Lean/Elab/Match.c | 1363 +++-- stage0/stdlib/Lean/Elab/StructInst.c | 5136 +++++++++---------- stage0/stdlib/Lean/Elab/Structure.c | 2057 ++++---- stage0/stdlib/Lean/Elab/Syntax.c | 2 + stage0/stdlib/Lean/Elab/SyntheticMVars.c | 300 +- stage0/stdlib/Lean/Elab/Term.c | 189 +- stage0/stdlib/Lean/Meta/ExprDefEq.c | 1481 +++--- stage0/stdlib/Lean/Parser/Tactic.c | 39 +- stage0/stdlib/Lean/Parser/Term.c | 1002 +--- 22 files changed, 5944 insertions(+), 7513 deletions(-) diff --git a/stage0/src/Lean/Elab/Binders.lean b/stage0/src/Lean/Elab/Binders.lean index b1b1b2d8c0..9c0325cbaf 100644 --- a/stage0/src/Lean/Elab/Binders.lean +++ b/stage0/src/Lean/Elab/Binders.lean @@ -388,8 +388,7 @@ def elabLetDeclAux (n : Name) (binders : Array Syntax) (typeStx : Syntax) (valSt (expectedType? : Option Expr) (useLetExpr : Bool) : TermElabM Expr := do (type, val) ← elabBinders binders $ fun xs => do { type ← elabType typeStx; - val ← elabTerm valStx type; - val ← withRef valStx $ ensureHasType type val; + val ← elabTermEnsuringType valStx type; type ← mkForall xs type; val ← mkLambda xs val; pure (type, val) diff --git a/stage0/src/Lean/Elab/DoNotation.lean b/stage0/src/Lean/Elab/DoNotation.lean index 275229744e..8d3acf95a1 100644 --- a/stage0/src/Lean/Elab/DoNotation.lean +++ b/stage0/src/Lean/Elab/DoNotation.lean @@ -194,16 +194,14 @@ private partial def processDoElemsAux (doElems : Array Syntax) (m bindInstVal : let actionStx := doElem.getArg 3; type ← elabType typeStx; let actionExpectedType := mkApp m type; - action ← elabTerm actionStx actionExpectedType; - action ← withRef actionStx $ ensureHasType actionExpectedType action; + action ← elabTermEnsuringType actionStx actionExpectedType; withLocalDecl id BinderInfo.default type $ fun x => processDoElemsAux (i+1) (elems.push { action := action, var := x }) else if doElem.getKind == `Lean.Parser.Term.doExpr then do when (i != doElems.size - 1) $ throwError ("unexpected 'do' expression element" ++ Format.line ++ doElem); let bodyStx := doElem.getArg 0; - body ← elabTerm bodyStx expectedType; - body ← ensureHasType expectedType body; + body ← elabTermEnsuringType bodyStx expectedType; mkBind m bindInstVal elems body else throwError ("unexpected 'do' expression element" ++ Format.line ++ doElem) diff --git a/stage0/src/Lean/Elab/Match.lean b/stage0/src/Lean/Elab/Match.lean index f46f89911e..155cf571ed 100644 --- a/stage0/src/Lean/Elab/Match.lean +++ b/stage0/src/Lean/Elab/Match.lean @@ -66,8 +66,7 @@ private partial def elabDiscrsAux (discrStxs : Array Syntax) (expectedType : Exp matchType ← whnf matchType; match matchType with | Expr.forallE _ d b _ => do - discr ← elabTerm discrStx d; - discr ← ensureHasType d discr; + discr ← elabTermEnsuringType discrStx d; trace `Elab.match fun _ => "discr #" ++ toString i ++ " " ++ discr ++ " : " ++ d; elabDiscrsAux (i+1) (b.instantiate1 discr) (discrs.push discr) | _ => throwError ("invalid type provided to match-expression, function type with arity #" ++ toString discrStxs ++ " expected") @@ -377,8 +376,7 @@ private partial def elabPatternsAux (patternStxs : Array Syntax) : Nat → Expr match matchType with | Expr.forallE _ d b _ => do let patternStx := patternStxs.get ⟨i, h⟩; - pattern ← elabTerm patternStx d; - pattern ← withRef patternStx $ ensureHasType d pattern; + pattern ← elabTermEnsuringType patternStx d; elabPatternsAux (i+1) (b.instantiate1 pattern) (patterns.push pattern) | _ => throwError "unexpected match type" else @@ -516,7 +514,7 @@ withRef alt.ref do trace `Elab.match fun _ => "patternVars: " ++ toString patternVars; withPatternVars patternVars fun patternVarDecls => do (altLHS, matchType) ← elabPatterns patternVarDecls alt.patterns matchType; - rhs ← elabTerm alt.rhs matchType; + rhs ← elabTermEnsuringType alt.rhs matchType; let xs := altLHS.fvarDecls.toArray.map LocalDecl.toExpr; rhs ← if xs.isEmpty then pure $ mkThunk rhs else mkLambda xs rhs; trace `Elab.match fun _ => "rhs: " ++ rhs; diff --git a/stage0/src/Lean/Elab/StructInst.lean b/stage0/src/Lean/Elab/StructInst.lean index 843251f3d5..8a284ca045 100644 --- a/stage0/src/Lean/Elab/StructInst.lean +++ b/stage0/src/Lean/Elab/StructInst.lean @@ -512,7 +512,7 @@ private partial def elabStruct : Struct → Option Expr → TermElabM (Expr × S pure (e, type, field::fields) }; match field.val with - | FieldVal.term stx => do val ← elabTerm stx (some d); val ← withRef stx $ ensureHasType d val; continue val field + | FieldVal.term stx => do val ← elabTermEnsuringType stx d; continue val field | FieldVal.nested s => do (val, sNew) ← elabStruct s (some d); val ← ensureHasType d val; continue val { field with val := FieldVal.nested sNew } | FieldVal.default => do val ← withRef field.ref $ mkFreshExprMVar (some d); continue (markDefaultMissing val) field | _ => withRef field.ref $ throwFailedToElabField fieldName s.structName ("unexpected constructor type" ++ indentExpr type) diff --git a/stage0/src/Lean/Elab/Structure.lean b/stage0/src/Lean/Elab/Structure.lean index 068ee1b9ab..0d86cdacb8 100644 --- a/stage0/src/Lean/Elab/Structure.lean +++ b/stage0/src/Lean/Elab/Structure.lean @@ -289,8 +289,7 @@ private partial def withFields {α} (views : Array StructFieldView) : Nat → Ar when (!view.binders.getArgs.isEmpty || view.type?.isSome) $ Term.throwErrorAt view.type?.get! ("omit field '" ++ view.name ++ "' type to set default value"); fvarType ← Term.inferType info.fvar; - value ← Term.elabTerm valStx fvarType; - value ← Term.withRef valStx $ Term.ensureHasType fvarType value; + value ← Term.elabTermEnsuringType valStx fvarType; let infos := infos.push { info with value? := value }; withFields (i+1) infos k | StructFieldKind.subobject => unreachable! diff --git a/stage0/src/Lean/Elab/SyntheticMVars.lean b/stage0/src/Lean/Elab/SyntheticMVars.lean index 7274403c1f..d06bbe3f56 100644 --- a/stage0/src/Lean/Elab/SyntheticMVars.lean +++ b/stage0/src/Lean/Elab/SyntheticMVars.lean @@ -52,7 +52,7 @@ withRef stx $ withMVarContext mvarId $ do result ← resumeElabTerm stx expectedType (!postponeOnError); /- We must ensure `result` has the expected type because it is the one expected by the method that postponed stx. That is, the method does not have an opportunity to check whether `result` has the expected type or not. -/ - result ← ensureHasType expectedType result; + result ← withRef stx $ ensureHasType expectedType result; assignExprMVar mvarId result; pure true) (fun ex => match ex with diff --git a/stage0/src/Lean/Elab/Term.lean b/stage0/src/Lean/Elab/Term.lean index b0b6daff87..128675951c 100644 --- a/stage0/src/Lean/Elab/Term.lean +++ b/stage0/src/Lean/Elab/Term.lean @@ -752,7 +752,9 @@ when ctx.mayPostpone $ throw Exception.postpone /-- If `mayPostpone == true` and `e`'s head is a metavariable, throw `Exception.postpone`. -/ def tryPostponeIfMVar (e : Expr) : TermElabM Unit := do -when e.getAppFn.isMVar $ tryPostpone +when e.getAppFn.isMVar do + e ← instantiateMVars e; + when e.getAppFn.isMVar $ tryPostpone def tryPostponeIfNoneOrMVar (e? : Option Expr) : TermElabM Unit := match e? with @@ -909,6 +911,10 @@ partial def elabTermAux (expectedType? : Option Expr) (catchExPostpone : Bool) ( def elabTerm (stx : Syntax) (expectedType? : Option Expr) (catchExPostpone := true) : TermElabM Expr := withRef stx $ elabTermAux expectedType? catchExPostpone true stx +def elabTermEnsuringType (stx : Syntax) (expectedType? : Option Expr) : TermElabM Expr := do +e ← elabTerm stx expectedType?; +withRef stx $ ensureHasType expectedType? e + def elabTermWithoutImplicitLambdas (stx : Syntax) (expectedType? : Option Expr) (catchExPostpone := true) : TermElabM Expr := do elabTermAux expectedType? catchExPostpone false stx diff --git a/stage0/src/Lean/Meta/ExprDefEq.lean b/stage0/src/Lean/Meta/ExprDefEq.lean index 8f65ba9621..89e8f882ee 100644 --- a/stage0/src/Lean/Meta/ExprDefEq.lean +++ b/stage0/src/Lean/Meta/ExprDefEq.lean @@ -911,6 +911,21 @@ private def isLetFVar (fvarId : FVarId) : MetaM Bool := do decl ← getLocalDecl fvarId; pure decl.isLet +private def isDefEqProofIrrel (t s : Expr) : MetaM LBool := do +status ← isProofQuick t; +match status with +| LBool.false => + pure LBool.undef +| LBool.true => do + tType ← inferType t; + sType ← inferType s; + toLBoolM $ isExprDefEqAux tType sType +| LBool.undef => do + tType ← inferType t; + condM (isProp tType) + (do sType ← inferType s; toLBoolM $ isExprDefEqAux tType sType) + (pure LBool.undef) + private partial def isDefEqQuick : Expr → Expr → MetaM LBool | Expr.lit l₁ _, Expr.lit l₂ _ => pure (l₁ == l₂).toLBool | Expr.sort u _, Expr.sort v _ => toLBoolM $ isLevelDefEqAux u v @@ -918,10 +933,10 @@ private partial def isDefEqQuick : Expr → Expr → MetaM LBool | t@(Expr.forallE _ _ _ _), s@(Expr.forallE _ _ _ _) => if t == s then pure LBool.true else toLBoolM $ isDefEqBinding t s | Expr.mdata _ t _, s => isDefEqQuick t s | t, Expr.mdata _ s _ => isDefEqQuick t s -| Expr.fvar fvarId₁ _, Expr.fvar fvarId₂ _ => +| t@(Expr.fvar fvarId₁ _), s@(Expr.fvar fvarId₂ _) => condM (isLetFVar fvarId₁ <||> isLetFVar fvarId₂) (pure LBool.undef) - (pure (fvarId₁ == fvarId₂).toLBool) + (if fvarId₁ == fvarId₂ then pure LBool.true else isDefEqProofIrrel t s) | t, s => cond (t == s) (pure LBool.true) $ cond (etaEq t s || etaEq s t) (pure LBool.true) $ -- t =?= (fun xs => t xs) @@ -961,21 +976,6 @@ private partial def isDefEqQuick : Expr → Expr → MetaM LBool condM (commitWhen (processAssignment t s)) (pure LBool.true) $ assign s t -private def isDefEqProofIrrel (t s : Expr) : MetaM LBool := do -status ← isProofQuick t; -match status with -| LBool.false => - pure LBool.undef -| LBool.true => do - tType ← inferType t; - sType ← inferType s; - toLBoolM $ isExprDefEqAux tType sType -| LBool.undef => do - tType ← inferType t; - condM (isProp tType) - (do sType ← inferType s; toLBoolM $ isExprDefEqAux tType sType) - (pure LBool.undef) - @[inline] def whenUndefDo (x : MetaM LBool) (k : MetaM Bool) : MetaM Bool := do status ← x; match status with diff --git a/stage0/src/frontends/lean/builtin_exprs.cpp b/stage0/src/frontends/lean/builtin_exprs.cpp index b05ccc0e77..a44eff011a 100644 --- a/stage0/src/frontends/lean/builtin_exprs.cpp +++ b/stage0/src/frontends/lean/builtin_exprs.cpp @@ -347,7 +347,9 @@ static expr parse_do(parser & p, bool has_braces) { pos); } } else { - r = p.rec_save_pos(mk_app(p.save_pos(mk_const({"HasSeqRight", "seqRight"}), ps[i]), es[i], r), ps[i]); + expr action2 = p.save_pos(mk_lambda("_", mk_expr_placeholder(), r), ps[i]); + r = p.rec_save_pos(mk_app(p.save_pos(mk_bind_fn(p), ps[i]), es[i], action2), ps[i]); + // r = p.rec_save_pos(mk_app(p.save_pos(mk_const({"HasSeqRight", "seqRight"}), ps[i]), es[i], r), ps[i]); } } return r; diff --git a/stage0/stdlib/Lean/Elab/App.c b/stage0/stdlib/Lean/Elab/App.c index fa7932abed..d588a411fd 100644 --- a/stage0/stdlib/Lean/Elab/App.c +++ b/stage0/stdlib/Lean/Elab/App.c @@ -13455,6 +13455,8 @@ block_37: if (x_17 == 0) { lean_object* x_19; +lean_inc(x_6); +lean_inc(x_12); x_19 = l_Lean_Elab_Term_tryPostponeIfMVar(x_12, x_6, x_18); if (lean_obj_tag(x_19) == 0) { @@ -15757,6 +15759,8 @@ lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); +lean_inc(x_5); +lean_inc(x_8); x_10 = l_Lean_Elab_Term_tryPostponeIfMVar(x_8, x_5, x_9); if (lean_obj_tag(x_10) == 0) { diff --git a/stage0/stdlib/Lean/Elab/Binders.c b/stage0/stdlib/Lean/Elab/Binders.c index 0941fcaf64..9a7bdeae6d 100644 --- a/stage0/stdlib/Lean/Elab/Binders.c +++ b/stage0/stdlib/Lean/Elab/Binders.c @@ -91,7 +91,6 @@ extern lean_object* l_Lean_mkAppStx___closed__7; lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Binders_9__getFunBinderIdsAux_x3f___main(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Term_matchDiscr___elambda__1___closed__2; -lean_object* l_Lean_Elab_Term_ensureHasType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Elab_Term_quoteAutoTactic___main___spec__1___closed__2; lean_object* l___private_Lean_Elab_Binders_3__expandOptIdent___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_mkFreshAnonymousIdent(lean_object*, lean_object*, lean_object*); @@ -106,6 +105,7 @@ lean_object* l_Lean_Syntax_isSimpleTermId_x3f(lean_object*, uint8_t); lean_object* l_Lean_Elab_Term_FunBinders_elabFunBindersAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_quoteAutoTactic___main___closed__3; lean_object* l___private_Lean_Elab_Binders_11__expandFunBindersAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_elabTermEnsuringType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); extern lean_object* l_Lean_Expr_getOptParamDefault_x3f___closed__2; lean_object* l___private_Lean_Elab_Binders_4__expandBinderModifier___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -22701,7 +22701,7 @@ lean_inc(x_4); x_6 = l_Lean_Elab_Term_elabType(x_1, x_4, x_5); if (lean_obj_tag(x_6) == 0) { -lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; lean_object* x_11; +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; x_7 = lean_ctor_get(x_6, 0); lean_inc(x_7); x_8 = lean_ctor_get(x_6, 1); @@ -22710,238 +22710,158 @@ lean_dec(x_6); lean_inc(x_7); x_9 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_9, 0, x_7); -x_10 = 1; lean_inc(x_4); -lean_inc(x_9); -lean_inc(x_2); -x_11 = l_Lean_Elab_Term_elabTerm(x_2, x_9, x_10, x_4, x_8); -if (lean_obj_tag(x_11) == 0) +x_10 = l_Lean_Elab_Term_elabTermEnsuringType(x_2, x_9, x_4, x_8); +if (lean_obj_tag(x_10) == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; uint8_t x_24; uint8_t x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_12 = lean_ctor_get(x_11, 0); +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); -lean_inc(x_13); -lean_dec(x_11); -x_14 = lean_ctor_get(x_4, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_4, 1); -lean_inc(x_15); -x_16 = lean_ctor_get(x_4, 2); -lean_inc(x_16); -x_17 = lean_ctor_get(x_4, 3); -lean_inc(x_17); -x_18 = lean_ctor_get(x_4, 4); -lean_inc(x_18); -x_19 = lean_ctor_get(x_4, 5); -lean_inc(x_19); -x_20 = lean_ctor_get(x_4, 6); -lean_inc(x_20); -x_21 = lean_ctor_get(x_4, 7); -lean_inc(x_21); -x_22 = lean_ctor_get(x_4, 8); -lean_inc(x_22); -x_23 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_24 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_25 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_26 = lean_ctor_get(x_4, 9); -lean_inc(x_26); -x_27 = l_Lean_Elab_replaceRef(x_2, x_26); -lean_dec(x_26); -lean_dec(x_2); -x_28 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_28, 0, x_14); -lean_ctor_set(x_28, 1, x_15); -lean_ctor_set(x_28, 2, x_16); -lean_ctor_set(x_28, 3, x_17); -lean_ctor_set(x_28, 4, x_18); -lean_ctor_set(x_28, 5, x_19); -lean_ctor_set(x_28, 6, x_20); -lean_ctor_set(x_28, 7, x_21); -lean_ctor_set(x_28, 8, x_22); -lean_ctor_set(x_28, 9, x_27); -lean_ctor_set_uint8(x_28, sizeof(void*)*10, x_23); -lean_ctor_set_uint8(x_28, sizeof(void*)*10 + 1, x_24); -lean_ctor_set_uint8(x_28, sizeof(void*)*10 + 2, x_25); -x_29 = l_Lean_Elab_Term_ensureHasType(x_9, x_12, x_28, x_13); -if (lean_obj_tag(x_29) == 0) -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -x_31 = lean_ctor_get(x_29, 1); -lean_inc(x_31); -lean_dec(x_29); +lean_dec(x_10); lean_inc(x_4); lean_inc(x_3); -x_32 = l_Lean_Elab_Term_mkForall(x_3, x_7, x_4, x_31); -if (lean_obj_tag(x_32) == 0) +x_13 = l_Lean_Elab_Term_mkForall(x_3, x_7, x_4, x_12); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +lean_dec(x_13); +x_16 = l_Lean_Elab_Term_mkLambda(x_3, x_11, x_4, x_15); +if (lean_obj_tag(x_16) == 0) +{ +uint8_t x_17; +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_16, 0); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_14); +lean_ctor_set(x_19, 1, x_18); +lean_ctor_set(x_16, 0, x_19); +return x_16; +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_16, 0); +x_21 = lean_ctor_get(x_16, 1); +lean_inc(x_21); +lean_inc(x_20); +lean_dec(x_16); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_14); +lean_ctor_set(x_22, 1, x_20); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_21); +return x_23; +} +} +else +{ +uint8_t x_24; +lean_dec(x_14); +x_24 = !lean_is_exclusive(x_16); +if (x_24 == 0) +{ +return x_16; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_16, 0); +x_26 = lean_ctor_get(x_16, 1); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_16); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_25); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +} +else +{ +uint8_t x_28; +lean_dec(x_11); +lean_dec(x_4); +lean_dec(x_3); +x_28 = !lean_is_exclusive(x_13); +if (x_28 == 0) +{ +return x_13; +} +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = lean_ctor_get(x_13, 0); +x_30 = lean_ctor_get(x_13, 1); +lean_inc(x_30); +lean_inc(x_29); +lean_dec(x_13); +x_31 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_31, 0, x_29); +lean_ctor_set(x_31, 1, x_30); +return x_31; +} +} +} +else +{ +uint8_t x_32; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +x_32 = !lean_is_exclusive(x_10); +if (x_32 == 0) +{ +return x_10; +} +else { lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -x_34 = lean_ctor_get(x_32, 1); +x_33 = lean_ctor_get(x_10, 0); +x_34 = lean_ctor_get(x_10, 1); lean_inc(x_34); -lean_dec(x_32); -x_35 = l_Lean_Elab_Term_mkLambda(x_3, x_30, x_4, x_34); -if (lean_obj_tag(x_35) == 0) +lean_inc(x_33); +lean_dec(x_10); +x_35 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_35, 0, x_33); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +} +else { uint8_t x_36; -x_36 = !lean_is_exclusive(x_35); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_36 = !lean_is_exclusive(x_6); if (x_36 == 0) { -lean_object* x_37; lean_object* x_38; -x_37 = lean_ctor_get(x_35, 0); -x_38 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_38, 0, x_33); -lean_ctor_set(x_38, 1, x_37); -lean_ctor_set(x_35, 0, x_38); -return x_35; -} -else -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_39 = lean_ctor_get(x_35, 0); -x_40 = lean_ctor_get(x_35, 1); -lean_inc(x_40); -lean_inc(x_39); -lean_dec(x_35); -x_41 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_41, 0, x_33); -lean_ctor_set(x_41, 1, x_39); -x_42 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_42, 0, x_41); -lean_ctor_set(x_42, 1, x_40); -return x_42; -} -} -else -{ -uint8_t x_43; -lean_dec(x_33); -x_43 = !lean_is_exclusive(x_35); -if (x_43 == 0) -{ -return x_35; -} -else -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_44 = lean_ctor_get(x_35, 0); -x_45 = lean_ctor_get(x_35, 1); -lean_inc(x_45); -lean_inc(x_44); -lean_dec(x_35); -x_46 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_46, 0, x_44); -lean_ctor_set(x_46, 1, x_45); -return x_46; -} -} -} -else -{ -uint8_t x_47; -lean_dec(x_30); -lean_dec(x_4); -lean_dec(x_3); -x_47 = !lean_is_exclusive(x_32); -if (x_47 == 0) -{ -return x_32; -} -else -{ -lean_object* x_48; lean_object* x_49; lean_object* x_50; -x_48 = lean_ctor_get(x_32, 0); -x_49 = lean_ctor_get(x_32, 1); -lean_inc(x_49); -lean_inc(x_48); -lean_dec(x_32); -x_50 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_50, 0, x_48); -lean_ctor_set(x_50, 1, x_49); -return x_50; -} -} -} -else -{ -uint8_t x_51; -lean_dec(x_7); -lean_dec(x_4); -lean_dec(x_3); -x_51 = !lean_is_exclusive(x_29); -if (x_51 == 0) -{ -return x_29; -} -else -{ -lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_52 = lean_ctor_get(x_29, 0); -x_53 = lean_ctor_get(x_29, 1); -lean_inc(x_53); -lean_inc(x_52); -lean_dec(x_29); -x_54 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_54, 0, x_52); -lean_ctor_set(x_54, 1, x_53); -return x_54; -} -} -} -else -{ -uint8_t x_55; -lean_dec(x_9); -lean_dec(x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_55 = !lean_is_exclusive(x_11); -if (x_55 == 0) -{ -return x_11; -} -else -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_56 = lean_ctor_get(x_11, 0); -x_57 = lean_ctor_get(x_11, 1); -lean_inc(x_57); -lean_inc(x_56); -lean_dec(x_11); -x_58 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_58, 0, x_56); -lean_ctor_set(x_58, 1, x_57); -return x_58; -} -} -} -else -{ -uint8_t x_59; -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_59 = !lean_is_exclusive(x_6); -if (x_59 == 0) -{ return x_6; } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; -x_60 = lean_ctor_get(x_6, 0); -x_61 = lean_ctor_get(x_6, 1); -lean_inc(x_61); -lean_inc(x_60); +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_6, 0); +x_38 = lean_ctor_get(x_6, 1); +lean_inc(x_38); +lean_inc(x_37); lean_dec(x_6); -x_62 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_62, 0, x_60); -lean_ctor_set(x_62, 1, x_61); -return x_62; +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } diff --git a/stage0/stdlib/Lean/Elab/BuiltinNotation.c b/stage0/stdlib/Lean/Elab/BuiltinNotation.c index e438e42bea..a599eb5e94 100644 --- a/stage0/stdlib/Lean/Elab/BuiltinNotation.c +++ b/stage0/stdlib/Lean/Elab/BuiltinNotation.c @@ -1904,6 +1904,8 @@ x_7 = lean_unsigned_to_nat(1u); x_8 = l_Lean_Syntax_getArg(x_1, x_7); x_9 = l_Lean_Syntax_getArgs(x_8); lean_dec(x_8); +lean_inc(x_3); +lean_inc(x_2); x_10 = l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(x_2, x_3, x_4); if (lean_obj_tag(x_10) == 0) { @@ -6392,6 +6394,8 @@ else { lean_object* x_9; lean_dec(x_1); +lean_inc(x_3); +lean_inc(x_2); x_9 = l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(x_2, x_3, x_4); if (lean_obj_tag(x_9) == 0) { diff --git a/stage0/stdlib/Lean/Elab/DoNotation.c b/stage0/stdlib/Lean/Elab/DoNotation.c index b7027e08eb..61b66d5063 100644 --- a/stage0/stdlib/Lean/Elab/DoNotation.c +++ b/stage0/stdlib/Lean/Elab/DoNotation.c @@ -61,7 +61,6 @@ uint8_t l___private_Lean_Elab_DoNotation_4__hasLiftMethod___main(lean_object*); extern lean_object* l_Lean_Elab_Term_expandCDot_x3f___closed__4; lean_object* lean_nat_add(lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Term_matchDiscr___elambda__1___closed__2; -lean_object* l_Lean_Elab_Term_ensureHasType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Data_Array_Basic_3__iterateRevMAux___main___at___private_Lean_Elab_DoNotation_10__mkBind___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_DoNotation_1__mkIdBindFor(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_whnf(lean_object*, lean_object*, lean_object*); @@ -74,6 +73,7 @@ lean_object* l_Lean_Elab_Term_ProcessedDoElem_inhabited; lean_object* l___private_Lean_Elab_DoNotation_7__expandDoElemsAux(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Elab_Term_elabDo___closed__1; lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_elabTermEnsuringType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); extern lean_object* l_Lean_Expr_Inhabited___closed__1; uint8_t lean_nat_dec_eq(lean_object*, lean_object*); @@ -4824,1017 +4824,615 @@ x_13 = lean_name_eq(x_11, x_12); x_14 = !lean_is_exclusive(x_7); if (x_14 == 0) { -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; uint8_t x_25; uint8_t x_26; lean_object* x_27; lean_object* x_28; -x_15 = lean_ctor_get(x_7, 0); -x_16 = lean_ctor_get(x_7, 1); -x_17 = lean_ctor_get(x_7, 2); -x_18 = lean_ctor_get(x_7, 3); -x_19 = lean_ctor_get(x_7, 4); -x_20 = lean_ctor_get(x_7, 5); -x_21 = lean_ctor_get(x_7, 6); -x_22 = lean_ctor_get(x_7, 7); -x_23 = lean_ctor_get(x_7, 8); -x_24 = lean_ctor_get_uint8(x_7, sizeof(void*)*10); -x_25 = lean_ctor_get_uint8(x_7, sizeof(void*)*10 + 1); -x_26 = lean_ctor_get_uint8(x_7, sizeof(void*)*10 + 2); -x_27 = lean_ctor_get(x_7, 9); -x_28 = l_Lean_Elab_replaceRef(x_10, x_27); -lean_dec(x_27); -lean_inc(x_28); -lean_inc(x_23); -lean_inc(x_22); -lean_inc(x_21); -lean_inc(x_20); -lean_inc(x_19); -lean_inc(x_18); -lean_inc(x_17); -lean_inc(x_16); -lean_inc(x_15); -lean_ctor_set(x_7, 9, x_28); +lean_object* x_15; lean_object* x_16; +x_15 = lean_ctor_get(x_7, 9); +x_16 = l_Lean_Elab_replaceRef(x_10, x_15); +lean_dec(x_15); +lean_ctor_set(x_7, 9, x_16); if (x_13 == 0) { -lean_object* x_29; uint8_t x_30; -lean_dec(x_28); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_15); -x_29 = l_Lean_Parser_Term_doExpr___elambda__1___closed__2; -x_30 = lean_name_eq(x_11, x_29); +lean_object* x_17; uint8_t x_18; +x_17 = l_Lean_Parser_Term_doExpr___elambda__1___closed__2; +x_18 = lean_name_eq(x_11, x_17); lean_dec(x_11); -if (x_30 == 0) +if (x_18 == 0) { -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_31 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_31, 0, x_10); -x_32 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__4; -x_33 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_31); -x_34 = l_Lean_Elab_Term_throwError___rarg(x_33, x_7, x_8); -return x_34; +x_19 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_19, 0, x_10); +x_20 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__4; +x_21 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_19); +x_22 = l_Lean_Elab_Term_throwError___rarg(x_21, x_7, x_8); +return x_22; } else { -lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; -x_35 = lean_array_get_size(x_1); +lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_23 = lean_array_get_size(x_1); lean_dec(x_1); -x_36 = lean_unsigned_to_nat(1u); -x_37 = lean_nat_sub(x_35, x_36); -lean_dec(x_35); -x_38 = lean_nat_dec_eq(x_5, x_37); -lean_dec(x_37); +x_24 = lean_unsigned_to_nat(1u); +x_25 = lean_nat_sub(x_23, x_24); +lean_dec(x_23); +x_26 = lean_nat_dec_eq(x_5, x_25); +lean_dec(x_25); lean_dec(x_5); -x_39 = lean_unsigned_to_nat(0u); -x_40 = l_Lean_Syntax_getArg(x_10, x_39); -x_41 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_41, 0, x_4); -if (x_38 == 0) +x_27 = lean_unsigned_to_nat(0u); +x_28 = l_Lean_Syntax_getArg(x_10, x_27); +x_29 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_29, 0, x_4); +if (x_26 == 0) { -uint8_t x_72; -x_72 = 1; -x_42 = x_72; -goto block_71; +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; +lean_dec(x_29); +lean_dec(x_28); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_30 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_30, 0, x_10); +x_31 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__4; +x_32 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_30); +x_33 = l_Lean_Elab_Term_throwError___rarg(x_32, x_7, x_8); +x_34 = !lean_is_exclusive(x_33); +if (x_34 == 0) +{ +return x_33; } else { -uint8_t x_73; -x_73 = 0; -x_42 = x_73; -goto block_71; +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_33, 0); +x_36 = lean_ctor_get(x_33, 1); +lean_inc(x_36); +lean_inc(x_35); +lean_dec(x_33); +x_37 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_37, 0, x_35); +lean_ctor_set(x_37, 1, x_36); +return x_37; } -block_71: +} +else { -uint8_t x_43; +lean_object* x_38; +lean_dec(x_10); +lean_inc(x_7); +x_38 = l_Lean_Elab_Term_elabTermEnsuringType(x_28, x_29, x_7, x_8); +if (lean_obj_tag(x_38) == 0) +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_38, 0); +lean_inc(x_39); +x_40 = lean_ctor_get(x_38, 1); +lean_inc(x_40); +lean_dec(x_38); +x_41 = l___private_Lean_Elab_DoNotation_10__mkBind(x_2, x_3, x_6, x_39, x_7, x_40); +lean_dec(x_6); +return x_41; +} +else +{ +uint8_t x_42; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_42 = !lean_is_exclusive(x_38); if (x_42 == 0) { -uint8_t x_69; -x_69 = 0; -x_43 = x_69; -goto block_68; +return x_38; } else { -uint8_t x_70; -x_70 = 1; -x_43 = x_70; -goto block_68; -} -block_68: -{ -if (x_43 == 0) -{ -uint8_t x_44; lean_object* x_45; -lean_dec(x_10); -x_44 = 1; -lean_inc(x_7); -lean_inc(x_41); -x_45 = l_Lean_Elab_Term_elabTerm(x_40, x_41, x_44, x_7, x_8); -if (lean_obj_tag(x_45) == 0) -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_45, 0); -lean_inc(x_46); -x_47 = lean_ctor_get(x_45, 1); -lean_inc(x_47); -lean_dec(x_45); -lean_inc(x_7); -x_48 = l_Lean_Elab_Term_ensureHasType(x_41, x_46, x_7, x_47); -if (lean_obj_tag(x_48) == 0) -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_49 = lean_ctor_get(x_48, 0); -lean_inc(x_49); -x_50 = lean_ctor_get(x_48, 1); -lean_inc(x_50); -lean_dec(x_48); -x_51 = l___private_Lean_Elab_DoNotation_10__mkBind(x_2, x_3, x_6, x_49, x_7, x_50); -lean_dec(x_6); -return x_51; -} -else -{ -uint8_t x_52; -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_52 = !lean_is_exclusive(x_48); -if (x_52 == 0) -{ -return x_48; -} -else -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_53 = lean_ctor_get(x_48, 0); -x_54 = lean_ctor_get(x_48, 1); -lean_inc(x_54); -lean_inc(x_53); -lean_dec(x_48); -x_55 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_55, 0, x_53); -lean_ctor_set(x_55, 1, x_54); -return x_55; -} -} -} -else -{ -uint8_t x_56; -lean_dec(x_41); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_56 = !lean_is_exclusive(x_45); -if (x_56 == 0) -{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_43 = lean_ctor_get(x_38, 0); +x_44 = lean_ctor_get(x_38, 1); +lean_inc(x_44); +lean_inc(x_43); +lean_dec(x_38); +x_45 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_45, 0, x_43); +lean_ctor_set(x_45, 1, x_44); return x_45; } -else -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_ctor_get(x_45, 0); -x_58 = lean_ctor_get(x_45, 1); -lean_inc(x_58); -lean_inc(x_57); -lean_dec(x_45); -x_59 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_59, 0, x_57); -lean_ctor_set(x_59, 1, x_58); -return x_59; -} -} -} -else -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -lean_dec(x_41); -lean_dec(x_40); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_60 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_60, 0, x_10); -x_61 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__4; -x_62 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_62, 0, x_61); -lean_ctor_set(x_62, 1, x_60); -x_63 = l_Lean_Elab_Term_throwError___rarg(x_62, x_7, x_8); -x_64 = !lean_is_exclusive(x_63); -if (x_64 == 0) -{ -return x_63; -} -else -{ -lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_65 = lean_ctor_get(x_63, 0); -x_66 = lean_ctor_get(x_63, 1); -lean_inc(x_66); -lean_inc(x_65); -lean_dec(x_63); -x_67 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_67, 0, x_65); -lean_ctor_set(x_67, 1, x_66); -return x_67; -} -} } } } } else { -lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_dec(x_11); -x_74 = lean_array_get_size(x_1); -x_75 = lean_unsigned_to_nat(1u); -x_76 = lean_nat_sub(x_74, x_75); -lean_dec(x_74); -x_77 = lean_nat_dec_eq(x_5, x_76); -lean_dec(x_76); -x_78 = lean_unsigned_to_nat(0u); -x_79 = l_Lean_Syntax_getIdAt(x_10, x_78); -x_80 = l_Lean_Syntax_getArg(x_10, x_75); -x_81 = l_Lean_Elab_Term_expandOptType(x_10, x_80); -lean_dec(x_80); -x_82 = lean_unsigned_to_nat(3u); -x_83 = l_Lean_Syntax_getArg(x_10, x_82); +x_46 = lean_array_get_size(x_1); +x_47 = lean_unsigned_to_nat(1u); +x_48 = lean_nat_sub(x_46, x_47); +lean_dec(x_46); +x_49 = lean_nat_dec_eq(x_5, x_48); +lean_dec(x_48); +x_50 = lean_unsigned_to_nat(0u); +x_51 = l_Lean_Syntax_getIdAt(x_10, x_50); +x_52 = l_Lean_Syntax_getArg(x_10, x_47); +x_53 = l_Lean_Elab_Term_expandOptType(x_10, x_52); +lean_dec(x_52); +x_54 = lean_unsigned_to_nat(3u); +x_55 = l_Lean_Syntax_getArg(x_10, x_54); lean_dec(x_10); -if (x_77 == 0) +if (x_49 == 0) { -x_84 = x_8; -goto block_114; +lean_object* x_56; +lean_inc(x_7); +x_56 = l_Lean_Elab_Term_elabType(x_53, x_7, x_8); +if (lean_obj_tag(x_56) == 0) +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_57 = lean_ctor_get(x_56, 0); +lean_inc(x_57); +x_58 = lean_ctor_get(x_56, 1); +lean_inc(x_58); +lean_dec(x_56); +lean_inc(x_57); +lean_inc(x_2); +x_59 = l_Lean_mkApp(x_2, x_57); +x_60 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_60, 0, x_59); +lean_inc(x_7); +x_61 = l_Lean_Elab_Term_elabTermEnsuringType(x_55, x_60, x_7, x_58); +if (lean_obj_tag(x_61) == 0) +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; lean_object* x_66; +x_62 = lean_ctor_get(x_61, 0); +lean_inc(x_62); +x_63 = lean_ctor_get(x_61, 1); +lean_inc(x_63); +lean_dec(x_61); +x_64 = lean_alloc_closure((void*)(l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___lambda__1___boxed), 10, 7); +lean_closure_set(x_64, 0, x_5); +lean_closure_set(x_64, 1, x_62); +lean_closure_set(x_64, 2, x_6); +lean_closure_set(x_64, 3, x_1); +lean_closure_set(x_64, 4, x_2); +lean_closure_set(x_64, 5, x_3); +lean_closure_set(x_64, 6, x_4); +x_65 = 0; +x_66 = l_Lean_Elab_Term_withLocalDecl___rarg(x_51, x_65, x_57, x_64, x_7, x_63); +return x_66; } else { -lean_object* x_115; lean_object* x_116; uint8_t x_117; -lean_dec(x_83); -lean_dec(x_81); -lean_dec(x_79); -lean_dec(x_28); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_15); +uint8_t x_67; +lean_dec(x_57); +lean_dec(x_51); +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_1); -x_115 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__7; -x_116 = l_Lean_Elab_Term_throwError___rarg(x_115, x_7, x_8); -x_117 = !lean_is_exclusive(x_116); -if (x_117 == 0) +x_67 = !lean_is_exclusive(x_61); +if (x_67 == 0) { -return x_116; +return x_61; } else { -lean_object* x_118; lean_object* x_119; lean_object* x_120; -x_118 = lean_ctor_get(x_116, 0); -x_119 = lean_ctor_get(x_116, 1); -lean_inc(x_119); -lean_inc(x_118); -lean_dec(x_116); -x_120 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_120, 0, x_118); -lean_ctor_set(x_120, 1, x_119); -return x_120; +lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_68 = lean_ctor_get(x_61, 0); +x_69 = lean_ctor_get(x_61, 1); +lean_inc(x_69); +lean_inc(x_68); +lean_dec(x_61); +x_70 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_70, 0, x_68); +lean_ctor_set(x_70, 1, x_69); +return x_70; } } -block_114: +} +else { -lean_object* x_85; -lean_inc(x_7); -x_85 = l_Lean_Elab_Term_elabType(x_81, x_7, x_84); -if (lean_obj_tag(x_85) == 0) +uint8_t x_71; +lean_dec(x_55); +lean_dec(x_51); +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_1); +x_71 = !lean_is_exclusive(x_56); +if (x_71 == 0) { -lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; uint8_t x_90; lean_object* x_91; -x_86 = lean_ctor_get(x_85, 0); -lean_inc(x_86); -x_87 = lean_ctor_get(x_85, 1); -lean_inc(x_87); -lean_dec(x_85); -lean_inc(x_86); -lean_inc(x_2); -x_88 = l_Lean_mkApp(x_2, x_86); -x_89 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_89, 0, x_88); -x_90 = 1; -lean_inc(x_7); -lean_inc(x_89); -lean_inc(x_83); -x_91 = l_Lean_Elab_Term_elabTerm(x_83, x_89, x_90, x_7, x_87); -if (lean_obj_tag(x_91) == 0) +return x_56; +} +else { -lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; -x_92 = lean_ctor_get(x_91, 0); -lean_inc(x_92); -x_93 = lean_ctor_get(x_91, 1); +lean_object* x_72; lean_object* x_73; lean_object* x_74; +x_72 = lean_ctor_get(x_56, 0); +x_73 = lean_ctor_get(x_56, 1); +lean_inc(x_73); +lean_inc(x_72); +lean_dec(x_56); +x_74 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_74, 0, x_72); +lean_ctor_set(x_74, 1, x_73); +return x_74; +} +} +} +else +{ +lean_object* x_75; lean_object* x_76; uint8_t x_77; +lean_dec(x_55); +lean_dec(x_53); +lean_dec(x_51); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_75 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__7; +x_76 = l_Lean_Elab_Term_throwError___rarg(x_75, x_7, x_8); +x_77 = !lean_is_exclusive(x_76); +if (x_77 == 0) +{ +return x_76; +} +else +{ +lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_78 = lean_ctor_get(x_76, 0); +x_79 = lean_ctor_get(x_76, 1); +lean_inc(x_79); +lean_inc(x_78); +lean_dec(x_76); +x_80 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_80, 0, x_78); +lean_ctor_set(x_80, 1, x_79); +return x_80; +} +} +} +} +else +{ +lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; uint8_t x_90; uint8_t x_91; uint8_t x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; +x_81 = lean_ctor_get(x_7, 0); +x_82 = lean_ctor_get(x_7, 1); +x_83 = lean_ctor_get(x_7, 2); +x_84 = lean_ctor_get(x_7, 3); +x_85 = lean_ctor_get(x_7, 4); +x_86 = lean_ctor_get(x_7, 5); +x_87 = lean_ctor_get(x_7, 6); +x_88 = lean_ctor_get(x_7, 7); +x_89 = lean_ctor_get(x_7, 8); +x_90 = lean_ctor_get_uint8(x_7, sizeof(void*)*10); +x_91 = lean_ctor_get_uint8(x_7, sizeof(void*)*10 + 1); +x_92 = lean_ctor_get_uint8(x_7, sizeof(void*)*10 + 2); +x_93 = lean_ctor_get(x_7, 9); lean_inc(x_93); -lean_dec(x_91); -x_94 = l_Lean_Elab_replaceRef(x_83, x_28); -lean_dec(x_28); -lean_dec(x_83); +lean_inc(x_89); +lean_inc(x_88); +lean_inc(x_87); +lean_inc(x_86); +lean_inc(x_85); +lean_inc(x_84); +lean_inc(x_83); +lean_inc(x_82); +lean_inc(x_81); +lean_dec(x_7); +x_94 = l_Lean_Elab_replaceRef(x_10, x_93); +lean_dec(x_93); x_95 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_95, 0, x_15); -lean_ctor_set(x_95, 1, x_16); -lean_ctor_set(x_95, 2, x_17); -lean_ctor_set(x_95, 3, x_18); -lean_ctor_set(x_95, 4, x_19); -lean_ctor_set(x_95, 5, x_20); -lean_ctor_set(x_95, 6, x_21); -lean_ctor_set(x_95, 7, x_22); -lean_ctor_set(x_95, 8, x_23); +lean_ctor_set(x_95, 0, x_81); +lean_ctor_set(x_95, 1, x_82); +lean_ctor_set(x_95, 2, x_83); +lean_ctor_set(x_95, 3, x_84); +lean_ctor_set(x_95, 4, x_85); +lean_ctor_set(x_95, 5, x_86); +lean_ctor_set(x_95, 6, x_87); +lean_ctor_set(x_95, 7, x_88); +lean_ctor_set(x_95, 8, x_89); lean_ctor_set(x_95, 9, x_94); -lean_ctor_set_uint8(x_95, sizeof(void*)*10, x_24); -lean_ctor_set_uint8(x_95, sizeof(void*)*10 + 1, x_25); -lean_ctor_set_uint8(x_95, sizeof(void*)*10 + 2, x_26); -x_96 = l_Lean_Elab_Term_ensureHasType(x_89, x_92, x_95, x_93); -if (lean_obj_tag(x_96) == 0) +lean_ctor_set_uint8(x_95, sizeof(void*)*10, x_90); +lean_ctor_set_uint8(x_95, sizeof(void*)*10 + 1, x_91); +lean_ctor_set_uint8(x_95, sizeof(void*)*10 + 2, x_92); +if (x_13 == 0) { -lean_object* x_97; lean_object* x_98; lean_object* x_99; uint8_t x_100; lean_object* x_101; -x_97 = lean_ctor_get(x_96, 0); -lean_inc(x_97); -x_98 = lean_ctor_get(x_96, 1); -lean_inc(x_98); -lean_dec(x_96); -x_99 = lean_alloc_closure((void*)(l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___lambda__1___boxed), 10, 7); -lean_closure_set(x_99, 0, x_5); -lean_closure_set(x_99, 1, x_97); -lean_closure_set(x_99, 2, x_6); -lean_closure_set(x_99, 3, x_1); -lean_closure_set(x_99, 4, x_2); -lean_closure_set(x_99, 5, x_3); -lean_closure_set(x_99, 6, x_4); -x_100 = 0; -x_101 = l_Lean_Elab_Term_withLocalDecl___rarg(x_79, x_100, x_86, x_99, x_7, x_98); +lean_object* x_96; uint8_t x_97; +x_96 = l_Lean_Parser_Term_doExpr___elambda__1___closed__2; +x_97 = lean_name_eq(x_11, x_96); +lean_dec(x_11); +if (x_97 == 0) +{ +lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_98 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_98, 0, x_10); +x_99 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__4; +x_100 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_100, 0, x_99); +lean_ctor_set(x_100, 1, x_98); +x_101 = l_Lean_Elab_Term_throwError___rarg(x_100, x_95, x_8); return x_101; } else { -uint8_t x_102; -lean_dec(x_86); -lean_dec(x_79); -lean_dec(x_7); -lean_dec(x_6); +lean_object* x_102; lean_object* x_103; lean_object* x_104; uint8_t x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; +x_102 = lean_array_get_size(x_1); +lean_dec(x_1); +x_103 = lean_unsigned_to_nat(1u); +x_104 = lean_nat_sub(x_102, x_103); +lean_dec(x_102); +x_105 = lean_nat_dec_eq(x_5, x_104); +lean_dec(x_104); lean_dec(x_5); -lean_dec(x_4); +x_106 = lean_unsigned_to_nat(0u); +x_107 = l_Lean_Syntax_getArg(x_10, x_106); +x_108 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_108, 0, x_4); +if (x_105 == 0) +{ +lean_object* x_109; lean_object* x_110; 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_dec(x_108); +lean_dec(x_107); +lean_dec(x_6); lean_dec(x_3); lean_dec(x_2); -lean_dec(x_1); -x_102 = !lean_is_exclusive(x_96); -if (x_102 == 0) -{ -return x_96; +x_109 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_109, 0, x_10); +x_110 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__4; +x_111 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_109); +x_112 = l_Lean_Elab_Term_throwError___rarg(x_111, x_95, x_8); +x_113 = lean_ctor_get(x_112, 0); +lean_inc(x_113); +x_114 = lean_ctor_get(x_112, 1); +lean_inc(x_114); +if (lean_is_exclusive(x_112)) { + lean_ctor_release(x_112, 0); + lean_ctor_release(x_112, 1); + x_115 = x_112; +} else { + lean_dec_ref(x_112); + x_115 = lean_box(0); +} +if (lean_is_scalar(x_115)) { + x_116 = lean_alloc_ctor(1, 2, 0); +} else { + x_116 = x_115; +} +lean_ctor_set(x_116, 0, x_113); +lean_ctor_set(x_116, 1, x_114); +return x_116; } else { -lean_object* x_103; lean_object* x_104; lean_object* x_105; -x_103 = lean_ctor_get(x_96, 0); -x_104 = lean_ctor_get(x_96, 1); -lean_inc(x_104); -lean_inc(x_103); -lean_dec(x_96); -x_105 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_105, 0, x_103); -lean_ctor_set(x_105, 1, x_104); -return x_105; -} -} -} -else -{ -uint8_t x_106; -lean_dec(x_89); -lean_dec(x_86); -lean_dec(x_83); -lean_dec(x_79); -lean_dec(x_7); -lean_dec(x_28); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_15); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_106 = !lean_is_exclusive(x_91); -if (x_106 == 0) -{ -return x_91; -} -else -{ -lean_object* x_107; lean_object* x_108; lean_object* x_109; -x_107 = lean_ctor_get(x_91, 0); -x_108 = lean_ctor_get(x_91, 1); -lean_inc(x_108); -lean_inc(x_107); -lean_dec(x_91); -x_109 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_109, 0, x_107); -lean_ctor_set(x_109, 1, x_108); -return x_109; -} -} -} -else -{ -uint8_t x_110; -lean_dec(x_83); -lean_dec(x_79); -lean_dec(x_7); -lean_dec(x_28); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_15); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_110 = !lean_is_exclusive(x_85); -if (x_110 == 0) -{ -return x_85; -} -else -{ -lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_111 = lean_ctor_get(x_85, 0); -x_112 = lean_ctor_get(x_85, 1); -lean_inc(x_112); -lean_inc(x_111); -lean_dec(x_85); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_111); -lean_ctor_set(x_113, 1, x_112); -return x_113; -} -} -} -} -} -else -{ -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; lean_object* x_129; uint8_t x_130; uint8_t x_131; uint8_t x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; -x_121 = lean_ctor_get(x_7, 0); -x_122 = lean_ctor_get(x_7, 1); -x_123 = lean_ctor_get(x_7, 2); -x_124 = lean_ctor_get(x_7, 3); -x_125 = lean_ctor_get(x_7, 4); -x_126 = lean_ctor_get(x_7, 5); -x_127 = lean_ctor_get(x_7, 6); -x_128 = lean_ctor_get(x_7, 7); -x_129 = lean_ctor_get(x_7, 8); -x_130 = lean_ctor_get_uint8(x_7, sizeof(void*)*10); -x_131 = lean_ctor_get_uint8(x_7, sizeof(void*)*10 + 1); -x_132 = lean_ctor_get_uint8(x_7, sizeof(void*)*10 + 2); -x_133 = lean_ctor_get(x_7, 9); -lean_inc(x_133); -lean_inc(x_129); -lean_inc(x_128); -lean_inc(x_127); -lean_inc(x_126); -lean_inc(x_125); -lean_inc(x_124); -lean_inc(x_123); -lean_inc(x_122); -lean_inc(x_121); -lean_dec(x_7); -x_134 = l_Lean_Elab_replaceRef(x_10, x_133); -lean_dec(x_133); -lean_inc(x_134); -lean_inc(x_129); -lean_inc(x_128); -lean_inc(x_127); -lean_inc(x_126); -lean_inc(x_125); -lean_inc(x_124); -lean_inc(x_123); -lean_inc(x_122); -lean_inc(x_121); -x_135 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_135, 0, x_121); -lean_ctor_set(x_135, 1, x_122); -lean_ctor_set(x_135, 2, x_123); -lean_ctor_set(x_135, 3, x_124); -lean_ctor_set(x_135, 4, x_125); -lean_ctor_set(x_135, 5, x_126); -lean_ctor_set(x_135, 6, x_127); -lean_ctor_set(x_135, 7, x_128); -lean_ctor_set(x_135, 8, x_129); -lean_ctor_set(x_135, 9, x_134); -lean_ctor_set_uint8(x_135, sizeof(void*)*10, x_130); -lean_ctor_set_uint8(x_135, sizeof(void*)*10 + 1, x_131); -lean_ctor_set_uint8(x_135, sizeof(void*)*10 + 2, x_132); -if (x_13 == 0) -{ -lean_object* x_136; uint8_t x_137; -lean_dec(x_134); -lean_dec(x_129); -lean_dec(x_128); -lean_dec(x_127); -lean_dec(x_126); -lean_dec(x_125); -lean_dec(x_124); -lean_dec(x_123); -lean_dec(x_122); -lean_dec(x_121); -x_136 = l_Lean_Parser_Term_doExpr___elambda__1___closed__2; -x_137 = lean_name_eq(x_11, x_136); -lean_dec(x_11); -if (x_137 == 0) -{ -lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_138 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_138, 0, x_10); -x_139 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__4; -x_140 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_140, 0, x_139); -lean_ctor_set(x_140, 1, x_138); -x_141 = l_Lean_Elab_Term_throwError___rarg(x_140, x_135, x_8); -return x_141; -} -else -{ -lean_object* x_142; lean_object* x_143; lean_object* x_144; uint8_t x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; uint8_t x_149; -x_142 = lean_array_get_size(x_1); -lean_dec(x_1); -x_143 = lean_unsigned_to_nat(1u); -x_144 = lean_nat_sub(x_142, x_143); -lean_dec(x_142); -x_145 = lean_nat_dec_eq(x_5, x_144); -lean_dec(x_144); -lean_dec(x_5); -x_146 = lean_unsigned_to_nat(0u); -x_147 = l_Lean_Syntax_getArg(x_10, x_146); -x_148 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_148, 0, x_4); -if (x_145 == 0) -{ -uint8_t x_179; -x_179 = 1; -x_149 = x_179; -goto block_178; -} -else -{ -uint8_t x_180; -x_180 = 0; -x_149 = x_180; -goto block_178; -} -block_178: -{ -uint8_t x_150; -if (x_149 == 0) -{ -uint8_t x_176; -x_176 = 0; -x_150 = x_176; -goto block_175; -} -else -{ -uint8_t x_177; -x_177 = 1; -x_150 = x_177; -goto block_175; -} -block_175: -{ -if (x_150 == 0) -{ -uint8_t x_151; lean_object* x_152; +lean_object* x_117; lean_dec(x_10); -x_151 = 1; -lean_inc(x_135); -lean_inc(x_148); -x_152 = l_Lean_Elab_Term_elabTerm(x_147, x_148, x_151, x_135, x_8); -if (lean_obj_tag(x_152) == 0) +lean_inc(x_95); +x_117 = l_Lean_Elab_Term_elabTermEnsuringType(x_107, x_108, x_95, x_8); +if (lean_obj_tag(x_117) == 0) { -lean_object* x_153; lean_object* x_154; lean_object* x_155; -x_153 = lean_ctor_get(x_152, 0); -lean_inc(x_153); -x_154 = lean_ctor_get(x_152, 1); -lean_inc(x_154); -lean_dec(x_152); -lean_inc(x_135); -x_155 = l_Lean_Elab_Term_ensureHasType(x_148, x_153, x_135, x_154); -if (lean_obj_tag(x_155) == 0) +lean_object* x_118; lean_object* x_119; lean_object* x_120; +x_118 = lean_ctor_get(x_117, 0); +lean_inc(x_118); +x_119 = lean_ctor_get(x_117, 1); +lean_inc(x_119); +lean_dec(x_117); +x_120 = l___private_Lean_Elab_DoNotation_10__mkBind(x_2, x_3, x_6, x_118, x_95, x_119); +lean_dec(x_6); +return x_120; +} +else { -lean_object* x_156; lean_object* x_157; lean_object* x_158; +lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; +lean_dec(x_95); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_121 = lean_ctor_get(x_117, 0); +lean_inc(x_121); +x_122 = lean_ctor_get(x_117, 1); +lean_inc(x_122); +if (lean_is_exclusive(x_117)) { + lean_ctor_release(x_117, 0); + lean_ctor_release(x_117, 1); + x_123 = x_117; +} else { + lean_dec_ref(x_117); + x_123 = lean_box(0); +} +if (lean_is_scalar(x_123)) { + x_124 = lean_alloc_ctor(1, 2, 0); +} else { + x_124 = x_123; +} +lean_ctor_set(x_124, 0, x_121); +lean_ctor_set(x_124, 1, x_122); +return x_124; +} +} +} +} +else +{ +lean_object* x_125; lean_object* x_126; lean_object* x_127; uint8_t x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; +lean_dec(x_11); +x_125 = lean_array_get_size(x_1); +x_126 = lean_unsigned_to_nat(1u); +x_127 = lean_nat_sub(x_125, x_126); +lean_dec(x_125); +x_128 = lean_nat_dec_eq(x_5, x_127); +lean_dec(x_127); +x_129 = lean_unsigned_to_nat(0u); +x_130 = l_Lean_Syntax_getIdAt(x_10, x_129); +x_131 = l_Lean_Syntax_getArg(x_10, x_126); +x_132 = l_Lean_Elab_Term_expandOptType(x_10, x_131); +lean_dec(x_131); +x_133 = lean_unsigned_to_nat(3u); +x_134 = l_Lean_Syntax_getArg(x_10, x_133); +lean_dec(x_10); +if (x_128 == 0) +{ +lean_object* x_135; +lean_inc(x_95); +x_135 = l_Lean_Elab_Term_elabType(x_132, x_95, x_8); +if (lean_obj_tag(x_135) == 0) +{ +lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; +x_136 = lean_ctor_get(x_135, 0); +lean_inc(x_136); +x_137 = lean_ctor_get(x_135, 1); +lean_inc(x_137); +lean_dec(x_135); +lean_inc(x_136); +lean_inc(x_2); +x_138 = l_Lean_mkApp(x_2, x_136); +x_139 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_139, 0, x_138); +lean_inc(x_95); +x_140 = l_Lean_Elab_Term_elabTermEnsuringType(x_134, x_139, x_95, x_137); +if (lean_obj_tag(x_140) == 0) +{ +lean_object* x_141; lean_object* x_142; lean_object* x_143; uint8_t x_144; lean_object* x_145; +x_141 = lean_ctor_get(x_140, 0); +lean_inc(x_141); +x_142 = lean_ctor_get(x_140, 1); +lean_inc(x_142); +lean_dec(x_140); +x_143 = lean_alloc_closure((void*)(l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___lambda__1___boxed), 10, 7); +lean_closure_set(x_143, 0, x_5); +lean_closure_set(x_143, 1, x_141); +lean_closure_set(x_143, 2, x_6); +lean_closure_set(x_143, 3, x_1); +lean_closure_set(x_143, 4, x_2); +lean_closure_set(x_143, 5, x_3); +lean_closure_set(x_143, 6, x_4); +x_144 = 0; +x_145 = l_Lean_Elab_Term_withLocalDecl___rarg(x_130, x_144, x_136, x_143, x_95, x_142); +return x_145; +} +else +{ +lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; +lean_dec(x_136); +lean_dec(x_130); +lean_dec(x_95); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_146 = lean_ctor_get(x_140, 0); +lean_inc(x_146); +x_147 = lean_ctor_get(x_140, 1); +lean_inc(x_147); +if (lean_is_exclusive(x_140)) { + lean_ctor_release(x_140, 0); + lean_ctor_release(x_140, 1); + x_148 = x_140; +} else { + lean_dec_ref(x_140); + x_148 = lean_box(0); +} +if (lean_is_scalar(x_148)) { + x_149 = lean_alloc_ctor(1, 2, 0); +} else { + x_149 = x_148; +} +lean_ctor_set(x_149, 0, x_146); +lean_ctor_set(x_149, 1, x_147); +return x_149; +} +} +else +{ +lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; +lean_dec(x_134); +lean_dec(x_130); +lean_dec(x_95); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_150 = lean_ctor_get(x_135, 0); +lean_inc(x_150); +x_151 = lean_ctor_get(x_135, 1); +lean_inc(x_151); +if (lean_is_exclusive(x_135)) { + lean_ctor_release(x_135, 0); + lean_ctor_release(x_135, 1); + x_152 = x_135; +} else { + lean_dec_ref(x_135); + x_152 = lean_box(0); +} +if (lean_is_scalar(x_152)) { + x_153 = lean_alloc_ctor(1, 2, 0); +} else { + x_153 = x_152; +} +lean_ctor_set(x_153, 0, x_150); +lean_ctor_set(x_153, 1, x_151); +return x_153; +} +} +else +{ +lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; +lean_dec(x_134); +lean_dec(x_132); +lean_dec(x_130); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_154 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__7; +x_155 = l_Lean_Elab_Term_throwError___rarg(x_154, x_95, x_8); x_156 = lean_ctor_get(x_155, 0); lean_inc(x_156); x_157 = lean_ctor_get(x_155, 1); lean_inc(x_157); -lean_dec(x_155); -x_158 = l___private_Lean_Elab_DoNotation_10__mkBind(x_2, x_3, x_6, x_156, x_135, x_157); -lean_dec(x_6); -return x_158; -} -else -{ -lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; -lean_dec(x_135); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_159 = lean_ctor_get(x_155, 0); -lean_inc(x_159); -x_160 = lean_ctor_get(x_155, 1); -lean_inc(x_160); if (lean_is_exclusive(x_155)) { lean_ctor_release(x_155, 0); lean_ctor_release(x_155, 1); - x_161 = x_155; + x_158 = x_155; } else { lean_dec_ref(x_155); - x_161 = lean_box(0); + x_158 = lean_box(0); } -if (lean_is_scalar(x_161)) { - x_162 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_158)) { + x_159 = lean_alloc_ctor(1, 2, 0); } else { - x_162 = x_161; -} -lean_ctor_set(x_162, 0, x_159); -lean_ctor_set(x_162, 1, x_160); -return x_162; -} -} -else -{ -lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; -lean_dec(x_148); -lean_dec(x_135); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_163 = lean_ctor_get(x_152, 0); -lean_inc(x_163); -x_164 = lean_ctor_get(x_152, 1); -lean_inc(x_164); -if (lean_is_exclusive(x_152)) { - lean_ctor_release(x_152, 0); - lean_ctor_release(x_152, 1); - x_165 = x_152; -} else { - lean_dec_ref(x_152); - x_165 = lean_box(0); -} -if (lean_is_scalar(x_165)) { - x_166 = lean_alloc_ctor(1, 2, 0); -} else { - x_166 = x_165; -} -lean_ctor_set(x_166, 0, x_163); -lean_ctor_set(x_166, 1, x_164); -return x_166; -} -} -else -{ -lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; -lean_dec(x_148); -lean_dec(x_147); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_167 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_167, 0, x_10); -x_168 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__4; -x_169 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_169, 0, x_168); -lean_ctor_set(x_169, 1, x_167); -x_170 = l_Lean_Elab_Term_throwError___rarg(x_169, x_135, x_8); -x_171 = lean_ctor_get(x_170, 0); -lean_inc(x_171); -x_172 = lean_ctor_get(x_170, 1); -lean_inc(x_172); -if (lean_is_exclusive(x_170)) { - lean_ctor_release(x_170, 0); - lean_ctor_release(x_170, 1); - x_173 = x_170; -} else { - lean_dec_ref(x_170); - x_173 = lean_box(0); -} -if (lean_is_scalar(x_173)) { - x_174 = lean_alloc_ctor(1, 2, 0); -} else { - x_174 = x_173; -} -lean_ctor_set(x_174, 0, x_171); -lean_ctor_set(x_174, 1, x_172); -return x_174; -} -} -} -} -} -else -{ -lean_object* x_181; lean_object* x_182; lean_object* x_183; uint8_t x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; -lean_dec(x_11); -x_181 = lean_array_get_size(x_1); -x_182 = lean_unsigned_to_nat(1u); -x_183 = lean_nat_sub(x_181, x_182); -lean_dec(x_181); -x_184 = lean_nat_dec_eq(x_5, x_183); -lean_dec(x_183); -x_185 = lean_unsigned_to_nat(0u); -x_186 = l_Lean_Syntax_getIdAt(x_10, x_185); -x_187 = l_Lean_Syntax_getArg(x_10, x_182); -x_188 = l_Lean_Elab_Term_expandOptType(x_10, x_187); -lean_dec(x_187); -x_189 = lean_unsigned_to_nat(3u); -x_190 = l_Lean_Syntax_getArg(x_10, x_189); -lean_dec(x_10); -if (x_184 == 0) -{ -x_191 = x_8; -goto block_221; -} -else -{ -lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; -lean_dec(x_190); -lean_dec(x_188); -lean_dec(x_186); -lean_dec(x_134); -lean_dec(x_129); -lean_dec(x_128); -lean_dec(x_127); -lean_dec(x_126); -lean_dec(x_125); -lean_dec(x_124); -lean_dec(x_123); -lean_dec(x_122); -lean_dec(x_121); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_222 = l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___closed__7; -x_223 = l_Lean_Elab_Term_throwError___rarg(x_222, x_135, x_8); -x_224 = lean_ctor_get(x_223, 0); -lean_inc(x_224); -x_225 = lean_ctor_get(x_223, 1); -lean_inc(x_225); -if (lean_is_exclusive(x_223)) { - lean_ctor_release(x_223, 0); - lean_ctor_release(x_223, 1); - x_226 = x_223; -} else { - lean_dec_ref(x_223); - x_226 = lean_box(0); -} -if (lean_is_scalar(x_226)) { - x_227 = lean_alloc_ctor(1, 2, 0); -} else { - x_227 = x_226; -} -lean_ctor_set(x_227, 0, x_224); -lean_ctor_set(x_227, 1, x_225); -return x_227; -} -block_221: -{ -lean_object* x_192; -lean_inc(x_135); -x_192 = l_Lean_Elab_Term_elabType(x_188, x_135, x_191); -if (lean_obj_tag(x_192) == 0) -{ -lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; uint8_t x_197; lean_object* x_198; -x_193 = lean_ctor_get(x_192, 0); -lean_inc(x_193); -x_194 = lean_ctor_get(x_192, 1); -lean_inc(x_194); -lean_dec(x_192); -lean_inc(x_193); -lean_inc(x_2); -x_195 = l_Lean_mkApp(x_2, x_193); -x_196 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_196, 0, x_195); -x_197 = 1; -lean_inc(x_135); -lean_inc(x_196); -lean_inc(x_190); -x_198 = l_Lean_Elab_Term_elabTerm(x_190, x_196, x_197, x_135, x_194); -if (lean_obj_tag(x_198) == 0) -{ -lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; -x_199 = lean_ctor_get(x_198, 0); -lean_inc(x_199); -x_200 = lean_ctor_get(x_198, 1); -lean_inc(x_200); -lean_dec(x_198); -x_201 = l_Lean_Elab_replaceRef(x_190, x_134); -lean_dec(x_134); -lean_dec(x_190); -x_202 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_202, 0, x_121); -lean_ctor_set(x_202, 1, x_122); -lean_ctor_set(x_202, 2, x_123); -lean_ctor_set(x_202, 3, x_124); -lean_ctor_set(x_202, 4, x_125); -lean_ctor_set(x_202, 5, x_126); -lean_ctor_set(x_202, 6, x_127); -lean_ctor_set(x_202, 7, x_128); -lean_ctor_set(x_202, 8, x_129); -lean_ctor_set(x_202, 9, x_201); -lean_ctor_set_uint8(x_202, sizeof(void*)*10, x_130); -lean_ctor_set_uint8(x_202, sizeof(void*)*10 + 1, x_131); -lean_ctor_set_uint8(x_202, sizeof(void*)*10 + 2, x_132); -x_203 = l_Lean_Elab_Term_ensureHasType(x_196, x_199, x_202, x_200); -if (lean_obj_tag(x_203) == 0) -{ -lean_object* x_204; lean_object* x_205; lean_object* x_206; uint8_t x_207; lean_object* x_208; -x_204 = lean_ctor_get(x_203, 0); -lean_inc(x_204); -x_205 = lean_ctor_get(x_203, 1); -lean_inc(x_205); -lean_dec(x_203); -x_206 = lean_alloc_closure((void*)(l___private_Lean_Elab_DoNotation_11__processDoElemsAux___main___lambda__1___boxed), 10, 7); -lean_closure_set(x_206, 0, x_5); -lean_closure_set(x_206, 1, x_204); -lean_closure_set(x_206, 2, x_6); -lean_closure_set(x_206, 3, x_1); -lean_closure_set(x_206, 4, x_2); -lean_closure_set(x_206, 5, x_3); -lean_closure_set(x_206, 6, x_4); -x_207 = 0; -x_208 = l_Lean_Elab_Term_withLocalDecl___rarg(x_186, x_207, x_193, x_206, x_135, x_205); -return x_208; -} -else -{ -lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; -lean_dec(x_193); -lean_dec(x_186); -lean_dec(x_135); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_209 = lean_ctor_get(x_203, 0); -lean_inc(x_209); -x_210 = lean_ctor_get(x_203, 1); -lean_inc(x_210); -if (lean_is_exclusive(x_203)) { - lean_ctor_release(x_203, 0); - lean_ctor_release(x_203, 1); - x_211 = x_203; -} else { - lean_dec_ref(x_203); - x_211 = lean_box(0); -} -if (lean_is_scalar(x_211)) { - x_212 = lean_alloc_ctor(1, 2, 0); -} else { - x_212 = x_211; -} -lean_ctor_set(x_212, 0, x_209); -lean_ctor_set(x_212, 1, x_210); -return x_212; -} -} -else -{ -lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; -lean_dec(x_196); -lean_dec(x_193); -lean_dec(x_190); -lean_dec(x_186); -lean_dec(x_135); -lean_dec(x_134); -lean_dec(x_129); -lean_dec(x_128); -lean_dec(x_127); -lean_dec(x_126); -lean_dec(x_125); -lean_dec(x_124); -lean_dec(x_123); -lean_dec(x_122); -lean_dec(x_121); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_213 = lean_ctor_get(x_198, 0); -lean_inc(x_213); -x_214 = lean_ctor_get(x_198, 1); -lean_inc(x_214); -if (lean_is_exclusive(x_198)) { - lean_ctor_release(x_198, 0); - lean_ctor_release(x_198, 1); - x_215 = x_198; -} else { - lean_dec_ref(x_198); - x_215 = lean_box(0); -} -if (lean_is_scalar(x_215)) { - x_216 = lean_alloc_ctor(1, 2, 0); -} else { - x_216 = x_215; -} -lean_ctor_set(x_216, 0, x_213); -lean_ctor_set(x_216, 1, x_214); -return x_216; -} -} -else -{ -lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; -lean_dec(x_190); -lean_dec(x_186); -lean_dec(x_135); -lean_dec(x_134); -lean_dec(x_129); -lean_dec(x_128); -lean_dec(x_127); -lean_dec(x_126); -lean_dec(x_125); -lean_dec(x_124); -lean_dec(x_123); -lean_dec(x_122); -lean_dec(x_121); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_217 = lean_ctor_get(x_192, 0); -lean_inc(x_217); -x_218 = lean_ctor_get(x_192, 1); -lean_inc(x_218); -if (lean_is_exclusive(x_192)) { - lean_ctor_release(x_192, 0); - lean_ctor_release(x_192, 1); - x_219 = x_192; -} else { - lean_dec_ref(x_192); - x_219 = lean_box(0); -} -if (lean_is_scalar(x_219)) { - x_220 = lean_alloc_ctor(1, 2, 0); -} else { - x_220 = x_219; -} -lean_ctor_set(x_220, 0, x_217); -lean_ctor_set(x_220, 1, x_218); -return x_220; + x_159 = x_158; } +lean_ctor_set(x_159, 0, x_156); +lean_ctor_set(x_159, 1, x_157); +return x_159; } } } @@ -5882,6 +5480,8 @@ _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_82; x_5 = l___private_Lean_Elab_DoNotation_3__getDoElems(x_1); +lean_inc(x_3); +lean_inc(x_2); x_82 = l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(x_2, x_3, x_4); if (lean_obj_tag(x_82) == 0) { diff --git a/stage0/stdlib/Lean/Elab/Match.c b/stage0/stdlib/Lean/Elab/Match.c index 4b44754703..9531b3c786 100644 --- a/stage0/stdlib/Lean/Elab/Match.c +++ b/stage0/stdlib/Lean/Elab/Match.c @@ -169,7 +169,6 @@ lean_object* l_Lean_Meta_withNewLocalInstances___main___at___private_Lean_Elab_M lean_object* l___private_Lean_Elab_Term_3__fromMetaState(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Term_matchDiscr___elambda__1___closed__2; -lean_object* l_Lean_Elab_Term_ensureHasType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Match_19__throwInvalidPattern___rarg___closed__2; lean_object* l_Lean_Elab_Term_reportElimResultErrors___closed__6; lean_object* l___private_Lean_Elab_Match_14__throwAmbiguous___rarg___closed__1; @@ -208,6 +207,7 @@ lean_object* l___private_Lean_Elab_Match_12__throwCtorExpected___rarg___closed__ lean_object* l___private_Lean_Elab_Match_10__mkMVarSyntax(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Match_21__collectPatternVars___closed__1; lean_object* l___private_Lean_Elab_Match_6__elabDiscrsAux___main___closed__14; +lean_object* l_Lean_Elab_Term_elabTermEnsuringType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* lean_expr_instantiate_rev_range(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Match_30__elabPatterns___closed__2; @@ -1667,7 +1667,7 @@ lean_inc(x_41); lean_dec(x_39); if (lean_obj_tag(x_40) == 7) { -lean_object* x_55; lean_object* x_56; lean_object* x_57; uint8_t x_58; lean_object* x_59; +lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; x_55 = lean_ctor_get(x_40, 1); lean_inc(x_55); x_56 = lean_ctor_get(x_40, 2); @@ -1676,164 +1676,122 @@ lean_dec(x_40); lean_inc(x_55); x_57 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_57, 0, x_55); -x_58 = 1; lean_inc(x_6); -lean_inc(x_57); -x_59 = l_Lean_Elab_Term_elabTerm(x_38, x_57, x_58, x_6, x_41); -if (lean_obj_tag(x_59) == 0) +x_58 = l_Lean_Elab_Term_elabTermEnsuringType(x_38, x_57, x_6, x_41); +if (lean_obj_tag(x_58) == 0) { -lean_object* x_60; lean_object* x_61; lean_object* x_62; -x_60 = lean_ctor_get(x_59, 0); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; uint8_t x_69; +x_59 = lean_ctor_get(x_58, 0); +lean_inc(x_59); +x_60 = lean_ctor_get(x_58, 1); lean_inc(x_60); -x_61 = lean_ctor_get(x_59, 1); -lean_inc(x_61); -lean_dec(x_59); -lean_inc(x_6); -x_62 = l_Lean_Elab_Term_ensureHasType(x_57, x_60, x_6, x_61); -if (lean_obj_tag(x_62) == 0) -{ -lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; uint8_t x_73; -x_63 = lean_ctor_get(x_62, 0); -lean_inc(x_63); -x_64 = lean_ctor_get(x_62, 1); -lean_inc(x_64); -lean_dec(x_62); -x_65 = lean_unsigned_to_nat(1u); -x_66 = lean_nat_add(x_3, x_65); -x_67 = lean_expr_instantiate1(x_56, x_63); +lean_dec(x_58); +x_61 = lean_unsigned_to_nat(1u); +x_62 = lean_nat_add(x_3, x_61); +x_63 = lean_expr_instantiate1(x_56, x_59); lean_dec(x_56); -lean_inc(x_63); -x_68 = lean_array_push(x_5, x_63); -x_69 = l_Lean_Elab_Term_getOptions(x_6, x_64); -x_70 = lean_ctor_get(x_69, 0); -lean_inc(x_70); -x_71 = lean_ctor_get(x_69, 1); -lean_inc(x_71); -lean_dec(x_69); -x_72 = l___private_Lean_Elab_Match_6__elabDiscrsAux___main___closed__13; -x_73 = l_Lean_checkTraceOption(x_70, x_72); -lean_dec(x_70); -if (x_73 == 0) +lean_inc(x_59); +x_64 = lean_array_push(x_5, x_59); +x_65 = l_Lean_Elab_Term_getOptions(x_6, x_60); +x_66 = lean_ctor_get(x_65, 0); +lean_inc(x_66); +x_67 = lean_ctor_get(x_65, 1); +lean_inc(x_67); +lean_dec(x_65); +x_68 = l___private_Lean_Elab_Match_6__elabDiscrsAux___main___closed__13; +x_69 = l_Lean_checkTraceOption(x_66, x_68); +lean_dec(x_66); +if (x_69 == 0) { -lean_dec(x_63); +lean_dec(x_59); lean_dec(x_55); lean_dec(x_3); -x_3 = x_66; -x_4 = x_67; -x_5 = x_68; -x_7 = x_71; +x_3 = x_62; +x_4 = x_63; +x_5 = x_64; +x_7 = x_67; goto _start; } else { -lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_75 = l_Nat_repr(x_3); -x_76 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_76, 0, x_75); -x_77 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_77, 0, x_76); -x_78 = l___private_Lean_Elab_Match_6__elabDiscrsAux___main___closed__16; +lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; +x_71 = l_Nat_repr(x_3); +x_72 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_72, 0, x_71); +x_73 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_73, 0, x_72); +x_74 = l___private_Lean_Elab_Match_6__elabDiscrsAux___main___closed__16; +x_75 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_75, 0, x_74); +lean_ctor_set(x_75, 1, x_73); +x_76 = l_Lean_Meta_Exception_toTraceMessageData___closed__4; +x_77 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_77, 0, x_75); +lean_ctor_set(x_77, 1, x_76); +x_78 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_78, 0, x_59); x_79 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_79, 0, x_78); -lean_ctor_set(x_79, 1, x_77); -x_80 = l_Lean_Meta_Exception_toTraceMessageData___closed__4; +lean_ctor_set(x_79, 0, x_77); +lean_ctor_set(x_79, 1, x_78); +x_80 = l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___closed__7; x_81 = lean_alloc_ctor(9, 2, 0); lean_ctor_set(x_81, 0, x_79); lean_ctor_set(x_81, 1, x_80); x_82 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_82, 0, x_63); +lean_ctor_set(x_82, 0, x_55); x_83 = lean_alloc_ctor(9, 2, 0); lean_ctor_set(x_83, 0, x_81); lean_ctor_set(x_83, 1, x_82); -x_84 = l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___closed__7; -x_85 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_85, 0, x_83); -lean_ctor_set(x_85, 1, x_84); -x_86 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_86, 0, x_55); -x_87 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_87, 0, x_85); -lean_ctor_set(x_87, 1, x_86); -x_88 = l_Lean_Elab_Term_logTrace(x_72, x_87, x_6, x_71); -x_89 = lean_ctor_get(x_88, 1); -lean_inc(x_89); -lean_dec(x_88); -x_3 = x_66; -x_4 = x_67; -x_5 = x_68; -x_7 = x_89; +x_84 = l_Lean_Elab_Term_logTrace(x_68, x_83, x_6, x_67); +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +lean_dec(x_84); +x_3 = x_62; +x_4 = x_63; +x_5 = x_64; +x_7 = x_85; goto _start; } } else { -uint8_t x_91; +uint8_t x_87; lean_dec(x_56); lean_dec(x_55); lean_dec(x_6); lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); -x_91 = !lean_is_exclusive(x_62); -if (x_91 == 0) +x_87 = !lean_is_exclusive(x_58); +if (x_87 == 0) { -return x_62; +return x_58; } else { -lean_object* x_92; lean_object* x_93; lean_object* x_94; -x_92 = lean_ctor_get(x_62, 0); -x_93 = lean_ctor_get(x_62, 1); -lean_inc(x_93); -lean_inc(x_92); -lean_dec(x_62); -x_94 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_94, 0, x_92); -lean_ctor_set(x_94, 1, x_93); -return x_94; +lean_object* x_88; lean_object* x_89; lean_object* x_90; +x_88 = lean_ctor_get(x_58, 0); +x_89 = lean_ctor_get(x_58, 1); +lean_inc(x_89); +lean_inc(x_88); +lean_dec(x_58); +x_90 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_90, 0, x_88); +lean_ctor_set(x_90, 1, x_89); +return x_90; } } } else { -uint8_t x_95; -lean_dec(x_57); -lean_dec(x_56); -lean_dec(x_55); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -x_95 = !lean_is_exclusive(x_59); -if (x_95 == 0) -{ -return x_59; -} -else -{ -lean_object* x_96; lean_object* x_97; lean_object* x_98; -x_96 = lean_ctor_get(x_59, 0); -x_97 = lean_ctor_get(x_59, 1); -lean_inc(x_97); -lean_inc(x_96); -lean_dec(x_59); -x_98 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_98, 0, x_96); -lean_ctor_set(x_98, 1, x_97); -return x_98; -} -} -} -else -{ -lean_object* x_99; +lean_object* x_91; lean_dec(x_40); lean_dec(x_38); lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); -x_99 = lean_box(0); -x_42 = x_99; +x_91 = lean_box(0); +x_42 = x_91; goto block_54; } block_54: @@ -1863,29 +1821,29 @@ return x_53; } else { -uint8_t x_100; +uint8_t x_92; lean_dec(x_38); lean_dec(x_6); lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); -x_100 = !lean_is_exclusive(x_39); -if (x_100 == 0) +x_92 = !lean_is_exclusive(x_39); +if (x_92 == 0) { return x_39; } else { -lean_object* x_101; lean_object* x_102; lean_object* x_103; -x_101 = lean_ctor_get(x_39, 0); -x_102 = lean_ctor_get(x_39, 1); -lean_inc(x_102); -lean_inc(x_101); +lean_object* x_93; lean_object* x_94; lean_object* x_95; +x_93 = lean_ctor_get(x_39, 0); +x_94 = lean_ctor_get(x_39, 1); +lean_inc(x_94); +lean_inc(x_93); lean_dec(x_39); -x_103 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_103, 0, x_101); -lean_ctor_set(x_103, 1, x_102); -return x_103; +x_95 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_95, 0, x_93); +lean_ctor_set(x_95, 1, x_94); +return x_95; } } } @@ -17159,7 +17117,7 @@ x_12 = lean_ctor_get(x_11, 0); lean_inc(x_12); if (lean_obj_tag(x_12) == 7) { -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; lean_object* x_19; +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; x_13 = lean_ctor_get(x_11, 1); lean_inc(x_13); lean_dec(x_11); @@ -17171,173 +17129,92 @@ lean_dec(x_12); x_16 = lean_array_fget(x_1, x_2); x_17 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_17, 0, x_14); -x_18 = 1; lean_inc(x_5); -lean_inc(x_17); -lean_inc(x_16); -x_19 = l_Lean_Elab_Term_elabTerm(x_16, x_17, x_18, x_5, x_13); -if (lean_obj_tag(x_19) == 0) +x_18 = l_Lean_Elab_Term_elabTermEnsuringType(x_16, x_17, x_5, x_13); +if (lean_obj_tag(x_18) == 0) { -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; uint8_t x_32; uint8_t x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_20 = lean_ctor_get(x_19, 0); +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_18, 1); lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = lean_ctor_get(x_5, 0); -lean_inc(x_22); -x_23 = lean_ctor_get(x_5, 1); -lean_inc(x_23); -x_24 = lean_ctor_get(x_5, 2); -lean_inc(x_24); -x_25 = lean_ctor_get(x_5, 3); -lean_inc(x_25); -x_26 = lean_ctor_get(x_5, 4); -lean_inc(x_26); -x_27 = lean_ctor_get(x_5, 5); -lean_inc(x_27); -x_28 = lean_ctor_get(x_5, 6); -lean_inc(x_28); -x_29 = lean_ctor_get(x_5, 7); -lean_inc(x_29); -x_30 = lean_ctor_get(x_5, 8); -lean_inc(x_30); -x_31 = lean_ctor_get_uint8(x_5, sizeof(void*)*10); -x_32 = lean_ctor_get_uint8(x_5, sizeof(void*)*10 + 1); -x_33 = lean_ctor_get_uint8(x_5, sizeof(void*)*10 + 2); -x_34 = lean_ctor_get(x_5, 9); -lean_inc(x_34); -x_35 = l_Lean_Elab_replaceRef(x_16, x_34); -lean_dec(x_34); -lean_dec(x_16); -x_36 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_36, 0, x_22); -lean_ctor_set(x_36, 1, x_23); -lean_ctor_set(x_36, 2, x_24); -lean_ctor_set(x_36, 3, x_25); -lean_ctor_set(x_36, 4, x_26); -lean_ctor_set(x_36, 5, x_27); -lean_ctor_set(x_36, 6, x_28); -lean_ctor_set(x_36, 7, x_29); -lean_ctor_set(x_36, 8, x_30); -lean_ctor_set(x_36, 9, x_35); -lean_ctor_set_uint8(x_36, sizeof(void*)*10, x_31); -lean_ctor_set_uint8(x_36, sizeof(void*)*10 + 1, x_32); -lean_ctor_set_uint8(x_36, sizeof(void*)*10 + 2, x_33); -x_37 = l_Lean_Elab_Term_ensureHasType(x_17, x_20, x_36, x_21); -if (lean_obj_tag(x_37) == 0) -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_38 = lean_ctor_get(x_37, 0); -lean_inc(x_38); -x_39 = lean_ctor_get(x_37, 1); -lean_inc(x_39); -lean_dec(x_37); -x_40 = lean_unsigned_to_nat(1u); -x_41 = lean_nat_add(x_2, x_40); +lean_dec(x_18); +x_21 = lean_unsigned_to_nat(1u); +x_22 = lean_nat_add(x_2, x_21); lean_dec(x_2); -x_42 = lean_expr_instantiate1(x_15, x_38); +x_23 = lean_expr_instantiate1(x_15, x_19); lean_dec(x_15); -x_43 = lean_array_push(x_4, x_38); -x_2 = x_41; -x_3 = x_42; -x_4 = x_43; -x_6 = x_39; +x_24 = lean_array_push(x_4, x_19); +x_2 = x_22; +x_3 = x_23; +x_4 = x_24; +x_6 = x_20; goto _start; } else { -uint8_t x_45; +uint8_t x_26; lean_dec(x_15); lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); -x_45 = !lean_is_exclusive(x_37); -if (x_45 == 0) +x_26 = !lean_is_exclusive(x_18); +if (x_26 == 0) { -return x_37; +return x_18; } else { -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_37, 0); -x_47 = lean_ctor_get(x_37, 1); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_37); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_18, 0); +x_28 = lean_ctor_get(x_18, 1); +lean_inc(x_28); +lean_inc(x_27); +lean_dec(x_18); +x_29 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +return x_29; } } } else { -uint8_t x_49; -lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_15); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -x_49 = !lean_is_exclusive(x_19); -if (x_49 == 0) -{ -return x_19; -} -else -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_19, 0); -x_51 = lean_ctor_get(x_19, 1); -lean_inc(x_51); -lean_inc(x_50); -lean_dec(x_19); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; -} -} -} -else -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_dec(x_12); lean_dec(x_4); lean_dec(x_2); -x_53 = lean_ctor_get(x_11, 1); -lean_inc(x_53); +x_30 = lean_ctor_get(x_11, 1); +lean_inc(x_30); lean_dec(x_11); -x_54 = l___private_Lean_Elab_Match_24__elabPatternsAux___main___closed__3; -x_55 = l_Lean_Elab_Term_throwError___rarg(x_54, x_5, x_53); -return x_55; +x_31 = l___private_Lean_Elab_Match_24__elabPatternsAux___main___closed__3; +x_32 = l_Lean_Elab_Term_throwError___rarg(x_31, x_5, x_30); +return x_32; } } else { -uint8_t x_56; +uint8_t x_33; lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); -x_56 = !lean_is_exclusive(x_11); -if (x_56 == 0) +x_33 = !lean_is_exclusive(x_11); +if (x_33 == 0) { return x_11; } else { -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_ctor_get(x_11, 0); -x_58 = lean_ctor_get(x_11, 1); -lean_inc(x_58); -lean_inc(x_57); +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_11, 0); +x_35 = lean_ctor_get(x_11, 1); +lean_inc(x_35); +lean_inc(x_34); lean_dec(x_11); -x_59 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_59, 0, x_57); -lean_ctor_set(x_59, 1, x_58); -return x_59; +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +return x_36; } } } @@ -21031,7 +20908,7 @@ lean_dec(x_8); x_11 = !lean_is_exclusive(x_9); if (x_11 == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; x_12 = lean_ctor_get(x_9, 0); x_13 = lean_ctor_get(x_9, 1); x_14 = lean_ctor_get(x_1, 2); @@ -21039,585 +20916,583 @@ lean_inc(x_14); lean_dec(x_1); x_15 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_15, 0, x_13); -x_16 = 1; lean_inc(x_5); -x_17 = l_Lean_Elab_Term_elabTerm(x_14, x_15, x_16, x_5, x_10); -if (lean_obj_tag(x_17) == 0) +x_16 = l_Lean_Elab_Term_elabTermEnsuringType(x_14, x_15, x_5, x_10); +if (lean_obj_tag(x_16) == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; -x_18 = lean_ctor_get(x_17, 0); +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); +lean_dec(x_16); +x_19 = lean_ctor_get(x_12, 0); lean_inc(x_19); -lean_dec(x_17); -x_20 = lean_ctor_get(x_12, 0); -lean_inc(x_20); -x_21 = l_List_redLength___main___rarg(x_20); -x_22 = lean_mk_empty_array_with_capacity(x_21); -lean_dec(x_21); -x_23 = l_List_toArrayAux___main___rarg(x_20, x_22); -x_24 = x_23; -x_25 = lean_unsigned_to_nat(0u); -x_26 = l_Array_umapMAux___main___at___private_Lean_Meta_EqnCompiler_DepElim_2__withAltsAux___main___spec__1(x_25, x_24); -x_27 = x_26; -x_28 = l_Array_isEmpty___rarg(x_27); -if (x_28 == 0) +x_20 = l_List_redLength___main___rarg(x_19); +x_21 = lean_mk_empty_array_with_capacity(x_20); +lean_dec(x_20); +x_22 = l_List_toArrayAux___main___rarg(x_19, x_21); +x_23 = x_22; +x_24 = lean_unsigned_to_nat(0u); +x_25 = l_Array_umapMAux___main___at___private_Lean_Meta_EqnCompiler_DepElim_2__withAltsAux___main___spec__1(x_24, x_23); +x_26 = x_25; +x_27 = l_Array_isEmpty___rarg(x_26); +if (x_27 == 0) { -lean_object* x_29; +lean_object* x_28; lean_inc(x_5); -x_29 = l_Lean_Elab_Term_mkLambda(x_27, x_18, x_5, x_19); -if (lean_obj_tag(x_29) == 0) +x_28 = l_Lean_Elab_Term_mkLambda(x_26, x_17, x_5, x_18); +if (lean_obj_tag(x_28) == 0) { -lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; -x_30 = lean_ctor_get(x_29, 0); +lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_29 = lean_ctor_get(x_28, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_28, 1); lean_inc(x_30); -x_31 = lean_ctor_get(x_29, 1); -lean_inc(x_31); -lean_dec(x_29); -lean_inc(x_30); -lean_ctor_set(x_9, 1, x_30); -x_32 = l_Lean_Elab_Term_getOptions(x_5, x_31); -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) +lean_dec(x_28); +lean_inc(x_29); +lean_ctor_set(x_9, 1, x_29); +x_31 = l_Lean_Elab_Term_getOptions(x_5, x_30); +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) { -lean_object* x_34; lean_object* x_35; uint8_t x_36; -x_34 = lean_ctor_get(x_32, 0); -x_35 = lean_ctor_get(x_32, 1); +lean_object* x_33; lean_object* x_34; uint8_t x_35; +x_33 = lean_ctor_get(x_31, 0); +x_34 = lean_ctor_get(x_31, 1); lean_inc(x_3); -x_36 = l_Lean_checkTraceOption(x_34, x_3); -lean_dec(x_34); -if (x_36 == 0) +x_35 = l_Lean_checkTraceOption(x_33, x_3); +lean_dec(x_33); +if (x_35 == 0) { -lean_dec(x_30); +lean_dec(x_29); lean_dec(x_5); lean_dec(x_3); -lean_ctor_set(x_32, 0, x_9); -return x_32; +lean_ctor_set(x_31, 0, x_9); +return x_31; } else { -lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; -lean_free_object(x_32); -x_37 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_37, 0, x_30); -x_38 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; -x_39 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_39, 0, x_38); -lean_ctor_set(x_39, 1, x_37); -x_40 = l_Lean_Elab_Term_logTrace(x_3, x_39, x_5, x_35); +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; +lean_free_object(x_31); +x_36 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_36, 0, x_29); +x_37 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; +x_38 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_36); +x_39 = l_Lean_Elab_Term_logTrace(x_3, x_38, x_5, x_34); lean_dec(x_5); -x_41 = !lean_is_exclusive(x_40); -if (x_41 == 0) +x_40 = !lean_is_exclusive(x_39); +if (x_40 == 0) { -lean_object* x_42; -x_42 = lean_ctor_get(x_40, 0); -lean_dec(x_42); -lean_ctor_set(x_40, 0, x_9); -return x_40; +lean_object* x_41; +x_41 = lean_ctor_get(x_39, 0); +lean_dec(x_41); +lean_ctor_set(x_39, 0, x_9); +return x_39; } else { -lean_object* x_43; lean_object* x_44; -x_43 = lean_ctor_get(x_40, 1); -lean_inc(x_43); -lean_dec(x_40); -x_44 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_44, 0, x_9); -lean_ctor_set(x_44, 1, x_43); -return x_44; +lean_object* x_42; lean_object* x_43; +x_42 = lean_ctor_get(x_39, 1); +lean_inc(x_42); +lean_dec(x_39); +x_43 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_43, 0, x_9); +lean_ctor_set(x_43, 1, x_42); +return x_43; } } } else { -lean_object* x_45; lean_object* x_46; uint8_t x_47; -x_45 = lean_ctor_get(x_32, 0); -x_46 = lean_ctor_get(x_32, 1); -lean_inc(x_46); +lean_object* x_44; lean_object* x_45; uint8_t x_46; +x_44 = lean_ctor_get(x_31, 0); +x_45 = lean_ctor_get(x_31, 1); lean_inc(x_45); -lean_dec(x_32); +lean_inc(x_44); +lean_dec(x_31); lean_inc(x_3); -x_47 = l_Lean_checkTraceOption(x_45, x_3); -lean_dec(x_45); -if (x_47 == 0) +x_46 = l_Lean_checkTraceOption(x_44, x_3); +lean_dec(x_44); +if (x_46 == 0) { -lean_object* x_48; -lean_dec(x_30); -lean_dec(x_5); -lean_dec(x_3); -x_48 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_48, 0, x_9); -lean_ctor_set(x_48, 1, x_46); -return x_48; -} -else -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_49 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_49, 0, x_30); -x_50 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; -x_51 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_51, 0, x_50); -lean_ctor_set(x_51, 1, x_49); -x_52 = l_Lean_Elab_Term_logTrace(x_3, x_51, x_5, x_46); -lean_dec(x_5); -x_53 = lean_ctor_get(x_52, 1); -lean_inc(x_53); -if (lean_is_exclusive(x_52)) { - lean_ctor_release(x_52, 0); - lean_ctor_release(x_52, 1); - x_54 = x_52; -} else { - lean_dec_ref(x_52); - x_54 = lean_box(0); -} -if (lean_is_scalar(x_54)) { - x_55 = lean_alloc_ctor(0, 2, 0); -} else { - x_55 = x_54; -} -lean_ctor_set(x_55, 0, x_9); -lean_ctor_set(x_55, 1, x_53); -return x_55; -} -} -} -else -{ -uint8_t x_56; -lean_free_object(x_9); -lean_dec(x_12); -lean_dec(x_5); -lean_dec(x_3); -x_56 = !lean_is_exclusive(x_29); -if (x_56 == 0) -{ -return x_29; -} -else -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_ctor_get(x_29, 0); -x_58 = lean_ctor_get(x_29, 1); -lean_inc(x_58); -lean_inc(x_57); +lean_object* x_47; lean_dec(x_29); -x_59 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_59, 0, x_57); -lean_ctor_set(x_59, 1, x_58); -return x_59; -} -} -} -else -{ -lean_object* x_60; lean_object* x_61; uint8_t x_62; -lean_dec(x_27); -x_60 = l_Lean_mkThunk(x_18); -lean_inc(x_60); -lean_ctor_set(x_9, 1, x_60); -x_61 = l_Lean_Elab_Term_getOptions(x_5, x_19); -x_62 = !lean_is_exclusive(x_61); -if (x_62 == 0) -{ -lean_object* x_63; lean_object* x_64; uint8_t x_65; -x_63 = lean_ctor_get(x_61, 0); -x_64 = lean_ctor_get(x_61, 1); -lean_inc(x_3); -x_65 = l_Lean_checkTraceOption(x_63, x_3); -lean_dec(x_63); -if (x_65 == 0) -{ -lean_dec(x_60); lean_dec(x_5); lean_dec(x_3); -lean_ctor_set(x_61, 0, x_9); -return x_61; +x_47 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_47, 0, x_9); +lean_ctor_set(x_47, 1, x_45); +return x_47; } else { -lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; uint8_t x_70; -lean_free_object(x_61); -x_66 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_66, 0, x_60); -x_67 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; -x_68 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_68, 0, x_67); -lean_ctor_set(x_68, 1, x_66); -x_69 = l_Lean_Elab_Term_logTrace(x_3, x_68, x_5, x_64); +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_48 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_48, 0, x_29); +x_49 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; +x_50 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_50, 0, x_49); +lean_ctor_set(x_50, 1, x_48); +x_51 = l_Lean_Elab_Term_logTrace(x_3, x_50, x_5, x_45); lean_dec(x_5); -x_70 = !lean_is_exclusive(x_69); -if (x_70 == 0) -{ -lean_object* x_71; -x_71 = lean_ctor_get(x_69, 0); -lean_dec(x_71); -lean_ctor_set(x_69, 0, x_9); -return x_69; -} -else -{ -lean_object* x_72; lean_object* x_73; -x_72 = lean_ctor_get(x_69, 1); -lean_inc(x_72); -lean_dec(x_69); -x_73 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_73, 0, x_9); -lean_ctor_set(x_73, 1, x_72); -return x_73; -} -} -} -else -{ -lean_object* x_74; lean_object* x_75; uint8_t x_76; -x_74 = lean_ctor_get(x_61, 0); -x_75 = lean_ctor_get(x_61, 1); -lean_inc(x_75); -lean_inc(x_74); -lean_dec(x_61); -lean_inc(x_3); -x_76 = l_Lean_checkTraceOption(x_74, x_3); -lean_dec(x_74); -if (x_76 == 0) -{ -lean_object* x_77; -lean_dec(x_60); -lean_dec(x_5); -lean_dec(x_3); -x_77 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_77, 0, x_9); -lean_ctor_set(x_77, 1, x_75); -return x_77; -} -else -{ -lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -x_78 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_78, 0, x_60); -x_79 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; -x_80 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_80, 0, x_79); -lean_ctor_set(x_80, 1, x_78); -x_81 = l_Lean_Elab_Term_logTrace(x_3, x_80, x_5, x_75); -lean_dec(x_5); -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_83 = x_81; +x_52 = lean_ctor_get(x_51, 1); +lean_inc(x_52); +if (lean_is_exclusive(x_51)) { + lean_ctor_release(x_51, 0); + lean_ctor_release(x_51, 1); + x_53 = x_51; } else { - lean_dec_ref(x_81); - x_83 = lean_box(0); + lean_dec_ref(x_51); + x_53 = lean_box(0); } -if (lean_is_scalar(x_83)) { - x_84 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_53)) { + x_54 = lean_alloc_ctor(0, 2, 0); } else { - x_84 = x_83; -} -lean_ctor_set(x_84, 0, x_9); -lean_ctor_set(x_84, 1, x_82); -return x_84; + x_54 = x_53; } +lean_ctor_set(x_54, 0, x_9); +lean_ctor_set(x_54, 1, x_52); +return x_54; } } } else { -uint8_t x_85; +uint8_t x_55; lean_free_object(x_9); lean_dec(x_12); lean_dec(x_5); lean_dec(x_3); -x_85 = !lean_is_exclusive(x_17); -if (x_85 == 0) +x_55 = !lean_is_exclusive(x_28); +if (x_55 == 0) { -return x_17; +return x_28; } else { -lean_object* x_86; lean_object* x_87; lean_object* x_88; -x_86 = lean_ctor_get(x_17, 0); -x_87 = lean_ctor_get(x_17, 1); -lean_inc(x_87); +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_ctor_get(x_28, 0); +x_57 = lean_ctor_get(x_28, 1); +lean_inc(x_57); +lean_inc(x_56); +lean_dec(x_28); +x_58 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_58, 0, x_56); +lean_ctor_set(x_58, 1, x_57); +return x_58; +} +} +} +else +{ +lean_object* x_59; lean_object* x_60; uint8_t x_61; +lean_dec(x_26); +x_59 = l_Lean_mkThunk(x_17); +lean_inc(x_59); +lean_ctor_set(x_9, 1, x_59); +x_60 = l_Lean_Elab_Term_getOptions(x_5, x_18); +x_61 = !lean_is_exclusive(x_60); +if (x_61 == 0) +{ +lean_object* x_62; lean_object* x_63; uint8_t x_64; +x_62 = lean_ctor_get(x_60, 0); +x_63 = lean_ctor_get(x_60, 1); +lean_inc(x_3); +x_64 = l_Lean_checkTraceOption(x_62, x_3); +lean_dec(x_62); +if (x_64 == 0) +{ +lean_dec(x_59); +lean_dec(x_5); +lean_dec(x_3); +lean_ctor_set(x_60, 0, x_9); +return x_60; +} +else +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; uint8_t x_69; +lean_free_object(x_60); +x_65 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_65, 0, x_59); +x_66 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; +x_67 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_67, 0, x_66); +lean_ctor_set(x_67, 1, x_65); +x_68 = l_Lean_Elab_Term_logTrace(x_3, x_67, x_5, x_63); +lean_dec(x_5); +x_69 = !lean_is_exclusive(x_68); +if (x_69 == 0) +{ +lean_object* x_70; +x_70 = lean_ctor_get(x_68, 0); +lean_dec(x_70); +lean_ctor_set(x_68, 0, x_9); +return x_68; +} +else +{ +lean_object* x_71; lean_object* x_72; +x_71 = lean_ctor_get(x_68, 1); +lean_inc(x_71); +lean_dec(x_68); +x_72 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_72, 0, x_9); +lean_ctor_set(x_72, 1, x_71); +return x_72; +} +} +} +else +{ +lean_object* x_73; lean_object* x_74; uint8_t x_75; +x_73 = lean_ctor_get(x_60, 0); +x_74 = lean_ctor_get(x_60, 1); +lean_inc(x_74); +lean_inc(x_73); +lean_dec(x_60); +lean_inc(x_3); +x_75 = l_Lean_checkTraceOption(x_73, x_3); +lean_dec(x_73); +if (x_75 == 0) +{ +lean_object* x_76; +lean_dec(x_59); +lean_dec(x_5); +lean_dec(x_3); +x_76 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_76, 0, x_9); +lean_ctor_set(x_76, 1, x_74); +return x_76; +} +else +{ +lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; +x_77 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_77, 0, x_59); +x_78 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; +x_79 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_79, 0, x_78); +lean_ctor_set(x_79, 1, x_77); +x_80 = l_Lean_Elab_Term_logTrace(x_3, x_79, x_5, x_74); +lean_dec(x_5); +x_81 = lean_ctor_get(x_80, 1); +lean_inc(x_81); +if (lean_is_exclusive(x_80)) { + lean_ctor_release(x_80, 0); + lean_ctor_release(x_80, 1); + x_82 = x_80; +} else { + lean_dec_ref(x_80); + x_82 = lean_box(0); +} +if (lean_is_scalar(x_82)) { + x_83 = lean_alloc_ctor(0, 2, 0); +} else { + x_83 = x_82; +} +lean_ctor_set(x_83, 0, x_9); +lean_ctor_set(x_83, 1, x_81); +return x_83; +} +} +} +} +else +{ +uint8_t x_84; +lean_free_object(x_9); +lean_dec(x_12); +lean_dec(x_5); +lean_dec(x_3); +x_84 = !lean_is_exclusive(x_16); +if (x_84 == 0) +{ +return x_16; +} +else +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_16, 0); +x_86 = lean_ctor_get(x_16, 1); lean_inc(x_86); -lean_dec(x_17); -x_88 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_88, 0, x_86); -lean_ctor_set(x_88, 1, x_87); -return x_88; +lean_inc(x_85); +lean_dec(x_16); +x_87 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_87, 0, x_85); +lean_ctor_set(x_87, 1, x_86); +return x_87; } } } else { -lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; uint8_t x_93; lean_object* x_94; -x_89 = lean_ctor_get(x_9, 0); -x_90 = lean_ctor_get(x_9, 1); -lean_inc(x_90); +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; +x_88 = lean_ctor_get(x_9, 0); +x_89 = lean_ctor_get(x_9, 1); lean_inc(x_89); +lean_inc(x_88); lean_dec(x_9); -x_91 = lean_ctor_get(x_1, 2); -lean_inc(x_91); +x_90 = lean_ctor_get(x_1, 2); +lean_inc(x_90); lean_dec(x_1); -x_92 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_92, 0, x_90); -x_93 = 1; +x_91 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_91, 0, x_89); lean_inc(x_5); -x_94 = l_Lean_Elab_Term_elabTerm(x_91, x_92, x_93, x_5, x_10); -if (lean_obj_tag(x_94) == 0) +x_92 = l_Lean_Elab_Term_elabTermEnsuringType(x_90, x_91, x_5, x_10); +if (lean_obj_tag(x_92) == 0) { -lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; uint8_t x_105; -x_95 = lean_ctor_get(x_94, 0); +lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; uint8_t x_103; +x_93 = lean_ctor_get(x_92, 0); +lean_inc(x_93); +x_94 = lean_ctor_get(x_92, 1); +lean_inc(x_94); +lean_dec(x_92); +x_95 = lean_ctor_get(x_88, 0); lean_inc(x_95); -x_96 = lean_ctor_get(x_94, 1); -lean_inc(x_96); -lean_dec(x_94); -x_97 = lean_ctor_get(x_89, 0); -lean_inc(x_97); -x_98 = l_List_redLength___main___rarg(x_97); -x_99 = lean_mk_empty_array_with_capacity(x_98); -lean_dec(x_98); -x_100 = l_List_toArrayAux___main___rarg(x_97, x_99); -x_101 = x_100; -x_102 = lean_unsigned_to_nat(0u); -x_103 = l_Array_umapMAux___main___at___private_Lean_Meta_EqnCompiler_DepElim_2__withAltsAux___main___spec__1(x_102, x_101); -x_104 = x_103; -x_105 = l_Array_isEmpty___rarg(x_104); -if (x_105 == 0) +x_96 = l_List_redLength___main___rarg(x_95); +x_97 = lean_mk_empty_array_with_capacity(x_96); +lean_dec(x_96); +x_98 = l_List_toArrayAux___main___rarg(x_95, x_97); +x_99 = x_98; +x_100 = lean_unsigned_to_nat(0u); +x_101 = l_Array_umapMAux___main___at___private_Lean_Meta_EqnCompiler_DepElim_2__withAltsAux___main___spec__1(x_100, x_99); +x_102 = x_101; +x_103 = l_Array_isEmpty___rarg(x_102); +if (x_103 == 0) { -lean_object* x_106; +lean_object* x_104; lean_inc(x_5); -x_106 = l_Lean_Elab_Term_mkLambda(x_104, x_95, x_5, x_96); -if (lean_obj_tag(x_106) == 0) +x_104 = l_Lean_Elab_Term_mkLambda(x_102, x_93, x_5, x_94); +if (lean_obj_tag(x_104) == 0) { -lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; uint8_t x_114; -x_107 = lean_ctor_get(x_106, 0); -lean_inc(x_107); -x_108 = lean_ctor_get(x_106, 1); -lean_inc(x_108); -lean_dec(x_106); -lean_inc(x_107); -x_109 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_109, 0, x_89); -lean_ctor_set(x_109, 1, x_107); -x_110 = l_Lean_Elab_Term_getOptions(x_5, x_108); -x_111 = lean_ctor_get(x_110, 0); -lean_inc(x_111); -x_112 = lean_ctor_get(x_110, 1); -lean_inc(x_112); -if (lean_is_exclusive(x_110)) { - lean_ctor_release(x_110, 0); - lean_ctor_release(x_110, 1); - x_113 = x_110; -} else { - lean_dec_ref(x_110); - x_113 = lean_box(0); -} -lean_inc(x_3); -x_114 = l_Lean_checkTraceOption(x_111, x_3); -lean_dec(x_111); -if (x_114 == 0) -{ -lean_object* x_115; -lean_dec(x_107); -lean_dec(x_5); -lean_dec(x_3); -if (lean_is_scalar(x_113)) { - x_115 = lean_alloc_ctor(0, 2, 0); -} else { - x_115 = x_113; -} -lean_ctor_set(x_115, 0, x_109); -lean_ctor_set(x_115, 1, x_112); -return x_115; -} -else -{ -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_dec(x_113); -x_116 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_116, 0, x_107); -x_117 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; -x_118 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_118, 0, x_117); -lean_ctor_set(x_118, 1, x_116); -x_119 = l_Lean_Elab_Term_logTrace(x_3, x_118, x_5, x_112); -lean_dec(x_5); -x_120 = lean_ctor_get(x_119, 1); -lean_inc(x_120); -if (lean_is_exclusive(x_119)) { - lean_ctor_release(x_119, 0); - lean_ctor_release(x_119, 1); - x_121 = x_119; -} else { - lean_dec_ref(x_119); - x_121 = lean_box(0); -} -if (lean_is_scalar(x_121)) { - x_122 = lean_alloc_ctor(0, 2, 0); -} else { - x_122 = x_121; -} -lean_ctor_set(x_122, 0, x_109); -lean_ctor_set(x_122, 1, x_120); -return x_122; -} -} -else -{ -lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; -lean_dec(x_89); -lean_dec(x_5); -lean_dec(x_3); -x_123 = lean_ctor_get(x_106, 0); -lean_inc(x_123); -x_124 = lean_ctor_get(x_106, 1); -lean_inc(x_124); -if (lean_is_exclusive(x_106)) { - lean_ctor_release(x_106, 0); - lean_ctor_release(x_106, 1); - x_125 = x_106; -} else { - lean_dec_ref(x_106); - x_125 = lean_box(0); -} -if (lean_is_scalar(x_125)) { - x_126 = lean_alloc_ctor(1, 2, 0); -} else { - x_126 = x_125; -} -lean_ctor_set(x_126, 0, x_123); -lean_ctor_set(x_126, 1, x_124); -return x_126; -} -} -else -{ -lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; uint8_t x_133; +lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; uint8_t x_112; +x_105 = lean_ctor_get(x_104, 0); +lean_inc(x_105); +x_106 = lean_ctor_get(x_104, 1); +lean_inc(x_106); lean_dec(x_104); -x_127 = l_Lean_mkThunk(x_95); -lean_inc(x_127); -x_128 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_128, 0, x_89); -lean_ctor_set(x_128, 1, x_127); -x_129 = l_Lean_Elab_Term_getOptions(x_5, x_96); -x_130 = lean_ctor_get(x_129, 0); -lean_inc(x_130); -x_131 = lean_ctor_get(x_129, 1); -lean_inc(x_131); -if (lean_is_exclusive(x_129)) { - lean_ctor_release(x_129, 0); - lean_ctor_release(x_129, 1); - x_132 = x_129; +lean_inc(x_105); +x_107 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_107, 0, x_88); +lean_ctor_set(x_107, 1, x_105); +x_108 = l_Lean_Elab_Term_getOptions(x_5, x_106); +x_109 = lean_ctor_get(x_108, 0); +lean_inc(x_109); +x_110 = lean_ctor_get(x_108, 1); +lean_inc(x_110); +if (lean_is_exclusive(x_108)) { + lean_ctor_release(x_108, 0); + lean_ctor_release(x_108, 1); + x_111 = x_108; } else { - lean_dec_ref(x_129); - x_132 = lean_box(0); + lean_dec_ref(x_108); + x_111 = lean_box(0); } lean_inc(x_3); -x_133 = l_Lean_checkTraceOption(x_130, x_3); +x_112 = l_Lean_checkTraceOption(x_109, x_3); +lean_dec(x_109); +if (x_112 == 0) +{ +lean_object* x_113; +lean_dec(x_105); +lean_dec(x_5); +lean_dec(x_3); +if (lean_is_scalar(x_111)) { + x_113 = lean_alloc_ctor(0, 2, 0); +} else { + x_113 = x_111; +} +lean_ctor_set(x_113, 0, x_107); +lean_ctor_set(x_113, 1, x_110); +return x_113; +} +else +{ +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_dec(x_111); +x_114 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_114, 0, x_105); +x_115 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; +x_116 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_116, 0, x_115); +lean_ctor_set(x_116, 1, x_114); +x_117 = l_Lean_Elab_Term_logTrace(x_3, x_116, x_5, x_110); +lean_dec(x_5); +x_118 = lean_ctor_get(x_117, 1); +lean_inc(x_118); +if (lean_is_exclusive(x_117)) { + lean_ctor_release(x_117, 0); + lean_ctor_release(x_117, 1); + x_119 = x_117; +} else { + lean_dec_ref(x_117); + x_119 = lean_box(0); +} +if (lean_is_scalar(x_119)) { + x_120 = lean_alloc_ctor(0, 2, 0); +} else { + x_120 = x_119; +} +lean_ctor_set(x_120, 0, x_107); +lean_ctor_set(x_120, 1, x_118); +return x_120; +} +} +else +{ +lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; +lean_dec(x_88); +lean_dec(x_5); +lean_dec(x_3); +x_121 = lean_ctor_get(x_104, 0); +lean_inc(x_121); +x_122 = lean_ctor_get(x_104, 1); +lean_inc(x_122); +if (lean_is_exclusive(x_104)) { + lean_ctor_release(x_104, 0); + lean_ctor_release(x_104, 1); + x_123 = x_104; +} else { + lean_dec_ref(x_104); + x_123 = lean_box(0); +} +if (lean_is_scalar(x_123)) { + x_124 = lean_alloc_ctor(1, 2, 0); +} else { + x_124 = x_123; +} +lean_ctor_set(x_124, 0, x_121); +lean_ctor_set(x_124, 1, x_122); +return x_124; +} +} +else +{ +lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; uint8_t x_131; +lean_dec(x_102); +x_125 = l_Lean_mkThunk(x_93); +lean_inc(x_125); +x_126 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_126, 0, x_88); +lean_ctor_set(x_126, 1, x_125); +x_127 = l_Lean_Elab_Term_getOptions(x_5, x_94); +x_128 = lean_ctor_get(x_127, 0); +lean_inc(x_128); +x_129 = lean_ctor_get(x_127, 1); +lean_inc(x_129); +if (lean_is_exclusive(x_127)) { + lean_ctor_release(x_127, 0); + lean_ctor_release(x_127, 1); + x_130 = x_127; +} else { + lean_dec_ref(x_127); + x_130 = lean_box(0); +} +lean_inc(x_3); +x_131 = l_Lean_checkTraceOption(x_128, x_3); +lean_dec(x_128); +if (x_131 == 0) +{ +lean_object* x_132; +lean_dec(x_125); +lean_dec(x_5); +lean_dec(x_3); +if (lean_is_scalar(x_130)) { + x_132 = lean_alloc_ctor(0, 2, 0); +} else { + x_132 = x_130; +} +lean_ctor_set(x_132, 0, x_126); +lean_ctor_set(x_132, 1, x_129); +return x_132; +} +else +{ +lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_dec(x_130); -if (x_133 == 0) +x_133 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_133, 0, x_125); +x_134 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; +x_135 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_135, 0, x_134); +lean_ctor_set(x_135, 1, x_133); +x_136 = l_Lean_Elab_Term_logTrace(x_3, x_135, x_5, x_129); +lean_dec(x_5); +x_137 = lean_ctor_get(x_136, 1); +lean_inc(x_137); +if (lean_is_exclusive(x_136)) { + lean_ctor_release(x_136, 0); + lean_ctor_release(x_136, 1); + x_138 = x_136; +} else { + lean_dec_ref(x_136); + x_138 = lean_box(0); +} +if (lean_is_scalar(x_138)) { + x_139 = lean_alloc_ctor(0, 2, 0); +} else { + x_139 = x_138; +} +lean_ctor_set(x_139, 0, x_126); +lean_ctor_set(x_139, 1, x_137); +return x_139; +} +} +} +else { -lean_object* x_134; -lean_dec(x_127); +lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; +lean_dec(x_88); lean_dec(x_5); lean_dec(x_3); -if (lean_is_scalar(x_132)) { - x_134 = lean_alloc_ctor(0, 2, 0); +x_140 = lean_ctor_get(x_92, 0); +lean_inc(x_140); +x_141 = lean_ctor_get(x_92, 1); +lean_inc(x_141); +if (lean_is_exclusive(x_92)) { + lean_ctor_release(x_92, 0); + lean_ctor_release(x_92, 1); + x_142 = x_92; } else { - x_134 = x_132; + lean_dec_ref(x_92); + x_142 = lean_box(0); } -lean_ctor_set(x_134, 0, x_128); -lean_ctor_set(x_134, 1, x_131); -return x_134; -} -else -{ -lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; -lean_dec(x_132); -x_135 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_135, 0, x_127); -x_136 = l_Lean_Elab_Term_elabMatchAltView___lambda__1___closed__3; -x_137 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_137, 0, x_136); -lean_ctor_set(x_137, 1, x_135); -x_138 = l_Lean_Elab_Term_logTrace(x_3, x_137, x_5, x_131); -lean_dec(x_5); -x_139 = lean_ctor_get(x_138, 1); -lean_inc(x_139); -if (lean_is_exclusive(x_138)) { - lean_ctor_release(x_138, 0); - lean_ctor_release(x_138, 1); - x_140 = x_138; +if (lean_is_scalar(x_142)) { + x_143 = lean_alloc_ctor(1, 2, 0); } else { - lean_dec_ref(x_138); - x_140 = lean_box(0); + x_143 = x_142; } -if (lean_is_scalar(x_140)) { - x_141 = lean_alloc_ctor(0, 2, 0); -} else { - x_141 = x_140; -} -lean_ctor_set(x_141, 0, x_128); -lean_ctor_set(x_141, 1, x_139); -return x_141; +lean_ctor_set(x_143, 0, x_140); +lean_ctor_set(x_143, 1, x_141); +return x_143; } } } else { -lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; -lean_dec(x_89); -lean_dec(x_5); -lean_dec(x_3); -x_142 = lean_ctor_get(x_94, 0); -lean_inc(x_142); -x_143 = lean_ctor_get(x_94, 1); -lean_inc(x_143); -if (lean_is_exclusive(x_94)) { - lean_ctor_release(x_94, 0); - lean_ctor_release(x_94, 1); - x_144 = x_94; -} else { - lean_dec_ref(x_94); - x_144 = lean_box(0); -} -if (lean_is_scalar(x_144)) { - x_145 = lean_alloc_ctor(1, 2, 0); -} else { - x_145 = x_144; -} -lean_ctor_set(x_145, 0, x_142); -lean_ctor_set(x_145, 1, x_143); -return x_145; -} -} -} -else -{ -uint8_t x_146; +uint8_t x_144; lean_dec(x_5); lean_dec(x_3); lean_dec(x_1); -x_146 = !lean_is_exclusive(x_8); -if (x_146 == 0) +x_144 = !lean_is_exclusive(x_8); +if (x_144 == 0) { return x_8; } else { -lean_object* x_147; lean_object* x_148; lean_object* x_149; -x_147 = lean_ctor_get(x_8, 0); -x_148 = lean_ctor_get(x_8, 1); -lean_inc(x_148); -lean_inc(x_147); +lean_object* x_145; lean_object* x_146; lean_object* x_147; +x_145 = lean_ctor_get(x_8, 0); +x_146 = lean_ctor_get(x_8, 1); +lean_inc(x_146); +lean_inc(x_145); lean_dec(x_8); -x_149 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_149, 0, x_147); -lean_ctor_set(x_149, 1, x_148); -return x_149; +x_147 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_147, 0, x_145); +lean_ctor_set(x_147, 1, x_146); +return x_147; } } } @@ -22757,6 +22632,8 @@ lean_object* l___private_Lean_Elab_Match_31__elabMatchCore(lean_object* x_1, lea _start: { lean_object* x_5; lean_object* x_6; lean_object* x_207; +lean_inc(x_3); +lean_inc(x_2); x_207 = l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(x_2, x_3, x_4); if (lean_obj_tag(x_207) == 0) { diff --git a/stage0/stdlib/Lean/Elab/StructInst.c b/stage0/stdlib/Lean/Elab/StructInst.c index f223134a84..978113405c 100644 --- a/stage0/stdlib/Lean/Elab/StructInst.c +++ b/stage0/stdlib/Lean/Elab/StructInst.c @@ -205,6 +205,7 @@ lean_object* l___private_Lean_Elab_StructInst_25__elabStructInstAux___closed__4; lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at___private_Lean_Elab_StructInst_19__expandStruct___main___spec__11___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_propagateLoop___main___closed__1; +lean_object* l_Lean_Elab_Term_elabTermEnsuringType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_mkProj(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_getHierarchyDepth___main(lean_object*); @@ -2966,6 +2967,8 @@ lean_object* l___private_Lean_Elab_StructInst_5__getStructName___rarg(lean_objec _start: { lean_object* x_5; +lean_inc(x_3); +lean_inc(x_1); x_5 = l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(x_1, x_3, x_4); if (lean_obj_tag(x_5) == 0) { @@ -3002,6 +3005,8 @@ x_29 = lean_ctor_get(x_27, 1); lean_inc(x_29); lean_dec(x_27); x_30 = l_Lean_Expr_getAppFn___main(x_28); +lean_inc(x_3); +lean_inc(x_28); x_31 = l_Lean_Elab_Term_tryPostponeIfMVar(x_28, x_3, x_29); if (lean_obj_tag(x_31) == 0) { @@ -3227,6 +3232,8 @@ x_87 = lean_ctor_get(x_85, 1); lean_inc(x_87); lean_dec(x_85); x_88 = l_Lean_Expr_getAppFn___main(x_86); +lean_inc(x_3); +lean_inc(x_86); x_89 = l_Lean_Elab_Term_tryPostponeIfMVar(x_86, x_3, x_87); if (lean_obj_tag(x_89) == 0) { @@ -3431,6 +3438,8 @@ x_132 = lean_ctor_get(x_130, 1); lean_inc(x_132); lean_dec(x_130); x_133 = l_Lean_Expr_getAppFn___main(x_131); +lean_inc(x_3); +lean_inc(x_131); x_134 = l_Lean_Elab_Term_tryPostponeIfMVar(x_131, x_3, x_132); if (lean_obj_tag(x_134) == 0) { @@ -3635,6 +3644,8 @@ x_177 = lean_ctor_get(x_175, 1); lean_inc(x_177); lean_dec(x_175); x_178 = l_Lean_Expr_getAppFn___main(x_176); +lean_inc(x_3); +lean_inc(x_176); x_179 = l_Lean_Elab_Term_tryPostponeIfMVar(x_176, x_3, x_177); if (lean_obj_tag(x_179) == 0) { @@ -3839,6 +3850,8 @@ x_222 = lean_ctor_get(x_220, 1); lean_inc(x_222); lean_dec(x_220); x_223 = l_Lean_Expr_getAppFn___main(x_221); +lean_inc(x_3); +lean_inc(x_221); x_224 = l_Lean_Elab_Term_tryPostponeIfMVar(x_221, x_3, x_222); if (lean_obj_tag(x_224) == 0) { @@ -4055,6 +4068,8 @@ x_268 = lean_ctor_get(x_266, 1); lean_inc(x_268); lean_dec(x_266); x_269 = l_Lean_Expr_getAppFn___main(x_267); +lean_inc(x_3); +lean_inc(x_267); x_270 = l_Lean_Elab_Term_tryPostponeIfMVar(x_267, x_3, x_268); if (lean_obj_tag(x_270) == 0) { @@ -4259,6 +4274,8 @@ x_313 = lean_ctor_get(x_311, 1); lean_inc(x_313); lean_dec(x_311); x_314 = l_Lean_Expr_getAppFn___main(x_312); +lean_inc(x_3); +lean_inc(x_312); x_315 = l_Lean_Elab_Term_tryPostponeIfMVar(x_312, x_3, x_313); if (lean_obj_tag(x_315) == 0) { @@ -4463,6 +4480,8 @@ x_358 = lean_ctor_get(x_356, 1); lean_inc(x_358); lean_dec(x_356); x_359 = l_Lean_Expr_getAppFn___main(x_357); +lean_inc(x_3); +lean_inc(x_357); x_360 = l_Lean_Elab_Term_tryPostponeIfMVar(x_357, x_3, x_358); if (lean_obj_tag(x_360) == 0) { @@ -4667,6 +4686,8 @@ x_403 = lean_ctor_get(x_401, 1); lean_inc(x_403); lean_dec(x_401); x_404 = l_Lean_Expr_getAppFn___main(x_402); +lean_inc(x_3); +lean_inc(x_402); x_405 = l_Lean_Elab_Term_tryPostponeIfMVar(x_402, x_3, x_403); if (lean_obj_tag(x_405) == 0) { @@ -4871,6 +4892,8 @@ x_448 = lean_ctor_get(x_446, 1); lean_inc(x_448); lean_dec(x_446); x_449 = l_Lean_Expr_getAppFn___main(x_447); +lean_inc(x_3); +lean_inc(x_447); x_450 = l_Lean_Elab_Term_tryPostponeIfMVar(x_447, x_3, x_448); if (lean_obj_tag(x_450) == 0) { @@ -5075,6 +5098,8 @@ x_493 = lean_ctor_get(x_491, 1); lean_inc(x_493); lean_dec(x_491); x_494 = l_Lean_Expr_getAppFn___main(x_492); +lean_inc(x_3); +lean_inc(x_492); x_495 = l_Lean_Elab_Term_tryPostponeIfMVar(x_492, x_3, x_493); if (lean_obj_tag(x_495) == 0) { @@ -5279,6 +5304,8 @@ x_538 = lean_ctor_get(x_536, 1); lean_inc(x_538); lean_dec(x_536); x_539 = l_Lean_Expr_getAppFn___main(x_537); +lean_inc(x_3); +lean_inc(x_537); x_540 = l_Lean_Elab_Term_tryPostponeIfMVar(x_537, x_3, x_538); if (lean_obj_tag(x_540) == 0) { @@ -5483,6 +5510,8 @@ x_583 = lean_ctor_get(x_581, 1); lean_inc(x_583); lean_dec(x_581); x_584 = l_Lean_Expr_getAppFn___main(x_582); +lean_inc(x_3); +lean_inc(x_582); x_585 = l_Lean_Elab_Term_tryPostponeIfMVar(x_582, x_3, x_583); if (lean_obj_tag(x_585) == 0) { @@ -5713,6 +5742,8 @@ x_638 = lean_ctor_get(x_636, 1); lean_inc(x_638); lean_dec(x_636); x_639 = l_Lean_Expr_getAppFn___main(x_637); +lean_inc(x_3); +lean_inc(x_637); x_640 = l_Lean_Elab_Term_tryPostponeIfMVar(x_637, x_3, x_638); if (lean_obj_tag(x_640) == 0) { @@ -5888,6 +5919,8 @@ x_672 = lean_ctor_get(x_670, 1); lean_inc(x_672); lean_dec(x_670); x_673 = l_Lean_Expr_getAppFn___main(x_671); +lean_inc(x_3); +lean_inc(x_671); x_674 = l_Lean_Elab_Term_tryPostponeIfMVar(x_671, x_3, x_672); if (lean_obj_tag(x_674) == 0) { @@ -6063,6 +6096,8 @@ x_706 = lean_ctor_get(x_704, 1); lean_inc(x_706); lean_dec(x_704); x_707 = l_Lean_Expr_getAppFn___main(x_705); +lean_inc(x_3); +lean_inc(x_705); x_708 = l_Lean_Elab_Term_tryPostponeIfMVar(x_705, x_3, x_706); if (lean_obj_tag(x_708) == 0) { @@ -6238,6 +6273,8 @@ x_740 = lean_ctor_get(x_738, 1); lean_inc(x_740); lean_dec(x_738); x_741 = l_Lean_Expr_getAppFn___main(x_739); +lean_inc(x_3); +lean_inc(x_739); x_742 = l_Lean_Elab_Term_tryPostponeIfMVar(x_739, x_3, x_740); if (lean_obj_tag(x_742) == 0) { @@ -6427,6 +6464,8 @@ x_776 = lean_ctor_get(x_774, 1); lean_inc(x_776); lean_dec(x_774); x_777 = l_Lean_Expr_getAppFn___main(x_775); +lean_inc(x_3); +lean_inc(x_775); x_778 = l_Lean_Elab_Term_tryPostponeIfMVar(x_775, x_3, x_776); if (lean_obj_tag(x_778) == 0) { @@ -6602,6 +6641,8 @@ x_810 = lean_ctor_get(x_808, 1); lean_inc(x_810); lean_dec(x_808); x_811 = l_Lean_Expr_getAppFn___main(x_809); +lean_inc(x_3); +lean_inc(x_809); x_812 = l_Lean_Elab_Term_tryPostponeIfMVar(x_809, x_3, x_810); if (lean_obj_tag(x_812) == 0) { @@ -6777,6 +6818,8 @@ x_844 = lean_ctor_get(x_842, 1); lean_inc(x_844); lean_dec(x_842); x_845 = l_Lean_Expr_getAppFn___main(x_843); +lean_inc(x_3); +lean_inc(x_843); x_846 = l_Lean_Elab_Term_tryPostponeIfMVar(x_843, x_3, x_844); if (lean_obj_tag(x_846) == 0) { @@ -6952,6 +6995,8 @@ x_878 = lean_ctor_get(x_876, 1); lean_inc(x_878); lean_dec(x_876); x_879 = l_Lean_Expr_getAppFn___main(x_877); +lean_inc(x_3); +lean_inc(x_877); x_880 = l_Lean_Elab_Term_tryPostponeIfMVar(x_877, x_3, x_878); if (lean_obj_tag(x_880) == 0) { @@ -7127,6 +7172,8 @@ x_912 = lean_ctor_get(x_910, 1); lean_inc(x_912); lean_dec(x_910); x_913 = l_Lean_Expr_getAppFn___main(x_911); +lean_inc(x_3); +lean_inc(x_911); x_914 = l_Lean_Elab_Term_tryPostponeIfMVar(x_911, x_3, x_912); if (lean_obj_tag(x_914) == 0) { @@ -7302,6 +7349,8 @@ x_946 = lean_ctor_get(x_944, 1); lean_inc(x_946); lean_dec(x_944); x_947 = l_Lean_Expr_getAppFn___main(x_945); +lean_inc(x_3); +lean_inc(x_945); x_948 = l_Lean_Elab_Term_tryPostponeIfMVar(x_945, x_3, x_946); if (lean_obj_tag(x_948) == 0) { @@ -7477,6 +7526,8 @@ x_980 = lean_ctor_get(x_978, 1); lean_inc(x_980); lean_dec(x_978); x_981 = l_Lean_Expr_getAppFn___main(x_979); +lean_inc(x_3); +lean_inc(x_979); x_982 = l_Lean_Elab_Term_tryPostponeIfMVar(x_979, x_3, x_980); if (lean_obj_tag(x_982) == 0) { @@ -7652,6 +7703,8 @@ x_1014 = lean_ctor_get(x_1012, 1); lean_inc(x_1014); lean_dec(x_1012); x_1015 = l_Lean_Expr_getAppFn___main(x_1013); +lean_inc(x_3); +lean_inc(x_1013); x_1016 = l_Lean_Elab_Term_tryPostponeIfMVar(x_1013, x_3, x_1014); if (lean_obj_tag(x_1016) == 0) { @@ -17183,7 +17236,7 @@ lean_dec(x_40); switch (lean_obj_tag(x_37)) { case 0: { -lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; uint8_t x_70; lean_object* x_71; +lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; x_66 = lean_ctor_get(x_42, 1); lean_inc(x_66); x_67 = lean_ctor_get(x_42, 2); @@ -17193,112 +17246,60 @@ x_68 = lean_ctor_get(x_37, 0); lean_inc(x_68); x_69 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_69, 0, x_66); -x_70 = 1; lean_inc(x_4); -lean_inc(x_69); -lean_inc(x_68); -x_71 = l_Lean_Elab_Term_elabTerm(x_68, x_69, x_70, x_4, x_43); -if (lean_obj_tag(x_71) == 0) +x_70 = l_Lean_Elab_Term_elabTermEnsuringType(x_68, x_69, x_4, x_43); +if (lean_obj_tag(x_70) == 0) { -lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; uint8_t x_83; uint8_t x_84; uint8_t x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_72 = lean_ctor_get(x_71, 0); +uint8_t x_71; +x_71 = !lean_is_exclusive(x_70); +if (x_71 == 0) +{ +lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_72 = lean_ctor_get(x_70, 0); lean_inc(x_72); -x_73 = lean_ctor_get(x_71, 1); -lean_inc(x_73); -lean_dec(x_71); -x_74 = lean_ctor_get(x_4, 0); -lean_inc(x_74); -x_75 = lean_ctor_get(x_4, 1); -lean_inc(x_75); -x_76 = lean_ctor_get(x_4, 2); -lean_inc(x_76); -x_77 = lean_ctor_get(x_4, 3); +x_73 = l_Lean_mkApp(x_30, x_72); +x_74 = lean_expr_instantiate1(x_67, x_72); +lean_dec(x_67); +x_75 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_75, 0, x_72); +lean_ctor_set(x_8, 3, x_75); +lean_ctor_set(x_3, 1, x_35); +lean_ctor_set(x_24, 1, x_3); +lean_ctor_set(x_24, 0, x_74); +lean_ctor_set(x_2, 0, x_73); +lean_ctor_set(x_70, 0, x_2); +x_10 = x_70; +goto block_18; +} +else +{ +lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_76 = lean_ctor_get(x_70, 0); +x_77 = lean_ctor_get(x_70, 1); lean_inc(x_77); -x_78 = lean_ctor_get(x_4, 4); -lean_inc(x_78); -x_79 = lean_ctor_get(x_4, 5); -lean_inc(x_79); -x_80 = lean_ctor_get(x_4, 6); -lean_inc(x_80); -x_81 = lean_ctor_get(x_4, 7); -lean_inc(x_81); -x_82 = lean_ctor_get(x_4, 8); -lean_inc(x_82); -x_83 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_84 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_85 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_86 = lean_ctor_get(x_4, 9); -lean_inc(x_86); -x_87 = l_Lean_Elab_replaceRef(x_68, x_86); -lean_dec(x_86); -lean_dec(x_68); -x_88 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_88, 0, x_74); -lean_ctor_set(x_88, 1, x_75); -lean_ctor_set(x_88, 2, x_76); -lean_ctor_set(x_88, 3, x_77); -lean_ctor_set(x_88, 4, x_78); -lean_ctor_set(x_88, 5, x_79); -lean_ctor_set(x_88, 6, x_80); -lean_ctor_set(x_88, 7, x_81); -lean_ctor_set(x_88, 8, x_82); -lean_ctor_set(x_88, 9, x_87); -lean_ctor_set_uint8(x_88, sizeof(void*)*10, x_83); -lean_ctor_set_uint8(x_88, sizeof(void*)*10 + 1, x_84); -lean_ctor_set_uint8(x_88, sizeof(void*)*10 + 2, x_85); -x_89 = l_Lean_Elab_Term_ensureHasType(x_69, x_72, x_88, x_73); -if (lean_obj_tag(x_89) == 0) -{ -uint8_t x_90; -x_90 = !lean_is_exclusive(x_89); -if (x_90 == 0) -{ -lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; -x_91 = lean_ctor_get(x_89, 0); -lean_inc(x_91); -x_92 = l_Lean_mkApp(x_30, x_91); -x_93 = lean_expr_instantiate1(x_67, x_91); +lean_inc(x_76); +lean_dec(x_70); +lean_inc(x_76); +x_78 = l_Lean_mkApp(x_30, x_76); +x_79 = lean_expr_instantiate1(x_67, x_76); lean_dec(x_67); -x_94 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_94, 0, x_91); -lean_ctor_set(x_8, 3, x_94); +x_80 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_80, 0, x_76); +lean_ctor_set(x_8, 3, x_80); lean_ctor_set(x_3, 1, x_35); lean_ctor_set(x_24, 1, x_3); -lean_ctor_set(x_24, 0, x_93); -lean_ctor_set(x_2, 0, x_92); -lean_ctor_set(x_89, 0, x_2); -x_10 = x_89; -goto block_18; -} -else -{ -lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; -x_95 = lean_ctor_get(x_89, 0); -x_96 = lean_ctor_get(x_89, 1); -lean_inc(x_96); -lean_inc(x_95); -lean_dec(x_89); -lean_inc(x_95); -x_97 = l_Lean_mkApp(x_30, x_95); -x_98 = lean_expr_instantiate1(x_67, x_95); -lean_dec(x_67); -x_99 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_99, 0, x_95); -lean_ctor_set(x_8, 3, x_99); -lean_ctor_set(x_3, 1, x_35); -lean_ctor_set(x_24, 1, x_3); -lean_ctor_set(x_24, 0, x_98); -lean_ctor_set(x_2, 0, x_97); -x_100 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_100, 0, x_2); -lean_ctor_set(x_100, 1, x_96); -x_10 = x_100; +lean_ctor_set(x_24, 0, x_79); +lean_ctor_set(x_2, 0, x_78); +x_81 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_81, 0, x_2); +lean_ctor_set(x_81, 1, x_77); +x_10 = x_81; goto block_18; } } else { -uint8_t x_101; +uint8_t x_82; lean_dec(x_67); lean_free_object(x_8); lean_dec(x_37); @@ -17309,394 +17310,357 @@ lean_free_object(x_2); lean_dec(x_30); lean_dec(x_25); lean_free_object(x_3); -x_101 = !lean_is_exclusive(x_89); -if (x_101 == 0) +x_82 = !lean_is_exclusive(x_70); +if (x_82 == 0) { -x_10 = x_89; +x_10 = x_70; goto block_18; } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; -x_102 = lean_ctor_get(x_89, 0); -x_103 = lean_ctor_get(x_89, 1); -lean_inc(x_103); -lean_inc(x_102); -lean_dec(x_89); -x_104 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_104, 0, x_102); -lean_ctor_set(x_104, 1, x_103); -x_10 = x_104; -goto block_18; -} -} -} -else -{ -uint8_t x_105; -lean_dec(x_69); -lean_dec(x_68); -lean_dec(x_67); -lean_free_object(x_8); -lean_dec(x_37); -lean_dec(x_36); -lean_free_object(x_24); -lean_dec(x_35); -lean_free_object(x_2); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_105 = !lean_is_exclusive(x_71); -if (x_105 == 0) -{ -x_10 = x_71; -goto block_18; -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; -x_106 = lean_ctor_get(x_71, 0); -x_107 = lean_ctor_get(x_71, 1); -lean_inc(x_107); -lean_inc(x_106); -lean_dec(x_71); -x_108 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_108, 0, x_106); -lean_ctor_set(x_108, 1, x_107); -x_10 = x_108; +lean_object* x_83; lean_object* x_84; lean_object* x_85; +x_83 = lean_ctor_get(x_70, 0); +x_84 = lean_ctor_get(x_70, 1); +lean_inc(x_84); +lean_inc(x_83); +lean_dec(x_70); +x_85 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_85, 0, x_83); +lean_ctor_set(x_85, 1, x_84); +x_10 = x_85; goto block_18; } } } case 1: { -lean_object* x_109; lean_object* x_110; uint8_t x_111; +lean_object* x_86; lean_object* x_87; uint8_t x_88; lean_free_object(x_2); -x_109 = lean_ctor_get(x_42, 1); -lean_inc(x_109); -x_110 = lean_ctor_get(x_42, 2); -lean_inc(x_110); +x_86 = lean_ctor_get(x_42, 1); +lean_inc(x_86); +x_87 = lean_ctor_get(x_42, 2); +lean_inc(x_87); lean_dec(x_42); -x_111 = !lean_is_exclusive(x_37); -if (x_111 == 0) +x_88 = !lean_is_exclusive(x_37); +if (x_88 == 0) { -lean_object* x_112; lean_object* x_113; lean_object* x_114; -x_112 = lean_ctor_get(x_37, 0); -x_113 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_113, 0, x_109); +lean_object* x_89; lean_object* x_90; lean_object* x_91; +x_89 = lean_ctor_get(x_37, 0); +x_90 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_90, 0, x_86); lean_inc(x_4); -lean_inc(x_113); -x_114 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_112, x_113, x_4, x_43); -if (lean_obj_tag(x_114) == 0) +lean_inc(x_90); +x_91 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_89, x_90, x_4, x_43); +if (lean_obj_tag(x_91) == 0) { -lean_object* x_115; lean_object* x_116; uint8_t x_117; -x_115 = lean_ctor_get(x_114, 0); -lean_inc(x_115); -x_116 = lean_ctor_get(x_114, 1); -lean_inc(x_116); -lean_dec(x_114); -x_117 = !lean_is_exclusive(x_115); -if (x_117 == 0) +lean_object* x_92; lean_object* x_93; uint8_t x_94; +x_92 = lean_ctor_get(x_91, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_91, 1); +lean_inc(x_93); +lean_dec(x_91); +x_94 = !lean_is_exclusive(x_92); +if (x_94 == 0) { -lean_object* x_118; lean_object* x_119; lean_object* x_120; -x_118 = lean_ctor_get(x_115, 0); -x_119 = lean_ctor_get(x_115, 1); +lean_object* x_95; lean_object* x_96; lean_object* x_97; +x_95 = lean_ctor_get(x_92, 0); +x_96 = lean_ctor_get(x_92, 1); lean_inc(x_4); -x_120 = l_Lean_Elab_Term_ensureHasType(x_113, x_118, x_4, x_116); -if (lean_obj_tag(x_120) == 0) +x_97 = l_Lean_Elab_Term_ensureHasType(x_90, x_95, x_4, x_93); +if (lean_obj_tag(x_97) == 0) { -uint8_t x_121; -x_121 = !lean_is_exclusive(x_120); -if (x_121 == 0) +uint8_t x_98; +x_98 = !lean_is_exclusive(x_97); +if (x_98 == 0) { -lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; -x_122 = lean_ctor_get(x_120, 0); -lean_ctor_set(x_37, 0, x_119); -lean_inc(x_122); -x_123 = l_Lean_mkApp(x_30, x_122); -x_124 = lean_expr_instantiate1(x_110, x_122); -lean_dec(x_110); -x_125 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_125, 0, x_122); -lean_ctor_set(x_8, 3, x_125); +lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; +x_99 = lean_ctor_get(x_97, 0); +lean_ctor_set(x_37, 0, x_96); +lean_inc(x_99); +x_100 = l_Lean_mkApp(x_30, x_99); +x_101 = lean_expr_instantiate1(x_87, x_99); +lean_dec(x_87); +x_102 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_102, 0, x_99); +lean_ctor_set(x_8, 3, x_102); lean_ctor_set(x_3, 1, x_35); -lean_ctor_set(x_115, 1, x_3); -lean_ctor_set(x_115, 0, x_124); -lean_ctor_set(x_24, 1, x_115); -lean_ctor_set(x_24, 0, x_123); -lean_ctor_set(x_120, 0, x_24); -x_10 = x_120; +lean_ctor_set(x_92, 1, x_3); +lean_ctor_set(x_92, 0, x_101); +lean_ctor_set(x_24, 1, x_92); +lean_ctor_set(x_24, 0, x_100); +lean_ctor_set(x_97, 0, x_24); +x_10 = x_97; goto block_18; } else { -lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; -x_126 = lean_ctor_get(x_120, 0); -x_127 = lean_ctor_get(x_120, 1); -lean_inc(x_127); -lean_inc(x_126); -lean_dec(x_120); -lean_ctor_set(x_37, 0, x_119); -lean_inc(x_126); -x_128 = l_Lean_mkApp(x_30, x_126); -x_129 = lean_expr_instantiate1(x_110, x_126); -lean_dec(x_110); -x_130 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_130, 0, x_126); -lean_ctor_set(x_8, 3, x_130); +lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; +x_103 = lean_ctor_get(x_97, 0); +x_104 = lean_ctor_get(x_97, 1); +lean_inc(x_104); +lean_inc(x_103); +lean_dec(x_97); +lean_ctor_set(x_37, 0, x_96); +lean_inc(x_103); +x_105 = l_Lean_mkApp(x_30, x_103); +x_106 = lean_expr_instantiate1(x_87, x_103); +lean_dec(x_87); +x_107 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_107, 0, x_103); +lean_ctor_set(x_8, 3, x_107); lean_ctor_set(x_3, 1, x_35); -lean_ctor_set(x_115, 1, x_3); -lean_ctor_set(x_115, 0, x_129); -lean_ctor_set(x_24, 1, x_115); -lean_ctor_set(x_24, 0, x_128); -x_131 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_131, 0, x_24); -lean_ctor_set(x_131, 1, x_127); +lean_ctor_set(x_92, 1, x_3); +lean_ctor_set(x_92, 0, x_106); +lean_ctor_set(x_24, 1, x_92); +lean_ctor_set(x_24, 0, x_105); +x_108 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_108, 0, x_24); +lean_ctor_set(x_108, 1, x_104); +x_10 = x_108; +goto block_18; +} +} +else +{ +uint8_t x_109; +lean_free_object(x_92); +lean_dec(x_96); +lean_free_object(x_37); +lean_dec(x_87); +lean_free_object(x_8); +lean_dec(x_36); +lean_free_object(x_24); +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_free_object(x_3); +x_109 = !lean_is_exclusive(x_97); +if (x_109 == 0) +{ +x_10 = x_97; +goto block_18; +} +else +{ +lean_object* x_110; lean_object* x_111; lean_object* x_112; +x_110 = lean_ctor_get(x_97, 0); +x_111 = lean_ctor_get(x_97, 1); +lean_inc(x_111); +lean_inc(x_110); +lean_dec(x_97); +x_112 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_112, 0, x_110); +lean_ctor_set(x_112, 1, x_111); +x_10 = x_112; +goto block_18; +} +} +} +else +{ +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_92, 0); +x_114 = lean_ctor_get(x_92, 1); +lean_inc(x_114); +lean_inc(x_113); +lean_dec(x_92); +lean_inc(x_4); +x_115 = l_Lean_Elab_Term_ensureHasType(x_90, x_113, x_4, x_93); +if (lean_obj_tag(x_115) == 0) +{ +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; +x_116 = lean_ctor_get(x_115, 0); +lean_inc(x_116); +x_117 = lean_ctor_get(x_115, 1); +lean_inc(x_117); +if (lean_is_exclusive(x_115)) { + lean_ctor_release(x_115, 0); + lean_ctor_release(x_115, 1); + x_118 = x_115; +} else { + lean_dec_ref(x_115); + x_118 = lean_box(0); +} +lean_ctor_set(x_37, 0, x_114); +lean_inc(x_116); +x_119 = l_Lean_mkApp(x_30, x_116); +x_120 = lean_expr_instantiate1(x_87, x_116); +lean_dec(x_87); +x_121 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_121, 0, x_116); +lean_ctor_set(x_8, 3, x_121); +lean_ctor_set(x_3, 1, x_35); +x_122 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_122, 0, x_120); +lean_ctor_set(x_122, 1, x_3); +lean_ctor_set(x_24, 1, x_122); +lean_ctor_set(x_24, 0, x_119); +if (lean_is_scalar(x_118)) { + x_123 = lean_alloc_ctor(0, 2, 0); +} else { + x_123 = x_118; +} +lean_ctor_set(x_123, 0, x_24); +lean_ctor_set(x_123, 1, x_117); +x_10 = x_123; +goto block_18; +} +else +{ +lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; +lean_dec(x_114); +lean_free_object(x_37); +lean_dec(x_87); +lean_free_object(x_8); +lean_dec(x_36); +lean_free_object(x_24); +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_free_object(x_3); +x_124 = lean_ctor_get(x_115, 0); +lean_inc(x_124); +x_125 = lean_ctor_get(x_115, 1); +lean_inc(x_125); +if (lean_is_exclusive(x_115)) { + lean_ctor_release(x_115, 0); + lean_ctor_release(x_115, 1); + x_126 = x_115; +} else { + lean_dec_ref(x_115); + x_126 = lean_box(0); +} +if (lean_is_scalar(x_126)) { + x_127 = lean_alloc_ctor(1, 2, 0); +} else { + x_127 = x_126; +} +lean_ctor_set(x_127, 0, x_124); +lean_ctor_set(x_127, 1, x_125); +x_10 = x_127; +goto block_18; +} +} +} +else +{ +uint8_t x_128; +lean_dec(x_90); +lean_free_object(x_37); +lean_dec(x_87); +lean_free_object(x_8); +lean_dec(x_36); +lean_free_object(x_24); +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_free_object(x_3); +x_128 = !lean_is_exclusive(x_91); +if (x_128 == 0) +{ +x_10 = x_91; +goto block_18; +} +else +{ +lean_object* x_129; lean_object* x_130; lean_object* x_131; +x_129 = lean_ctor_get(x_91, 0); +x_130 = lean_ctor_get(x_91, 1); +lean_inc(x_130); +lean_inc(x_129); +lean_dec(x_91); +x_131 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_131, 0, x_129); +lean_ctor_set(x_131, 1, x_130); x_10 = x_131; goto block_18; } } -else -{ -uint8_t x_132; -lean_free_object(x_115); -lean_dec(x_119); -lean_free_object(x_37); -lean_dec(x_110); -lean_free_object(x_8); -lean_dec(x_36); -lean_free_object(x_24); -lean_dec(x_35); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_132 = !lean_is_exclusive(x_120); -if (x_132 == 0) -{ -x_10 = x_120; -goto block_18; } else { -lean_object* x_133; lean_object* x_134; lean_object* x_135; -x_133 = lean_ctor_get(x_120, 0); -x_134 = lean_ctor_get(x_120, 1); -lean_inc(x_134); -lean_inc(x_133); -lean_dec(x_120); -x_135 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_135, 0, x_133); -lean_ctor_set(x_135, 1, x_134); -x_10 = x_135; -goto block_18; -} -} -} -else -{ -lean_object* x_136; lean_object* x_137; lean_object* x_138; -x_136 = lean_ctor_get(x_115, 0); -x_137 = lean_ctor_get(x_115, 1); -lean_inc(x_137); -lean_inc(x_136); -lean_dec(x_115); -lean_inc(x_4); -x_138 = l_Lean_Elab_Term_ensureHasType(x_113, x_136, x_4, x_116); -if (lean_obj_tag(x_138) == 0) -{ -lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; -x_139 = lean_ctor_get(x_138, 0); -lean_inc(x_139); -x_140 = lean_ctor_get(x_138, 1); -lean_inc(x_140); -if (lean_is_exclusive(x_138)) { - lean_ctor_release(x_138, 0); - lean_ctor_release(x_138, 1); - x_141 = x_138; -} else { - lean_dec_ref(x_138); - x_141 = lean_box(0); -} -lean_ctor_set(x_37, 0, x_137); -lean_inc(x_139); -x_142 = l_Lean_mkApp(x_30, x_139); -x_143 = lean_expr_instantiate1(x_110, x_139); -lean_dec(x_110); -x_144 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_144, 0, x_139); -lean_ctor_set(x_8, 3, x_144); -lean_ctor_set(x_3, 1, x_35); -x_145 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_145, 0, x_143); -lean_ctor_set(x_145, 1, x_3); -lean_ctor_set(x_24, 1, x_145); -lean_ctor_set(x_24, 0, x_142); -if (lean_is_scalar(x_141)) { - x_146 = lean_alloc_ctor(0, 2, 0); -} else { - x_146 = x_141; -} -lean_ctor_set(x_146, 0, x_24); -lean_ctor_set(x_146, 1, x_140); -x_10 = x_146; -goto block_18; -} -else -{ -lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; -lean_dec(x_137); -lean_free_object(x_37); -lean_dec(x_110); -lean_free_object(x_8); -lean_dec(x_36); -lean_free_object(x_24); -lean_dec(x_35); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_147 = lean_ctor_get(x_138, 0); -lean_inc(x_147); -x_148 = lean_ctor_get(x_138, 1); -lean_inc(x_148); -if (lean_is_exclusive(x_138)) { - lean_ctor_release(x_138, 0); - lean_ctor_release(x_138, 1); - x_149 = x_138; -} else { - lean_dec_ref(x_138); - x_149 = lean_box(0); -} -if (lean_is_scalar(x_149)) { - x_150 = lean_alloc_ctor(1, 2, 0); -} else { - x_150 = x_149; -} -lean_ctor_set(x_150, 0, x_147); -lean_ctor_set(x_150, 1, x_148); -x_10 = x_150; -goto block_18; -} -} -} -else -{ -uint8_t x_151; -lean_dec(x_113); -lean_free_object(x_37); -lean_dec(x_110); -lean_free_object(x_8); -lean_dec(x_36); -lean_free_object(x_24); -lean_dec(x_35); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_151 = !lean_is_exclusive(x_114); -if (x_151 == 0) -{ -x_10 = x_114; -goto block_18; -} -else -{ -lean_object* x_152; lean_object* x_153; lean_object* x_154; -x_152 = lean_ctor_get(x_114, 0); -x_153 = lean_ctor_get(x_114, 1); -lean_inc(x_153); -lean_inc(x_152); -lean_dec(x_114); -x_154 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_154, 0, x_152); -lean_ctor_set(x_154, 1, x_153); -x_10 = x_154; -goto block_18; -} -} -} -else -{ -lean_object* x_155; lean_object* x_156; lean_object* x_157; -x_155 = lean_ctor_get(x_37, 0); -lean_inc(x_155); +lean_object* x_132; lean_object* x_133; lean_object* x_134; +x_132 = lean_ctor_get(x_37, 0); +lean_inc(x_132); lean_dec(x_37); -x_156 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_156, 0, x_109); +x_133 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_133, 0, x_86); lean_inc(x_4); -lean_inc(x_156); -x_157 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_155, x_156, x_4, x_43); -if (lean_obj_tag(x_157) == 0) +lean_inc(x_133); +x_134 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_132, x_133, x_4, x_43); +if (lean_obj_tag(x_134) == 0) { -lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; -x_158 = lean_ctor_get(x_157, 0); -lean_inc(x_158); -x_159 = lean_ctor_get(x_157, 1); -lean_inc(x_159); -lean_dec(x_157); -x_160 = lean_ctor_get(x_158, 0); -lean_inc(x_160); -x_161 = lean_ctor_get(x_158, 1); -lean_inc(x_161); -if (lean_is_exclusive(x_158)) { - lean_ctor_release(x_158, 0); - lean_ctor_release(x_158, 1); - x_162 = x_158; +lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; +x_135 = lean_ctor_get(x_134, 0); +lean_inc(x_135); +x_136 = lean_ctor_get(x_134, 1); +lean_inc(x_136); +lean_dec(x_134); +x_137 = lean_ctor_get(x_135, 0); +lean_inc(x_137); +x_138 = lean_ctor_get(x_135, 1); +lean_inc(x_138); +if (lean_is_exclusive(x_135)) { + lean_ctor_release(x_135, 0); + lean_ctor_release(x_135, 1); + x_139 = x_135; } else { - lean_dec_ref(x_158); - x_162 = lean_box(0); + lean_dec_ref(x_135); + x_139 = lean_box(0); } lean_inc(x_4); -x_163 = l_Lean_Elab_Term_ensureHasType(x_156, x_160, x_4, x_159); -if (lean_obj_tag(x_163) == 0) +x_140 = l_Lean_Elab_Term_ensureHasType(x_133, x_137, x_4, x_136); +if (lean_obj_tag(x_140) == 0) { -lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; -x_164 = lean_ctor_get(x_163, 0); -lean_inc(x_164); -x_165 = lean_ctor_get(x_163, 1); -lean_inc(x_165); -if (lean_is_exclusive(x_163)) { - lean_ctor_release(x_163, 0); - lean_ctor_release(x_163, 1); - x_166 = x_163; +lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; +x_141 = lean_ctor_get(x_140, 0); +lean_inc(x_141); +x_142 = lean_ctor_get(x_140, 1); +lean_inc(x_142); +if (lean_is_exclusive(x_140)) { + lean_ctor_release(x_140, 0); + lean_ctor_release(x_140, 1); + x_143 = x_140; } else { - lean_dec_ref(x_163); - x_166 = lean_box(0); + lean_dec_ref(x_140); + x_143 = lean_box(0); } -x_167 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_167, 0, x_161); -lean_inc(x_164); -x_168 = l_Lean_mkApp(x_30, x_164); -x_169 = lean_expr_instantiate1(x_110, x_164); -lean_dec(x_110); -x_170 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_170, 0, x_164); -lean_ctor_set(x_8, 3, x_170); -lean_ctor_set(x_8, 2, x_167); +x_144 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_144, 0, x_138); +lean_inc(x_141); +x_145 = l_Lean_mkApp(x_30, x_141); +x_146 = lean_expr_instantiate1(x_87, x_141); +lean_dec(x_87); +x_147 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_147, 0, x_141); +lean_ctor_set(x_8, 3, x_147); +lean_ctor_set(x_8, 2, x_144); lean_ctor_set(x_3, 1, x_35); -if (lean_is_scalar(x_162)) { - x_171 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_139)) { + x_148 = lean_alloc_ctor(0, 2, 0); } else { - x_171 = x_162; + x_148 = x_139; } -lean_ctor_set(x_171, 0, x_169); -lean_ctor_set(x_171, 1, x_3); -lean_ctor_set(x_24, 1, x_171); -lean_ctor_set(x_24, 0, x_168); -if (lean_is_scalar(x_166)) { - x_172 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_148, 0, x_146); +lean_ctor_set(x_148, 1, x_3); +lean_ctor_set(x_24, 1, x_148); +lean_ctor_set(x_24, 0, x_145); +if (lean_is_scalar(x_143)) { + x_149 = lean_alloc_ctor(0, 2, 0); } else { - x_172 = x_166; + x_149 = x_143; } -lean_ctor_set(x_172, 0, x_24); -lean_ctor_set(x_172, 1, x_165); -x_10 = x_172; +lean_ctor_set(x_149, 0, x_24); +lean_ctor_set(x_149, 1, x_142); +x_10 = x_149; goto block_18; } else { -lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; -lean_dec(x_162); -lean_dec(x_161); -lean_dec(x_110); +lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; +lean_dec(x_139); +lean_dec(x_138); +lean_dec(x_87); lean_free_object(x_8); lean_dec(x_36); lean_free_object(x_24); @@ -17704,34 +17668,34 @@ lean_dec(x_35); lean_dec(x_30); lean_dec(x_25); lean_free_object(x_3); -x_173 = lean_ctor_get(x_163, 0); -lean_inc(x_173); -x_174 = lean_ctor_get(x_163, 1); -lean_inc(x_174); -if (lean_is_exclusive(x_163)) { - lean_ctor_release(x_163, 0); - lean_ctor_release(x_163, 1); - x_175 = x_163; +x_150 = lean_ctor_get(x_140, 0); +lean_inc(x_150); +x_151 = lean_ctor_get(x_140, 1); +lean_inc(x_151); +if (lean_is_exclusive(x_140)) { + lean_ctor_release(x_140, 0); + lean_ctor_release(x_140, 1); + x_152 = x_140; } else { - lean_dec_ref(x_163); - x_175 = lean_box(0); + lean_dec_ref(x_140); + x_152 = lean_box(0); } -if (lean_is_scalar(x_175)) { - x_176 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_152)) { + x_153 = lean_alloc_ctor(1, 2, 0); } else { - x_176 = x_175; + x_153 = x_152; } -lean_ctor_set(x_176, 0, x_173); -lean_ctor_set(x_176, 1, x_174); -x_10 = x_176; +lean_ctor_set(x_153, 0, x_150); +lean_ctor_set(x_153, 1, x_151); +x_10 = x_153; goto block_18; } } else { -lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; -lean_dec(x_156); -lean_dec(x_110); +lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; +lean_dec(x_133); +lean_dec(x_87); lean_free_object(x_8); lean_dec(x_36); lean_free_object(x_24); @@ -17739,127 +17703,127 @@ lean_dec(x_35); lean_dec(x_30); lean_dec(x_25); lean_free_object(x_3); -x_177 = lean_ctor_get(x_157, 0); -lean_inc(x_177); -x_178 = lean_ctor_get(x_157, 1); -lean_inc(x_178); -if (lean_is_exclusive(x_157)) { - lean_ctor_release(x_157, 0); - lean_ctor_release(x_157, 1); - x_179 = x_157; +x_154 = lean_ctor_get(x_134, 0); +lean_inc(x_154); +x_155 = lean_ctor_get(x_134, 1); +lean_inc(x_155); +if (lean_is_exclusive(x_134)) { + lean_ctor_release(x_134, 0); + lean_ctor_release(x_134, 1); + x_156 = x_134; } else { - lean_dec_ref(x_157); - x_179 = lean_box(0); + lean_dec_ref(x_134); + x_156 = lean_box(0); } -if (lean_is_scalar(x_179)) { - x_180 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_156)) { + x_157 = lean_alloc_ctor(1, 2, 0); } else { - x_180 = x_179; + x_157 = x_156; } -lean_ctor_set(x_180, 0, x_177); -lean_ctor_set(x_180, 1, x_178); -x_10 = x_180; +lean_ctor_set(x_157, 0, x_154); +lean_ctor_set(x_157, 1, x_155); +x_10 = x_157; goto block_18; } } } default: { -lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; uint8_t x_193; uint8_t x_194; uint8_t x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; uint8_t x_199; lean_object* x_200; lean_object* x_201; uint8_t x_202; -x_181 = lean_ctor_get(x_42, 1); -lean_inc(x_181); -x_182 = lean_ctor_get(x_42, 2); -lean_inc(x_182); +lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; uint8_t x_170; uint8_t x_171; uint8_t x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; uint8_t x_176; lean_object* x_177; lean_object* x_178; uint8_t x_179; +x_158 = lean_ctor_get(x_42, 1); +lean_inc(x_158); +x_159 = lean_ctor_get(x_42, 2); +lean_inc(x_159); lean_dec(x_42); -x_183 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_183, 0, x_181); -x_184 = lean_ctor_get(x_4, 0); -lean_inc(x_184); -x_185 = lean_ctor_get(x_4, 1); -lean_inc(x_185); -x_186 = lean_ctor_get(x_4, 2); +x_160 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_160, 0, x_158); +x_161 = lean_ctor_get(x_4, 0); +lean_inc(x_161); +x_162 = lean_ctor_get(x_4, 1); +lean_inc(x_162); +x_163 = lean_ctor_get(x_4, 2); +lean_inc(x_163); +x_164 = lean_ctor_get(x_4, 3); +lean_inc(x_164); +x_165 = lean_ctor_get(x_4, 4); +lean_inc(x_165); +x_166 = lean_ctor_get(x_4, 5); +lean_inc(x_166); +x_167 = lean_ctor_get(x_4, 6); +lean_inc(x_167); +x_168 = lean_ctor_get(x_4, 7); +lean_inc(x_168); +x_169 = lean_ctor_get(x_4, 8); +lean_inc(x_169); +x_170 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); +x_171 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); +x_172 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); +x_173 = lean_ctor_get(x_4, 9); +lean_inc(x_173); +x_174 = l_Lean_Elab_replaceRef(x_36, x_173); +lean_dec(x_173); +x_175 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_175, 0, x_161); +lean_ctor_set(x_175, 1, x_162); +lean_ctor_set(x_175, 2, x_163); +lean_ctor_set(x_175, 3, x_164); +lean_ctor_set(x_175, 4, x_165); +lean_ctor_set(x_175, 5, x_166); +lean_ctor_set(x_175, 6, x_167); +lean_ctor_set(x_175, 7, x_168); +lean_ctor_set(x_175, 8, x_169); +lean_ctor_set(x_175, 9, x_174); +lean_ctor_set_uint8(x_175, sizeof(void*)*10, x_170); +lean_ctor_set_uint8(x_175, sizeof(void*)*10 + 1, x_171); +lean_ctor_set_uint8(x_175, sizeof(void*)*10 + 2, x_172); +x_176 = 0; +x_177 = lean_box(0); +x_178 = l_Lean_Elab_Term_mkFreshExprMVar(x_160, x_176, x_177, x_175, x_43); +x_179 = !lean_is_exclusive(x_178); +if (x_179 == 0) +{ +lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; +x_180 = lean_ctor_get(x_178, 0); +x_181 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_180); +lean_inc(x_181); +x_182 = l_Lean_mkApp(x_30, x_181); +x_183 = lean_expr_instantiate1(x_159, x_181); +lean_dec(x_159); +x_184 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_184, 0, x_181); +lean_ctor_set(x_8, 3, x_184); +lean_ctor_set(x_3, 1, x_35); +lean_ctor_set(x_24, 1, x_3); +lean_ctor_set(x_24, 0, x_183); +lean_ctor_set(x_2, 0, x_182); +lean_ctor_set(x_178, 0, x_2); +x_10 = x_178; +goto block_18; +} +else +{ +lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; +x_185 = lean_ctor_get(x_178, 0); +x_186 = lean_ctor_get(x_178, 1); lean_inc(x_186); -x_187 = lean_ctor_get(x_4, 3); +lean_inc(x_185); +lean_dec(x_178); +x_187 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_185); lean_inc(x_187); -x_188 = lean_ctor_get(x_4, 4); -lean_inc(x_188); -x_189 = lean_ctor_get(x_4, 5); -lean_inc(x_189); -x_190 = lean_ctor_get(x_4, 6); -lean_inc(x_190); -x_191 = lean_ctor_get(x_4, 7); -lean_inc(x_191); -x_192 = lean_ctor_get(x_4, 8); -lean_inc(x_192); -x_193 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_194 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_195 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_196 = lean_ctor_get(x_4, 9); -lean_inc(x_196); -x_197 = l_Lean_Elab_replaceRef(x_36, x_196); -lean_dec(x_196); -x_198 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_198, 0, x_184); -lean_ctor_set(x_198, 1, x_185); -lean_ctor_set(x_198, 2, x_186); -lean_ctor_set(x_198, 3, x_187); -lean_ctor_set(x_198, 4, x_188); -lean_ctor_set(x_198, 5, x_189); -lean_ctor_set(x_198, 6, x_190); -lean_ctor_set(x_198, 7, x_191); -lean_ctor_set(x_198, 8, x_192); -lean_ctor_set(x_198, 9, x_197); -lean_ctor_set_uint8(x_198, sizeof(void*)*10, x_193); -lean_ctor_set_uint8(x_198, sizeof(void*)*10 + 1, x_194); -lean_ctor_set_uint8(x_198, sizeof(void*)*10 + 2, x_195); -x_199 = 0; -x_200 = lean_box(0); -x_201 = l_Lean_Elab_Term_mkFreshExprMVar(x_183, x_199, x_200, x_198, x_43); -x_202 = !lean_is_exclusive(x_201); -if (x_202 == 0) -{ -lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; -x_203 = lean_ctor_get(x_201, 0); -x_204 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_203); -lean_inc(x_204); -x_205 = l_Lean_mkApp(x_30, x_204); -x_206 = lean_expr_instantiate1(x_182, x_204); -lean_dec(x_182); -x_207 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_207, 0, x_204); -lean_ctor_set(x_8, 3, x_207); +x_188 = l_Lean_mkApp(x_30, x_187); +x_189 = lean_expr_instantiate1(x_159, x_187); +lean_dec(x_159); +x_190 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_190, 0, x_187); +lean_ctor_set(x_8, 3, x_190); lean_ctor_set(x_3, 1, x_35); lean_ctor_set(x_24, 1, x_3); -lean_ctor_set(x_24, 0, x_206); -lean_ctor_set(x_2, 0, x_205); -lean_ctor_set(x_201, 0, x_2); -x_10 = x_201; -goto block_18; -} -else -{ -lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; -x_208 = lean_ctor_get(x_201, 0); -x_209 = lean_ctor_get(x_201, 1); -lean_inc(x_209); -lean_inc(x_208); -lean_dec(x_201); -x_210 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_208); -lean_inc(x_210); -x_211 = l_Lean_mkApp(x_30, x_210); -x_212 = lean_expr_instantiate1(x_182, x_210); -lean_dec(x_182); -x_213 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_213, 0, x_210); -lean_ctor_set(x_8, 3, x_213); -lean_ctor_set(x_3, 1, x_35); -lean_ctor_set(x_24, 1, x_3); -lean_ctor_set(x_24, 0, x_212); -lean_ctor_set(x_2, 0, x_211); -x_214 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_214, 0, x_2); -lean_ctor_set(x_214, 1, x_209); -x_10 = x_214; +lean_ctor_set(x_24, 0, x_189); +lean_ctor_set(x_2, 0, x_188); +x_191 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_191, 0, x_2); +lean_ctor_set(x_191, 1, x_186); +x_10 = x_191; goto block_18; } } @@ -17867,7 +17831,7 @@ goto block_18; } else { -lean_object* x_215; +lean_object* x_192; lean_free_object(x_8); lean_dec(x_37); lean_free_object(x_24); @@ -17876,8 +17840,8 @@ lean_free_object(x_2); lean_dec(x_30); lean_dec(x_25); lean_free_object(x_3); -x_215 = lean_box(0); -x_44 = x_215; +x_192 = lean_box(0); +x_44 = x_192; goto block_65; } block_65: @@ -17939,7 +17903,7 @@ goto block_18; } else { -uint8_t x_216; +uint8_t x_193; lean_dec(x_40); lean_free_object(x_8); lean_dec(x_37); @@ -17950,413 +17914,947 @@ lean_free_object(x_2); lean_dec(x_30); lean_dec(x_25); lean_free_object(x_3); -x_216 = !lean_is_exclusive(x_41); -if (x_216 == 0) +x_193 = !lean_is_exclusive(x_41); +if (x_193 == 0) { x_10 = x_41; goto block_18; } else { -lean_object* x_217; lean_object* x_218; lean_object* x_219; -x_217 = lean_ctor_get(x_41, 0); -x_218 = lean_ctor_get(x_41, 1); -lean_inc(x_218); -lean_inc(x_217); +lean_object* x_194; lean_object* x_195; lean_object* x_196; +x_194 = lean_ctor_get(x_41, 0); +x_195 = lean_ctor_get(x_41, 1); +lean_inc(x_195); +lean_inc(x_194); lean_dec(x_41); -x_219 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_219, 0, x_217); -lean_ctor_set(x_219, 1, x_218); -x_10 = x_219; +x_196 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_196, 0, x_194); +lean_ctor_set(x_196, 1, x_195); +x_10 = x_196; goto block_18; } } } else { -lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; -x_220 = lean_ctor_get(x_24, 0); -x_221 = lean_ctor_get(x_24, 1); -x_222 = lean_ctor_get(x_8, 0); -x_223 = lean_ctor_get(x_8, 2); -lean_inc(x_223); -lean_inc(x_222); +lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; +x_197 = lean_ctor_get(x_24, 0); +x_198 = lean_ctor_get(x_24, 1); +x_199 = lean_ctor_get(x_8, 0); +x_200 = lean_ctor_get(x_8, 2); +lean_inc(x_200); +lean_inc(x_199); lean_dec(x_8); -x_224 = lean_ctor_get(x_27, 1); -lean_inc(x_224); +x_201 = lean_ctor_get(x_27, 1); +lean_inc(x_201); lean_dec(x_27); lean_inc(x_4); -x_225 = l_Lean_Elab_Term_whnfForall(x_220, x_4, x_5); -if (lean_obj_tag(x_225) == 0) +x_202 = l_Lean_Elab_Term_whnfForall(x_197, x_4, x_5); +if (lean_obj_tag(x_202) == 0) { -lean_object* x_226; lean_object* x_227; lean_object* x_228; -x_226 = lean_ctor_get(x_225, 0); -lean_inc(x_226); -x_227 = lean_ctor_get(x_225, 1); -lean_inc(x_227); -lean_dec(x_225); -if (lean_obj_tag(x_226) == 7) +lean_object* x_203; lean_object* x_204; lean_object* x_205; +x_203 = lean_ctor_get(x_202, 0); +lean_inc(x_203); +x_204 = lean_ctor_get(x_202, 1); +lean_inc(x_204); +lean_dec(x_202); +if (lean_obj_tag(x_203) == 7) { -lean_dec(x_224); -switch (lean_obj_tag(x_223)) { +lean_dec(x_201); +switch (lean_obj_tag(x_200)) { case 0: { -lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; uint8_t x_254; lean_object* x_255; -x_250 = lean_ctor_get(x_226, 1); -lean_inc(x_250); -x_251 = lean_ctor_get(x_226, 2); -lean_inc(x_251); -lean_dec(x_226); -x_252 = lean_ctor_get(x_223, 0); -lean_inc(x_252); -x_253 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_253, 0, x_250); -x_254 = 1; +lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; +x_227 = lean_ctor_get(x_203, 1); +lean_inc(x_227); +x_228 = lean_ctor_get(x_203, 2); +lean_inc(x_228); +lean_dec(x_203); +x_229 = lean_ctor_get(x_200, 0); +lean_inc(x_229); +x_230 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_230, 0, x_227); lean_inc(x_4); -lean_inc(x_253); -lean_inc(x_252); -x_255 = l_Lean_Elab_Term_elabTerm(x_252, x_253, x_254, x_4, x_227); -if (lean_obj_tag(x_255) == 0) +x_231 = l_Lean_Elab_Term_elabTermEnsuringType(x_229, x_230, x_4, x_204); +if (lean_obj_tag(x_231) == 0) { -lean_object* x_256; 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; lean_object* x_264; lean_object* x_265; lean_object* x_266; uint8_t x_267; uint8_t x_268; uint8_t x_269; lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; -x_256 = lean_ctor_get(x_255, 0); -lean_inc(x_256); -x_257 = lean_ctor_get(x_255, 1); -lean_inc(x_257); -lean_dec(x_255); -x_258 = lean_ctor_get(x_4, 0); -lean_inc(x_258); -x_259 = lean_ctor_get(x_4, 1); -lean_inc(x_259); -x_260 = lean_ctor_get(x_4, 2); -lean_inc(x_260); -x_261 = lean_ctor_get(x_4, 3); -lean_inc(x_261); -x_262 = lean_ctor_get(x_4, 4); -lean_inc(x_262); -x_263 = lean_ctor_get(x_4, 5); -lean_inc(x_263); -x_264 = lean_ctor_get(x_4, 6); -lean_inc(x_264); -x_265 = lean_ctor_get(x_4, 7); -lean_inc(x_265); -x_266 = lean_ctor_get(x_4, 8); -lean_inc(x_266); -x_267 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_268 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_269 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_270 = lean_ctor_get(x_4, 9); -lean_inc(x_270); -x_271 = l_Lean_Elab_replaceRef(x_252, x_270); -lean_dec(x_270); -lean_dec(x_252); -x_272 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_272, 0, x_258); -lean_ctor_set(x_272, 1, x_259); -lean_ctor_set(x_272, 2, x_260); -lean_ctor_set(x_272, 3, x_261); -lean_ctor_set(x_272, 4, x_262); -lean_ctor_set(x_272, 5, x_263); -lean_ctor_set(x_272, 6, x_264); -lean_ctor_set(x_272, 7, x_265); -lean_ctor_set(x_272, 8, x_266); -lean_ctor_set(x_272, 9, x_271); -lean_ctor_set_uint8(x_272, sizeof(void*)*10, x_267); -lean_ctor_set_uint8(x_272, sizeof(void*)*10 + 1, x_268); -lean_ctor_set_uint8(x_272, sizeof(void*)*10 + 2, x_269); -x_273 = l_Lean_Elab_Term_ensureHasType(x_253, x_256, x_272, x_257); -if (lean_obj_tag(x_273) == 0) -{ -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; -x_274 = lean_ctor_get(x_273, 0); -lean_inc(x_274); -x_275 = lean_ctor_get(x_273, 1); -lean_inc(x_275); -if (lean_is_exclusive(x_273)) { - lean_ctor_release(x_273, 0); - lean_ctor_release(x_273, 1); - x_276 = x_273; +lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; +x_232 = lean_ctor_get(x_231, 0); +lean_inc(x_232); +x_233 = lean_ctor_get(x_231, 1); +lean_inc(x_233); +if (lean_is_exclusive(x_231)) { + lean_ctor_release(x_231, 0); + lean_ctor_release(x_231, 1); + x_234 = x_231; } else { - lean_dec_ref(x_273); - x_276 = lean_box(0); + lean_dec_ref(x_231); + x_234 = lean_box(0); } -lean_inc(x_274); -x_277 = l_Lean_mkApp(x_30, x_274); -x_278 = lean_expr_instantiate1(x_251, x_274); -lean_dec(x_251); -x_279 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_279, 0, x_274); -x_280 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_280, 0, x_222); -lean_ctor_set(x_280, 1, x_25); -lean_ctor_set(x_280, 2, x_223); -lean_ctor_set(x_280, 3, x_279); -lean_ctor_set(x_3, 1, x_221); -lean_ctor_set(x_3, 0, x_280); +lean_inc(x_232); +x_235 = l_Lean_mkApp(x_30, x_232); +x_236 = lean_expr_instantiate1(x_228, x_232); +lean_dec(x_228); +x_237 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_237, 0, x_232); +x_238 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_238, 0, x_199); +lean_ctor_set(x_238, 1, x_25); +lean_ctor_set(x_238, 2, x_200); +lean_ctor_set(x_238, 3, x_237); +lean_ctor_set(x_3, 1, x_198); +lean_ctor_set(x_3, 0, x_238); lean_ctor_set(x_24, 1, x_3); -lean_ctor_set(x_24, 0, x_278); -lean_ctor_set(x_2, 0, x_277); -if (lean_is_scalar(x_276)) { - x_281 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_236); +lean_ctor_set(x_2, 0, x_235); +if (lean_is_scalar(x_234)) { + x_239 = lean_alloc_ctor(0, 2, 0); } else { - x_281 = x_276; + x_239 = x_234; } -lean_ctor_set(x_281, 0, x_2); -lean_ctor_set(x_281, 1, x_275); -x_10 = x_281; +lean_ctor_set(x_239, 0, x_2); +lean_ctor_set(x_239, 1, x_233); +x_10 = x_239; goto block_18; } else { -lean_object* x_282; lean_object* x_283; lean_object* x_284; lean_object* x_285; -lean_dec(x_251); -lean_dec(x_223); -lean_dec(x_222); +lean_object* x_240; lean_object* x_241; lean_object* x_242; lean_object* x_243; +lean_dec(x_228); +lean_dec(x_200); +lean_dec(x_199); lean_free_object(x_24); -lean_dec(x_221); +lean_dec(x_198); lean_free_object(x_2); lean_dec(x_30); lean_dec(x_25); lean_free_object(x_3); -x_282 = lean_ctor_get(x_273, 0); -lean_inc(x_282); -x_283 = lean_ctor_get(x_273, 1); -lean_inc(x_283); -if (lean_is_exclusive(x_273)) { - lean_ctor_release(x_273, 0); - lean_ctor_release(x_273, 1); - x_284 = x_273; +x_240 = lean_ctor_get(x_231, 0); +lean_inc(x_240); +x_241 = lean_ctor_get(x_231, 1); +lean_inc(x_241); +if (lean_is_exclusive(x_231)) { + lean_ctor_release(x_231, 0); + lean_ctor_release(x_231, 1); + x_242 = x_231; } else { - lean_dec_ref(x_273); - x_284 = lean_box(0); + lean_dec_ref(x_231); + x_242 = lean_box(0); } -if (lean_is_scalar(x_284)) { - x_285 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_242)) { + x_243 = lean_alloc_ctor(1, 2, 0); } else { - x_285 = x_284; + x_243 = x_242; } -lean_ctor_set(x_285, 0, x_282); -lean_ctor_set(x_285, 1, x_283); -x_10 = x_285; -goto block_18; -} -} -else -{ -lean_object* x_286; lean_object* x_287; lean_object* x_288; lean_object* x_289; -lean_dec(x_253); -lean_dec(x_252); -lean_dec(x_251); -lean_dec(x_223); -lean_dec(x_222); -lean_free_object(x_24); -lean_dec(x_221); -lean_free_object(x_2); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_286 = lean_ctor_get(x_255, 0); -lean_inc(x_286); -x_287 = lean_ctor_get(x_255, 1); -lean_inc(x_287); -if (lean_is_exclusive(x_255)) { - lean_ctor_release(x_255, 0); - lean_ctor_release(x_255, 1); - x_288 = x_255; -} else { - lean_dec_ref(x_255); - x_288 = lean_box(0); -} -if (lean_is_scalar(x_288)) { - x_289 = lean_alloc_ctor(1, 2, 0); -} else { - x_289 = x_288; -} -lean_ctor_set(x_289, 0, x_286); -lean_ctor_set(x_289, 1, x_287); -x_10 = x_289; +lean_ctor_set(x_243, 0, x_240); +lean_ctor_set(x_243, 1, x_241); +x_10 = x_243; goto block_18; } } case 1: { -lean_object* x_290; lean_object* x_291; lean_object* x_292; lean_object* x_293; lean_object* x_294; lean_object* x_295; +lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; lean_free_object(x_2); -x_290 = lean_ctor_get(x_226, 1); -lean_inc(x_290); -x_291 = lean_ctor_get(x_226, 2); -lean_inc(x_291); -lean_dec(x_226); -x_292 = lean_ctor_get(x_223, 0); -lean_inc(x_292); -if (lean_is_exclusive(x_223)) { - lean_ctor_release(x_223, 0); - x_293 = x_223; +x_244 = lean_ctor_get(x_203, 1); +lean_inc(x_244); +x_245 = lean_ctor_get(x_203, 2); +lean_inc(x_245); +lean_dec(x_203); +x_246 = lean_ctor_get(x_200, 0); +lean_inc(x_246); +if (lean_is_exclusive(x_200)) { + lean_ctor_release(x_200, 0); + x_247 = x_200; } else { - lean_dec_ref(x_223); - x_293 = lean_box(0); + lean_dec_ref(x_200); + x_247 = lean_box(0); } -x_294 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_294, 0, x_290); +x_248 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_248, 0, x_244); lean_inc(x_4); -lean_inc(x_294); -x_295 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_292, x_294, x_4, x_227); -if (lean_obj_tag(x_295) == 0) +lean_inc(x_248); +x_249 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_246, x_248, x_4, x_204); +if (lean_obj_tag(x_249) == 0) { -lean_object* x_296; lean_object* x_297; lean_object* x_298; lean_object* x_299; lean_object* x_300; lean_object* x_301; -x_296 = lean_ctor_get(x_295, 0); -lean_inc(x_296); -x_297 = lean_ctor_get(x_295, 1); -lean_inc(x_297); -lean_dec(x_295); -x_298 = lean_ctor_get(x_296, 0); -lean_inc(x_298); -x_299 = lean_ctor_get(x_296, 1); -lean_inc(x_299); -if (lean_is_exclusive(x_296)) { - lean_ctor_release(x_296, 0); - lean_ctor_release(x_296, 1); - x_300 = x_296; +lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; +x_250 = lean_ctor_get(x_249, 0); +lean_inc(x_250); +x_251 = lean_ctor_get(x_249, 1); +lean_inc(x_251); +lean_dec(x_249); +x_252 = lean_ctor_get(x_250, 0); +lean_inc(x_252); +x_253 = lean_ctor_get(x_250, 1); +lean_inc(x_253); +if (lean_is_exclusive(x_250)) { + lean_ctor_release(x_250, 0); + lean_ctor_release(x_250, 1); + x_254 = x_250; } else { - lean_dec_ref(x_296); - x_300 = lean_box(0); + lean_dec_ref(x_250); + x_254 = lean_box(0); } lean_inc(x_4); -x_301 = l_Lean_Elab_Term_ensureHasType(x_294, x_298, x_4, x_297); -if (lean_obj_tag(x_301) == 0) +x_255 = l_Lean_Elab_Term_ensureHasType(x_248, x_252, x_4, x_251); +if (lean_obj_tag(x_255) == 0) { -lean_object* x_302; lean_object* x_303; lean_object* x_304; lean_object* x_305; lean_object* x_306; lean_object* x_307; lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; -x_302 = lean_ctor_get(x_301, 0); -lean_inc(x_302); -x_303 = lean_ctor_get(x_301, 1); -lean_inc(x_303); -if (lean_is_exclusive(x_301)) { - lean_ctor_release(x_301, 0); - lean_ctor_release(x_301, 1); - x_304 = x_301; +lean_object* x_256; 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; lean_object* x_264; lean_object* x_265; +x_256 = lean_ctor_get(x_255, 0); +lean_inc(x_256); +x_257 = lean_ctor_get(x_255, 1); +lean_inc(x_257); +if (lean_is_exclusive(x_255)) { + lean_ctor_release(x_255, 0); + lean_ctor_release(x_255, 1); + x_258 = x_255; } else { - lean_dec_ref(x_301); - x_304 = lean_box(0); + lean_dec_ref(x_255); + x_258 = lean_box(0); } -if (lean_is_scalar(x_293)) { - x_305 = lean_alloc_ctor(1, 1, 0); +if (lean_is_scalar(x_247)) { + x_259 = lean_alloc_ctor(1, 1, 0); } else { - x_305 = x_293; + x_259 = x_247; } -lean_ctor_set(x_305, 0, x_299); -lean_inc(x_302); -x_306 = l_Lean_mkApp(x_30, x_302); -x_307 = lean_expr_instantiate1(x_291, x_302); -lean_dec(x_291); -x_308 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_308, 0, x_302); -x_309 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_309, 0, x_222); -lean_ctor_set(x_309, 1, x_25); -lean_ctor_set(x_309, 2, x_305); -lean_ctor_set(x_309, 3, x_308); -lean_ctor_set(x_3, 1, x_221); -lean_ctor_set(x_3, 0, x_309); -if (lean_is_scalar(x_300)) { - x_310 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_259, 0, x_253); +lean_inc(x_256); +x_260 = l_Lean_mkApp(x_30, x_256); +x_261 = lean_expr_instantiate1(x_245, x_256); +lean_dec(x_245); +x_262 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_262, 0, x_256); +x_263 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_263, 0, x_199); +lean_ctor_set(x_263, 1, x_25); +lean_ctor_set(x_263, 2, x_259); +lean_ctor_set(x_263, 3, x_262); +lean_ctor_set(x_3, 1, x_198); +lean_ctor_set(x_3, 0, x_263); +if (lean_is_scalar(x_254)) { + x_264 = lean_alloc_ctor(0, 2, 0); } else { - x_310 = x_300; + x_264 = x_254; } -lean_ctor_set(x_310, 0, x_307); -lean_ctor_set(x_310, 1, x_3); -lean_ctor_set(x_24, 1, x_310); -lean_ctor_set(x_24, 0, x_306); -if (lean_is_scalar(x_304)) { - x_311 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_264, 0, x_261); +lean_ctor_set(x_264, 1, x_3); +lean_ctor_set(x_24, 1, x_264); +lean_ctor_set(x_24, 0, x_260); +if (lean_is_scalar(x_258)) { + x_265 = lean_alloc_ctor(0, 2, 0); } else { - x_311 = x_304; + x_265 = x_258; } -lean_ctor_set(x_311, 0, x_24); -lean_ctor_set(x_311, 1, x_303); -x_10 = x_311; +lean_ctor_set(x_265, 0, x_24); +lean_ctor_set(x_265, 1, x_257); +x_10 = x_265; goto block_18; } else { -lean_object* x_312; lean_object* x_313; lean_object* x_314; lean_object* x_315; -lean_dec(x_300); -lean_dec(x_299); -lean_dec(x_293); -lean_dec(x_291); -lean_dec(x_222); +lean_object* x_266; lean_object* x_267; lean_object* x_268; lean_object* x_269; +lean_dec(x_254); +lean_dec(x_253); +lean_dec(x_247); +lean_dec(x_245); +lean_dec(x_199); lean_free_object(x_24); -lean_dec(x_221); +lean_dec(x_198); lean_dec(x_30); lean_dec(x_25); lean_free_object(x_3); -x_312 = lean_ctor_get(x_301, 0); -lean_inc(x_312); -x_313 = lean_ctor_get(x_301, 1); -lean_inc(x_313); -if (lean_is_exclusive(x_301)) { - lean_ctor_release(x_301, 0); - lean_ctor_release(x_301, 1); - x_314 = x_301; +x_266 = lean_ctor_get(x_255, 0); +lean_inc(x_266); +x_267 = lean_ctor_get(x_255, 1); +lean_inc(x_267); +if (lean_is_exclusive(x_255)) { + lean_ctor_release(x_255, 0); + lean_ctor_release(x_255, 1); + x_268 = x_255; } else { - lean_dec_ref(x_301); - x_314 = lean_box(0); + lean_dec_ref(x_255); + x_268 = lean_box(0); } -if (lean_is_scalar(x_314)) { - x_315 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_268)) { + x_269 = lean_alloc_ctor(1, 2, 0); } else { - x_315 = x_314; + x_269 = x_268; } -lean_ctor_set(x_315, 0, x_312); -lean_ctor_set(x_315, 1, x_313); -x_10 = x_315; +lean_ctor_set(x_269, 0, x_266); +lean_ctor_set(x_269, 1, x_267); +x_10 = x_269; goto block_18; } } else { -lean_object* x_316; lean_object* x_317; lean_object* x_318; lean_object* x_319; -lean_dec(x_294); -lean_dec(x_293); -lean_dec(x_291); -lean_dec(x_222); +lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; +lean_dec(x_248); +lean_dec(x_247); +lean_dec(x_245); +lean_dec(x_199); lean_free_object(x_24); -lean_dec(x_221); +lean_dec(x_198); lean_dec(x_30); lean_dec(x_25); lean_free_object(x_3); -x_316 = lean_ctor_get(x_295, 0); -lean_inc(x_316); -x_317 = lean_ctor_get(x_295, 1); -lean_inc(x_317); -if (lean_is_exclusive(x_295)) { - lean_ctor_release(x_295, 0); - lean_ctor_release(x_295, 1); - x_318 = x_295; +x_270 = lean_ctor_get(x_249, 0); +lean_inc(x_270); +x_271 = lean_ctor_get(x_249, 1); +lean_inc(x_271); +if (lean_is_exclusive(x_249)) { + lean_ctor_release(x_249, 0); + lean_ctor_release(x_249, 1); + x_272 = x_249; } else { - lean_dec_ref(x_295); - x_318 = lean_box(0); + lean_dec_ref(x_249); + x_272 = lean_box(0); } -if (lean_is_scalar(x_318)) { - x_319 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_272)) { + x_273 = lean_alloc_ctor(1, 2, 0); } else { - x_319 = x_318; + x_273 = x_272; } -lean_ctor_set(x_319, 0, x_316); -lean_ctor_set(x_319, 1, x_317); -x_10 = x_319; +lean_ctor_set(x_273, 0, x_270); +lean_ctor_set(x_273, 1, x_271); +x_10 = x_273; goto block_18; } } default: { -lean_object* x_320; lean_object* x_321; lean_object* x_322; lean_object* x_323; lean_object* x_324; lean_object* x_325; lean_object* x_326; lean_object* x_327; lean_object* x_328; lean_object* x_329; lean_object* x_330; lean_object* x_331; uint8_t x_332; uint8_t x_333; uint8_t x_334; lean_object* x_335; lean_object* x_336; lean_object* x_337; uint8_t x_338; lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; lean_object* x_343; lean_object* x_344; lean_object* x_345; lean_object* x_346; lean_object* x_347; lean_object* x_348; lean_object* x_349; -x_320 = lean_ctor_get(x_226, 1); -lean_inc(x_320); -x_321 = lean_ctor_get(x_226, 2); -lean_inc(x_321); -lean_dec(x_226); -x_322 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_322, 0, x_320); +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; lean_object* x_285; uint8_t x_286; uint8_t x_287; uint8_t x_288; lean_object* x_289; lean_object* x_290; lean_object* x_291; uint8_t x_292; lean_object* x_293; lean_object* x_294; lean_object* x_295; lean_object* x_296; lean_object* x_297; lean_object* x_298; lean_object* x_299; lean_object* x_300; lean_object* x_301; lean_object* x_302; lean_object* x_303; +x_274 = lean_ctor_get(x_203, 1); +lean_inc(x_274); +x_275 = lean_ctor_get(x_203, 2); +lean_inc(x_275); +lean_dec(x_203); +x_276 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_276, 0, x_274); +x_277 = lean_ctor_get(x_4, 0); +lean_inc(x_277); +x_278 = lean_ctor_get(x_4, 1); +lean_inc(x_278); +x_279 = lean_ctor_get(x_4, 2); +lean_inc(x_279); +x_280 = lean_ctor_get(x_4, 3); +lean_inc(x_280); +x_281 = lean_ctor_get(x_4, 4); +lean_inc(x_281); +x_282 = lean_ctor_get(x_4, 5); +lean_inc(x_282); +x_283 = lean_ctor_get(x_4, 6); +lean_inc(x_283); +x_284 = lean_ctor_get(x_4, 7); +lean_inc(x_284); +x_285 = lean_ctor_get(x_4, 8); +lean_inc(x_285); +x_286 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); +x_287 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); +x_288 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); +x_289 = lean_ctor_get(x_4, 9); +lean_inc(x_289); +x_290 = l_Lean_Elab_replaceRef(x_199, x_289); +lean_dec(x_289); +x_291 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_291, 0, x_277); +lean_ctor_set(x_291, 1, x_278); +lean_ctor_set(x_291, 2, x_279); +lean_ctor_set(x_291, 3, x_280); +lean_ctor_set(x_291, 4, x_281); +lean_ctor_set(x_291, 5, x_282); +lean_ctor_set(x_291, 6, x_283); +lean_ctor_set(x_291, 7, x_284); +lean_ctor_set(x_291, 8, x_285); +lean_ctor_set(x_291, 9, x_290); +lean_ctor_set_uint8(x_291, sizeof(void*)*10, x_286); +lean_ctor_set_uint8(x_291, sizeof(void*)*10 + 1, x_287); +lean_ctor_set_uint8(x_291, sizeof(void*)*10 + 2, x_288); +x_292 = 0; +x_293 = lean_box(0); +x_294 = l_Lean_Elab_Term_mkFreshExprMVar(x_276, x_292, x_293, x_291, x_204); +x_295 = lean_ctor_get(x_294, 0); +lean_inc(x_295); +x_296 = lean_ctor_get(x_294, 1); +lean_inc(x_296); +if (lean_is_exclusive(x_294)) { + lean_ctor_release(x_294, 0); + lean_ctor_release(x_294, 1); + x_297 = x_294; +} else { + lean_dec_ref(x_294); + x_297 = lean_box(0); +} +x_298 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_295); +lean_inc(x_298); +x_299 = l_Lean_mkApp(x_30, x_298); +x_300 = lean_expr_instantiate1(x_275, x_298); +lean_dec(x_275); +x_301 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_301, 0, x_298); +x_302 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_302, 0, x_199); +lean_ctor_set(x_302, 1, x_25); +lean_ctor_set(x_302, 2, x_200); +lean_ctor_set(x_302, 3, x_301); +lean_ctor_set(x_3, 1, x_198); +lean_ctor_set(x_3, 0, x_302); +lean_ctor_set(x_24, 1, x_3); +lean_ctor_set(x_24, 0, x_300); +lean_ctor_set(x_2, 0, x_299); +if (lean_is_scalar(x_297)) { + x_303 = lean_alloc_ctor(0, 2, 0); +} else { + x_303 = x_297; +} +lean_ctor_set(x_303, 0, x_2); +lean_ctor_set(x_303, 1, x_296); +x_10 = x_303; +goto block_18; +} +} +} +else +{ +lean_object* x_304; +lean_dec(x_200); +lean_free_object(x_24); +lean_dec(x_198); +lean_free_object(x_2); +lean_dec(x_30); +lean_dec(x_25); +lean_free_object(x_3); +x_304 = lean_box(0); +x_205 = x_304; +goto block_226; +} +block_226: +{ +lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; uint8_t x_219; uint8_t x_220; uint8_t x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; +lean_dec(x_205); +x_206 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_206, 0, x_203); +x_207 = l_Lean_indentExpr(x_206); +x_208 = l___private_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; +x_209 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_209, 0, x_208); +lean_ctor_set(x_209, 1, x_207); +x_210 = lean_ctor_get(x_4, 0); +lean_inc(x_210); +x_211 = lean_ctor_get(x_4, 1); +lean_inc(x_211); +x_212 = lean_ctor_get(x_4, 2); +lean_inc(x_212); +x_213 = lean_ctor_get(x_4, 3); +lean_inc(x_213); +x_214 = lean_ctor_get(x_4, 4); +lean_inc(x_214); +x_215 = lean_ctor_get(x_4, 5); +lean_inc(x_215); +x_216 = lean_ctor_get(x_4, 6); +lean_inc(x_216); +x_217 = lean_ctor_get(x_4, 7); +lean_inc(x_217); +x_218 = lean_ctor_get(x_4, 8); +lean_inc(x_218); +x_219 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); +x_220 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); +x_221 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); +x_222 = lean_ctor_get(x_4, 9); +lean_inc(x_222); +x_223 = l_Lean_Elab_replaceRef(x_199, x_222); +lean_dec(x_222); +lean_dec(x_199); +x_224 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_224, 0, x_210); +lean_ctor_set(x_224, 1, x_211); +lean_ctor_set(x_224, 2, x_212); +lean_ctor_set(x_224, 3, x_213); +lean_ctor_set(x_224, 4, x_214); +lean_ctor_set(x_224, 5, x_215); +lean_ctor_set(x_224, 6, x_216); +lean_ctor_set(x_224, 7, x_217); +lean_ctor_set(x_224, 8, x_218); +lean_ctor_set(x_224, 9, x_223); +lean_ctor_set_uint8(x_224, sizeof(void*)*10, x_219); +lean_ctor_set_uint8(x_224, sizeof(void*)*10 + 1, x_220); +lean_ctor_set_uint8(x_224, sizeof(void*)*10 + 2, x_221); +lean_inc(x_1); +x_225 = l_Lean_Elab_Term_StructInst_throwFailedToElabField___rarg(x_201, x_1, x_209, x_224, x_204); +x_10 = x_225; +goto block_18; +} +} +else +{ +lean_object* x_305; lean_object* x_306; lean_object* x_307; lean_object* x_308; +lean_dec(x_201); +lean_dec(x_200); +lean_dec(x_199); +lean_free_object(x_24); +lean_dec(x_198); +lean_free_object(x_2); +lean_dec(x_30); +lean_dec(x_25); +lean_free_object(x_3); +x_305 = lean_ctor_get(x_202, 0); +lean_inc(x_305); +x_306 = lean_ctor_get(x_202, 1); +lean_inc(x_306); +if (lean_is_exclusive(x_202)) { + lean_ctor_release(x_202, 0); + lean_ctor_release(x_202, 1); + x_307 = x_202; +} else { + lean_dec_ref(x_202); + x_307 = lean_box(0); +} +if (lean_is_scalar(x_307)) { + x_308 = lean_alloc_ctor(1, 2, 0); +} else { + x_308 = x_307; +} +lean_ctor_set(x_308, 0, x_305); +lean_ctor_set(x_308, 1, x_306); +x_10 = x_308; +goto block_18; +} +} +} +else +{ +lean_object* x_309; lean_object* x_310; lean_object* x_311; lean_object* x_312; lean_object* x_313; lean_object* x_314; lean_object* x_315; +x_309 = lean_ctor_get(x_24, 0); +x_310 = lean_ctor_get(x_24, 1); +lean_inc(x_310); +lean_inc(x_309); +lean_dec(x_24); +x_311 = lean_ctor_get(x_8, 0); +lean_inc(x_311); +x_312 = lean_ctor_get(x_8, 2); +lean_inc(x_312); +if (lean_is_exclusive(x_8)) { + lean_ctor_release(x_8, 0); + lean_ctor_release(x_8, 1); + lean_ctor_release(x_8, 2); + lean_ctor_release(x_8, 3); + x_313 = x_8; +} else { + lean_dec_ref(x_8); + x_313 = lean_box(0); +} +x_314 = lean_ctor_get(x_27, 1); +lean_inc(x_314); +lean_dec(x_27); +lean_inc(x_4); +x_315 = l_Lean_Elab_Term_whnfForall(x_309, x_4, x_5); +if (lean_obj_tag(x_315) == 0) +{ +lean_object* x_316; lean_object* x_317; lean_object* x_318; +x_316 = lean_ctor_get(x_315, 0); +lean_inc(x_316); +x_317 = lean_ctor_get(x_315, 1); +lean_inc(x_317); +lean_dec(x_315); +if (lean_obj_tag(x_316) == 7) +{ +lean_dec(x_314); +switch (lean_obj_tag(x_312)) { +case 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_316, 1); +lean_inc(x_340); +x_341 = lean_ctor_get(x_316, 2); +lean_inc(x_341); +lean_dec(x_316); +x_342 = lean_ctor_get(x_312, 0); +lean_inc(x_342); +x_343 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_343, 0, x_340); +lean_inc(x_4); +x_344 = l_Lean_Elab_Term_elabTermEnsuringType(x_342, x_343, x_4, x_317); +if (lean_obj_tag(x_344) == 0) +{ +lean_object* x_345; lean_object* x_346; lean_object* x_347; lean_object* x_348; lean_object* x_349; lean_object* x_350; lean_object* x_351; lean_object* x_352; lean_object* x_353; +x_345 = lean_ctor_get(x_344, 0); +lean_inc(x_345); +x_346 = lean_ctor_get(x_344, 1); +lean_inc(x_346); +if (lean_is_exclusive(x_344)) { + lean_ctor_release(x_344, 0); + lean_ctor_release(x_344, 1); + x_347 = x_344; +} else { + lean_dec_ref(x_344); + x_347 = lean_box(0); +} +lean_inc(x_345); +x_348 = l_Lean_mkApp(x_30, x_345); +x_349 = lean_expr_instantiate1(x_341, x_345); +lean_dec(x_341); +x_350 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_350, 0, x_345); +if (lean_is_scalar(x_313)) { + x_351 = lean_alloc_ctor(0, 4, 0); +} else { + x_351 = x_313; +} +lean_ctor_set(x_351, 0, x_311); +lean_ctor_set(x_351, 1, x_25); +lean_ctor_set(x_351, 2, x_312); +lean_ctor_set(x_351, 3, x_350); +lean_ctor_set(x_3, 1, x_310); +lean_ctor_set(x_3, 0, x_351); +x_352 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_352, 0, x_349); +lean_ctor_set(x_352, 1, x_3); +lean_ctor_set(x_2, 1, x_352); +lean_ctor_set(x_2, 0, x_348); +if (lean_is_scalar(x_347)) { + x_353 = lean_alloc_ctor(0, 2, 0); +} else { + x_353 = x_347; +} +lean_ctor_set(x_353, 0, x_2); +lean_ctor_set(x_353, 1, x_346); +x_10 = x_353; +goto block_18; +} +else +{ +lean_object* x_354; lean_object* x_355; lean_object* x_356; lean_object* x_357; +lean_dec(x_341); +lean_dec(x_313); +lean_dec(x_312); +lean_dec(x_311); +lean_dec(x_310); +lean_free_object(x_2); +lean_dec(x_30); +lean_dec(x_25); +lean_free_object(x_3); +x_354 = lean_ctor_get(x_344, 0); +lean_inc(x_354); +x_355 = lean_ctor_get(x_344, 1); +lean_inc(x_355); +if (lean_is_exclusive(x_344)) { + lean_ctor_release(x_344, 0); + lean_ctor_release(x_344, 1); + x_356 = x_344; +} else { + lean_dec_ref(x_344); + x_356 = lean_box(0); +} +if (lean_is_scalar(x_356)) { + x_357 = lean_alloc_ctor(1, 2, 0); +} else { + x_357 = x_356; +} +lean_ctor_set(x_357, 0, x_354); +lean_ctor_set(x_357, 1, x_355); +x_10 = x_357; +goto block_18; +} +} +case 1: +{ +lean_object* x_358; lean_object* x_359; lean_object* x_360; lean_object* x_361; lean_object* x_362; lean_object* x_363; +lean_free_object(x_2); +x_358 = lean_ctor_get(x_316, 1); +lean_inc(x_358); +x_359 = lean_ctor_get(x_316, 2); +lean_inc(x_359); +lean_dec(x_316); +x_360 = lean_ctor_get(x_312, 0); +lean_inc(x_360); +if (lean_is_exclusive(x_312)) { + lean_ctor_release(x_312, 0); + x_361 = x_312; +} else { + lean_dec_ref(x_312); + x_361 = lean_box(0); +} +x_362 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_362, 0, x_358); +lean_inc(x_4); +lean_inc(x_362); +x_363 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_360, x_362, x_4, x_317); +if (lean_obj_tag(x_363) == 0) +{ +lean_object* x_364; lean_object* x_365; lean_object* x_366; lean_object* x_367; lean_object* x_368; lean_object* x_369; +x_364 = lean_ctor_get(x_363, 0); +lean_inc(x_364); +x_365 = lean_ctor_get(x_363, 1); +lean_inc(x_365); +lean_dec(x_363); +x_366 = lean_ctor_get(x_364, 0); +lean_inc(x_366); +x_367 = lean_ctor_get(x_364, 1); +lean_inc(x_367); +if (lean_is_exclusive(x_364)) { + lean_ctor_release(x_364, 0); + lean_ctor_release(x_364, 1); + x_368 = x_364; +} else { + lean_dec_ref(x_364); + x_368 = lean_box(0); +} +lean_inc(x_4); +x_369 = l_Lean_Elab_Term_ensureHasType(x_362, x_366, x_4, x_365); +if (lean_obj_tag(x_369) == 0) +{ +lean_object* x_370; lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; lean_object* x_375; lean_object* x_376; lean_object* x_377; lean_object* x_378; lean_object* x_379; lean_object* x_380; +x_370 = lean_ctor_get(x_369, 0); +lean_inc(x_370); +x_371 = lean_ctor_get(x_369, 1); +lean_inc(x_371); +if (lean_is_exclusive(x_369)) { + lean_ctor_release(x_369, 0); + lean_ctor_release(x_369, 1); + x_372 = x_369; +} else { + lean_dec_ref(x_369); + x_372 = lean_box(0); +} +if (lean_is_scalar(x_361)) { + x_373 = lean_alloc_ctor(1, 1, 0); +} else { + x_373 = x_361; +} +lean_ctor_set(x_373, 0, x_367); +lean_inc(x_370); +x_374 = l_Lean_mkApp(x_30, x_370); +x_375 = lean_expr_instantiate1(x_359, x_370); +lean_dec(x_359); +x_376 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_376, 0, x_370); +if (lean_is_scalar(x_313)) { + x_377 = lean_alloc_ctor(0, 4, 0); +} else { + x_377 = x_313; +} +lean_ctor_set(x_377, 0, x_311); +lean_ctor_set(x_377, 1, x_25); +lean_ctor_set(x_377, 2, x_373); +lean_ctor_set(x_377, 3, x_376); +lean_ctor_set(x_3, 1, x_310); +lean_ctor_set(x_3, 0, x_377); +if (lean_is_scalar(x_368)) { + x_378 = lean_alloc_ctor(0, 2, 0); +} else { + x_378 = x_368; +} +lean_ctor_set(x_378, 0, x_375); +lean_ctor_set(x_378, 1, x_3); +x_379 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_379, 0, x_374); +lean_ctor_set(x_379, 1, x_378); +if (lean_is_scalar(x_372)) { + x_380 = lean_alloc_ctor(0, 2, 0); +} else { + x_380 = x_372; +} +lean_ctor_set(x_380, 0, x_379); +lean_ctor_set(x_380, 1, x_371); +x_10 = x_380; +goto block_18; +} +else +{ +lean_object* x_381; lean_object* x_382; lean_object* x_383; lean_object* x_384; +lean_dec(x_368); +lean_dec(x_367); +lean_dec(x_361); +lean_dec(x_359); +lean_dec(x_313); +lean_dec(x_311); +lean_dec(x_310); +lean_dec(x_30); +lean_dec(x_25); +lean_free_object(x_3); +x_381 = lean_ctor_get(x_369, 0); +lean_inc(x_381); +x_382 = lean_ctor_get(x_369, 1); +lean_inc(x_382); +if (lean_is_exclusive(x_369)) { + lean_ctor_release(x_369, 0); + lean_ctor_release(x_369, 1); + x_383 = x_369; +} else { + lean_dec_ref(x_369); + x_383 = lean_box(0); +} +if (lean_is_scalar(x_383)) { + x_384 = lean_alloc_ctor(1, 2, 0); +} else { + x_384 = x_383; +} +lean_ctor_set(x_384, 0, x_381); +lean_ctor_set(x_384, 1, x_382); +x_10 = x_384; +goto block_18; +} +} +else +{ +lean_object* x_385; lean_object* x_386; lean_object* x_387; lean_object* x_388; +lean_dec(x_362); +lean_dec(x_361); +lean_dec(x_359); +lean_dec(x_313); +lean_dec(x_311); +lean_dec(x_310); +lean_dec(x_30); +lean_dec(x_25); +lean_free_object(x_3); +x_385 = lean_ctor_get(x_363, 0); +lean_inc(x_385); +x_386 = lean_ctor_get(x_363, 1); +lean_inc(x_386); +if (lean_is_exclusive(x_363)) { + lean_ctor_release(x_363, 0); + lean_ctor_release(x_363, 1); + x_387 = x_363; +} else { + lean_dec_ref(x_363); + 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); +x_10 = x_388; +goto block_18; +} +} +default: +{ +lean_object* x_389; lean_object* x_390; lean_object* x_391; lean_object* x_392; lean_object* x_393; lean_object* x_394; lean_object* x_395; lean_object* x_396; lean_object* x_397; lean_object* x_398; lean_object* x_399; lean_object* x_400; uint8_t x_401; uint8_t x_402; uint8_t x_403; lean_object* x_404; lean_object* x_405; lean_object* x_406; uint8_t x_407; lean_object* x_408; lean_object* x_409; lean_object* x_410; lean_object* x_411; lean_object* x_412; lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; lean_object* x_417; lean_object* x_418; lean_object* x_419; +x_389 = lean_ctor_get(x_316, 1); +lean_inc(x_389); +x_390 = lean_ctor_get(x_316, 2); +lean_inc(x_390); +lean_dec(x_316); +x_391 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_391, 0, x_389); +x_392 = lean_ctor_get(x_4, 0); +lean_inc(x_392); +x_393 = lean_ctor_get(x_4, 1); +lean_inc(x_393); +x_394 = lean_ctor_get(x_4, 2); +lean_inc(x_394); +x_395 = lean_ctor_get(x_4, 3); +lean_inc(x_395); +x_396 = lean_ctor_get(x_4, 4); +lean_inc(x_396); +x_397 = lean_ctor_get(x_4, 5); +lean_inc(x_397); +x_398 = lean_ctor_get(x_4, 6); +lean_inc(x_398); +x_399 = lean_ctor_get(x_4, 7); +lean_inc(x_399); +x_400 = lean_ctor_get(x_4, 8); +lean_inc(x_400); +x_401 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); +x_402 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); +x_403 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); +x_404 = lean_ctor_get(x_4, 9); +lean_inc(x_404); +x_405 = l_Lean_Elab_replaceRef(x_311, x_404); +lean_dec(x_404); +x_406 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_406, 0, x_392); +lean_ctor_set(x_406, 1, x_393); +lean_ctor_set(x_406, 2, x_394); +lean_ctor_set(x_406, 3, x_395); +lean_ctor_set(x_406, 4, x_396); +lean_ctor_set(x_406, 5, x_397); +lean_ctor_set(x_406, 6, x_398); +lean_ctor_set(x_406, 7, x_399); +lean_ctor_set(x_406, 8, x_400); +lean_ctor_set(x_406, 9, x_405); +lean_ctor_set_uint8(x_406, sizeof(void*)*10, x_401); +lean_ctor_set_uint8(x_406, sizeof(void*)*10 + 1, x_402); +lean_ctor_set_uint8(x_406, sizeof(void*)*10 + 2, x_403); +x_407 = 0; +x_408 = lean_box(0); +x_409 = l_Lean_Elab_Term_mkFreshExprMVar(x_391, x_407, x_408, x_406, x_317); +x_410 = lean_ctor_get(x_409, 0); +lean_inc(x_410); +x_411 = lean_ctor_get(x_409, 1); +lean_inc(x_411); +if (lean_is_exclusive(x_409)) { + lean_ctor_release(x_409, 0); + lean_ctor_release(x_409, 1); + x_412 = x_409; +} else { + lean_dec_ref(x_409); + x_412 = lean_box(0); +} +x_413 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_410); +lean_inc(x_413); +x_414 = l_Lean_mkApp(x_30, x_413); +x_415 = lean_expr_instantiate1(x_390, x_413); +lean_dec(x_390); +x_416 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_416, 0, x_413); +if (lean_is_scalar(x_313)) { + x_417 = lean_alloc_ctor(0, 4, 0); +} else { + x_417 = x_313; +} +lean_ctor_set(x_417, 0, x_311); +lean_ctor_set(x_417, 1, x_25); +lean_ctor_set(x_417, 2, x_312); +lean_ctor_set(x_417, 3, x_416); +lean_ctor_set(x_3, 1, x_310); +lean_ctor_set(x_3, 0, x_417); +x_418 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_418, 0, x_415); +lean_ctor_set(x_418, 1, x_3); +lean_ctor_set(x_2, 1, x_418); +lean_ctor_set(x_2, 0, x_414); +if (lean_is_scalar(x_412)) { + x_419 = lean_alloc_ctor(0, 2, 0); +} else { + x_419 = x_412; +} +lean_ctor_set(x_419, 0, x_2); +lean_ctor_set(x_419, 1, x_411); +x_10 = x_419; +goto block_18; +} +} +} +else +{ +lean_object* x_420; +lean_dec(x_313); +lean_dec(x_312); +lean_dec(x_310); +lean_free_object(x_2); +lean_dec(x_30); +lean_dec(x_25); +lean_free_object(x_3); +x_420 = lean_box(0); +x_318 = x_420; +goto block_339; +} +block_339: +{ +lean_object* x_319; lean_object* x_320; lean_object* x_321; lean_object* x_322; lean_object* x_323; lean_object* x_324; lean_object* x_325; lean_object* x_326; lean_object* x_327; lean_object* x_328; lean_object* x_329; lean_object* x_330; lean_object* x_331; uint8_t x_332; uint8_t x_333; uint8_t x_334; lean_object* x_335; lean_object* x_336; lean_object* x_337; lean_object* x_338; +lean_dec(x_318); +x_319 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_319, 0, x_316); +x_320 = l_Lean_indentExpr(x_319); +x_321 = l___private_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; +x_322 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_322, 0, x_321); +lean_ctor_set(x_322, 1, x_320); x_323 = lean_ctor_get(x_4, 0); lean_inc(x_323); x_324 = lean_ctor_get(x_4, 1); @@ -18380,8 +18878,9 @@ x_333 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); x_334 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); x_335 = lean_ctor_get(x_4, 9); lean_inc(x_335); -x_336 = l_Lean_Elab_replaceRef(x_222, x_335); +x_336 = l_Lean_Elab_replaceRef(x_311, x_335); lean_dec(x_335); +lean_dec(x_311); x_337 = lean_alloc_ctor(0, 10, 3); lean_ctor_set(x_337, 0, x_323); lean_ctor_set(x_337, 1, x_324); @@ -18396,1414 +18895,612 @@ lean_ctor_set(x_337, 9, x_336); lean_ctor_set_uint8(x_337, sizeof(void*)*10, x_332); lean_ctor_set_uint8(x_337, sizeof(void*)*10 + 1, x_333); lean_ctor_set_uint8(x_337, sizeof(void*)*10 + 2, x_334); -x_338 = 0; -x_339 = lean_box(0); -x_340 = l_Lean_Elab_Term_mkFreshExprMVar(x_322, x_338, x_339, x_337, x_227); -x_341 = lean_ctor_get(x_340, 0); -lean_inc(x_341); -x_342 = lean_ctor_get(x_340, 1); -lean_inc(x_342); -if (lean_is_exclusive(x_340)) { - lean_ctor_release(x_340, 0); - lean_ctor_release(x_340, 1); - x_343 = x_340; -} else { - lean_dec_ref(x_340); - x_343 = lean_box(0); -} -x_344 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_341); -lean_inc(x_344); -x_345 = l_Lean_mkApp(x_30, x_344); -x_346 = lean_expr_instantiate1(x_321, x_344); -lean_dec(x_321); -x_347 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_347, 0, x_344); -x_348 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_348, 0, x_222); -lean_ctor_set(x_348, 1, x_25); -lean_ctor_set(x_348, 2, x_223); -lean_ctor_set(x_348, 3, x_347); -lean_ctor_set(x_3, 1, x_221); -lean_ctor_set(x_3, 0, x_348); -lean_ctor_set(x_24, 1, x_3); -lean_ctor_set(x_24, 0, x_346); -lean_ctor_set(x_2, 0, x_345); -if (lean_is_scalar(x_343)) { - x_349 = lean_alloc_ctor(0, 2, 0); -} else { - x_349 = x_343; -} -lean_ctor_set(x_349, 0, x_2); -lean_ctor_set(x_349, 1, x_342); -x_10 = x_349; -goto block_18; -} -} -} -else -{ -lean_object* x_350; -lean_dec(x_223); -lean_free_object(x_24); -lean_dec(x_221); -lean_free_object(x_2); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_350 = lean_box(0); -x_228 = x_350; -goto block_249; -} -block_249: -{ -lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; uint8_t x_242; uint8_t x_243; uint8_t x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; -lean_dec(x_228); -x_229 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_229, 0, x_226); -x_230 = l_Lean_indentExpr(x_229); -x_231 = l___private_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; -x_232 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_232, 0, x_231); -lean_ctor_set(x_232, 1, x_230); -x_233 = lean_ctor_get(x_4, 0); -lean_inc(x_233); -x_234 = lean_ctor_get(x_4, 1); -lean_inc(x_234); -x_235 = lean_ctor_get(x_4, 2); -lean_inc(x_235); -x_236 = lean_ctor_get(x_4, 3); -lean_inc(x_236); -x_237 = lean_ctor_get(x_4, 4); -lean_inc(x_237); -x_238 = lean_ctor_get(x_4, 5); -lean_inc(x_238); -x_239 = lean_ctor_get(x_4, 6); -lean_inc(x_239); -x_240 = lean_ctor_get(x_4, 7); -lean_inc(x_240); -x_241 = lean_ctor_get(x_4, 8); -lean_inc(x_241); -x_242 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_243 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_244 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_245 = lean_ctor_get(x_4, 9); -lean_inc(x_245); -x_246 = l_Lean_Elab_replaceRef(x_222, x_245); -lean_dec(x_245); -lean_dec(x_222); -x_247 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_247, 0, x_233); -lean_ctor_set(x_247, 1, x_234); -lean_ctor_set(x_247, 2, x_235); -lean_ctor_set(x_247, 3, x_236); -lean_ctor_set(x_247, 4, x_237); -lean_ctor_set(x_247, 5, x_238); -lean_ctor_set(x_247, 6, x_239); -lean_ctor_set(x_247, 7, x_240); -lean_ctor_set(x_247, 8, x_241); -lean_ctor_set(x_247, 9, x_246); -lean_ctor_set_uint8(x_247, sizeof(void*)*10, x_242); -lean_ctor_set_uint8(x_247, sizeof(void*)*10 + 1, x_243); -lean_ctor_set_uint8(x_247, sizeof(void*)*10 + 2, x_244); lean_inc(x_1); -x_248 = l_Lean_Elab_Term_StructInst_throwFailedToElabField___rarg(x_224, x_1, x_232, x_247, x_227); -x_10 = x_248; +x_338 = l_Lean_Elab_Term_StructInst_throwFailedToElabField___rarg(x_314, x_1, x_322, x_337, x_317); +x_10 = x_338; goto block_18; } } else { -lean_object* x_351; lean_object* x_352; lean_object* x_353; lean_object* x_354; -lean_dec(x_224); -lean_dec(x_223); -lean_dec(x_222); -lean_free_object(x_24); -lean_dec(x_221); +lean_object* x_421; lean_object* x_422; lean_object* x_423; lean_object* x_424; +lean_dec(x_314); +lean_dec(x_313); +lean_dec(x_312); +lean_dec(x_311); +lean_dec(x_310); lean_free_object(x_2); lean_dec(x_30); lean_dec(x_25); lean_free_object(x_3); -x_351 = lean_ctor_get(x_225, 0); -lean_inc(x_351); -x_352 = lean_ctor_get(x_225, 1); -lean_inc(x_352); -if (lean_is_exclusive(x_225)) { - lean_ctor_release(x_225, 0); - lean_ctor_release(x_225, 1); - x_353 = x_225; +x_421 = lean_ctor_get(x_315, 0); +lean_inc(x_421); +x_422 = lean_ctor_get(x_315, 1); +lean_inc(x_422); +if (lean_is_exclusive(x_315)) { + lean_ctor_release(x_315, 0); + lean_ctor_release(x_315, 1); + x_423 = x_315; } else { - lean_dec_ref(x_225); - x_353 = lean_box(0); + lean_dec_ref(x_315); + x_423 = lean_box(0); } -if (lean_is_scalar(x_353)) { - x_354 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_423)) { + x_424 = lean_alloc_ctor(1, 2, 0); } else { - x_354 = x_353; + x_424 = x_423; } -lean_ctor_set(x_354, 0, x_351); -lean_ctor_set(x_354, 1, x_352); -x_10 = x_354; +lean_ctor_set(x_424, 0, x_421); +lean_ctor_set(x_424, 1, x_422); +x_10 = x_424; goto block_18; } } } else { -lean_object* x_355; lean_object* x_356; lean_object* x_357; lean_object* x_358; lean_object* x_359; lean_object* x_360; lean_object* x_361; -x_355 = lean_ctor_get(x_24, 0); -x_356 = lean_ctor_get(x_24, 1); -lean_inc(x_356); -lean_inc(x_355); -lean_dec(x_24); -x_357 = lean_ctor_get(x_8, 0); -lean_inc(x_357); -x_358 = lean_ctor_get(x_8, 2); -lean_inc(x_358); -if (lean_is_exclusive(x_8)) { - lean_ctor_release(x_8, 0); - lean_ctor_release(x_8, 1); - lean_ctor_release(x_8, 2); - lean_ctor_release(x_8, 3); - x_359 = x_8; -} else { - lean_dec_ref(x_8); - x_359 = lean_box(0); -} -x_360 = lean_ctor_get(x_27, 1); -lean_inc(x_360); -lean_dec(x_27); -lean_inc(x_4); -x_361 = l_Lean_Elab_Term_whnfForall(x_355, x_4, x_5); -if (lean_obj_tag(x_361) == 0) -{ -lean_object* x_362; lean_object* x_363; lean_object* x_364; -x_362 = lean_ctor_get(x_361, 0); -lean_inc(x_362); -x_363 = lean_ctor_get(x_361, 1); -lean_inc(x_363); -lean_dec(x_361); -if (lean_obj_tag(x_362) == 7) -{ -lean_dec(x_360); -switch (lean_obj_tag(x_358)) { -case 0: -{ -lean_object* x_386; lean_object* x_387; lean_object* x_388; lean_object* x_389; uint8_t x_390; lean_object* x_391; -x_386 = lean_ctor_get(x_362, 1); -lean_inc(x_386); -x_387 = lean_ctor_get(x_362, 2); -lean_inc(x_387); -lean_dec(x_362); -x_388 = lean_ctor_get(x_358, 0); -lean_inc(x_388); -x_389 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_389, 0, x_386); -x_390 = 1; -lean_inc(x_4); -lean_inc(x_389); -lean_inc(x_388); -x_391 = l_Lean_Elab_Term_elabTerm(x_388, x_389, x_390, x_4, x_363); -if (lean_obj_tag(x_391) == 0) -{ -lean_object* x_392; lean_object* x_393; lean_object* x_394; lean_object* x_395; lean_object* x_396; lean_object* x_397; lean_object* x_398; lean_object* x_399; lean_object* x_400; lean_object* x_401; lean_object* x_402; uint8_t x_403; uint8_t x_404; uint8_t x_405; lean_object* x_406; lean_object* x_407; lean_object* x_408; lean_object* x_409; -x_392 = lean_ctor_get(x_391, 0); -lean_inc(x_392); -x_393 = lean_ctor_get(x_391, 1); -lean_inc(x_393); -lean_dec(x_391); -x_394 = lean_ctor_get(x_4, 0); -lean_inc(x_394); -x_395 = lean_ctor_get(x_4, 1); -lean_inc(x_395); -x_396 = lean_ctor_get(x_4, 2); -lean_inc(x_396); -x_397 = lean_ctor_get(x_4, 3); -lean_inc(x_397); -x_398 = lean_ctor_get(x_4, 4); -lean_inc(x_398); -x_399 = lean_ctor_get(x_4, 5); -lean_inc(x_399); -x_400 = lean_ctor_get(x_4, 6); -lean_inc(x_400); -x_401 = lean_ctor_get(x_4, 7); -lean_inc(x_401); -x_402 = lean_ctor_get(x_4, 8); -lean_inc(x_402); -x_403 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_404 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_405 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_406 = lean_ctor_get(x_4, 9); -lean_inc(x_406); -x_407 = l_Lean_Elab_replaceRef(x_388, x_406); -lean_dec(x_406); -lean_dec(x_388); -x_408 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_408, 0, x_394); -lean_ctor_set(x_408, 1, x_395); -lean_ctor_set(x_408, 2, x_396); -lean_ctor_set(x_408, 3, x_397); -lean_ctor_set(x_408, 4, x_398); -lean_ctor_set(x_408, 5, x_399); -lean_ctor_set(x_408, 6, x_400); -lean_ctor_set(x_408, 7, x_401); -lean_ctor_set(x_408, 8, x_402); -lean_ctor_set(x_408, 9, x_407); -lean_ctor_set_uint8(x_408, sizeof(void*)*10, x_403); -lean_ctor_set_uint8(x_408, sizeof(void*)*10 + 1, x_404); -lean_ctor_set_uint8(x_408, sizeof(void*)*10 + 2, x_405); -x_409 = l_Lean_Elab_Term_ensureHasType(x_389, x_392, x_408, x_393); -if (lean_obj_tag(x_409) == 0) -{ -lean_object* x_410; lean_object* x_411; lean_object* x_412; lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; lean_object* x_417; lean_object* x_418; -x_410 = lean_ctor_get(x_409, 0); -lean_inc(x_410); -x_411 = lean_ctor_get(x_409, 1); -lean_inc(x_411); -if (lean_is_exclusive(x_409)) { - lean_ctor_release(x_409, 0); - lean_ctor_release(x_409, 1); - x_412 = x_409; -} else { - lean_dec_ref(x_409); - x_412 = lean_box(0); -} -lean_inc(x_410); -x_413 = l_Lean_mkApp(x_30, x_410); -x_414 = lean_expr_instantiate1(x_387, x_410); -lean_dec(x_387); -x_415 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_415, 0, x_410); -if (lean_is_scalar(x_359)) { - x_416 = lean_alloc_ctor(0, 4, 0); -} else { - x_416 = x_359; -} -lean_ctor_set(x_416, 0, x_357); -lean_ctor_set(x_416, 1, x_25); -lean_ctor_set(x_416, 2, x_358); -lean_ctor_set(x_416, 3, x_415); -lean_ctor_set(x_3, 1, x_356); -lean_ctor_set(x_3, 0, x_416); -x_417 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_417, 0, x_414); -lean_ctor_set(x_417, 1, x_3); -lean_ctor_set(x_2, 1, x_417); -lean_ctor_set(x_2, 0, x_413); -if (lean_is_scalar(x_412)) { - x_418 = lean_alloc_ctor(0, 2, 0); -} else { - x_418 = x_412; -} -lean_ctor_set(x_418, 0, x_2); -lean_ctor_set(x_418, 1, x_411); -x_10 = x_418; -goto block_18; -} -else -{ -lean_object* x_419; lean_object* x_420; lean_object* x_421; lean_object* x_422; -lean_dec(x_387); -lean_dec(x_359); -lean_dec(x_358); -lean_dec(x_357); -lean_dec(x_356); -lean_free_object(x_2); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_419 = lean_ctor_get(x_409, 0); -lean_inc(x_419); -x_420 = lean_ctor_get(x_409, 1); -lean_inc(x_420); -if (lean_is_exclusive(x_409)) { - lean_ctor_release(x_409, 0); - lean_ctor_release(x_409, 1); - x_421 = x_409; -} else { - lean_dec_ref(x_409); - x_421 = lean_box(0); -} -if (lean_is_scalar(x_421)) { - x_422 = lean_alloc_ctor(1, 2, 0); -} else { - x_422 = x_421; -} -lean_ctor_set(x_422, 0, x_419); -lean_ctor_set(x_422, 1, x_420); -x_10 = x_422; -goto block_18; -} -} -else -{ -lean_object* x_423; lean_object* x_424; lean_object* x_425; lean_object* x_426; -lean_dec(x_389); -lean_dec(x_388); -lean_dec(x_387); -lean_dec(x_359); -lean_dec(x_358); -lean_dec(x_357); -lean_dec(x_356); -lean_free_object(x_2); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_423 = lean_ctor_get(x_391, 0); -lean_inc(x_423); -x_424 = lean_ctor_get(x_391, 1); -lean_inc(x_424); -if (lean_is_exclusive(x_391)) { - lean_ctor_release(x_391, 0); - lean_ctor_release(x_391, 1); - x_425 = x_391; -} else { - lean_dec_ref(x_391); - x_425 = lean_box(0); -} -if (lean_is_scalar(x_425)) { - x_426 = lean_alloc_ctor(1, 2, 0); -} else { - x_426 = x_425; -} -lean_ctor_set(x_426, 0, x_423); -lean_ctor_set(x_426, 1, x_424); -x_10 = x_426; -goto block_18; -} -} -case 1: -{ -lean_object* x_427; lean_object* x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; lean_object* x_432; -lean_free_object(x_2); -x_427 = lean_ctor_get(x_362, 1); -lean_inc(x_427); -x_428 = lean_ctor_get(x_362, 2); -lean_inc(x_428); -lean_dec(x_362); -x_429 = lean_ctor_get(x_358, 0); -lean_inc(x_429); -if (lean_is_exclusive(x_358)) { - lean_ctor_release(x_358, 0); - x_430 = x_358; -} else { - lean_dec_ref(x_358); - x_430 = lean_box(0); -} -x_431 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_431, 0, x_427); -lean_inc(x_4); -lean_inc(x_431); -x_432 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_429, x_431, x_4, x_363); -if (lean_obj_tag(x_432) == 0) -{ -lean_object* x_433; lean_object* x_434; lean_object* x_435; lean_object* x_436; lean_object* x_437; lean_object* x_438; -x_433 = lean_ctor_get(x_432, 0); -lean_inc(x_433); -x_434 = lean_ctor_get(x_432, 1); -lean_inc(x_434); -lean_dec(x_432); -x_435 = lean_ctor_get(x_433, 0); -lean_inc(x_435); -x_436 = lean_ctor_get(x_433, 1); -lean_inc(x_436); -if (lean_is_exclusive(x_433)) { - lean_ctor_release(x_433, 0); - lean_ctor_release(x_433, 1); - x_437 = x_433; -} else { - lean_dec_ref(x_433); - x_437 = lean_box(0); -} -lean_inc(x_4); -x_438 = l_Lean_Elab_Term_ensureHasType(x_431, x_435, x_4, x_434); -if (lean_obj_tag(x_438) == 0) -{ -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; -x_439 = lean_ctor_get(x_438, 0); -lean_inc(x_439); -x_440 = lean_ctor_get(x_438, 1); -lean_inc(x_440); -if (lean_is_exclusive(x_438)) { - lean_ctor_release(x_438, 0); - lean_ctor_release(x_438, 1); - x_441 = x_438; -} else { - lean_dec_ref(x_438); - x_441 = lean_box(0); -} -if (lean_is_scalar(x_430)) { - x_442 = lean_alloc_ctor(1, 1, 0); -} else { - x_442 = x_430; -} -lean_ctor_set(x_442, 0, x_436); -lean_inc(x_439); -x_443 = l_Lean_mkApp(x_30, x_439); -x_444 = lean_expr_instantiate1(x_428, x_439); -lean_dec(x_428); -x_445 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_445, 0, x_439); -if (lean_is_scalar(x_359)) { - x_446 = lean_alloc_ctor(0, 4, 0); -} else { - x_446 = x_359; -} -lean_ctor_set(x_446, 0, x_357); -lean_ctor_set(x_446, 1, x_25); -lean_ctor_set(x_446, 2, x_442); -lean_ctor_set(x_446, 3, x_445); -lean_ctor_set(x_3, 1, x_356); -lean_ctor_set(x_3, 0, x_446); -if (lean_is_scalar(x_437)) { - x_447 = lean_alloc_ctor(0, 2, 0); -} else { - x_447 = x_437; -} -lean_ctor_set(x_447, 0, x_444); -lean_ctor_set(x_447, 1, x_3); -x_448 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_448, 0, x_443); -lean_ctor_set(x_448, 1, x_447); -if (lean_is_scalar(x_441)) { - x_449 = lean_alloc_ctor(0, 2, 0); -} else { - x_449 = x_441; -} -lean_ctor_set(x_449, 0, x_448); -lean_ctor_set(x_449, 1, x_440); -x_10 = x_449; -goto block_18; -} -else -{ -lean_object* x_450; lean_object* x_451; lean_object* x_452; lean_object* x_453; -lean_dec(x_437); -lean_dec(x_436); -lean_dec(x_430); -lean_dec(x_428); -lean_dec(x_359); -lean_dec(x_357); -lean_dec(x_356); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_450 = lean_ctor_get(x_438, 0); -lean_inc(x_450); -x_451 = lean_ctor_get(x_438, 1); -lean_inc(x_451); -if (lean_is_exclusive(x_438)) { - lean_ctor_release(x_438, 0); - lean_ctor_release(x_438, 1); - x_452 = x_438; -} else { - lean_dec_ref(x_438); - x_452 = lean_box(0); -} -if (lean_is_scalar(x_452)) { - x_453 = lean_alloc_ctor(1, 2, 0); -} else { - x_453 = x_452; -} -lean_ctor_set(x_453, 0, x_450); -lean_ctor_set(x_453, 1, x_451); -x_10 = x_453; -goto block_18; -} -} -else -{ -lean_object* x_454; lean_object* x_455; lean_object* x_456; lean_object* x_457; -lean_dec(x_431); -lean_dec(x_430); -lean_dec(x_428); -lean_dec(x_359); -lean_dec(x_357); -lean_dec(x_356); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_454 = lean_ctor_get(x_432, 0); -lean_inc(x_454); -x_455 = lean_ctor_get(x_432, 1); -lean_inc(x_455); -if (lean_is_exclusive(x_432)) { - lean_ctor_release(x_432, 0); - lean_ctor_release(x_432, 1); - x_456 = x_432; -} else { - lean_dec_ref(x_432); - x_456 = lean_box(0); -} -if (lean_is_scalar(x_456)) { - x_457 = lean_alloc_ctor(1, 2, 0); -} else { - x_457 = x_456; -} -lean_ctor_set(x_457, 0, x_454); -lean_ctor_set(x_457, 1, x_455); -x_10 = x_457; -goto block_18; -} -} -default: -{ -lean_object* x_458; lean_object* x_459; lean_object* x_460; lean_object* x_461; lean_object* x_462; lean_object* x_463; lean_object* x_464; lean_object* x_465; lean_object* x_466; lean_object* x_467; lean_object* x_468; lean_object* x_469; uint8_t x_470; uint8_t x_471; uint8_t x_472; lean_object* x_473; lean_object* x_474; lean_object* x_475; uint8_t x_476; lean_object* x_477; lean_object* x_478; lean_object* x_479; lean_object* x_480; lean_object* x_481; lean_object* x_482; lean_object* x_483; lean_object* x_484; lean_object* x_485; lean_object* x_486; lean_object* x_487; lean_object* x_488; -x_458 = lean_ctor_get(x_362, 1); -lean_inc(x_458); -x_459 = lean_ctor_get(x_362, 2); -lean_inc(x_459); -lean_dec(x_362); -x_460 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_460, 0, x_458); -x_461 = lean_ctor_get(x_4, 0); -lean_inc(x_461); -x_462 = lean_ctor_get(x_4, 1); -lean_inc(x_462); -x_463 = lean_ctor_get(x_4, 2); -lean_inc(x_463); -x_464 = lean_ctor_get(x_4, 3); -lean_inc(x_464); -x_465 = lean_ctor_get(x_4, 4); -lean_inc(x_465); -x_466 = lean_ctor_get(x_4, 5); -lean_inc(x_466); -x_467 = lean_ctor_get(x_4, 6); -lean_inc(x_467); -x_468 = lean_ctor_get(x_4, 7); -lean_inc(x_468); -x_469 = lean_ctor_get(x_4, 8); -lean_inc(x_469); -x_470 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_471 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_472 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_473 = lean_ctor_get(x_4, 9); -lean_inc(x_473); -x_474 = l_Lean_Elab_replaceRef(x_357, x_473); -lean_dec(x_473); -x_475 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_475, 0, x_461); -lean_ctor_set(x_475, 1, x_462); -lean_ctor_set(x_475, 2, x_463); -lean_ctor_set(x_475, 3, x_464); -lean_ctor_set(x_475, 4, x_465); -lean_ctor_set(x_475, 5, x_466); -lean_ctor_set(x_475, 6, x_467); -lean_ctor_set(x_475, 7, x_468); -lean_ctor_set(x_475, 8, x_469); -lean_ctor_set(x_475, 9, x_474); -lean_ctor_set_uint8(x_475, sizeof(void*)*10, x_470); -lean_ctor_set_uint8(x_475, sizeof(void*)*10 + 1, x_471); -lean_ctor_set_uint8(x_475, sizeof(void*)*10 + 2, x_472); -x_476 = 0; -x_477 = lean_box(0); -x_478 = l_Lean_Elab_Term_mkFreshExprMVar(x_460, x_476, x_477, x_475, x_363); -x_479 = lean_ctor_get(x_478, 0); -lean_inc(x_479); -x_480 = lean_ctor_get(x_478, 1); -lean_inc(x_480); -if (lean_is_exclusive(x_478)) { - lean_ctor_release(x_478, 0); - lean_ctor_release(x_478, 1); - x_481 = x_478; -} else { - lean_dec_ref(x_478); - x_481 = lean_box(0); -} -x_482 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_479); -lean_inc(x_482); -x_483 = l_Lean_mkApp(x_30, x_482); -x_484 = lean_expr_instantiate1(x_459, x_482); -lean_dec(x_459); -x_485 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_485, 0, x_482); -if (lean_is_scalar(x_359)) { - x_486 = lean_alloc_ctor(0, 4, 0); -} else { - x_486 = x_359; -} -lean_ctor_set(x_486, 0, x_357); -lean_ctor_set(x_486, 1, x_25); -lean_ctor_set(x_486, 2, x_358); -lean_ctor_set(x_486, 3, x_485); -lean_ctor_set(x_3, 1, x_356); -lean_ctor_set(x_3, 0, x_486); -x_487 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_487, 0, x_484); -lean_ctor_set(x_487, 1, x_3); -lean_ctor_set(x_2, 1, x_487); -lean_ctor_set(x_2, 0, x_483); -if (lean_is_scalar(x_481)) { - x_488 = lean_alloc_ctor(0, 2, 0); -} else { - x_488 = x_481; -} -lean_ctor_set(x_488, 0, x_2); -lean_ctor_set(x_488, 1, x_480); -x_10 = x_488; -goto block_18; -} -} -} -else -{ -lean_object* x_489; -lean_dec(x_359); -lean_dec(x_358); -lean_dec(x_356); -lean_free_object(x_2); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_489 = lean_box(0); -x_364 = x_489; -goto block_385; -} -block_385: -{ -lean_object* x_365; lean_object* x_366; lean_object* x_367; lean_object* x_368; lean_object* x_369; lean_object* x_370; lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; lean_object* x_375; lean_object* x_376; lean_object* x_377; uint8_t x_378; uint8_t x_379; uint8_t x_380; lean_object* x_381; lean_object* x_382; lean_object* x_383; lean_object* x_384; -lean_dec(x_364); -x_365 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_365, 0, x_362); -x_366 = l_Lean_indentExpr(x_365); -x_367 = l___private_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; -x_368 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_368, 0, x_367); -lean_ctor_set(x_368, 1, x_366); -x_369 = lean_ctor_get(x_4, 0); -lean_inc(x_369); -x_370 = lean_ctor_get(x_4, 1); -lean_inc(x_370); -x_371 = lean_ctor_get(x_4, 2); -lean_inc(x_371); -x_372 = lean_ctor_get(x_4, 3); -lean_inc(x_372); -x_373 = lean_ctor_get(x_4, 4); -lean_inc(x_373); -x_374 = lean_ctor_get(x_4, 5); -lean_inc(x_374); -x_375 = lean_ctor_get(x_4, 6); -lean_inc(x_375); -x_376 = lean_ctor_get(x_4, 7); -lean_inc(x_376); -x_377 = lean_ctor_get(x_4, 8); -lean_inc(x_377); -x_378 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_379 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_380 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_381 = lean_ctor_get(x_4, 9); -lean_inc(x_381); -x_382 = l_Lean_Elab_replaceRef(x_357, x_381); -lean_dec(x_381); -lean_dec(x_357); -x_383 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_383, 0, x_369); -lean_ctor_set(x_383, 1, x_370); -lean_ctor_set(x_383, 2, x_371); -lean_ctor_set(x_383, 3, x_372); -lean_ctor_set(x_383, 4, x_373); -lean_ctor_set(x_383, 5, x_374); -lean_ctor_set(x_383, 6, x_375); -lean_ctor_set(x_383, 7, x_376); -lean_ctor_set(x_383, 8, x_377); -lean_ctor_set(x_383, 9, x_382); -lean_ctor_set_uint8(x_383, sizeof(void*)*10, x_378); -lean_ctor_set_uint8(x_383, sizeof(void*)*10 + 1, x_379); -lean_ctor_set_uint8(x_383, sizeof(void*)*10 + 2, x_380); -lean_inc(x_1); -x_384 = l_Lean_Elab_Term_StructInst_throwFailedToElabField___rarg(x_360, x_1, x_368, x_383, x_363); -x_10 = x_384; -goto block_18; -} -} -else -{ -lean_object* x_490; lean_object* x_491; lean_object* x_492; lean_object* x_493; -lean_dec(x_360); -lean_dec(x_359); -lean_dec(x_358); -lean_dec(x_357); -lean_dec(x_356); -lean_free_object(x_2); -lean_dec(x_30); -lean_dec(x_25); -lean_free_object(x_3); -x_490 = lean_ctor_get(x_361, 0); -lean_inc(x_490); -x_491 = lean_ctor_get(x_361, 1); -lean_inc(x_491); -if (lean_is_exclusive(x_361)) { - lean_ctor_release(x_361, 0); - lean_ctor_release(x_361, 1); - x_492 = x_361; -} else { - lean_dec_ref(x_361); - x_492 = lean_box(0); -} -if (lean_is_scalar(x_492)) { - x_493 = lean_alloc_ctor(1, 2, 0); -} else { - x_493 = x_492; -} -lean_ctor_set(x_493, 0, x_490); -lean_ctor_set(x_493, 1, x_491); -x_10 = x_493; -goto block_18; -} -} -} -else -{ -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_502; -x_494 = lean_ctor_get(x_2, 0); -lean_inc(x_494); +lean_object* x_425; lean_object* x_426; lean_object* x_427; lean_object* x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; lean_object* x_432; lean_object* x_433; +x_425 = lean_ctor_get(x_2, 0); +lean_inc(x_425); lean_dec(x_2); -x_495 = lean_ctor_get(x_24, 0); -lean_inc(x_495); -x_496 = lean_ctor_get(x_24, 1); -lean_inc(x_496); +x_426 = lean_ctor_get(x_24, 0); +lean_inc(x_426); +x_427 = lean_ctor_get(x_24, 1); +lean_inc(x_427); if (lean_is_exclusive(x_24)) { lean_ctor_release(x_24, 0); lean_ctor_release(x_24, 1); - x_497 = x_24; + x_428 = x_24; } else { lean_dec_ref(x_24); - x_497 = lean_box(0); + x_428 = lean_box(0); } -x_498 = lean_ctor_get(x_8, 0); -lean_inc(x_498); -x_499 = lean_ctor_get(x_8, 2); -lean_inc(x_499); +x_429 = lean_ctor_get(x_8, 0); +lean_inc(x_429); +x_430 = lean_ctor_get(x_8, 2); +lean_inc(x_430); if (lean_is_exclusive(x_8)) { lean_ctor_release(x_8, 0); lean_ctor_release(x_8, 1); lean_ctor_release(x_8, 2); lean_ctor_release(x_8, 3); - x_500 = x_8; + x_431 = x_8; } else { lean_dec_ref(x_8); - x_500 = lean_box(0); + x_431 = lean_box(0); } -x_501 = lean_ctor_get(x_27, 1); -lean_inc(x_501); +x_432 = lean_ctor_get(x_27, 1); +lean_inc(x_432); lean_dec(x_27); lean_inc(x_4); -x_502 = l_Lean_Elab_Term_whnfForall(x_495, x_4, x_5); -if (lean_obj_tag(x_502) == 0) +x_433 = l_Lean_Elab_Term_whnfForall(x_426, x_4, x_5); +if (lean_obj_tag(x_433) == 0) { -lean_object* x_503; lean_object* x_504; lean_object* x_505; -x_503 = lean_ctor_get(x_502, 0); -lean_inc(x_503); -x_504 = lean_ctor_get(x_502, 1); -lean_inc(x_504); -lean_dec(x_502); -if (lean_obj_tag(x_503) == 7) +lean_object* x_434; lean_object* x_435; lean_object* x_436; +x_434 = lean_ctor_get(x_433, 0); +lean_inc(x_434); +x_435 = lean_ctor_get(x_433, 1); +lean_inc(x_435); +lean_dec(x_433); +if (lean_obj_tag(x_434) == 7) { -lean_dec(x_501); -switch (lean_obj_tag(x_499)) { +lean_dec(x_432); +switch (lean_obj_tag(x_430)) { case 0: { -lean_object* x_527; lean_object* x_528; lean_object* x_529; lean_object* x_530; uint8_t x_531; lean_object* x_532; -x_527 = lean_ctor_get(x_503, 1); -lean_inc(x_527); -x_528 = lean_ctor_get(x_503, 2); -lean_inc(x_528); -lean_dec(x_503); -x_529 = lean_ctor_get(x_499, 0); -lean_inc(x_529); -x_530 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_530, 0, x_527); -x_531 = 1; +lean_object* x_458; lean_object* x_459; lean_object* x_460; lean_object* x_461; lean_object* x_462; +x_458 = lean_ctor_get(x_434, 1); +lean_inc(x_458); +x_459 = lean_ctor_get(x_434, 2); +lean_inc(x_459); +lean_dec(x_434); +x_460 = lean_ctor_get(x_430, 0); +lean_inc(x_460); +x_461 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_461, 0, x_458); lean_inc(x_4); -lean_inc(x_530); -lean_inc(x_529); -x_532 = l_Lean_Elab_Term_elabTerm(x_529, x_530, x_531, x_4, x_504); -if (lean_obj_tag(x_532) == 0) +x_462 = l_Lean_Elab_Term_elabTermEnsuringType(x_460, x_461, x_4, x_435); +if (lean_obj_tag(x_462) == 0) { -lean_object* x_533; lean_object* x_534; 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_541; lean_object* x_542; lean_object* x_543; uint8_t x_544; uint8_t x_545; uint8_t x_546; lean_object* x_547; lean_object* x_548; lean_object* x_549; lean_object* x_550; -x_533 = lean_ctor_get(x_532, 0); -lean_inc(x_533); -x_534 = lean_ctor_get(x_532, 1); -lean_inc(x_534); -lean_dec(x_532); -x_535 = lean_ctor_get(x_4, 0); -lean_inc(x_535); -x_536 = lean_ctor_get(x_4, 1); -lean_inc(x_536); -x_537 = lean_ctor_get(x_4, 2); -lean_inc(x_537); -x_538 = lean_ctor_get(x_4, 3); -lean_inc(x_538); -x_539 = lean_ctor_get(x_4, 4); -lean_inc(x_539); -x_540 = lean_ctor_get(x_4, 5); -lean_inc(x_540); -x_541 = lean_ctor_get(x_4, 6); -lean_inc(x_541); -x_542 = lean_ctor_get(x_4, 7); -lean_inc(x_542); -x_543 = lean_ctor_get(x_4, 8); -lean_inc(x_543); -x_544 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_545 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_546 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_547 = lean_ctor_get(x_4, 9); -lean_inc(x_547); -x_548 = l_Lean_Elab_replaceRef(x_529, x_547); -lean_dec(x_547); -lean_dec(x_529); -x_549 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_549, 0, x_535); -lean_ctor_set(x_549, 1, x_536); -lean_ctor_set(x_549, 2, x_537); -lean_ctor_set(x_549, 3, x_538); -lean_ctor_set(x_549, 4, x_539); -lean_ctor_set(x_549, 5, x_540); -lean_ctor_set(x_549, 6, x_541); -lean_ctor_set(x_549, 7, x_542); -lean_ctor_set(x_549, 8, x_543); -lean_ctor_set(x_549, 9, x_548); -lean_ctor_set_uint8(x_549, sizeof(void*)*10, x_544); -lean_ctor_set_uint8(x_549, sizeof(void*)*10 + 1, x_545); -lean_ctor_set_uint8(x_549, sizeof(void*)*10 + 2, x_546); -x_550 = l_Lean_Elab_Term_ensureHasType(x_530, x_533, x_549, x_534); -if (lean_obj_tag(x_550) == 0) -{ -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_551 = lean_ctor_get(x_550, 0); -lean_inc(x_551); -x_552 = lean_ctor_get(x_550, 1); -lean_inc(x_552); -if (lean_is_exclusive(x_550)) { - lean_ctor_release(x_550, 0); - lean_ctor_release(x_550, 1); - x_553 = x_550; +lean_object* x_463; lean_object* x_464; lean_object* x_465; lean_object* x_466; lean_object* x_467; lean_object* x_468; lean_object* x_469; lean_object* x_470; lean_object* x_471; lean_object* x_472; +x_463 = lean_ctor_get(x_462, 0); +lean_inc(x_463); +x_464 = lean_ctor_get(x_462, 1); +lean_inc(x_464); +if (lean_is_exclusive(x_462)) { + lean_ctor_release(x_462, 0); + lean_ctor_release(x_462, 1); + x_465 = x_462; } else { - lean_dec_ref(x_550); - x_553 = lean_box(0); + lean_dec_ref(x_462); + x_465 = lean_box(0); } -lean_inc(x_551); -x_554 = l_Lean_mkApp(x_494, x_551); -x_555 = lean_expr_instantiate1(x_528, x_551); -lean_dec(x_528); -x_556 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_556, 0, x_551); -if (lean_is_scalar(x_500)) { - x_557 = lean_alloc_ctor(0, 4, 0); +lean_inc(x_463); +x_466 = l_Lean_mkApp(x_425, x_463); +x_467 = lean_expr_instantiate1(x_459, x_463); +lean_dec(x_459); +x_468 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_468, 0, x_463); +if (lean_is_scalar(x_431)) { + x_469 = lean_alloc_ctor(0, 4, 0); } else { - x_557 = x_500; + x_469 = x_431; } -lean_ctor_set(x_557, 0, x_498); -lean_ctor_set(x_557, 1, x_25); -lean_ctor_set(x_557, 2, x_499); -lean_ctor_set(x_557, 3, x_556); -lean_ctor_set(x_3, 1, x_496); -lean_ctor_set(x_3, 0, x_557); -if (lean_is_scalar(x_497)) { - x_558 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_469, 0, x_429); +lean_ctor_set(x_469, 1, x_25); +lean_ctor_set(x_469, 2, x_430); +lean_ctor_set(x_469, 3, x_468); +lean_ctor_set(x_3, 1, x_427); +lean_ctor_set(x_3, 0, x_469); +if (lean_is_scalar(x_428)) { + x_470 = lean_alloc_ctor(0, 2, 0); } else { - x_558 = x_497; + x_470 = x_428; } -lean_ctor_set(x_558, 0, x_555); -lean_ctor_set(x_558, 1, x_3); -x_559 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_559, 0, x_554); -lean_ctor_set(x_559, 1, x_558); -if (lean_is_scalar(x_553)) { - x_560 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_470, 0, x_467); +lean_ctor_set(x_470, 1, x_3); +x_471 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_471, 0, x_466); +lean_ctor_set(x_471, 1, x_470); +if (lean_is_scalar(x_465)) { + x_472 = lean_alloc_ctor(0, 2, 0); } else { - x_560 = x_553; + x_472 = x_465; } -lean_ctor_set(x_560, 0, x_559); -lean_ctor_set(x_560, 1, x_552); -x_10 = x_560; +lean_ctor_set(x_472, 0, x_471); +lean_ctor_set(x_472, 1, x_464); +x_10 = x_472; goto block_18; } else { -lean_object* x_561; lean_object* x_562; lean_object* x_563; lean_object* x_564; -lean_dec(x_528); -lean_dec(x_500); -lean_dec(x_499); -lean_dec(x_498); -lean_dec(x_497); -lean_dec(x_496); -lean_dec(x_494); +lean_object* x_473; lean_object* x_474; lean_object* x_475; lean_object* x_476; +lean_dec(x_459); +lean_dec(x_431); +lean_dec(x_430); +lean_dec(x_429); +lean_dec(x_428); +lean_dec(x_427); +lean_dec(x_425); lean_dec(x_25); lean_free_object(x_3); -x_561 = lean_ctor_get(x_550, 0); -lean_inc(x_561); -x_562 = lean_ctor_get(x_550, 1); -lean_inc(x_562); -if (lean_is_exclusive(x_550)) { - lean_ctor_release(x_550, 0); - lean_ctor_release(x_550, 1); - x_563 = x_550; +x_473 = lean_ctor_get(x_462, 0); +lean_inc(x_473); +x_474 = lean_ctor_get(x_462, 1); +lean_inc(x_474); +if (lean_is_exclusive(x_462)) { + lean_ctor_release(x_462, 0); + lean_ctor_release(x_462, 1); + x_475 = x_462; } else { - lean_dec_ref(x_550); - x_563 = lean_box(0); + lean_dec_ref(x_462); + x_475 = lean_box(0); } -if (lean_is_scalar(x_563)) { - x_564 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_475)) { + x_476 = lean_alloc_ctor(1, 2, 0); } else { - x_564 = x_563; + x_476 = x_475; } -lean_ctor_set(x_564, 0, x_561); -lean_ctor_set(x_564, 1, x_562); -x_10 = x_564; -goto block_18; -} -} -else -{ -lean_object* x_565; lean_object* x_566; lean_object* x_567; lean_object* x_568; -lean_dec(x_530); -lean_dec(x_529); -lean_dec(x_528); -lean_dec(x_500); -lean_dec(x_499); -lean_dec(x_498); -lean_dec(x_497); -lean_dec(x_496); -lean_dec(x_494); -lean_dec(x_25); -lean_free_object(x_3); -x_565 = lean_ctor_get(x_532, 0); -lean_inc(x_565); -x_566 = lean_ctor_get(x_532, 1); -lean_inc(x_566); -if (lean_is_exclusive(x_532)) { - lean_ctor_release(x_532, 0); - lean_ctor_release(x_532, 1); - x_567 = x_532; -} else { - lean_dec_ref(x_532); - x_567 = lean_box(0); -} -if (lean_is_scalar(x_567)) { - x_568 = lean_alloc_ctor(1, 2, 0); -} else { - x_568 = x_567; -} -lean_ctor_set(x_568, 0, x_565); -lean_ctor_set(x_568, 1, x_566); -x_10 = x_568; +lean_ctor_set(x_476, 0, x_473); +lean_ctor_set(x_476, 1, x_474); +x_10 = x_476; goto block_18; } } case 1: { -lean_object* x_569; lean_object* x_570; lean_object* x_571; lean_object* x_572; lean_object* x_573; lean_object* x_574; -x_569 = lean_ctor_get(x_503, 1); -lean_inc(x_569); -x_570 = lean_ctor_get(x_503, 2); -lean_inc(x_570); -lean_dec(x_503); -x_571 = lean_ctor_get(x_499, 0); -lean_inc(x_571); -if (lean_is_exclusive(x_499)) { - lean_ctor_release(x_499, 0); - x_572 = x_499; +lean_object* x_477; lean_object* x_478; lean_object* x_479; lean_object* x_480; lean_object* x_481; lean_object* x_482; +x_477 = lean_ctor_get(x_434, 1); +lean_inc(x_477); +x_478 = lean_ctor_get(x_434, 2); +lean_inc(x_478); +lean_dec(x_434); +x_479 = lean_ctor_get(x_430, 0); +lean_inc(x_479); +if (lean_is_exclusive(x_430)) { + lean_ctor_release(x_430, 0); + x_480 = x_430; } else { - lean_dec_ref(x_499); - x_572 = lean_box(0); + lean_dec_ref(x_430); + x_480 = lean_box(0); } -x_573 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_573, 0, x_569); +x_481 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_481, 0, x_477); lean_inc(x_4); -lean_inc(x_573); -x_574 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_571, x_573, x_4, x_504); -if (lean_obj_tag(x_574) == 0) +lean_inc(x_481); +x_482 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_479, x_481, x_4, x_435); +if (lean_obj_tag(x_482) == 0) { -lean_object* x_575; lean_object* x_576; lean_object* x_577; lean_object* x_578; lean_object* x_579; lean_object* x_580; -x_575 = lean_ctor_get(x_574, 0); -lean_inc(x_575); -x_576 = lean_ctor_get(x_574, 1); -lean_inc(x_576); -lean_dec(x_574); -x_577 = lean_ctor_get(x_575, 0); -lean_inc(x_577); -x_578 = lean_ctor_get(x_575, 1); -lean_inc(x_578); -if (lean_is_exclusive(x_575)) { - lean_ctor_release(x_575, 0); - lean_ctor_release(x_575, 1); - x_579 = x_575; +lean_object* x_483; lean_object* x_484; lean_object* x_485; lean_object* x_486; lean_object* x_487; lean_object* x_488; +x_483 = lean_ctor_get(x_482, 0); +lean_inc(x_483); +x_484 = lean_ctor_get(x_482, 1); +lean_inc(x_484); +lean_dec(x_482); +x_485 = lean_ctor_get(x_483, 0); +lean_inc(x_485); +x_486 = lean_ctor_get(x_483, 1); +lean_inc(x_486); +if (lean_is_exclusive(x_483)) { + lean_ctor_release(x_483, 0); + lean_ctor_release(x_483, 1); + x_487 = x_483; } else { - lean_dec_ref(x_575); - x_579 = lean_box(0); + lean_dec_ref(x_483); + x_487 = lean_box(0); } lean_inc(x_4); -x_580 = l_Lean_Elab_Term_ensureHasType(x_573, x_577, x_4, x_576); -if (lean_obj_tag(x_580) == 0) +x_488 = l_Lean_Elab_Term_ensureHasType(x_481, x_485, x_4, x_484); +if (lean_obj_tag(x_488) == 0) { -lean_object* x_581; lean_object* x_582; 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_581 = lean_ctor_get(x_580, 0); -lean_inc(x_581); -x_582 = lean_ctor_get(x_580, 1); -lean_inc(x_582); -if (lean_is_exclusive(x_580)) { - lean_ctor_release(x_580, 0); - lean_ctor_release(x_580, 1); - x_583 = x_580; +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_495; lean_object* x_496; lean_object* x_497; lean_object* x_498; lean_object* x_499; +x_489 = lean_ctor_get(x_488, 0); +lean_inc(x_489); +x_490 = lean_ctor_get(x_488, 1); +lean_inc(x_490); +if (lean_is_exclusive(x_488)) { + lean_ctor_release(x_488, 0); + lean_ctor_release(x_488, 1); + x_491 = x_488; } else { - lean_dec_ref(x_580); - x_583 = lean_box(0); + lean_dec_ref(x_488); + x_491 = lean_box(0); } -if (lean_is_scalar(x_572)) { - x_584 = lean_alloc_ctor(1, 1, 0); +if (lean_is_scalar(x_480)) { + x_492 = lean_alloc_ctor(1, 1, 0); } else { - x_584 = x_572; + x_492 = x_480; } -lean_ctor_set(x_584, 0, x_578); -lean_inc(x_581); -x_585 = l_Lean_mkApp(x_494, x_581); -x_586 = lean_expr_instantiate1(x_570, x_581); -lean_dec(x_570); -x_587 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_587, 0, x_581); -if (lean_is_scalar(x_500)) { - x_588 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_492, 0, x_486); +lean_inc(x_489); +x_493 = l_Lean_mkApp(x_425, x_489); +x_494 = lean_expr_instantiate1(x_478, x_489); +lean_dec(x_478); +x_495 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_495, 0, x_489); +if (lean_is_scalar(x_431)) { + x_496 = lean_alloc_ctor(0, 4, 0); } else { - x_588 = x_500; + x_496 = x_431; } -lean_ctor_set(x_588, 0, x_498); -lean_ctor_set(x_588, 1, x_25); -lean_ctor_set(x_588, 2, x_584); -lean_ctor_set(x_588, 3, x_587); -lean_ctor_set(x_3, 1, x_496); -lean_ctor_set(x_3, 0, x_588); -if (lean_is_scalar(x_579)) { - x_589 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_496, 0, x_429); +lean_ctor_set(x_496, 1, x_25); +lean_ctor_set(x_496, 2, x_492); +lean_ctor_set(x_496, 3, x_495); +lean_ctor_set(x_3, 1, x_427); +lean_ctor_set(x_3, 0, x_496); +if (lean_is_scalar(x_487)) { + x_497 = lean_alloc_ctor(0, 2, 0); } else { - x_589 = x_579; + x_497 = x_487; } -lean_ctor_set(x_589, 0, x_586); -lean_ctor_set(x_589, 1, x_3); -if (lean_is_scalar(x_497)) { - x_590 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_497, 0, x_494); +lean_ctor_set(x_497, 1, x_3); +if (lean_is_scalar(x_428)) { + x_498 = lean_alloc_ctor(0, 2, 0); } else { - x_590 = x_497; + x_498 = x_428; } -lean_ctor_set(x_590, 0, x_585); -lean_ctor_set(x_590, 1, x_589); -if (lean_is_scalar(x_583)) { - x_591 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_498, 0, x_493); +lean_ctor_set(x_498, 1, x_497); +if (lean_is_scalar(x_491)) { + x_499 = lean_alloc_ctor(0, 2, 0); } else { - x_591 = x_583; + x_499 = x_491; } -lean_ctor_set(x_591, 0, x_590); -lean_ctor_set(x_591, 1, x_582); -x_10 = x_591; +lean_ctor_set(x_499, 0, x_498); +lean_ctor_set(x_499, 1, x_490); +x_10 = x_499; goto block_18; } else { -lean_object* x_592; lean_object* x_593; lean_object* x_594; lean_object* x_595; -lean_dec(x_579); -lean_dec(x_578); -lean_dec(x_572); -lean_dec(x_570); -lean_dec(x_500); -lean_dec(x_498); -lean_dec(x_497); -lean_dec(x_496); -lean_dec(x_494); +lean_object* x_500; lean_object* x_501; lean_object* x_502; lean_object* x_503; +lean_dec(x_487); +lean_dec(x_486); +lean_dec(x_480); +lean_dec(x_478); +lean_dec(x_431); +lean_dec(x_429); +lean_dec(x_428); +lean_dec(x_427); +lean_dec(x_425); lean_dec(x_25); lean_free_object(x_3); -x_592 = lean_ctor_get(x_580, 0); -lean_inc(x_592); -x_593 = lean_ctor_get(x_580, 1); -lean_inc(x_593); -if (lean_is_exclusive(x_580)) { - lean_ctor_release(x_580, 0); - lean_ctor_release(x_580, 1); - x_594 = x_580; +x_500 = lean_ctor_get(x_488, 0); +lean_inc(x_500); +x_501 = lean_ctor_get(x_488, 1); +lean_inc(x_501); +if (lean_is_exclusive(x_488)) { + lean_ctor_release(x_488, 0); + lean_ctor_release(x_488, 1); + x_502 = x_488; } else { - lean_dec_ref(x_580); - x_594 = lean_box(0); + lean_dec_ref(x_488); + x_502 = lean_box(0); } -if (lean_is_scalar(x_594)) { - x_595 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_502)) { + x_503 = lean_alloc_ctor(1, 2, 0); } else { - x_595 = x_594; + x_503 = x_502; } -lean_ctor_set(x_595, 0, x_592); -lean_ctor_set(x_595, 1, x_593); -x_10 = x_595; +lean_ctor_set(x_503, 0, x_500); +lean_ctor_set(x_503, 1, x_501); +x_10 = x_503; goto block_18; } } else { -lean_object* x_596; lean_object* x_597; lean_object* x_598; lean_object* x_599; -lean_dec(x_573); -lean_dec(x_572); -lean_dec(x_570); -lean_dec(x_500); -lean_dec(x_498); -lean_dec(x_497); -lean_dec(x_496); -lean_dec(x_494); +lean_object* x_504; lean_object* x_505; lean_object* x_506; lean_object* x_507; +lean_dec(x_481); +lean_dec(x_480); +lean_dec(x_478); +lean_dec(x_431); +lean_dec(x_429); +lean_dec(x_428); +lean_dec(x_427); +lean_dec(x_425); lean_dec(x_25); lean_free_object(x_3); -x_596 = lean_ctor_get(x_574, 0); -lean_inc(x_596); -x_597 = lean_ctor_get(x_574, 1); -lean_inc(x_597); -if (lean_is_exclusive(x_574)) { - lean_ctor_release(x_574, 0); - lean_ctor_release(x_574, 1); - x_598 = x_574; +x_504 = lean_ctor_get(x_482, 0); +lean_inc(x_504); +x_505 = lean_ctor_get(x_482, 1); +lean_inc(x_505); +if (lean_is_exclusive(x_482)) { + lean_ctor_release(x_482, 0); + lean_ctor_release(x_482, 1); + x_506 = x_482; } else { - lean_dec_ref(x_574); - x_598 = lean_box(0); + lean_dec_ref(x_482); + x_506 = lean_box(0); } -if (lean_is_scalar(x_598)) { - x_599 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_506)) { + x_507 = lean_alloc_ctor(1, 2, 0); } else { - x_599 = x_598; + x_507 = x_506; } -lean_ctor_set(x_599, 0, x_596); -lean_ctor_set(x_599, 1, x_597); -x_10 = x_599; +lean_ctor_set(x_507, 0, x_504); +lean_ctor_set(x_507, 1, x_505); +x_10 = x_507; goto block_18; } } default: { -lean_object* x_600; lean_object* x_601; lean_object* x_602; lean_object* x_603; lean_object* x_604; lean_object* x_605; lean_object* x_606; lean_object* x_607; lean_object* x_608; lean_object* x_609; lean_object* x_610; lean_object* x_611; uint8_t x_612; uint8_t x_613; uint8_t x_614; lean_object* x_615; lean_object* x_616; lean_object* x_617; uint8_t x_618; lean_object* x_619; lean_object* x_620; lean_object* x_621; lean_object* x_622; lean_object* x_623; lean_object* x_624; lean_object* x_625; lean_object* x_626; lean_object* x_627; lean_object* x_628; lean_object* x_629; lean_object* x_630; lean_object* x_631; -x_600 = lean_ctor_get(x_503, 1); -lean_inc(x_600); -x_601 = lean_ctor_get(x_503, 2); -lean_inc(x_601); -lean_dec(x_503); -x_602 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_602, 0, x_600); -x_603 = lean_ctor_get(x_4, 0); -lean_inc(x_603); -x_604 = lean_ctor_get(x_4, 1); -lean_inc(x_604); -x_605 = lean_ctor_get(x_4, 2); -lean_inc(x_605); -x_606 = lean_ctor_get(x_4, 3); -lean_inc(x_606); -x_607 = lean_ctor_get(x_4, 4); -lean_inc(x_607); -x_608 = lean_ctor_get(x_4, 5); -lean_inc(x_608); -x_609 = lean_ctor_get(x_4, 6); -lean_inc(x_609); -x_610 = lean_ctor_get(x_4, 7); -lean_inc(x_610); -x_611 = lean_ctor_get(x_4, 8); -lean_inc(x_611); -x_612 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_613 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_614 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_615 = lean_ctor_get(x_4, 9); -lean_inc(x_615); -x_616 = l_Lean_Elab_replaceRef(x_498, x_615); -lean_dec(x_615); -x_617 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_617, 0, x_603); -lean_ctor_set(x_617, 1, x_604); -lean_ctor_set(x_617, 2, x_605); -lean_ctor_set(x_617, 3, x_606); -lean_ctor_set(x_617, 4, x_607); -lean_ctor_set(x_617, 5, x_608); -lean_ctor_set(x_617, 6, x_609); -lean_ctor_set(x_617, 7, x_610); -lean_ctor_set(x_617, 8, x_611); -lean_ctor_set(x_617, 9, x_616); -lean_ctor_set_uint8(x_617, sizeof(void*)*10, x_612); -lean_ctor_set_uint8(x_617, sizeof(void*)*10 + 1, x_613); -lean_ctor_set_uint8(x_617, sizeof(void*)*10 + 2, x_614); -x_618 = 0; -x_619 = lean_box(0); -x_620 = l_Lean_Elab_Term_mkFreshExprMVar(x_602, x_618, x_619, x_617, x_504); -x_621 = lean_ctor_get(x_620, 0); -lean_inc(x_621); -x_622 = lean_ctor_get(x_620, 1); -lean_inc(x_622); -if (lean_is_exclusive(x_620)) { - lean_ctor_release(x_620, 0); - lean_ctor_release(x_620, 1); - x_623 = x_620; -} else { - lean_dec_ref(x_620); - x_623 = lean_box(0); -} -x_624 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_621); -lean_inc(x_624); -x_625 = l_Lean_mkApp(x_494, x_624); -x_626 = lean_expr_instantiate1(x_601, x_624); -lean_dec(x_601); -x_627 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_627, 0, x_624); -if (lean_is_scalar(x_500)) { - x_628 = lean_alloc_ctor(0, 4, 0); -} else { - x_628 = x_500; -} -lean_ctor_set(x_628, 0, x_498); -lean_ctor_set(x_628, 1, x_25); -lean_ctor_set(x_628, 2, x_499); -lean_ctor_set(x_628, 3, x_627); -lean_ctor_set(x_3, 1, x_496); -lean_ctor_set(x_3, 0, x_628); -if (lean_is_scalar(x_497)) { - x_629 = lean_alloc_ctor(0, 2, 0); -} else { - x_629 = x_497; -} -lean_ctor_set(x_629, 0, x_626); -lean_ctor_set(x_629, 1, x_3); -x_630 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_630, 0, x_625); -lean_ctor_set(x_630, 1, x_629); -if (lean_is_scalar(x_623)) { - x_631 = lean_alloc_ctor(0, 2, 0); -} else { - x_631 = x_623; -} -lean_ctor_set(x_631, 0, x_630); -lean_ctor_set(x_631, 1, x_622); -x_10 = x_631; -goto block_18; -} -} -} -else -{ -lean_object* x_632; -lean_dec(x_500); -lean_dec(x_499); -lean_dec(x_497); -lean_dec(x_496); -lean_dec(x_494); -lean_dec(x_25); -lean_free_object(x_3); -x_632 = lean_box(0); -x_505 = x_632; -goto block_526; -} -block_526: -{ -lean_object* x_506; lean_object* x_507; lean_object* x_508; lean_object* x_509; lean_object* x_510; lean_object* x_511; lean_object* x_512; lean_object* x_513; lean_object* x_514; lean_object* x_515; lean_object* x_516; lean_object* x_517; lean_object* x_518; uint8_t x_519; uint8_t x_520; uint8_t x_521; lean_object* x_522; lean_object* x_523; lean_object* x_524; lean_object* x_525; -lean_dec(x_505); -x_506 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_506, 0, x_503); -x_507 = l_Lean_indentExpr(x_506); -x_508 = l___private_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; -x_509 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_509, 0, x_508); -lean_ctor_set(x_509, 1, x_507); -x_510 = lean_ctor_get(x_4, 0); -lean_inc(x_510); -x_511 = lean_ctor_get(x_4, 1); +lean_object* x_508; lean_object* x_509; lean_object* x_510; lean_object* x_511; lean_object* x_512; lean_object* x_513; lean_object* x_514; lean_object* x_515; lean_object* x_516; lean_object* x_517; lean_object* x_518; lean_object* x_519; uint8_t x_520; uint8_t x_521; uint8_t x_522; lean_object* x_523; lean_object* x_524; lean_object* x_525; uint8_t x_526; lean_object* x_527; lean_object* x_528; lean_object* x_529; lean_object* x_530; lean_object* x_531; lean_object* x_532; lean_object* x_533; lean_object* x_534; lean_object* x_535; lean_object* x_536; lean_object* x_537; lean_object* x_538; lean_object* x_539; +x_508 = lean_ctor_get(x_434, 1); +lean_inc(x_508); +x_509 = lean_ctor_get(x_434, 2); +lean_inc(x_509); +lean_dec(x_434); +x_510 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_510, 0, x_508); +x_511 = lean_ctor_get(x_4, 0); lean_inc(x_511); -x_512 = lean_ctor_get(x_4, 2); +x_512 = lean_ctor_get(x_4, 1); lean_inc(x_512); -x_513 = lean_ctor_get(x_4, 3); +x_513 = lean_ctor_get(x_4, 2); lean_inc(x_513); -x_514 = lean_ctor_get(x_4, 4); +x_514 = lean_ctor_get(x_4, 3); lean_inc(x_514); -x_515 = lean_ctor_get(x_4, 5); +x_515 = lean_ctor_get(x_4, 4); lean_inc(x_515); -x_516 = lean_ctor_get(x_4, 6); +x_516 = lean_ctor_get(x_4, 5); lean_inc(x_516); -x_517 = lean_ctor_get(x_4, 7); +x_517 = lean_ctor_get(x_4, 6); lean_inc(x_517); -x_518 = lean_ctor_get(x_4, 8); +x_518 = lean_ctor_get(x_4, 7); lean_inc(x_518); -x_519 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_520 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_521 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_522 = lean_ctor_get(x_4, 9); -lean_inc(x_522); -x_523 = l_Lean_Elab_replaceRef(x_498, x_522); -lean_dec(x_522); -lean_dec(x_498); -x_524 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_524, 0, x_510); -lean_ctor_set(x_524, 1, x_511); -lean_ctor_set(x_524, 2, x_512); -lean_ctor_set(x_524, 3, x_513); -lean_ctor_set(x_524, 4, x_514); -lean_ctor_set(x_524, 5, x_515); -lean_ctor_set(x_524, 6, x_516); -lean_ctor_set(x_524, 7, x_517); -lean_ctor_set(x_524, 8, x_518); -lean_ctor_set(x_524, 9, x_523); -lean_ctor_set_uint8(x_524, sizeof(void*)*10, x_519); -lean_ctor_set_uint8(x_524, sizeof(void*)*10 + 1, x_520); -lean_ctor_set_uint8(x_524, sizeof(void*)*10 + 2, x_521); -lean_inc(x_1); -x_525 = l_Lean_Elab_Term_StructInst_throwFailedToElabField___rarg(x_501, x_1, x_509, x_524, x_504); -x_10 = x_525; +x_519 = lean_ctor_get(x_4, 8); +lean_inc(x_519); +x_520 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); +x_521 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); +x_522 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); +x_523 = lean_ctor_get(x_4, 9); +lean_inc(x_523); +x_524 = l_Lean_Elab_replaceRef(x_429, x_523); +lean_dec(x_523); +x_525 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_525, 0, x_511); +lean_ctor_set(x_525, 1, x_512); +lean_ctor_set(x_525, 2, x_513); +lean_ctor_set(x_525, 3, x_514); +lean_ctor_set(x_525, 4, x_515); +lean_ctor_set(x_525, 5, x_516); +lean_ctor_set(x_525, 6, x_517); +lean_ctor_set(x_525, 7, x_518); +lean_ctor_set(x_525, 8, x_519); +lean_ctor_set(x_525, 9, x_524); +lean_ctor_set_uint8(x_525, sizeof(void*)*10, x_520); +lean_ctor_set_uint8(x_525, sizeof(void*)*10 + 1, x_521); +lean_ctor_set_uint8(x_525, sizeof(void*)*10 + 2, x_522); +x_526 = 0; +x_527 = lean_box(0); +x_528 = l_Lean_Elab_Term_mkFreshExprMVar(x_510, x_526, x_527, x_525, x_435); +x_529 = lean_ctor_get(x_528, 0); +lean_inc(x_529); +x_530 = lean_ctor_get(x_528, 1); +lean_inc(x_530); +if (lean_is_exclusive(x_528)) { + lean_ctor_release(x_528, 0); + lean_ctor_release(x_528, 1); + x_531 = x_528; +} else { + lean_dec_ref(x_528); + x_531 = lean_box(0); +} +x_532 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_529); +lean_inc(x_532); +x_533 = l_Lean_mkApp(x_425, x_532); +x_534 = lean_expr_instantiate1(x_509, x_532); +lean_dec(x_509); +x_535 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_535, 0, x_532); +if (lean_is_scalar(x_431)) { + x_536 = lean_alloc_ctor(0, 4, 0); +} else { + x_536 = x_431; +} +lean_ctor_set(x_536, 0, x_429); +lean_ctor_set(x_536, 1, x_25); +lean_ctor_set(x_536, 2, x_430); +lean_ctor_set(x_536, 3, x_535); +lean_ctor_set(x_3, 1, x_427); +lean_ctor_set(x_3, 0, x_536); +if (lean_is_scalar(x_428)) { + x_537 = lean_alloc_ctor(0, 2, 0); +} else { + x_537 = x_428; +} +lean_ctor_set(x_537, 0, x_534); +lean_ctor_set(x_537, 1, x_3); +x_538 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_538, 0, x_533); +lean_ctor_set(x_538, 1, x_537); +if (lean_is_scalar(x_531)) { + x_539 = lean_alloc_ctor(0, 2, 0); +} else { + x_539 = x_531; +} +lean_ctor_set(x_539, 0, x_538); +lean_ctor_set(x_539, 1, x_530); +x_10 = x_539; goto block_18; } } +} else { -lean_object* x_633; lean_object* x_634; lean_object* x_635; lean_object* x_636; -lean_dec(x_501); -lean_dec(x_500); -lean_dec(x_499); -lean_dec(x_498); -lean_dec(x_497); -lean_dec(x_496); -lean_dec(x_494); +lean_object* x_540; +lean_dec(x_431); +lean_dec(x_430); +lean_dec(x_428); +lean_dec(x_427); +lean_dec(x_425); lean_dec(x_25); lean_free_object(x_3); -x_633 = lean_ctor_get(x_502, 0); -lean_inc(x_633); -x_634 = lean_ctor_get(x_502, 1); -lean_inc(x_634); -if (lean_is_exclusive(x_502)) { - lean_ctor_release(x_502, 0); - lean_ctor_release(x_502, 1); - x_635 = x_502; -} else { - lean_dec_ref(x_502); - x_635 = lean_box(0); +x_540 = lean_box(0); +x_436 = x_540; +goto block_457; } -if (lean_is_scalar(x_635)) { - x_636 = lean_alloc_ctor(1, 2, 0); -} else { - x_636 = x_635; +block_457: +{ +lean_object* x_437; lean_object* x_438; 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; uint8_t x_450; uint8_t x_451; uint8_t x_452; lean_object* x_453; lean_object* x_454; lean_object* x_455; lean_object* x_456; +lean_dec(x_436); +x_437 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_437, 0, x_434); +x_438 = l_Lean_indentExpr(x_437); +x_439 = l___private_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; +x_440 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_440, 0, x_439); +lean_ctor_set(x_440, 1, x_438); +x_441 = lean_ctor_get(x_4, 0); +lean_inc(x_441); +x_442 = lean_ctor_get(x_4, 1); +lean_inc(x_442); +x_443 = lean_ctor_get(x_4, 2); +lean_inc(x_443); +x_444 = lean_ctor_get(x_4, 3); +lean_inc(x_444); +x_445 = lean_ctor_get(x_4, 4); +lean_inc(x_445); +x_446 = lean_ctor_get(x_4, 5); +lean_inc(x_446); +x_447 = lean_ctor_get(x_4, 6); +lean_inc(x_447); +x_448 = lean_ctor_get(x_4, 7); +lean_inc(x_448); +x_449 = lean_ctor_get(x_4, 8); +lean_inc(x_449); +x_450 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); +x_451 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); +x_452 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); +x_453 = lean_ctor_get(x_4, 9); +lean_inc(x_453); +x_454 = l_Lean_Elab_replaceRef(x_429, x_453); +lean_dec(x_453); +lean_dec(x_429); +x_455 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_455, 0, x_441); +lean_ctor_set(x_455, 1, x_442); +lean_ctor_set(x_455, 2, x_443); +lean_ctor_set(x_455, 3, x_444); +lean_ctor_set(x_455, 4, x_445); +lean_ctor_set(x_455, 5, x_446); +lean_ctor_set(x_455, 6, x_447); +lean_ctor_set(x_455, 7, x_448); +lean_ctor_set(x_455, 8, x_449); +lean_ctor_set(x_455, 9, x_454); +lean_ctor_set_uint8(x_455, sizeof(void*)*10, x_450); +lean_ctor_set_uint8(x_455, sizeof(void*)*10 + 1, x_451); +lean_ctor_set_uint8(x_455, sizeof(void*)*10 + 2, x_452); +lean_inc(x_1); +x_456 = l_Lean_Elab_Term_StructInst_throwFailedToElabField___rarg(x_432, x_1, x_440, x_455, x_435); +x_10 = x_456; +goto block_18; } -lean_ctor_set(x_636, 0, x_633); -lean_ctor_set(x_636, 1, x_634); -x_10 = x_636; +} +else +{ +lean_object* x_541; lean_object* x_542; lean_object* x_543; lean_object* x_544; +lean_dec(x_432); +lean_dec(x_431); +lean_dec(x_430); +lean_dec(x_429); +lean_dec(x_428); +lean_dec(x_427); +lean_dec(x_425); +lean_dec(x_25); +lean_free_object(x_3); +x_541 = lean_ctor_get(x_433, 0); +lean_inc(x_541); +x_542 = lean_ctor_get(x_433, 1); +lean_inc(x_542); +if (lean_is_exclusive(x_433)) { + lean_ctor_release(x_433, 0); + lean_ctor_release(x_433, 1); + x_543 = x_433; +} else { + lean_dec_ref(x_433); + x_543 = lean_box(0); +} +if (lean_is_scalar(x_543)) { + x_544 = lean_alloc_ctor(1, 2, 0); +} else { + x_544 = x_543; +} +lean_ctor_set(x_544, 0, x_541); +lean_ctor_set(x_544, 1, x_542); +x_10 = x_544; goto block_18; } } } else { -lean_object* x_637; +lean_object* x_545; lean_dec(x_28); lean_dec(x_27); lean_dec(x_25); lean_dec(x_24); lean_free_object(x_3); lean_dec(x_2); -x_637 = lean_box(0); -x_19 = x_637; +x_545 = lean_box(0); +x_19 = x_545; goto block_23; } } else { -lean_object* x_638; +lean_object* x_546; lean_dec(x_27); lean_dec(x_25); lean_dec(x_24); lean_free_object(x_3); lean_dec(x_2); -x_638 = lean_box(0); -x_19 = x_638; +x_546 = lean_box(0); +x_19 = x_546; goto block_23; } } @@ -19865,761 +19562,672 @@ goto block_18; } else { -lean_object* x_639; lean_object* x_640; lean_object* x_641; lean_object* x_650; lean_object* x_655; lean_object* x_656; -x_639 = lean_ctor_get(x_3, 0); -x_640 = lean_ctor_get(x_3, 1); -lean_inc(x_640); -lean_inc(x_639); +lean_object* x_547; lean_object* x_548; lean_object* x_549; lean_object* x_558; lean_object* x_563; lean_object* x_564; +x_547 = lean_ctor_get(x_3, 0); +x_548 = lean_ctor_get(x_3, 1); +lean_inc(x_548); +lean_inc(x_547); lean_dec(x_3); -x_655 = lean_ctor_get(x_2, 1); -lean_inc(x_655); -x_656 = lean_ctor_get(x_639, 1); -lean_inc(x_656); -if (lean_obj_tag(x_656) == 0) +x_563 = lean_ctor_get(x_2, 1); +lean_inc(x_563); +x_564 = lean_ctor_get(x_547, 1); +lean_inc(x_564); +if (lean_obj_tag(x_564) == 0) { -lean_object* x_657; -lean_dec(x_655); +lean_object* x_565; +lean_dec(x_563); lean_dec(x_2); -x_657 = lean_box(0); -x_650 = x_657; -goto block_654; +x_565 = lean_box(0); +x_558 = x_565; +goto block_562; } else { -lean_object* x_658; -x_658 = lean_ctor_get(x_656, 0); -lean_inc(x_658); -if (lean_obj_tag(x_658) == 0) +lean_object* x_566; +x_566 = lean_ctor_get(x_564, 0); +lean_inc(x_566); +if (lean_obj_tag(x_566) == 0) { -lean_object* x_659; -x_659 = lean_ctor_get(x_656, 1); -lean_inc(x_659); -if (lean_obj_tag(x_659) == 0) +lean_object* x_567; +x_567 = lean_ctor_get(x_564, 1); +lean_inc(x_567); +if (lean_obj_tag(x_567) == 0) { -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; -x_660 = lean_ctor_get(x_2, 0); -lean_inc(x_660); +lean_object* x_568; lean_object* x_569; 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; +x_568 = lean_ctor_get(x_2, 0); +lean_inc(x_568); if (lean_is_exclusive(x_2)) { lean_ctor_release(x_2, 0); lean_ctor_release(x_2, 1); - x_661 = x_2; + x_569 = x_2; } else { lean_dec_ref(x_2); - x_661 = lean_box(0); + x_569 = lean_box(0); } -x_662 = lean_ctor_get(x_655, 0); -lean_inc(x_662); -x_663 = lean_ctor_get(x_655, 1); -lean_inc(x_663); -if (lean_is_exclusive(x_655)) { - lean_ctor_release(x_655, 0); - lean_ctor_release(x_655, 1); - x_664 = x_655; +x_570 = lean_ctor_get(x_563, 0); +lean_inc(x_570); +x_571 = lean_ctor_get(x_563, 1); +lean_inc(x_571); +if (lean_is_exclusive(x_563)) { + lean_ctor_release(x_563, 0); + lean_ctor_release(x_563, 1); + x_572 = x_563; } else { - lean_dec_ref(x_655); - x_664 = lean_box(0); + lean_dec_ref(x_563); + x_572 = lean_box(0); } -x_665 = lean_ctor_get(x_639, 0); -lean_inc(x_665); -x_666 = lean_ctor_get(x_639, 2); -lean_inc(x_666); -if (lean_is_exclusive(x_639)) { - lean_ctor_release(x_639, 0); - lean_ctor_release(x_639, 1); - lean_ctor_release(x_639, 2); - lean_ctor_release(x_639, 3); - x_667 = x_639; +x_573 = lean_ctor_get(x_547, 0); +lean_inc(x_573); +x_574 = lean_ctor_get(x_547, 2); +lean_inc(x_574); +if (lean_is_exclusive(x_547)) { + lean_ctor_release(x_547, 0); + lean_ctor_release(x_547, 1); + lean_ctor_release(x_547, 2); + lean_ctor_release(x_547, 3); + x_575 = x_547; } else { - lean_dec_ref(x_639); - x_667 = lean_box(0); + lean_dec_ref(x_547); + x_575 = lean_box(0); } -x_668 = lean_ctor_get(x_658, 1); -lean_inc(x_668); -lean_dec(x_658); +x_576 = lean_ctor_get(x_566, 1); +lean_inc(x_576); +lean_dec(x_566); lean_inc(x_4); -x_669 = l_Lean_Elab_Term_whnfForall(x_662, x_4, x_5); -if (lean_obj_tag(x_669) == 0) +x_577 = l_Lean_Elab_Term_whnfForall(x_570, x_4, x_5); +if (lean_obj_tag(x_577) == 0) { -lean_object* x_670; lean_object* x_671; lean_object* x_672; -x_670 = lean_ctor_get(x_669, 0); -lean_inc(x_670); -x_671 = lean_ctor_get(x_669, 1); -lean_inc(x_671); -lean_dec(x_669); -if (lean_obj_tag(x_670) == 7) +lean_object* x_578; lean_object* x_579; lean_object* x_580; +x_578 = lean_ctor_get(x_577, 0); +lean_inc(x_578); +x_579 = lean_ctor_get(x_577, 1); +lean_inc(x_579); +lean_dec(x_577); +if (lean_obj_tag(x_578) == 7) { -lean_dec(x_668); -switch (lean_obj_tag(x_666)) { +lean_dec(x_576); +switch (lean_obj_tag(x_574)) { case 0: { -lean_object* x_694; lean_object* x_695; lean_object* x_696; lean_object* x_697; uint8_t x_698; lean_object* x_699; -x_694 = lean_ctor_get(x_670, 1); -lean_inc(x_694); -x_695 = lean_ctor_get(x_670, 2); -lean_inc(x_695); -lean_dec(x_670); -x_696 = lean_ctor_get(x_666, 0); -lean_inc(x_696); -x_697 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_697, 0, x_694); -x_698 = 1; +lean_object* x_602; lean_object* x_603; lean_object* x_604; lean_object* x_605; lean_object* x_606; +x_602 = lean_ctor_get(x_578, 1); +lean_inc(x_602); +x_603 = lean_ctor_get(x_578, 2); +lean_inc(x_603); +lean_dec(x_578); +x_604 = lean_ctor_get(x_574, 0); +lean_inc(x_604); +x_605 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_605, 0, x_602); lean_inc(x_4); -lean_inc(x_697); -lean_inc(x_696); -x_699 = l_Lean_Elab_Term_elabTerm(x_696, x_697, x_698, x_4, x_671); -if (lean_obj_tag(x_699) == 0) +x_606 = l_Lean_Elab_Term_elabTermEnsuringType(x_604, x_605, x_4, x_579); +if (lean_obj_tag(x_606) == 0) { -lean_object* x_700; lean_object* x_701; lean_object* x_702; lean_object* x_703; lean_object* x_704; lean_object* x_705; lean_object* x_706; lean_object* x_707; lean_object* x_708; lean_object* x_709; lean_object* x_710; uint8_t x_711; uint8_t x_712; uint8_t x_713; lean_object* x_714; lean_object* x_715; lean_object* x_716; lean_object* x_717; -x_700 = lean_ctor_get(x_699, 0); -lean_inc(x_700); -x_701 = lean_ctor_get(x_699, 1); -lean_inc(x_701); -lean_dec(x_699); -x_702 = lean_ctor_get(x_4, 0); -lean_inc(x_702); -x_703 = lean_ctor_get(x_4, 1); -lean_inc(x_703); -x_704 = lean_ctor_get(x_4, 2); -lean_inc(x_704); -x_705 = lean_ctor_get(x_4, 3); -lean_inc(x_705); -x_706 = lean_ctor_get(x_4, 4); -lean_inc(x_706); -x_707 = lean_ctor_get(x_4, 5); -lean_inc(x_707); -x_708 = lean_ctor_get(x_4, 6); -lean_inc(x_708); -x_709 = lean_ctor_get(x_4, 7); -lean_inc(x_709); -x_710 = lean_ctor_get(x_4, 8); -lean_inc(x_710); -x_711 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_712 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_713 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_714 = lean_ctor_get(x_4, 9); -lean_inc(x_714); -x_715 = l_Lean_Elab_replaceRef(x_696, x_714); -lean_dec(x_714); -lean_dec(x_696); -x_716 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_716, 0, x_702); -lean_ctor_set(x_716, 1, x_703); -lean_ctor_set(x_716, 2, x_704); -lean_ctor_set(x_716, 3, x_705); -lean_ctor_set(x_716, 4, x_706); -lean_ctor_set(x_716, 5, x_707); -lean_ctor_set(x_716, 6, x_708); -lean_ctor_set(x_716, 7, x_709); -lean_ctor_set(x_716, 8, x_710); -lean_ctor_set(x_716, 9, x_715); -lean_ctor_set_uint8(x_716, sizeof(void*)*10, x_711); -lean_ctor_set_uint8(x_716, sizeof(void*)*10 + 1, x_712); -lean_ctor_set_uint8(x_716, sizeof(void*)*10 + 2, x_713); -x_717 = l_Lean_Elab_Term_ensureHasType(x_697, x_700, x_716, x_701); -if (lean_obj_tag(x_717) == 0) -{ -lean_object* x_718; lean_object* x_719; lean_object* x_720; lean_object* x_721; lean_object* x_722; lean_object* x_723; lean_object* x_724; lean_object* x_725; lean_object* x_726; lean_object* x_727; lean_object* x_728; -x_718 = lean_ctor_get(x_717, 0); -lean_inc(x_718); -x_719 = lean_ctor_get(x_717, 1); -lean_inc(x_719); -if (lean_is_exclusive(x_717)) { - lean_ctor_release(x_717, 0); - lean_ctor_release(x_717, 1); - x_720 = x_717; +lean_object* x_607; lean_object* x_608; lean_object* x_609; lean_object* x_610; lean_object* x_611; lean_object* x_612; lean_object* x_613; lean_object* x_614; lean_object* x_615; lean_object* x_616; lean_object* x_617; +x_607 = lean_ctor_get(x_606, 0); +lean_inc(x_607); +x_608 = lean_ctor_get(x_606, 1); +lean_inc(x_608); +if (lean_is_exclusive(x_606)) { + lean_ctor_release(x_606, 0); + lean_ctor_release(x_606, 1); + x_609 = x_606; } else { - lean_dec_ref(x_717); - x_720 = lean_box(0); + lean_dec_ref(x_606); + x_609 = lean_box(0); } -lean_inc(x_718); -x_721 = l_Lean_mkApp(x_660, x_718); -x_722 = lean_expr_instantiate1(x_695, x_718); -lean_dec(x_695); -x_723 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_723, 0, x_718); -if (lean_is_scalar(x_667)) { - x_724 = lean_alloc_ctor(0, 4, 0); +lean_inc(x_607); +x_610 = l_Lean_mkApp(x_568, x_607); +x_611 = lean_expr_instantiate1(x_603, x_607); +lean_dec(x_603); +x_612 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_612, 0, x_607); +if (lean_is_scalar(x_575)) { + x_613 = lean_alloc_ctor(0, 4, 0); } else { - x_724 = x_667; + x_613 = x_575; } -lean_ctor_set(x_724, 0, x_665); -lean_ctor_set(x_724, 1, x_656); -lean_ctor_set(x_724, 2, x_666); -lean_ctor_set(x_724, 3, x_723); -x_725 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_725, 0, x_724); -lean_ctor_set(x_725, 1, x_663); -if (lean_is_scalar(x_664)) { - x_726 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_613, 0, x_573); +lean_ctor_set(x_613, 1, x_564); +lean_ctor_set(x_613, 2, x_574); +lean_ctor_set(x_613, 3, x_612); +x_614 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_614, 0, x_613); +lean_ctor_set(x_614, 1, x_571); +if (lean_is_scalar(x_572)) { + x_615 = lean_alloc_ctor(0, 2, 0); } else { - x_726 = x_664; + x_615 = x_572; } -lean_ctor_set(x_726, 0, x_722); -lean_ctor_set(x_726, 1, x_725); -if (lean_is_scalar(x_661)) { - x_727 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_615, 0, x_611); +lean_ctor_set(x_615, 1, x_614); +if (lean_is_scalar(x_569)) { + x_616 = lean_alloc_ctor(0, 2, 0); } else { - x_727 = x_661; + x_616 = x_569; } -lean_ctor_set(x_727, 0, x_721); -lean_ctor_set(x_727, 1, x_726); -if (lean_is_scalar(x_720)) { - x_728 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_616, 0, x_610); +lean_ctor_set(x_616, 1, x_615); +if (lean_is_scalar(x_609)) { + x_617 = lean_alloc_ctor(0, 2, 0); } else { - x_728 = x_720; + x_617 = x_609; } -lean_ctor_set(x_728, 0, x_727); -lean_ctor_set(x_728, 1, x_719); -x_641 = x_728; -goto block_649; +lean_ctor_set(x_617, 0, x_616); +lean_ctor_set(x_617, 1, x_608); +x_549 = x_617; +goto block_557; } else { -lean_object* x_729; lean_object* x_730; lean_object* x_731; lean_object* x_732; -lean_dec(x_695); -lean_dec(x_667); -lean_dec(x_666); -lean_dec(x_665); -lean_dec(x_664); -lean_dec(x_663); -lean_dec(x_661); -lean_dec(x_660); -lean_dec(x_656); -x_729 = lean_ctor_get(x_717, 0); -lean_inc(x_729); -x_730 = lean_ctor_get(x_717, 1); -lean_inc(x_730); -if (lean_is_exclusive(x_717)) { - lean_ctor_release(x_717, 0); - lean_ctor_release(x_717, 1); - x_731 = x_717; +lean_object* x_618; lean_object* x_619; lean_object* x_620; lean_object* x_621; +lean_dec(x_603); +lean_dec(x_575); +lean_dec(x_574); +lean_dec(x_573); +lean_dec(x_572); +lean_dec(x_571); +lean_dec(x_569); +lean_dec(x_568); +lean_dec(x_564); +x_618 = lean_ctor_get(x_606, 0); +lean_inc(x_618); +x_619 = lean_ctor_get(x_606, 1); +lean_inc(x_619); +if (lean_is_exclusive(x_606)) { + lean_ctor_release(x_606, 0); + lean_ctor_release(x_606, 1); + x_620 = x_606; } else { - lean_dec_ref(x_717); - x_731 = lean_box(0); + lean_dec_ref(x_606); + x_620 = lean_box(0); } -if (lean_is_scalar(x_731)) { - x_732 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_620)) { + x_621 = lean_alloc_ctor(1, 2, 0); } else { - x_732 = x_731; + x_621 = x_620; } -lean_ctor_set(x_732, 0, x_729); -lean_ctor_set(x_732, 1, x_730); -x_641 = x_732; -goto block_649; -} -} -else -{ -lean_object* x_733; lean_object* x_734; lean_object* x_735; lean_object* x_736; -lean_dec(x_697); -lean_dec(x_696); -lean_dec(x_695); -lean_dec(x_667); -lean_dec(x_666); -lean_dec(x_665); -lean_dec(x_664); -lean_dec(x_663); -lean_dec(x_661); -lean_dec(x_660); -lean_dec(x_656); -x_733 = lean_ctor_get(x_699, 0); -lean_inc(x_733); -x_734 = lean_ctor_get(x_699, 1); -lean_inc(x_734); -if (lean_is_exclusive(x_699)) { - lean_ctor_release(x_699, 0); - lean_ctor_release(x_699, 1); - x_735 = x_699; -} else { - lean_dec_ref(x_699); - x_735 = lean_box(0); -} -if (lean_is_scalar(x_735)) { - x_736 = lean_alloc_ctor(1, 2, 0); -} else { - x_736 = x_735; -} -lean_ctor_set(x_736, 0, x_733); -lean_ctor_set(x_736, 1, x_734); -x_641 = x_736; -goto block_649; +lean_ctor_set(x_621, 0, x_618); +lean_ctor_set(x_621, 1, x_619); +x_549 = x_621; +goto block_557; } } case 1: { -lean_object* x_737; lean_object* x_738; lean_object* x_739; lean_object* x_740; lean_object* x_741; lean_object* x_742; -lean_dec(x_661); -x_737 = lean_ctor_get(x_670, 1); -lean_inc(x_737); -x_738 = lean_ctor_get(x_670, 2); -lean_inc(x_738); -lean_dec(x_670); -x_739 = lean_ctor_get(x_666, 0); -lean_inc(x_739); -if (lean_is_exclusive(x_666)) { - lean_ctor_release(x_666, 0); - x_740 = x_666; +lean_object* x_622; lean_object* x_623; lean_object* x_624; lean_object* x_625; lean_object* x_626; lean_object* x_627; +lean_dec(x_569); +x_622 = lean_ctor_get(x_578, 1); +lean_inc(x_622); +x_623 = lean_ctor_get(x_578, 2); +lean_inc(x_623); +lean_dec(x_578); +x_624 = lean_ctor_get(x_574, 0); +lean_inc(x_624); +if (lean_is_exclusive(x_574)) { + lean_ctor_release(x_574, 0); + x_625 = x_574; } else { - lean_dec_ref(x_666); - x_740 = lean_box(0); + lean_dec_ref(x_574); + x_625 = lean_box(0); } -x_741 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_741, 0, x_737); +x_626 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_626, 0, x_622); lean_inc(x_4); -lean_inc(x_741); -x_742 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_739, x_741, x_4, x_671); -if (lean_obj_tag(x_742) == 0) +lean_inc(x_626); +x_627 = l___private_Lean_Elab_StructInst_24__elabStruct___main(x_624, x_626, x_4, x_579); +if (lean_obj_tag(x_627) == 0) { -lean_object* x_743; lean_object* x_744; lean_object* x_745; lean_object* x_746; lean_object* x_747; lean_object* x_748; -x_743 = lean_ctor_get(x_742, 0); -lean_inc(x_743); -x_744 = lean_ctor_get(x_742, 1); -lean_inc(x_744); -lean_dec(x_742); -x_745 = lean_ctor_get(x_743, 0); -lean_inc(x_745); -x_746 = lean_ctor_get(x_743, 1); -lean_inc(x_746); -if (lean_is_exclusive(x_743)) { - lean_ctor_release(x_743, 0); - lean_ctor_release(x_743, 1); - x_747 = x_743; +lean_object* x_628; lean_object* x_629; lean_object* x_630; lean_object* x_631; lean_object* x_632; lean_object* x_633; +x_628 = lean_ctor_get(x_627, 0); +lean_inc(x_628); +x_629 = lean_ctor_get(x_627, 1); +lean_inc(x_629); +lean_dec(x_627); +x_630 = lean_ctor_get(x_628, 0); +lean_inc(x_630); +x_631 = lean_ctor_get(x_628, 1); +lean_inc(x_631); +if (lean_is_exclusive(x_628)) { + lean_ctor_release(x_628, 0); + lean_ctor_release(x_628, 1); + x_632 = x_628; } else { - lean_dec_ref(x_743); - x_747 = lean_box(0); + lean_dec_ref(x_628); + x_632 = lean_box(0); } lean_inc(x_4); -x_748 = l_Lean_Elab_Term_ensureHasType(x_741, x_745, x_4, x_744); -if (lean_obj_tag(x_748) == 0) +x_633 = l_Lean_Elab_Term_ensureHasType(x_626, x_630, x_4, x_629); +if (lean_obj_tag(x_633) == 0) { -lean_object* x_749; lean_object* x_750; lean_object* x_751; lean_object* x_752; lean_object* x_753; lean_object* x_754; lean_object* x_755; lean_object* x_756; lean_object* x_757; lean_object* x_758; lean_object* x_759; lean_object* x_760; -x_749 = lean_ctor_get(x_748, 0); -lean_inc(x_749); -x_750 = lean_ctor_get(x_748, 1); -lean_inc(x_750); -if (lean_is_exclusive(x_748)) { - lean_ctor_release(x_748, 0); - lean_ctor_release(x_748, 1); - x_751 = x_748; +lean_object* x_634; lean_object* x_635; lean_object* x_636; lean_object* x_637; lean_object* x_638; lean_object* x_639; lean_object* x_640; lean_object* x_641; lean_object* x_642; lean_object* x_643; lean_object* x_644; lean_object* x_645; +x_634 = lean_ctor_get(x_633, 0); +lean_inc(x_634); +x_635 = lean_ctor_get(x_633, 1); +lean_inc(x_635); +if (lean_is_exclusive(x_633)) { + lean_ctor_release(x_633, 0); + lean_ctor_release(x_633, 1); + x_636 = x_633; } else { - lean_dec_ref(x_748); - x_751 = lean_box(0); + lean_dec_ref(x_633); + x_636 = lean_box(0); } -if (lean_is_scalar(x_740)) { - x_752 = lean_alloc_ctor(1, 1, 0); +if (lean_is_scalar(x_625)) { + x_637 = lean_alloc_ctor(1, 1, 0); } else { - x_752 = x_740; + x_637 = x_625; } -lean_ctor_set(x_752, 0, x_746); -lean_inc(x_749); -x_753 = l_Lean_mkApp(x_660, x_749); -x_754 = lean_expr_instantiate1(x_738, x_749); -lean_dec(x_738); -x_755 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_755, 0, x_749); -if (lean_is_scalar(x_667)) { - x_756 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_637, 0, x_631); +lean_inc(x_634); +x_638 = l_Lean_mkApp(x_568, x_634); +x_639 = lean_expr_instantiate1(x_623, x_634); +lean_dec(x_623); +x_640 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_640, 0, x_634); +if (lean_is_scalar(x_575)) { + x_641 = lean_alloc_ctor(0, 4, 0); } else { - x_756 = x_667; + x_641 = x_575; } -lean_ctor_set(x_756, 0, x_665); -lean_ctor_set(x_756, 1, x_656); -lean_ctor_set(x_756, 2, x_752); -lean_ctor_set(x_756, 3, x_755); -x_757 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_757, 0, x_756); -lean_ctor_set(x_757, 1, x_663); -if (lean_is_scalar(x_747)) { - x_758 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_641, 0, x_573); +lean_ctor_set(x_641, 1, x_564); +lean_ctor_set(x_641, 2, x_637); +lean_ctor_set(x_641, 3, x_640); +x_642 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_642, 0, x_641); +lean_ctor_set(x_642, 1, x_571); +if (lean_is_scalar(x_632)) { + x_643 = lean_alloc_ctor(0, 2, 0); } else { - x_758 = x_747; + x_643 = x_632; } -lean_ctor_set(x_758, 0, x_754); -lean_ctor_set(x_758, 1, x_757); -if (lean_is_scalar(x_664)) { - x_759 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_643, 0, x_639); +lean_ctor_set(x_643, 1, x_642); +if (lean_is_scalar(x_572)) { + x_644 = lean_alloc_ctor(0, 2, 0); } else { - x_759 = x_664; + x_644 = x_572; } -lean_ctor_set(x_759, 0, x_753); -lean_ctor_set(x_759, 1, x_758); -if (lean_is_scalar(x_751)) { - x_760 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_644, 0, x_638); +lean_ctor_set(x_644, 1, x_643); +if (lean_is_scalar(x_636)) { + x_645 = lean_alloc_ctor(0, 2, 0); } else { - x_760 = x_751; + x_645 = x_636; } -lean_ctor_set(x_760, 0, x_759); -lean_ctor_set(x_760, 1, x_750); -x_641 = x_760; -goto block_649; +lean_ctor_set(x_645, 0, x_644); +lean_ctor_set(x_645, 1, x_635); +x_549 = x_645; +goto block_557; } else { -lean_object* x_761; lean_object* x_762; lean_object* x_763; lean_object* x_764; -lean_dec(x_747); -lean_dec(x_746); -lean_dec(x_740); -lean_dec(x_738); -lean_dec(x_667); -lean_dec(x_665); -lean_dec(x_664); -lean_dec(x_663); -lean_dec(x_660); -lean_dec(x_656); -x_761 = lean_ctor_get(x_748, 0); -lean_inc(x_761); -x_762 = lean_ctor_get(x_748, 1); -lean_inc(x_762); -if (lean_is_exclusive(x_748)) { - lean_ctor_release(x_748, 0); - lean_ctor_release(x_748, 1); - x_763 = x_748; +lean_object* x_646; lean_object* x_647; lean_object* x_648; lean_object* x_649; +lean_dec(x_632); +lean_dec(x_631); +lean_dec(x_625); +lean_dec(x_623); +lean_dec(x_575); +lean_dec(x_573); +lean_dec(x_572); +lean_dec(x_571); +lean_dec(x_568); +lean_dec(x_564); +x_646 = lean_ctor_get(x_633, 0); +lean_inc(x_646); +x_647 = lean_ctor_get(x_633, 1); +lean_inc(x_647); +if (lean_is_exclusive(x_633)) { + lean_ctor_release(x_633, 0); + lean_ctor_release(x_633, 1); + x_648 = x_633; } else { - lean_dec_ref(x_748); - x_763 = lean_box(0); + lean_dec_ref(x_633); + x_648 = lean_box(0); } -if (lean_is_scalar(x_763)) { - x_764 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_648)) { + x_649 = lean_alloc_ctor(1, 2, 0); } else { - x_764 = x_763; + x_649 = x_648; } -lean_ctor_set(x_764, 0, x_761); -lean_ctor_set(x_764, 1, x_762); -x_641 = x_764; -goto block_649; +lean_ctor_set(x_649, 0, x_646); +lean_ctor_set(x_649, 1, x_647); +x_549 = x_649; +goto block_557; } } else { -lean_object* x_765; lean_object* x_766; lean_object* x_767; lean_object* x_768; -lean_dec(x_741); -lean_dec(x_740); -lean_dec(x_738); -lean_dec(x_667); -lean_dec(x_665); -lean_dec(x_664); -lean_dec(x_663); -lean_dec(x_660); -lean_dec(x_656); -x_765 = lean_ctor_get(x_742, 0); -lean_inc(x_765); -x_766 = lean_ctor_get(x_742, 1); -lean_inc(x_766); -if (lean_is_exclusive(x_742)) { - lean_ctor_release(x_742, 0); - lean_ctor_release(x_742, 1); - x_767 = x_742; +lean_object* x_650; lean_object* x_651; lean_object* x_652; lean_object* x_653; +lean_dec(x_626); +lean_dec(x_625); +lean_dec(x_623); +lean_dec(x_575); +lean_dec(x_573); +lean_dec(x_572); +lean_dec(x_571); +lean_dec(x_568); +lean_dec(x_564); +x_650 = lean_ctor_get(x_627, 0); +lean_inc(x_650); +x_651 = lean_ctor_get(x_627, 1); +lean_inc(x_651); +if (lean_is_exclusive(x_627)) { + lean_ctor_release(x_627, 0); + lean_ctor_release(x_627, 1); + x_652 = x_627; } else { - lean_dec_ref(x_742); - x_767 = lean_box(0); + lean_dec_ref(x_627); + x_652 = lean_box(0); } -if (lean_is_scalar(x_767)) { - x_768 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_652)) { + x_653 = lean_alloc_ctor(1, 2, 0); } else { - x_768 = x_767; + x_653 = x_652; } -lean_ctor_set(x_768, 0, x_765); -lean_ctor_set(x_768, 1, x_766); -x_641 = x_768; -goto block_649; +lean_ctor_set(x_653, 0, x_650); +lean_ctor_set(x_653, 1, x_651); +x_549 = x_653; +goto block_557; } } default: { -lean_object* x_769; lean_object* x_770; lean_object* x_771; lean_object* x_772; lean_object* x_773; lean_object* x_774; lean_object* x_775; lean_object* x_776; lean_object* x_777; lean_object* x_778; lean_object* x_779; lean_object* x_780; uint8_t x_781; uint8_t x_782; uint8_t x_783; lean_object* x_784; lean_object* x_785; lean_object* x_786; uint8_t x_787; lean_object* x_788; lean_object* x_789; lean_object* x_790; lean_object* x_791; lean_object* x_792; lean_object* x_793; 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; -x_769 = lean_ctor_get(x_670, 1); -lean_inc(x_769); -x_770 = lean_ctor_get(x_670, 2); -lean_inc(x_770); -lean_dec(x_670); -x_771 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_771, 0, x_769); -x_772 = lean_ctor_get(x_4, 0); -lean_inc(x_772); -x_773 = lean_ctor_get(x_4, 1); -lean_inc(x_773); -x_774 = lean_ctor_get(x_4, 2); -lean_inc(x_774); -x_775 = lean_ctor_get(x_4, 3); -lean_inc(x_775); -x_776 = lean_ctor_get(x_4, 4); -lean_inc(x_776); -x_777 = lean_ctor_get(x_4, 5); -lean_inc(x_777); -x_778 = lean_ctor_get(x_4, 6); -lean_inc(x_778); -x_779 = lean_ctor_get(x_4, 7); -lean_inc(x_779); -x_780 = lean_ctor_get(x_4, 8); -lean_inc(x_780); -x_781 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_782 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_783 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_784 = lean_ctor_get(x_4, 9); -lean_inc(x_784); -x_785 = l_Lean_Elab_replaceRef(x_665, x_784); -lean_dec(x_784); -x_786 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_786, 0, x_772); -lean_ctor_set(x_786, 1, x_773); -lean_ctor_set(x_786, 2, x_774); -lean_ctor_set(x_786, 3, x_775); -lean_ctor_set(x_786, 4, x_776); -lean_ctor_set(x_786, 5, x_777); -lean_ctor_set(x_786, 6, x_778); -lean_ctor_set(x_786, 7, x_779); -lean_ctor_set(x_786, 8, x_780); -lean_ctor_set(x_786, 9, x_785); -lean_ctor_set_uint8(x_786, sizeof(void*)*10, x_781); -lean_ctor_set_uint8(x_786, sizeof(void*)*10 + 1, x_782); -lean_ctor_set_uint8(x_786, sizeof(void*)*10 + 2, x_783); -x_787 = 0; -x_788 = lean_box(0); -x_789 = l_Lean_Elab_Term_mkFreshExprMVar(x_771, x_787, x_788, x_786, x_671); -x_790 = lean_ctor_get(x_789, 0); -lean_inc(x_790); -x_791 = lean_ctor_get(x_789, 1); -lean_inc(x_791); -if (lean_is_exclusive(x_789)) { - lean_ctor_release(x_789, 0); - lean_ctor_release(x_789, 1); - x_792 = x_789; +lean_object* x_654; lean_object* x_655; lean_object* x_656; lean_object* x_657; 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; uint8_t x_666; uint8_t x_667; uint8_t x_668; lean_object* x_669; lean_object* x_670; lean_object* x_671; uint8_t 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; +x_654 = lean_ctor_get(x_578, 1); +lean_inc(x_654); +x_655 = lean_ctor_get(x_578, 2); +lean_inc(x_655); +lean_dec(x_578); +x_656 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_656, 0, x_654); +x_657 = lean_ctor_get(x_4, 0); +lean_inc(x_657); +x_658 = lean_ctor_get(x_4, 1); +lean_inc(x_658); +x_659 = lean_ctor_get(x_4, 2); +lean_inc(x_659); +x_660 = lean_ctor_get(x_4, 3); +lean_inc(x_660); +x_661 = lean_ctor_get(x_4, 4); +lean_inc(x_661); +x_662 = lean_ctor_get(x_4, 5); +lean_inc(x_662); +x_663 = lean_ctor_get(x_4, 6); +lean_inc(x_663); +x_664 = lean_ctor_get(x_4, 7); +lean_inc(x_664); +x_665 = lean_ctor_get(x_4, 8); +lean_inc(x_665); +x_666 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); +x_667 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); +x_668 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); +x_669 = lean_ctor_get(x_4, 9); +lean_inc(x_669); +x_670 = l_Lean_Elab_replaceRef(x_573, x_669); +lean_dec(x_669); +x_671 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_671, 0, x_657); +lean_ctor_set(x_671, 1, x_658); +lean_ctor_set(x_671, 2, x_659); +lean_ctor_set(x_671, 3, x_660); +lean_ctor_set(x_671, 4, x_661); +lean_ctor_set(x_671, 5, x_662); +lean_ctor_set(x_671, 6, x_663); +lean_ctor_set(x_671, 7, x_664); +lean_ctor_set(x_671, 8, x_665); +lean_ctor_set(x_671, 9, x_670); +lean_ctor_set_uint8(x_671, sizeof(void*)*10, x_666); +lean_ctor_set_uint8(x_671, sizeof(void*)*10 + 1, x_667); +lean_ctor_set_uint8(x_671, sizeof(void*)*10 + 2, x_668); +x_672 = 0; +x_673 = lean_box(0); +x_674 = l_Lean_Elab_Term_mkFreshExprMVar(x_656, x_672, x_673, x_671, x_579); +x_675 = lean_ctor_get(x_674, 0); +lean_inc(x_675); +x_676 = lean_ctor_get(x_674, 1); +lean_inc(x_676); +if (lean_is_exclusive(x_674)) { + lean_ctor_release(x_674, 0); + lean_ctor_release(x_674, 1); + x_677 = x_674; } else { - lean_dec_ref(x_789); - x_792 = lean_box(0); + lean_dec_ref(x_674); + x_677 = lean_box(0); } -x_793 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_790); -lean_inc(x_793); -x_794 = l_Lean_mkApp(x_660, x_793); -x_795 = lean_expr_instantiate1(x_770, x_793); -lean_dec(x_770); -x_796 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_796, 0, x_793); -if (lean_is_scalar(x_667)) { - x_797 = lean_alloc_ctor(0, 4, 0); -} else { - x_797 = x_667; -} -lean_ctor_set(x_797, 0, x_665); -lean_ctor_set(x_797, 1, x_656); -lean_ctor_set(x_797, 2, x_666); -lean_ctor_set(x_797, 3, x_796); -x_798 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_798, 0, x_797); -lean_ctor_set(x_798, 1, x_663); -if (lean_is_scalar(x_664)) { - x_799 = lean_alloc_ctor(0, 2, 0); -} else { - x_799 = x_664; -} -lean_ctor_set(x_799, 0, x_795); -lean_ctor_set(x_799, 1, x_798); -if (lean_is_scalar(x_661)) { - x_800 = lean_alloc_ctor(0, 2, 0); -} else { - x_800 = x_661; -} -lean_ctor_set(x_800, 0, x_794); -lean_ctor_set(x_800, 1, x_799); -if (lean_is_scalar(x_792)) { - x_801 = lean_alloc_ctor(0, 2, 0); -} else { - x_801 = x_792; -} -lean_ctor_set(x_801, 0, x_800); -lean_ctor_set(x_801, 1, x_791); -x_641 = x_801; -goto block_649; -} -} -} -else -{ -lean_object* x_802; -lean_dec(x_667); -lean_dec(x_666); -lean_dec(x_664); -lean_dec(x_663); -lean_dec(x_661); -lean_dec(x_660); -lean_dec(x_656); -x_802 = lean_box(0); -x_672 = x_802; -goto block_693; -} -block_693: -{ -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; uint8_t x_686; uint8_t x_687; uint8_t x_688; lean_object* x_689; lean_object* x_690; lean_object* x_691; lean_object* x_692; -lean_dec(x_672); -x_673 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_673, 0, x_670); -x_674 = l_Lean_indentExpr(x_673); -x_675 = l___private_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; -x_676 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_676, 0, x_675); -lean_ctor_set(x_676, 1, x_674); -x_677 = lean_ctor_get(x_4, 0); -lean_inc(x_677); -x_678 = lean_ctor_get(x_4, 1); +x_678 = l_Lean_Elab_Term_StructInst_markDefaultMissing(x_675); lean_inc(x_678); -x_679 = lean_ctor_get(x_4, 2); -lean_inc(x_679); -x_680 = lean_ctor_get(x_4, 3); -lean_inc(x_680); -x_681 = lean_ctor_get(x_4, 4); -lean_inc(x_681); -x_682 = lean_ctor_get(x_4, 5); -lean_inc(x_682); -x_683 = lean_ctor_get(x_4, 6); -lean_inc(x_683); -x_684 = lean_ctor_get(x_4, 7); -lean_inc(x_684); -x_685 = lean_ctor_get(x_4, 8); -lean_inc(x_685); -x_686 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); -x_687 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); -x_688 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); -x_689 = lean_ctor_get(x_4, 9); -lean_inc(x_689); -x_690 = l_Lean_Elab_replaceRef(x_665, x_689); -lean_dec(x_689); -lean_dec(x_665); -x_691 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_691, 0, x_677); -lean_ctor_set(x_691, 1, x_678); -lean_ctor_set(x_691, 2, x_679); -lean_ctor_set(x_691, 3, x_680); -lean_ctor_set(x_691, 4, x_681); -lean_ctor_set(x_691, 5, x_682); -lean_ctor_set(x_691, 6, x_683); -lean_ctor_set(x_691, 7, x_684); -lean_ctor_set(x_691, 8, x_685); -lean_ctor_set(x_691, 9, x_690); -lean_ctor_set_uint8(x_691, sizeof(void*)*10, x_686); -lean_ctor_set_uint8(x_691, sizeof(void*)*10 + 1, x_687); -lean_ctor_set_uint8(x_691, sizeof(void*)*10 + 2, x_688); +x_679 = l_Lean_mkApp(x_568, x_678); +x_680 = lean_expr_instantiate1(x_655, x_678); +lean_dec(x_655); +x_681 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_681, 0, x_678); +if (lean_is_scalar(x_575)) { + x_682 = lean_alloc_ctor(0, 4, 0); +} else { + x_682 = x_575; +} +lean_ctor_set(x_682, 0, x_573); +lean_ctor_set(x_682, 1, x_564); +lean_ctor_set(x_682, 2, x_574); +lean_ctor_set(x_682, 3, x_681); +x_683 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_683, 0, x_682); +lean_ctor_set(x_683, 1, x_571); +if (lean_is_scalar(x_572)) { + x_684 = lean_alloc_ctor(0, 2, 0); +} else { + x_684 = x_572; +} +lean_ctor_set(x_684, 0, x_680); +lean_ctor_set(x_684, 1, x_683); +if (lean_is_scalar(x_569)) { + x_685 = lean_alloc_ctor(0, 2, 0); +} else { + x_685 = x_569; +} +lean_ctor_set(x_685, 0, x_679); +lean_ctor_set(x_685, 1, x_684); +if (lean_is_scalar(x_677)) { + x_686 = lean_alloc_ctor(0, 2, 0); +} else { + x_686 = x_677; +} +lean_ctor_set(x_686, 0, x_685); +lean_ctor_set(x_686, 1, x_676); +x_549 = x_686; +goto block_557; +} +} +} +else +{ +lean_object* x_687; +lean_dec(x_575); +lean_dec(x_574); +lean_dec(x_572); +lean_dec(x_571); +lean_dec(x_569); +lean_dec(x_568); +lean_dec(x_564); +x_687 = lean_box(0); +x_580 = x_687; +goto block_601; +} +block_601: +{ +lean_object* x_581; lean_object* x_582; 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; lean_object* x_592; lean_object* x_593; uint8_t x_594; uint8_t x_595; uint8_t x_596; lean_object* x_597; lean_object* x_598; lean_object* x_599; lean_object* x_600; +lean_dec(x_580); +x_581 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_581, 0, x_578); +x_582 = l_Lean_indentExpr(x_581); +x_583 = l___private_Lean_Elab_StructInst_20__mkCtorHeaderAux___main___closed__3; +x_584 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_584, 0, x_583); +lean_ctor_set(x_584, 1, x_582); +x_585 = lean_ctor_get(x_4, 0); +lean_inc(x_585); +x_586 = lean_ctor_get(x_4, 1); +lean_inc(x_586); +x_587 = lean_ctor_get(x_4, 2); +lean_inc(x_587); +x_588 = lean_ctor_get(x_4, 3); +lean_inc(x_588); +x_589 = lean_ctor_get(x_4, 4); +lean_inc(x_589); +x_590 = lean_ctor_get(x_4, 5); +lean_inc(x_590); +x_591 = lean_ctor_get(x_4, 6); +lean_inc(x_591); +x_592 = lean_ctor_get(x_4, 7); +lean_inc(x_592); +x_593 = lean_ctor_get(x_4, 8); +lean_inc(x_593); +x_594 = lean_ctor_get_uint8(x_4, sizeof(void*)*10); +x_595 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 1); +x_596 = lean_ctor_get_uint8(x_4, sizeof(void*)*10 + 2); +x_597 = lean_ctor_get(x_4, 9); +lean_inc(x_597); +x_598 = l_Lean_Elab_replaceRef(x_573, x_597); +lean_dec(x_597); +lean_dec(x_573); +x_599 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_599, 0, x_585); +lean_ctor_set(x_599, 1, x_586); +lean_ctor_set(x_599, 2, x_587); +lean_ctor_set(x_599, 3, x_588); +lean_ctor_set(x_599, 4, x_589); +lean_ctor_set(x_599, 5, x_590); +lean_ctor_set(x_599, 6, x_591); +lean_ctor_set(x_599, 7, x_592); +lean_ctor_set(x_599, 8, x_593); +lean_ctor_set(x_599, 9, x_598); +lean_ctor_set_uint8(x_599, sizeof(void*)*10, x_594); +lean_ctor_set_uint8(x_599, sizeof(void*)*10 + 1, x_595); +lean_ctor_set_uint8(x_599, sizeof(void*)*10 + 2, x_596); lean_inc(x_1); -x_692 = l_Lean_Elab_Term_StructInst_throwFailedToElabField___rarg(x_668, x_1, x_676, x_691, x_671); -x_641 = x_692; -goto block_649; +x_600 = l_Lean_Elab_Term_StructInst_throwFailedToElabField___rarg(x_576, x_1, x_584, x_599, x_579); +x_549 = x_600; +goto block_557; } } else { -lean_object* x_803; lean_object* x_804; lean_object* x_805; lean_object* x_806; -lean_dec(x_668); -lean_dec(x_667); -lean_dec(x_666); -lean_dec(x_665); -lean_dec(x_664); -lean_dec(x_663); -lean_dec(x_661); -lean_dec(x_660); -lean_dec(x_656); -x_803 = lean_ctor_get(x_669, 0); -lean_inc(x_803); -x_804 = lean_ctor_get(x_669, 1); -lean_inc(x_804); -if (lean_is_exclusive(x_669)) { - lean_ctor_release(x_669, 0); - lean_ctor_release(x_669, 1); - x_805 = x_669; +lean_object* x_688; lean_object* x_689; lean_object* x_690; lean_object* x_691; +lean_dec(x_576); +lean_dec(x_575); +lean_dec(x_574); +lean_dec(x_573); +lean_dec(x_572); +lean_dec(x_571); +lean_dec(x_569); +lean_dec(x_568); +lean_dec(x_564); +x_688 = lean_ctor_get(x_577, 0); +lean_inc(x_688); +x_689 = lean_ctor_get(x_577, 1); +lean_inc(x_689); +if (lean_is_exclusive(x_577)) { + lean_ctor_release(x_577, 0); + lean_ctor_release(x_577, 1); + x_690 = x_577; } else { - lean_dec_ref(x_669); - x_805 = lean_box(0); + lean_dec_ref(x_577); + x_690 = lean_box(0); } -if (lean_is_scalar(x_805)) { - x_806 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_690)) { + x_691 = lean_alloc_ctor(1, 2, 0); } else { - x_806 = x_805; + x_691 = x_690; } -lean_ctor_set(x_806, 0, x_803); -lean_ctor_set(x_806, 1, x_804); -x_641 = x_806; -goto block_649; +lean_ctor_set(x_691, 0, x_688); +lean_ctor_set(x_691, 1, x_689); +x_549 = x_691; +goto block_557; } } else { -lean_object* x_807; -lean_dec(x_659); -lean_dec(x_658); -lean_dec(x_656); -lean_dec(x_655); +lean_object* x_692; +lean_dec(x_567); +lean_dec(x_566); +lean_dec(x_564); +lean_dec(x_563); lean_dec(x_2); -x_807 = lean_box(0); -x_650 = x_807; -goto block_654; +x_692 = lean_box(0); +x_558 = x_692; +goto block_562; } } else { -lean_object* x_808; -lean_dec(x_658); -lean_dec(x_656); -lean_dec(x_655); +lean_object* x_693; +lean_dec(x_566); +lean_dec(x_564); +lean_dec(x_563); lean_dec(x_2); -x_808 = lean_box(0); -x_650 = x_808; -goto block_654; +x_693 = lean_box(0); +x_558 = x_693; +goto block_562; } } -block_649: +block_557: { -if (lean_obj_tag(x_641) == 0) +if (lean_obj_tag(x_549) == 0) { -lean_object* x_642; lean_object* x_643; -x_642 = lean_ctor_get(x_641, 0); -lean_inc(x_642); -x_643 = lean_ctor_get(x_641, 1); -lean_inc(x_643); -lean_dec(x_641); -x_2 = x_642; -x_3 = x_640; -x_5 = x_643; +lean_object* x_550; lean_object* x_551; +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_2 = x_550; +x_3 = x_548; +x_5 = x_551; goto _start; } else { -lean_object* x_645; lean_object* x_646; lean_object* x_647; lean_object* x_648; -lean_dec(x_640); +lean_object* x_553; lean_object* x_554; lean_object* x_555; lean_object* x_556; +lean_dec(x_548); lean_dec(x_4); lean_dec(x_1); -x_645 = lean_ctor_get(x_641, 0); -lean_inc(x_645); -x_646 = lean_ctor_get(x_641, 1); -lean_inc(x_646); -if (lean_is_exclusive(x_641)) { - lean_ctor_release(x_641, 0); - lean_ctor_release(x_641, 1); - x_647 = x_641; +x_553 = lean_ctor_get(x_549, 0); +lean_inc(x_553); +x_554 = lean_ctor_get(x_549, 1); +lean_inc(x_554); +if (lean_is_exclusive(x_549)) { + lean_ctor_release(x_549, 0); + lean_ctor_release(x_549, 1); + x_555 = x_549; } else { - lean_dec_ref(x_641); - x_647 = lean_box(0); + lean_dec_ref(x_549); + x_555 = lean_box(0); } -if (lean_is_scalar(x_647)) { - x_648 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_555)) { + x_556 = lean_alloc_ctor(1, 2, 0); } else { - x_648 = x_647; + x_556 = x_555; } -lean_ctor_set(x_648, 0, x_645); -lean_ctor_set(x_648, 1, x_646); -return x_648; +lean_ctor_set(x_556, 0, x_553); +lean_ctor_set(x_556, 1, x_554); +return x_556; } } -block_654: +block_562: { -lean_object* x_651; lean_object* x_652; lean_object* x_653; -lean_dec(x_650); -x_651 = lean_ctor_get(x_639, 0); -lean_inc(x_651); -lean_dec(x_639); -x_652 = l_List_foldlM___main___at___private_Lean_Elab_StructInst_24__elabStruct___main___spec__1___closed__3; +lean_object* x_559; lean_object* x_560; lean_object* x_561; +lean_dec(x_558); +x_559 = lean_ctor_get(x_547, 0); +lean_inc(x_559); +lean_dec(x_547); +x_560 = l_List_foldlM___main___at___private_Lean_Elab_StructInst_24__elabStruct___main___spec__1___closed__3; lean_inc(x_4); -x_653 = l_Lean_Elab_Term_throwErrorAt___rarg(x_651, x_652, x_4, x_5); -lean_dec(x_651); -x_641 = x_653; -goto block_649; +x_561 = l_Lean_Elab_Term_throwErrorAt___rarg(x_559, x_560, x_4, x_5); +lean_dec(x_559); +x_549 = x_561; +goto block_557; } } } diff --git a/stage0/stdlib/Lean/Elab/Structure.c b/stage0/stdlib/Lean/Elab/Structure.c index c83516c2a2..85909737cf 100644 --- a/stage0/stdlib/Lean/Elab/Structure.c +++ b/stage0/stdlib/Lean/Elab/Structure.c @@ -116,6 +116,7 @@ lean_object* l___private_Lean_Elab_Structure_9__withParents(lean_object*); uint8_t l___private_Lean_Elab_Structure_7__containsFieldName(lean_object*, lean_object*); lean_object* l_Lean_Level_getLevelOffset___main(lean_object*); lean_object* l___private_Lean_Elab_Structure_13__withUsed(lean_object*); +lean_object* l_Lean_Elab_Term_elabTermEnsuringType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at___private_Lean_Elab_Structure_12__removeUnused___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Structure_5__checkParentIsStructure___closed__1; @@ -4791,121 +4792,146 @@ x_14 = l_Array_findMAux___main___at___private_Lean_Elab_Structure_6__findFieldIn x_15 = !lean_is_exclusive(x_5); if (x_15 == 0) { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; uint8_t x_25; uint8_t x_26; uint8_t x_27; lean_object* x_28; lean_object* x_29; -x_16 = lean_ctor_get(x_5, 0); -x_17 = lean_ctor_get(x_5, 1); -x_18 = lean_ctor_get(x_5, 2); -x_19 = lean_ctor_get(x_5, 3); -x_20 = lean_ctor_get(x_5, 4); -x_21 = lean_ctor_get(x_5, 5); -x_22 = lean_ctor_get(x_5, 6); -x_23 = lean_ctor_get(x_5, 7); -x_24 = lean_ctor_get(x_5, 8); -x_25 = lean_ctor_get_uint8(x_5, sizeof(void*)*10); -x_26 = lean_ctor_get_uint8(x_5, sizeof(void*)*10 + 1); -x_27 = lean_ctor_get_uint8(x_5, sizeof(void*)*10 + 2); -x_28 = lean_ctor_get(x_5, 9); -x_29 = l_Lean_Elab_replaceRef(x_11, x_28); -lean_dec(x_28); +lean_object* x_16; lean_object* x_17; +x_16 = lean_ctor_get(x_5, 9); +x_17 = l_Lean_Elab_replaceRef(x_11, x_16); +lean_dec(x_16); lean_dec(x_11); -lean_inc(x_29); -lean_inc(x_24); -lean_inc(x_23); -lean_inc(x_22); -lean_inc(x_21); -lean_inc(x_20); -lean_inc(x_19); -lean_inc(x_18); -lean_inc(x_17); -lean_inc(x_16); -lean_ctor_set(x_5, 9, x_29); +lean_ctor_set(x_5, 9, x_17); if (lean_obj_tag(x_14) == 0) { -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; -lean_dec(x_29); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_18 = lean_ctor_get(x_10, 4); +lean_inc(x_18); +x_19 = l_Lean_Syntax_getArgs(x_18); lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); -x_30 = lean_ctor_get(x_10, 4); -lean_inc(x_30); -x_31 = l_Lean_Syntax_getArgs(x_30); -lean_dec(x_30); lean_inc(x_10); -x_32 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__1), 4, 1); -lean_closure_set(x_32, 0, x_10); +x_20 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__1), 4, 1); +lean_closure_set(x_20, 0, x_10); lean_inc(x_5); -x_33 = l_Lean_Elab_Term_elabBinders___rarg(x_31, x_32, x_5, x_6); -lean_dec(x_31); -if (lean_obj_tag(x_33) == 0) +x_21 = l_Lean_Elab_Term_elabBinders___rarg(x_19, x_20, x_5, x_6); +lean_dec(x_19); +if (lean_obj_tag(x_21) == 0) { -lean_object* x_34; lean_object* x_35; -x_34 = lean_ctor_get(x_33, 0); -lean_inc(x_34); -x_35 = lean_ctor_get(x_34, 0); -lean_inc(x_35); -if (lean_obj_tag(x_35) == 0) +lean_object* x_22; lean_object* x_23; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +if (lean_obj_tag(x_23) == 0) { -lean_object* x_36; -x_36 = lean_ctor_get(x_34, 1); -lean_inc(x_36); -lean_dec(x_34); -if (lean_obj_tag(x_36) == 0) +lean_object* x_24; +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); +lean_dec(x_22); +if (lean_obj_tag(x_24) == 0) +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_25 = lean_ctor_get(x_21, 1); +lean_inc(x_25); +lean_dec(x_21); +x_26 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__3; +x_27 = l_Lean_Elab_Term_throwError___rarg(x_26, x_5, x_25); +return x_27; +} +else +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_21, 1); +lean_inc(x_28); +lean_dec(x_21); +x_29 = lean_ctor_get(x_24, 0); +lean_inc(x_29); +lean_dec(x_24); +lean_inc(x_5); +x_30 = l_Lean_Elab_Term_inferType(x_29, x_5, x_28); +if (lean_obj_tag(x_30) == 0) +{ +lean_object* x_31; lean_object* x_32; uint8_t x_33; lean_object* x_34; lean_object* x_35; +x_31 = lean_ctor_get(x_30, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_30, 1); +lean_inc(x_32); +lean_dec(x_30); +x_33 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); +lean_inc(x_12); +x_34 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__2___boxed), 10, 7); +lean_closure_set(x_34, 0, x_10); +lean_closure_set(x_34, 1, x_12); +lean_closure_set(x_34, 2, x_23); +lean_closure_set(x_34, 3, x_3); +lean_closure_set(x_34, 4, x_2); +lean_closure_set(x_34, 5, x_1); +lean_closure_set(x_34, 6, x_4); +x_35 = l_Lean_Elab_Term_withLocalDecl___rarg(x_12, x_33, x_31, x_34, x_5, x_32); +return x_35; +} +else +{ +uint8_t x_36; +lean_dec(x_5); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_36 = !lean_is_exclusive(x_30); +if (x_36 == 0) +{ +return x_30; +} +else { lean_object* x_37; lean_object* x_38; lean_object* x_39; -lean_dec(x_12); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_37 = lean_ctor_get(x_33, 1); +x_37 = lean_ctor_get(x_30, 0); +x_38 = lean_ctor_get(x_30, 1); +lean_inc(x_38); lean_inc(x_37); -lean_dec(x_33); -x_38 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__3; -x_39 = l_Lean_Elab_Term_throwError___rarg(x_38, x_5, x_37); +lean_dec(x_30); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); return x_39; } +} +} +} else { -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_33, 1); +lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; lean_object* x_44; lean_object* x_45; +x_40 = lean_ctor_get(x_21, 1); lean_inc(x_40); -lean_dec(x_33); -x_41 = lean_ctor_get(x_36, 0); +lean_dec(x_21); +x_41 = lean_ctor_get(x_22, 1); lean_inc(x_41); -lean_dec(x_36); -lean_inc(x_5); -x_42 = l_Lean_Elab_Term_inferType(x_41, x_5, x_40); -if (lean_obj_tag(x_42) == 0) -{ -lean_object* x_43; lean_object* x_44; uint8_t x_45; lean_object* x_46; lean_object* x_47; -x_43 = lean_ctor_get(x_42, 0); -lean_inc(x_43); -x_44 = lean_ctor_get(x_42, 1); -lean_inc(x_44); -lean_dec(x_42); -x_45 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); +lean_dec(x_22); +x_42 = lean_ctor_get(x_23, 0); +lean_inc(x_42); +lean_dec(x_23); +x_43 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); lean_inc(x_12); -x_46 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__2___boxed), 10, 7); -lean_closure_set(x_46, 0, x_10); -lean_closure_set(x_46, 1, x_12); -lean_closure_set(x_46, 2, x_35); -lean_closure_set(x_46, 3, x_3); -lean_closure_set(x_46, 4, x_2); -lean_closure_set(x_46, 5, x_1); -lean_closure_set(x_46, 6, x_4); -x_47 = l_Lean_Elab_Term_withLocalDecl___rarg(x_12, x_45, x_43, x_46, x_5, x_44); -return x_47; +x_44 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__2___boxed), 10, 7); +lean_closure_set(x_44, 0, x_10); +lean_closure_set(x_44, 1, x_12); +lean_closure_set(x_44, 2, x_41); +lean_closure_set(x_44, 3, x_3); +lean_closure_set(x_44, 4, x_2); +lean_closure_set(x_44, 5, x_1); +lean_closure_set(x_44, 6, x_4); +x_45 = l_Lean_Elab_Term_withLocalDecl___rarg(x_12, x_43, x_42, x_44, x_5, x_40); +return x_45; +} } else { -uint8_t x_48; +uint8_t x_46; lean_dec(x_5); lean_dec(x_12); lean_dec(x_10); @@ -4913,555 +4939,384 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_48 = !lean_is_exclusive(x_42); -if (x_48 == 0) +x_46 = !lean_is_exclusive(x_21); +if (x_46 == 0) { -return x_42; +return x_21; } else { -lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_49 = lean_ctor_get(x_42, 0); -x_50 = lean_ctor_get(x_42, 1); +lean_object* x_47; lean_object* x_48; lean_object* x_49; +x_47 = lean_ctor_get(x_21, 0); +x_48 = lean_ctor_get(x_21, 1); +lean_inc(x_48); +lean_inc(x_47); +lean_dec(x_21); +x_49 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_49, 0, x_47); +lean_ctor_set(x_49, 1, x_48); +return x_49; +} +} +} +else +{ +lean_object* x_50; lean_object* x_51; uint8_t x_52; +x_50 = lean_ctor_get(x_14, 0); lean_inc(x_50); -lean_inc(x_49); -lean_dec(x_42); -x_51 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_51, 0, x_49); -lean_ctor_set(x_51, 1, x_50); -return x_51; -} -} -} -} -else -{ -lean_object* x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; lean_object* x_56; lean_object* x_57; -x_52 = lean_ctor_get(x_33, 1); -lean_inc(x_52); -lean_dec(x_33); -x_53 = lean_ctor_get(x_34, 1); -lean_inc(x_53); -lean_dec(x_34); -x_54 = lean_ctor_get(x_35, 0); -lean_inc(x_54); -lean_dec(x_35); -x_55 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); -lean_inc(x_12); -x_56 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__2___boxed), 10, 7); -lean_closure_set(x_56, 0, x_10); -lean_closure_set(x_56, 1, x_12); -lean_closure_set(x_56, 2, x_53); -lean_closure_set(x_56, 3, x_3); -lean_closure_set(x_56, 4, x_2); -lean_closure_set(x_56, 5, x_1); -lean_closure_set(x_56, 6, x_4); -x_57 = l_Lean_Elab_Term_withLocalDecl___rarg(x_12, x_55, x_54, x_56, x_5, x_52); -return x_57; -} -} -else -{ -uint8_t x_58; -lean_dec(x_5); -lean_dec(x_12); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_58 = !lean_is_exclusive(x_33); -if (x_58 == 0) -{ -return x_33; -} -else -{ -lean_object* x_59; lean_object* x_60; lean_object* x_61; -x_59 = lean_ctor_get(x_33, 0); -x_60 = lean_ctor_get(x_33, 1); -lean_inc(x_60); -lean_inc(x_59); -lean_dec(x_33); -x_61 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_61, 0, x_59); -lean_ctor_set(x_61, 1, x_60); -return x_61; -} -} -} -else -{ -lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_62 = lean_ctor_get(x_14, 0); -lean_inc(x_62); if (lean_is_exclusive(x_14)) { lean_ctor_release(x_14, 0); - x_63 = x_14; + x_51 = x_14; } else { lean_dec_ref(x_14); - x_63 = lean_box(0); + x_51 = lean_box(0); } -x_64 = lean_ctor_get_uint8(x_62, sizeof(void*)*4); -switch (x_64) { +x_52 = lean_ctor_get_uint8(x_50, sizeof(void*)*4); +switch (x_52) { case 0: { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; -lean_dec(x_63); -lean_dec(x_62); -lean_dec(x_29); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); +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_dec(x_51); +lean_dec(x_50); lean_dec(x_10); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_65 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_65, 0, x_12); -x_66 = l___private_Lean_Elab_Structure_8__processSubfields___main___rarg___closed__3; -x_67 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_67, 0, x_66); -lean_ctor_set(x_67, 1, x_65); -x_68 = l_Lean_Elab_Command_throwAlreadyDeclaredUniverseLevel___rarg___closed__5; -x_69 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_69, 0, x_67); -lean_ctor_set(x_69, 1, x_68); -x_70 = l_Lean_Elab_Term_throwError___rarg(x_69, x_5, x_6); -return x_70; +x_53 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_53, 0, x_12); +x_54 = l___private_Lean_Elab_Structure_8__processSubfields___main___rarg___closed__3; +x_55 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_55, 0, x_54); +lean_ctor_set(x_55, 1, x_53); +x_56 = l_Lean_Elab_Command_throwAlreadyDeclaredUniverseLevel___rarg___closed__5; +x_57 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_57, 0, x_55); +lean_ctor_set(x_57, 1, x_56); +x_58 = l_Lean_Elab_Term_throwError___rarg(x_57, x_5, x_6); +return x_58; } case 1: { -lean_object* x_71; -x_71 = lean_ctor_get(x_10, 6); -lean_inc(x_71); -if (lean_obj_tag(x_71) == 0) +lean_object* x_59; +x_59 = lean_ctor_get(x_10, 6); +lean_inc(x_59); +if (lean_obj_tag(x_59) == 0) { -lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; -lean_dec(x_63); -lean_dec(x_62); -lean_dec(x_29); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; +lean_dec(x_51); +lean_dec(x_50); lean_dec(x_10); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_72 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_72, 0, x_12); -x_73 = l___private_Lean_Elab_Structure_8__processSubfields___main___rarg___closed__3; -x_74 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_74, 0, x_73); -lean_ctor_set(x_74, 1, x_72); -x_75 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__6; -x_76 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_76, 0, x_74); -lean_ctor_set(x_76, 1, x_75); -x_77 = l_Lean_Elab_Term_throwError___rarg(x_76, x_5, x_6); -return x_77; +x_60 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_60, 0, x_12); +x_61 = l___private_Lean_Elab_Structure_8__processSubfields___main___rarg___closed__3; +x_62 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_62, 0, x_61); +lean_ctor_set(x_62, 1, x_60); +x_63 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__6; +x_64 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_64, 0, x_62); +lean_ctor_set(x_64, 1, x_63); +x_65 = l_Lean_Elab_Term_throwError___rarg(x_64, x_5, x_6); +return x_65; } else { -lean_object* x_78; lean_object* x_79; lean_object* x_80; uint8_t x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; uint8_t x_87; uint8_t x_88; -x_78 = lean_ctor_get(x_62, 0); -lean_inc(x_78); -x_79 = lean_ctor_get(x_62, 1); -lean_inc(x_79); -x_80 = lean_ctor_get(x_62, 2); -lean_inc(x_80); -x_81 = lean_ctor_get_uint8(x_62, sizeof(void*)*4 + 1); -if (lean_is_exclusive(x_62)) { - lean_ctor_release(x_62, 0); - lean_ctor_release(x_62, 1); - lean_ctor_release(x_62, 2); - lean_ctor_release(x_62, 3); - x_82 = x_62; +lean_object* x_66; lean_object* x_67; lean_object* x_68; uint8_t x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; uint8_t x_75; uint8_t x_76; +x_66 = lean_ctor_get(x_50, 0); +lean_inc(x_66); +x_67 = lean_ctor_get(x_50, 1); +lean_inc(x_67); +x_68 = lean_ctor_get(x_50, 2); +lean_inc(x_68); +x_69 = lean_ctor_get_uint8(x_50, sizeof(void*)*4 + 1); +if (lean_is_exclusive(x_50)) { + lean_ctor_release(x_50, 0); + lean_ctor_release(x_50, 1); + lean_ctor_release(x_50, 2); + lean_ctor_release(x_50, 3); + x_70 = x_50; } else { - lean_dec_ref(x_62); - x_82 = lean_box(0); + lean_dec_ref(x_50); + x_70 = lean_box(0); } -x_83 = lean_ctor_get(x_71, 0); -lean_inc(x_83); -if (lean_is_exclusive(x_71)) { - lean_ctor_release(x_71, 0); - x_84 = x_71; +x_71 = lean_ctor_get(x_59, 0); +lean_inc(x_71); +if (lean_is_exclusive(x_59)) { + lean_ctor_release(x_59, 0); + x_72 = x_59; } else { - lean_dec_ref(x_71); - x_84 = lean_box(0); + lean_dec_ref(x_59); + x_72 = lean_box(0); } -x_85 = lean_ctor_get(x_10, 4); -lean_inc(x_85); -x_86 = l_Lean_Syntax_getArgs(x_85); -lean_dec(x_85); -x_87 = l_Array_isEmpty___rarg(x_86); -lean_dec(x_86); -if (x_87 == 0) +x_73 = lean_ctor_get(x_10, 4); +lean_inc(x_73); +x_74 = l_Lean_Syntax_getArgs(x_73); +lean_dec(x_73); +x_75 = l_Array_isEmpty___rarg(x_74); +lean_dec(x_74); +if (x_75 == 0) { -uint8_t x_147; -x_147 = 1; -x_88 = x_147; -goto block_146; +uint8_t x_125; +x_125 = 1; +x_76 = x_125; +goto block_124; } else { -lean_object* x_148; -x_148 = lean_ctor_get(x_10, 5); -lean_inc(x_148); -if (lean_obj_tag(x_148) == 0) +lean_object* x_126; +x_126 = lean_ctor_get(x_10, 5); +lean_inc(x_126); +if (lean_obj_tag(x_126) == 0) { -uint8_t x_149; -x_149 = 0; -x_88 = x_149; -goto block_146; +uint8_t x_127; +x_127 = 0; +x_76 = x_127; +goto block_124; } else { -uint8_t x_150; -lean_dec(x_148); -x_150 = 1; -x_88 = x_150; -goto block_146; +uint8_t x_128; +lean_dec(x_126); +x_128 = 1; +x_76 = x_128; +goto block_124; } } -block_146: +block_124: { -uint8_t x_89; -if (x_88 == 0) +uint8_t x_77; +if (x_76 == 0) { -uint8_t x_144; -x_144 = 0; -x_89 = x_144; -goto block_143; +uint8_t x_122; +x_122 = 0; +x_77 = x_122; +goto block_121; } else { -uint8_t x_145; -x_145 = 1; -x_89 = x_145; -goto block_143; +uint8_t x_123; +x_123 = 1; +x_77 = x_123; +goto block_121; } -block_143: +block_121: { -lean_object* x_90; -if (x_89 == 0) +lean_object* x_78; +if (x_77 == 0) { lean_dec(x_12); lean_dec(x_10); -x_90 = x_6; -goto block_122; +x_78 = x_6; +goto block_100; } else { -lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; -lean_dec(x_84); -lean_dec(x_83); -lean_dec(x_82); -lean_dec(x_80); -lean_dec(x_79); -lean_dec(x_78); -lean_dec(x_63); -lean_dec(x_29); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); +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_dec(x_72); +lean_dec(x_71); +lean_dec(x_70); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_51); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_123 = lean_ctor_get(x_10, 5); -lean_inc(x_123); +x_101 = lean_ctor_get(x_10, 5); +lean_inc(x_101); lean_dec(x_10); -x_124 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_124, 0, x_12); -x_125 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__9; -x_126 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_126, 0, x_125); -lean_ctor_set(x_126, 1, x_124); -x_127 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__12; -x_128 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_128, 0, x_126); -lean_ctor_set(x_128, 1, x_127); -if (lean_obj_tag(x_123) == 0) -{ -lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; uint8_t x_133; -x_129 = l_Lean_Syntax_inhabited; -x_130 = l_Option_get_x21___rarg___closed__3; -x_131 = lean_panic_fn(x_129, x_130); -x_132 = l_Lean_Elab_Term_throwErrorAt___rarg(x_131, x_128, x_5, x_6); -lean_dec(x_131); -x_133 = !lean_is_exclusive(x_132); -if (x_133 == 0) -{ -return x_132; -} -else -{ -lean_object* x_134; lean_object* x_135; lean_object* x_136; -x_134 = lean_ctor_get(x_132, 0); -x_135 = lean_ctor_get(x_132, 1); -lean_inc(x_135); -lean_inc(x_134); -lean_dec(x_132); -x_136 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_136, 0, x_134); -lean_ctor_set(x_136, 1, x_135); -return x_136; -} -} -else -{ -lean_object* x_137; lean_object* x_138; uint8_t x_139; -x_137 = lean_ctor_get(x_123, 0); -lean_inc(x_137); -lean_dec(x_123); -x_138 = l_Lean_Elab_Term_throwErrorAt___rarg(x_137, x_128, x_5, x_6); -lean_dec(x_137); -x_139 = !lean_is_exclusive(x_138); -if (x_139 == 0) -{ -return x_138; -} -else -{ -lean_object* x_140; lean_object* x_141; lean_object* x_142; -x_140 = lean_ctor_get(x_138, 0); -x_141 = lean_ctor_get(x_138, 1); -lean_inc(x_141); -lean_inc(x_140); -lean_dec(x_138); -x_142 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_142, 0, x_140); -lean_ctor_set(x_142, 1, x_141); -return x_142; -} -} -} -block_122: -{ -lean_object* x_91; -lean_inc(x_5); -lean_inc(x_80); -x_91 = l_Lean_Elab_Term_inferType(x_80, x_5, x_90); -if (lean_obj_tag(x_91) == 0) -{ -lean_object* x_92; lean_object* x_93; lean_object* x_94; uint8_t x_95; lean_object* x_96; -x_92 = lean_ctor_get(x_91, 0); -lean_inc(x_92); -x_93 = lean_ctor_get(x_91, 1); -lean_inc(x_93); -lean_dec(x_91); -if (lean_is_scalar(x_84)) { - x_94 = lean_alloc_ctor(1, 1, 0); -} else { - x_94 = x_84; -} -lean_ctor_set(x_94, 0, x_92); -x_95 = 1; -lean_inc(x_5); -lean_inc(x_94); -lean_inc(x_83); -x_96 = l_Lean_Elab_Term_elabTerm(x_83, x_94, x_95, x_5, x_93); -if (lean_obj_tag(x_96) == 0) -{ -lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -x_97 = lean_ctor_get(x_96, 0); -lean_inc(x_97); -x_98 = lean_ctor_get(x_96, 1); -lean_inc(x_98); -lean_dec(x_96); -x_99 = l_Lean_Elab_replaceRef(x_83, x_29); -lean_dec(x_29); -lean_dec(x_83); -x_100 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_100, 0, x_16); -lean_ctor_set(x_100, 1, x_17); -lean_ctor_set(x_100, 2, x_18); -lean_ctor_set(x_100, 3, x_19); -lean_ctor_set(x_100, 4, x_20); -lean_ctor_set(x_100, 5, x_21); -lean_ctor_set(x_100, 6, x_22); -lean_ctor_set(x_100, 7, x_23); -lean_ctor_set(x_100, 8, x_24); -lean_ctor_set(x_100, 9, x_99); -lean_ctor_set_uint8(x_100, sizeof(void*)*10, x_25); -lean_ctor_set_uint8(x_100, sizeof(void*)*10 + 1, x_26); -lean_ctor_set_uint8(x_100, sizeof(void*)*10 + 2, x_27); -x_101 = l_Lean_Elab_Term_ensureHasType(x_94, x_97, x_100, x_98); +x_102 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_102, 0, x_12); +x_103 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__9; +x_104 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_104, 0, x_103); +lean_ctor_set(x_104, 1, x_102); +x_105 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__12; +x_106 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_106, 0, x_104); +lean_ctor_set(x_106, 1, x_105); if (lean_obj_tag(x_101) == 0) { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; -x_102 = lean_ctor_get(x_101, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_101, 1); -lean_inc(x_103); +lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; uint8_t x_111; +x_107 = l_Lean_Syntax_inhabited; +x_108 = l_Option_get_x21___rarg___closed__3; +x_109 = lean_panic_fn(x_107, x_108); +x_110 = l_Lean_Elab_Term_throwErrorAt___rarg(x_109, x_106, x_5, x_6); +lean_dec(x_109); +x_111 = !lean_is_exclusive(x_110); +if (x_111 == 0) +{ +return x_110; +} +else +{ +lean_object* x_112; lean_object* x_113; lean_object* x_114; +x_112 = lean_ctor_get(x_110, 0); +x_113 = lean_ctor_get(x_110, 1); +lean_inc(x_113); +lean_inc(x_112); +lean_dec(x_110); +x_114 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_114, 0, x_112); +lean_ctor_set(x_114, 1, x_113); +return x_114; +} +} +else +{ +lean_object* x_115; lean_object* x_116; uint8_t x_117; +x_115 = lean_ctor_get(x_101, 0); +lean_inc(x_115); lean_dec(x_101); -if (lean_is_scalar(x_63)) { - x_104 = lean_alloc_ctor(1, 1, 0); -} else { - x_104 = x_63; +x_116 = l_Lean_Elab_Term_throwErrorAt___rarg(x_115, x_106, x_5, x_6); +lean_dec(x_115); +x_117 = !lean_is_exclusive(x_116); +if (x_117 == 0) +{ +return x_116; } -lean_ctor_set(x_104, 0, x_102); -if (lean_is_scalar(x_82)) { - x_105 = lean_alloc_ctor(0, 4, 2); -} else { - x_105 = x_82; +else +{ +lean_object* x_118; lean_object* x_119; lean_object* x_120; +x_118 = lean_ctor_get(x_116, 0); +x_119 = lean_ctor_get(x_116, 1); +lean_inc(x_119); +lean_inc(x_118); +lean_dec(x_116); +x_120 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_120, 0, x_118); +lean_ctor_set(x_120, 1, x_119); +return x_120; } -lean_ctor_set(x_105, 0, x_78); -lean_ctor_set(x_105, 1, x_79); -lean_ctor_set(x_105, 2, x_80); -lean_ctor_set(x_105, 3, x_104); -lean_ctor_set_uint8(x_105, sizeof(void*)*4, x_64); -lean_ctor_set_uint8(x_105, sizeof(void*)*4 + 1, x_81); -x_106 = lean_array_push(x_3, x_105); -x_107 = lean_unsigned_to_nat(1u); -x_108 = lean_nat_add(x_2, x_107); +} +} +block_100: +{ +lean_object* x_79; +lean_inc(x_5); +lean_inc(x_68); +x_79 = l_Lean_Elab_Term_inferType(x_68, x_5, x_78); +if (lean_obj_tag(x_79) == 0) +{ +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; +x_80 = lean_ctor_get(x_79, 0); +lean_inc(x_80); +x_81 = lean_ctor_get(x_79, 1); +lean_inc(x_81); +lean_dec(x_79); +if (lean_is_scalar(x_72)) { + x_82 = lean_alloc_ctor(1, 1, 0); +} else { + x_82 = x_72; +} +lean_ctor_set(x_82, 0, x_80); +lean_inc(x_5); +x_83 = l_Lean_Elab_Term_elabTermEnsuringType(x_71, x_82, x_5, x_81); +if (lean_obj_tag(x_83) == 0) +{ +lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; +x_84 = lean_ctor_get(x_83, 0); +lean_inc(x_84); +x_85 = lean_ctor_get(x_83, 1); +lean_inc(x_85); +lean_dec(x_83); +if (lean_is_scalar(x_51)) { + x_86 = lean_alloc_ctor(1, 1, 0); +} else { + x_86 = x_51; +} +lean_ctor_set(x_86, 0, x_84); +if (lean_is_scalar(x_70)) { + x_87 = lean_alloc_ctor(0, 4, 2); +} else { + x_87 = x_70; +} +lean_ctor_set(x_87, 0, x_66); +lean_ctor_set(x_87, 1, x_67); +lean_ctor_set(x_87, 2, x_68); +lean_ctor_set(x_87, 3, x_86); +lean_ctor_set_uint8(x_87, sizeof(void*)*4, x_52); +lean_ctor_set_uint8(x_87, sizeof(void*)*4 + 1, x_69); +x_88 = lean_array_push(x_3, x_87); +x_89 = lean_unsigned_to_nat(1u); +x_90 = lean_nat_add(x_2, x_89); lean_dec(x_2); -x_2 = x_108; -x_3 = x_106; -x_6 = x_103; +x_2 = x_90; +x_3 = x_88; +x_6 = x_85; goto _start; } else { -uint8_t x_110; -lean_dec(x_82); -lean_dec(x_80); -lean_dec(x_79); -lean_dec(x_78); -lean_dec(x_63); +uint8_t x_92; +lean_dec(x_70); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_51); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_110 = !lean_is_exclusive(x_101); -if (x_110 == 0) +x_92 = !lean_is_exclusive(x_83); +if (x_92 == 0) { -return x_101; +return x_83; } else { -lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_111 = lean_ctor_get(x_101, 0); -x_112 = lean_ctor_get(x_101, 1); -lean_inc(x_112); -lean_inc(x_111); -lean_dec(x_101); -x_113 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_113, 0, x_111); -lean_ctor_set(x_113, 1, x_112); -return x_113; -} -} -} -else -{ -uint8_t x_114; -lean_dec(x_94); +lean_object* x_93; lean_object* x_94; lean_object* x_95; +x_93 = lean_ctor_get(x_83, 0); +x_94 = lean_ctor_get(x_83, 1); +lean_inc(x_94); +lean_inc(x_93); lean_dec(x_83); -lean_dec(x_82); -lean_dec(x_80); -lean_dec(x_79); -lean_dec(x_78); -lean_dec(x_63); +x_95 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_95, 0, x_93); +lean_ctor_set(x_95, 1, x_94); +return x_95; +} +} +} +else +{ +uint8_t x_96; +lean_dec(x_72); +lean_dec(x_71); +lean_dec(x_70); +lean_dec(x_68); +lean_dec(x_67); +lean_dec(x_66); +lean_dec(x_51); lean_dec(x_5); -lean_dec(x_29); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_114 = !lean_is_exclusive(x_96); -if (x_114 == 0) +x_96 = !lean_is_exclusive(x_79); +if (x_96 == 0) { -return x_96; +return x_79; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_96, 0); -x_116 = lean_ctor_get(x_96, 1); -lean_inc(x_116); -lean_inc(x_115); -lean_dec(x_96); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; -} -} -} -else -{ -uint8_t x_118; -lean_dec(x_84); -lean_dec(x_83); -lean_dec(x_82); -lean_dec(x_80); +lean_object* x_97; lean_object* x_98; lean_object* x_99; +x_97 = lean_ctor_get(x_79, 0); +x_98 = lean_ctor_get(x_79, 1); +lean_inc(x_98); +lean_inc(x_97); lean_dec(x_79); -lean_dec(x_78); -lean_dec(x_63); -lean_dec(x_5); -lean_dec(x_29); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_118 = !lean_is_exclusive(x_91); -if (x_118 == 0) -{ -return x_91; -} -else -{ -lean_object* x_119; lean_object* x_120; lean_object* x_121; -x_119 = lean_ctor_get(x_91, 0); -x_120 = lean_ctor_get(x_91, 1); -lean_inc(x_120); -lean_inc(x_119); -lean_dec(x_91); -x_121 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_121, 0, x_119); -lean_ctor_set(x_121, 1, x_120); -return x_121; +x_99 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_99, 0, x_97); +lean_ctor_set(x_99, 1, x_98); +return x_99; } } } @@ -5471,746 +5326,600 @@ return x_121; } default: { -lean_object* x_151; lean_object* x_152; lean_object* x_153; -lean_dec(x_63); -lean_dec(x_62); -lean_dec(x_29); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); +lean_object* x_129; lean_object* x_130; lean_object* x_131; +lean_dec(x_51); +lean_dec(x_50); lean_dec(x_12); lean_dec(x_10); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_151 = l_Lean_Elab_Term_getFVarLocalDecl_x21___closed__1; -x_152 = l_unreachable_x21___rarg(x_151); -x_153 = lean_apply_2(x_152, x_5, x_6); -return x_153; +x_129 = l_Lean_Elab_Term_getFVarLocalDecl_x21___closed__1; +x_130 = l_unreachable_x21___rarg(x_129); +x_131 = lean_apply_2(x_130, x_5, x_6); +return x_131; } } } } else { -lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; uint8_t x_163; uint8_t x_164; uint8_t x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; -x_154 = lean_ctor_get(x_5, 0); -x_155 = lean_ctor_get(x_5, 1); -x_156 = lean_ctor_get(x_5, 2); -x_157 = lean_ctor_get(x_5, 3); -x_158 = lean_ctor_get(x_5, 4); -x_159 = lean_ctor_get(x_5, 5); -x_160 = lean_ctor_get(x_5, 6); -x_161 = lean_ctor_get(x_5, 7); -x_162 = lean_ctor_get(x_5, 8); -x_163 = lean_ctor_get_uint8(x_5, sizeof(void*)*10); -x_164 = lean_ctor_get_uint8(x_5, sizeof(void*)*10 + 1); -x_165 = lean_ctor_get_uint8(x_5, sizeof(void*)*10 + 2); -x_166 = lean_ctor_get(x_5, 9); -lean_inc(x_166); -lean_inc(x_162); -lean_inc(x_161); -lean_inc(x_160); -lean_inc(x_159); -lean_inc(x_158); -lean_inc(x_157); -lean_inc(x_156); -lean_inc(x_155); -lean_inc(x_154); +lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; uint8_t x_141; uint8_t x_142; uint8_t x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; +x_132 = lean_ctor_get(x_5, 0); +x_133 = lean_ctor_get(x_5, 1); +x_134 = lean_ctor_get(x_5, 2); +x_135 = lean_ctor_get(x_5, 3); +x_136 = lean_ctor_get(x_5, 4); +x_137 = lean_ctor_get(x_5, 5); +x_138 = lean_ctor_get(x_5, 6); +x_139 = lean_ctor_get(x_5, 7); +x_140 = lean_ctor_get(x_5, 8); +x_141 = lean_ctor_get_uint8(x_5, sizeof(void*)*10); +x_142 = lean_ctor_get_uint8(x_5, sizeof(void*)*10 + 1); +x_143 = lean_ctor_get_uint8(x_5, sizeof(void*)*10 + 2); +x_144 = lean_ctor_get(x_5, 9); +lean_inc(x_144); +lean_inc(x_140); +lean_inc(x_139); +lean_inc(x_138); +lean_inc(x_137); +lean_inc(x_136); +lean_inc(x_135); +lean_inc(x_134); +lean_inc(x_133); +lean_inc(x_132); lean_dec(x_5); -x_167 = l_Lean_Elab_replaceRef(x_11, x_166); -lean_dec(x_166); +x_145 = l_Lean_Elab_replaceRef(x_11, x_144); +lean_dec(x_144); lean_dec(x_11); -lean_inc(x_167); -lean_inc(x_162); -lean_inc(x_161); -lean_inc(x_160); -lean_inc(x_159); -lean_inc(x_158); -lean_inc(x_157); -lean_inc(x_156); -lean_inc(x_155); -lean_inc(x_154); -x_168 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_168, 0, x_154); -lean_ctor_set(x_168, 1, x_155); -lean_ctor_set(x_168, 2, x_156); -lean_ctor_set(x_168, 3, x_157); -lean_ctor_set(x_168, 4, x_158); -lean_ctor_set(x_168, 5, x_159); -lean_ctor_set(x_168, 6, x_160); -lean_ctor_set(x_168, 7, x_161); -lean_ctor_set(x_168, 8, x_162); -lean_ctor_set(x_168, 9, x_167); -lean_ctor_set_uint8(x_168, sizeof(void*)*10, x_163); -lean_ctor_set_uint8(x_168, sizeof(void*)*10 + 1, x_164); -lean_ctor_set_uint8(x_168, sizeof(void*)*10 + 2, x_165); +x_146 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_146, 0, x_132); +lean_ctor_set(x_146, 1, x_133); +lean_ctor_set(x_146, 2, x_134); +lean_ctor_set(x_146, 3, x_135); +lean_ctor_set(x_146, 4, x_136); +lean_ctor_set(x_146, 5, x_137); +lean_ctor_set(x_146, 6, x_138); +lean_ctor_set(x_146, 7, x_139); +lean_ctor_set(x_146, 8, x_140); +lean_ctor_set(x_146, 9, x_145); +lean_ctor_set_uint8(x_146, sizeof(void*)*10, x_141); +lean_ctor_set_uint8(x_146, sizeof(void*)*10 + 1, x_142); +lean_ctor_set_uint8(x_146, sizeof(void*)*10 + 2, x_143); if (lean_obj_tag(x_14) == 0) { -lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; -lean_dec(x_167); -lean_dec(x_162); -lean_dec(x_161); -lean_dec(x_160); -lean_dec(x_159); -lean_dec(x_158); -lean_dec(x_157); -lean_dec(x_156); -lean_dec(x_155); -lean_dec(x_154); -x_169 = lean_ctor_get(x_10, 4); -lean_inc(x_169); -x_170 = l_Lean_Syntax_getArgs(x_169); -lean_dec(x_169); +lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; +x_147 = lean_ctor_get(x_10, 4); +lean_inc(x_147); +x_148 = l_Lean_Syntax_getArgs(x_147); +lean_dec(x_147); lean_inc(x_10); -x_171 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__1), 4, 1); -lean_closure_set(x_171, 0, x_10); -lean_inc(x_168); -x_172 = l_Lean_Elab_Term_elabBinders___rarg(x_170, x_171, x_168, x_6); -lean_dec(x_170); -if (lean_obj_tag(x_172) == 0) +x_149 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__1), 4, 1); +lean_closure_set(x_149, 0, x_10); +lean_inc(x_146); +x_150 = l_Lean_Elab_Term_elabBinders___rarg(x_148, x_149, x_146, x_6); +lean_dec(x_148); +if (lean_obj_tag(x_150) == 0) { -lean_object* x_173; lean_object* x_174; -x_173 = lean_ctor_get(x_172, 0); -lean_inc(x_173); -x_174 = lean_ctor_get(x_173, 0); -lean_inc(x_174); -if (lean_obj_tag(x_174) == 0) +lean_object* x_151; lean_object* x_152; +x_151 = lean_ctor_get(x_150, 0); +lean_inc(x_151); +x_152 = lean_ctor_get(x_151, 0); +lean_inc(x_152); +if (lean_obj_tag(x_152) == 0) { -lean_object* x_175; -x_175 = lean_ctor_get(x_173, 1); -lean_inc(x_175); -lean_dec(x_173); -if (lean_obj_tag(x_175) == 0) +lean_object* x_153; +x_153 = lean_ctor_get(x_151, 1); +lean_inc(x_153); +lean_dec(x_151); +if (lean_obj_tag(x_153) == 0) { -lean_object* x_176; lean_object* x_177; lean_object* x_178; +lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_dec(x_12); lean_dec(x_10); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_176 = lean_ctor_get(x_172, 1); +x_154 = lean_ctor_get(x_150, 1); +lean_inc(x_154); +lean_dec(x_150); +x_155 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__3; +x_156 = l_Lean_Elab_Term_throwError___rarg(x_155, x_146, x_154); +return x_156; +} +else +{ +lean_object* x_157; lean_object* x_158; lean_object* x_159; +x_157 = lean_ctor_get(x_150, 1); +lean_inc(x_157); +lean_dec(x_150); +x_158 = lean_ctor_get(x_153, 0); +lean_inc(x_158); +lean_dec(x_153); +lean_inc(x_146); +x_159 = l_Lean_Elab_Term_inferType(x_158, x_146, x_157); +if (lean_obj_tag(x_159) == 0) +{ +lean_object* x_160; lean_object* x_161; uint8_t x_162; lean_object* x_163; lean_object* x_164; +x_160 = lean_ctor_get(x_159, 0); +lean_inc(x_160); +x_161 = lean_ctor_get(x_159, 1); +lean_inc(x_161); +lean_dec(x_159); +x_162 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); +lean_inc(x_12); +x_163 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__2___boxed), 10, 7); +lean_closure_set(x_163, 0, x_10); +lean_closure_set(x_163, 1, x_12); +lean_closure_set(x_163, 2, x_152); +lean_closure_set(x_163, 3, x_3); +lean_closure_set(x_163, 4, x_2); +lean_closure_set(x_163, 5, x_1); +lean_closure_set(x_163, 6, x_4); +x_164 = l_Lean_Elab_Term_withLocalDecl___rarg(x_12, x_162, x_160, x_163, x_146, x_161); +return x_164; +} +else +{ +lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; +lean_dec(x_146); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_165 = lean_ctor_get(x_159, 0); +lean_inc(x_165); +x_166 = lean_ctor_get(x_159, 1); +lean_inc(x_166); +if (lean_is_exclusive(x_159)) { + lean_ctor_release(x_159, 0); + lean_ctor_release(x_159, 1); + x_167 = x_159; +} else { + lean_dec_ref(x_159); + x_167 = lean_box(0); +} +if (lean_is_scalar(x_167)) { + x_168 = lean_alloc_ctor(1, 2, 0); +} else { + x_168 = x_167; +} +lean_ctor_set(x_168, 0, x_165); +lean_ctor_set(x_168, 1, x_166); +return x_168; +} +} +} +else +{ +lean_object* x_169; lean_object* x_170; lean_object* x_171; uint8_t x_172; lean_object* x_173; lean_object* x_174; +x_169 = lean_ctor_get(x_150, 1); +lean_inc(x_169); +lean_dec(x_150); +x_170 = lean_ctor_get(x_151, 1); +lean_inc(x_170); +lean_dec(x_151); +x_171 = lean_ctor_get(x_152, 0); +lean_inc(x_171); +lean_dec(x_152); +x_172 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); +lean_inc(x_12); +x_173 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__2___boxed), 10, 7); +lean_closure_set(x_173, 0, x_10); +lean_closure_set(x_173, 1, x_12); +lean_closure_set(x_173, 2, x_170); +lean_closure_set(x_173, 3, x_3); +lean_closure_set(x_173, 4, x_2); +lean_closure_set(x_173, 5, x_1); +lean_closure_set(x_173, 6, x_4); +x_174 = l_Lean_Elab_Term_withLocalDecl___rarg(x_12, x_172, x_171, x_173, x_146, x_169); +return x_174; +} +} +else +{ +lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; +lean_dec(x_146); +lean_dec(x_12); +lean_dec(x_10); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_175 = lean_ctor_get(x_150, 0); +lean_inc(x_175); +x_176 = lean_ctor_get(x_150, 1); lean_inc(x_176); -lean_dec(x_172); -x_177 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__3; -x_178 = l_Lean_Elab_Term_throwError___rarg(x_177, x_168, x_176); +if (lean_is_exclusive(x_150)) { + lean_ctor_release(x_150, 0); + lean_ctor_release(x_150, 1); + x_177 = x_150; +} else { + lean_dec_ref(x_150); + x_177 = lean_box(0); +} +if (lean_is_scalar(x_177)) { + x_178 = lean_alloc_ctor(1, 2, 0); +} else { + x_178 = x_177; +} +lean_ctor_set(x_178, 0, x_175); +lean_ctor_set(x_178, 1, x_176); return x_178; } +} else { -lean_object* x_179; lean_object* x_180; lean_object* x_181; -x_179 = lean_ctor_get(x_172, 1); +lean_object* x_179; lean_object* x_180; uint8_t x_181; +x_179 = lean_ctor_get(x_14, 0); lean_inc(x_179); -lean_dec(x_172); -x_180 = lean_ctor_get(x_175, 0); -lean_inc(x_180); -lean_dec(x_175); -lean_inc(x_168); -x_181 = l_Lean_Elab_Term_inferType(x_180, x_168, x_179); -if (lean_obj_tag(x_181) == 0) -{ -lean_object* x_182; lean_object* x_183; uint8_t x_184; lean_object* x_185; lean_object* x_186; -x_182 = lean_ctor_get(x_181, 0); -lean_inc(x_182); -x_183 = lean_ctor_get(x_181, 1); -lean_inc(x_183); -lean_dec(x_181); -x_184 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); -lean_inc(x_12); -x_185 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__2___boxed), 10, 7); -lean_closure_set(x_185, 0, x_10); -lean_closure_set(x_185, 1, x_12); -lean_closure_set(x_185, 2, x_174); -lean_closure_set(x_185, 3, x_3); -lean_closure_set(x_185, 4, x_2); -lean_closure_set(x_185, 5, x_1); -lean_closure_set(x_185, 6, x_4); -x_186 = l_Lean_Elab_Term_withLocalDecl___rarg(x_12, x_184, x_182, x_185, x_168, x_183); -return x_186; -} -else -{ -lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; -lean_dec(x_168); -lean_dec(x_12); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_187 = lean_ctor_get(x_181, 0); -lean_inc(x_187); -x_188 = lean_ctor_get(x_181, 1); -lean_inc(x_188); -if (lean_is_exclusive(x_181)) { - lean_ctor_release(x_181, 0); - lean_ctor_release(x_181, 1); - x_189 = x_181; -} else { - lean_dec_ref(x_181); - x_189 = lean_box(0); -} -if (lean_is_scalar(x_189)) { - x_190 = lean_alloc_ctor(1, 2, 0); -} else { - x_190 = x_189; -} -lean_ctor_set(x_190, 0, x_187); -lean_ctor_set(x_190, 1, x_188); -return x_190; -} -} -} -else -{ -lean_object* x_191; lean_object* x_192; lean_object* x_193; uint8_t x_194; lean_object* x_195; lean_object* x_196; -x_191 = lean_ctor_get(x_172, 1); -lean_inc(x_191); -lean_dec(x_172); -x_192 = lean_ctor_get(x_173, 1); -lean_inc(x_192); -lean_dec(x_173); -x_193 = lean_ctor_get(x_174, 0); -lean_inc(x_193); -lean_dec(x_174); -x_194 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); -lean_inc(x_12); -x_195 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_10__withFields___main___rarg___lambda__2___boxed), 10, 7); -lean_closure_set(x_195, 0, x_10); -lean_closure_set(x_195, 1, x_12); -lean_closure_set(x_195, 2, x_192); -lean_closure_set(x_195, 3, x_3); -lean_closure_set(x_195, 4, x_2); -lean_closure_set(x_195, 5, x_1); -lean_closure_set(x_195, 6, x_4); -x_196 = l_Lean_Elab_Term_withLocalDecl___rarg(x_12, x_194, x_193, x_195, x_168, x_191); -return x_196; -} -} -else -{ -lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; -lean_dec(x_168); -lean_dec(x_12); -lean_dec(x_10); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_197 = lean_ctor_get(x_172, 0); -lean_inc(x_197); -x_198 = lean_ctor_get(x_172, 1); -lean_inc(x_198); -if (lean_is_exclusive(x_172)) { - lean_ctor_release(x_172, 0); - lean_ctor_release(x_172, 1); - x_199 = x_172; -} else { - lean_dec_ref(x_172); - x_199 = lean_box(0); -} -if (lean_is_scalar(x_199)) { - x_200 = lean_alloc_ctor(1, 2, 0); -} else { - x_200 = x_199; -} -lean_ctor_set(x_200, 0, x_197); -lean_ctor_set(x_200, 1, x_198); -return x_200; -} -} -else -{ -lean_object* x_201; lean_object* x_202; uint8_t x_203; -x_201 = lean_ctor_get(x_14, 0); -lean_inc(x_201); if (lean_is_exclusive(x_14)) { lean_ctor_release(x_14, 0); - x_202 = x_14; + x_180 = x_14; } else { lean_dec_ref(x_14); - x_202 = lean_box(0); + x_180 = lean_box(0); } -x_203 = lean_ctor_get_uint8(x_201, sizeof(void*)*4); -switch (x_203) { +x_181 = lean_ctor_get_uint8(x_179, sizeof(void*)*4); +switch (x_181) { case 0: { -lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; -lean_dec(x_202); -lean_dec(x_201); -lean_dec(x_167); -lean_dec(x_162); -lean_dec(x_161); -lean_dec(x_160); -lean_dec(x_159); -lean_dec(x_158); -lean_dec(x_157); -lean_dec(x_156); -lean_dec(x_155); -lean_dec(x_154); +lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; +lean_dec(x_180); +lean_dec(x_179); lean_dec(x_10); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_204 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_204, 0, x_12); -x_205 = l___private_Lean_Elab_Structure_8__processSubfields___main___rarg___closed__3; -x_206 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_206, 0, x_205); -lean_ctor_set(x_206, 1, x_204); -x_207 = l_Lean_Elab_Command_throwAlreadyDeclaredUniverseLevel___rarg___closed__5; -x_208 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_208, 0, x_206); -lean_ctor_set(x_208, 1, x_207); -x_209 = l_Lean_Elab_Term_throwError___rarg(x_208, x_168, x_6); -return x_209; +x_182 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_182, 0, x_12); +x_183 = l___private_Lean_Elab_Structure_8__processSubfields___main___rarg___closed__3; +x_184 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_184, 0, x_183); +lean_ctor_set(x_184, 1, x_182); +x_185 = l_Lean_Elab_Command_throwAlreadyDeclaredUniverseLevel___rarg___closed__5; +x_186 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_186, 0, x_184); +lean_ctor_set(x_186, 1, x_185); +x_187 = l_Lean_Elab_Term_throwError___rarg(x_186, x_146, x_6); +return x_187; } case 1: { -lean_object* x_210; -x_210 = lean_ctor_get(x_10, 6); -lean_inc(x_210); -if (lean_obj_tag(x_210) == 0) +lean_object* x_188; +x_188 = lean_ctor_get(x_10, 6); +lean_inc(x_188); +if (lean_obj_tag(x_188) == 0) { -lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; -lean_dec(x_202); -lean_dec(x_201); -lean_dec(x_167); -lean_dec(x_162); -lean_dec(x_161); -lean_dec(x_160); -lean_dec(x_159); -lean_dec(x_158); -lean_dec(x_157); -lean_dec(x_156); -lean_dec(x_155); -lean_dec(x_154); +lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; lean_object* x_193; lean_object* x_194; +lean_dec(x_180); +lean_dec(x_179); lean_dec(x_10); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_211 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_211, 0, x_12); -x_212 = l___private_Lean_Elab_Structure_8__processSubfields___main___rarg___closed__3; -x_213 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_213, 0, x_212); -lean_ctor_set(x_213, 1, x_211); -x_214 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__6; -x_215 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_215, 0, x_213); -lean_ctor_set(x_215, 1, x_214); -x_216 = l_Lean_Elab_Term_throwError___rarg(x_215, x_168, x_6); -return x_216; +x_189 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_189, 0, x_12); +x_190 = l___private_Lean_Elab_Structure_8__processSubfields___main___rarg___closed__3; +x_191 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_191, 0, x_190); +lean_ctor_set(x_191, 1, x_189); +x_192 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__6; +x_193 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_193, 0, x_191); +lean_ctor_set(x_193, 1, x_192); +x_194 = l_Lean_Elab_Term_throwError___rarg(x_193, x_146, x_6); +return x_194; } else { -lean_object* x_217; lean_object* x_218; lean_object* x_219; uint8_t x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; uint8_t x_226; uint8_t x_227; -x_217 = lean_ctor_get(x_201, 0); -lean_inc(x_217); -x_218 = lean_ctor_get(x_201, 1); -lean_inc(x_218); -x_219 = lean_ctor_get(x_201, 2); -lean_inc(x_219); -x_220 = lean_ctor_get_uint8(x_201, sizeof(void*)*4 + 1); -if (lean_is_exclusive(x_201)) { - lean_ctor_release(x_201, 0); - lean_ctor_release(x_201, 1); - lean_ctor_release(x_201, 2); - lean_ctor_release(x_201, 3); - x_221 = x_201; +lean_object* x_195; lean_object* x_196; lean_object* x_197; uint8_t x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; uint8_t x_204; uint8_t x_205; +x_195 = lean_ctor_get(x_179, 0); +lean_inc(x_195); +x_196 = lean_ctor_get(x_179, 1); +lean_inc(x_196); +x_197 = lean_ctor_get(x_179, 2); +lean_inc(x_197); +x_198 = lean_ctor_get_uint8(x_179, sizeof(void*)*4 + 1); +if (lean_is_exclusive(x_179)) { + lean_ctor_release(x_179, 0); + lean_ctor_release(x_179, 1); + lean_ctor_release(x_179, 2); + lean_ctor_release(x_179, 3); + x_199 = x_179; } else { - lean_dec_ref(x_201); - x_221 = lean_box(0); + lean_dec_ref(x_179); + x_199 = lean_box(0); } -x_222 = lean_ctor_get(x_210, 0); -lean_inc(x_222); -if (lean_is_exclusive(x_210)) { - lean_ctor_release(x_210, 0); - x_223 = x_210; +x_200 = lean_ctor_get(x_188, 0); +lean_inc(x_200); +if (lean_is_exclusive(x_188)) { + lean_ctor_release(x_188, 0); + x_201 = x_188; } else { - lean_dec_ref(x_210); - x_223 = lean_box(0); + lean_dec_ref(x_188); + x_201 = lean_box(0); } -x_224 = lean_ctor_get(x_10, 4); -lean_inc(x_224); -x_225 = l_Lean_Syntax_getArgs(x_224); -lean_dec(x_224); -x_226 = l_Array_isEmpty___rarg(x_225); -lean_dec(x_225); -if (x_226 == 0) +x_202 = lean_ctor_get(x_10, 4); +lean_inc(x_202); +x_203 = l_Lean_Syntax_getArgs(x_202); +lean_dec(x_202); +x_204 = l_Array_isEmpty___rarg(x_203); +lean_dec(x_203); +if (x_204 == 0) { -uint8_t x_286; -x_286 = 1; -x_227 = x_286; -goto block_285; +uint8_t x_254; +x_254 = 1; +x_205 = x_254; +goto block_253; } else { -lean_object* x_287; -x_287 = lean_ctor_get(x_10, 5); -lean_inc(x_287); -if (lean_obj_tag(x_287) == 0) +lean_object* x_255; +x_255 = lean_ctor_get(x_10, 5); +lean_inc(x_255); +if (lean_obj_tag(x_255) == 0) { -uint8_t x_288; -x_288 = 0; -x_227 = x_288; -goto block_285; +uint8_t x_256; +x_256 = 0; +x_205 = x_256; +goto block_253; } else { -uint8_t x_289; -lean_dec(x_287); -x_289 = 1; -x_227 = x_289; -goto block_285; +uint8_t x_257; +lean_dec(x_255); +x_257 = 1; +x_205 = x_257; +goto block_253; } } -block_285: +block_253: { -uint8_t x_228; -if (x_227 == 0) +uint8_t x_206; +if (x_205 == 0) { -uint8_t x_283; -x_283 = 0; -x_228 = x_283; -goto block_282; +uint8_t x_251; +x_251 = 0; +x_206 = x_251; +goto block_250; } else { -uint8_t x_284; -x_284 = 1; -x_228 = x_284; -goto block_282; +uint8_t x_252; +x_252 = 1; +x_206 = x_252; +goto block_250; } -block_282: +block_250: { -lean_object* x_229; -if (x_228 == 0) +lean_object* x_207; +if (x_206 == 0) { lean_dec(x_12); lean_dec(x_10); -x_229 = x_6; -goto block_261; +x_207 = x_6; +goto block_229; } 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_dec(x_223); -lean_dec(x_222); -lean_dec(x_221); -lean_dec(x_219); -lean_dec(x_218); -lean_dec(x_217); -lean_dec(x_202); -lean_dec(x_167); -lean_dec(x_162); -lean_dec(x_161); -lean_dec(x_160); -lean_dec(x_159); -lean_dec(x_158); -lean_dec(x_157); -lean_dec(x_156); -lean_dec(x_155); -lean_dec(x_154); +lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; +lean_dec(x_201); +lean_dec(x_200); +lean_dec(x_199); +lean_dec(x_197); +lean_dec(x_196); +lean_dec(x_195); +lean_dec(x_180); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_262 = lean_ctor_get(x_10, 5); -lean_inc(x_262); +x_230 = lean_ctor_get(x_10, 5); +lean_inc(x_230); lean_dec(x_10); -x_263 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_263, 0, x_12); -x_264 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__9; -x_265 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_265, 0, x_264); -lean_ctor_set(x_265, 1, x_263); -x_266 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__12; -x_267 = lean_alloc_ctor(9, 2, 0); -lean_ctor_set(x_267, 0, x_265); -lean_ctor_set(x_267, 1, x_266); -if (lean_obj_tag(x_262) == 0) +x_231 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_231, 0, x_12); +x_232 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__9; +x_233 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_233, 0, x_232); +lean_ctor_set(x_233, 1, x_231); +x_234 = l___private_Lean_Elab_Structure_10__withFields___main___rarg___closed__12; +x_235 = lean_alloc_ctor(9, 2, 0); +lean_ctor_set(x_235, 0, x_233); +lean_ctor_set(x_235, 1, x_234); +if (lean_obj_tag(x_230) == 0) { -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; -x_268 = l_Lean_Syntax_inhabited; -x_269 = l_Option_get_x21___rarg___closed__3; -x_270 = lean_panic_fn(x_268, x_269); -x_271 = l_Lean_Elab_Term_throwErrorAt___rarg(x_270, x_267, x_168, x_6); -lean_dec(x_270); -x_272 = lean_ctor_get(x_271, 0); -lean_inc(x_272); -x_273 = lean_ctor_get(x_271, 1); -lean_inc(x_273); -if (lean_is_exclusive(x_271)) { - lean_ctor_release(x_271, 0); - lean_ctor_release(x_271, 1); - x_274 = x_271; +lean_object* x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; lean_object* x_242; lean_object* x_243; +x_236 = l_Lean_Syntax_inhabited; +x_237 = l_Option_get_x21___rarg___closed__3; +x_238 = lean_panic_fn(x_236, x_237); +x_239 = l_Lean_Elab_Term_throwErrorAt___rarg(x_238, x_235, x_146, x_6); +lean_dec(x_238); +x_240 = lean_ctor_get(x_239, 0); +lean_inc(x_240); +x_241 = lean_ctor_get(x_239, 1); +lean_inc(x_241); +if (lean_is_exclusive(x_239)) { + lean_ctor_release(x_239, 0); + lean_ctor_release(x_239, 1); + x_242 = x_239; } else { - lean_dec_ref(x_271); - x_274 = lean_box(0); + lean_dec_ref(x_239); + x_242 = lean_box(0); } -if (lean_is_scalar(x_274)) { - x_275 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_242)) { + x_243 = lean_alloc_ctor(1, 2, 0); } else { - x_275 = x_274; + x_243 = x_242; } -lean_ctor_set(x_275, 0, x_272); -lean_ctor_set(x_275, 1, x_273); -return x_275; +lean_ctor_set(x_243, 0, x_240); +lean_ctor_set(x_243, 1, x_241); +return x_243; } else { -lean_object* x_276; lean_object* x_277; lean_object* x_278; lean_object* x_279; lean_object* x_280; lean_object* x_281; -x_276 = lean_ctor_get(x_262, 0); -lean_inc(x_276); -lean_dec(x_262); -x_277 = l_Lean_Elab_Term_throwErrorAt___rarg(x_276, x_267, x_168, x_6); -lean_dec(x_276); -x_278 = lean_ctor_get(x_277, 0); -lean_inc(x_278); -x_279 = lean_ctor_get(x_277, 1); -lean_inc(x_279); -if (lean_is_exclusive(x_277)) { - lean_ctor_release(x_277, 0); - lean_ctor_release(x_277, 1); - x_280 = x_277; -} else { - lean_dec_ref(x_277); - x_280 = lean_box(0); -} -if (lean_is_scalar(x_280)) { - x_281 = lean_alloc_ctor(1, 2, 0); -} else { - x_281 = x_280; -} -lean_ctor_set(x_281, 0, x_278); -lean_ctor_set(x_281, 1, x_279); -return x_281; -} -} -block_261: -{ -lean_object* x_230; -lean_inc(x_168); -lean_inc(x_219); -x_230 = l_Lean_Elab_Term_inferType(x_219, x_168, x_229); -if (lean_obj_tag(x_230) == 0) -{ -lean_object* x_231; lean_object* x_232; lean_object* x_233; uint8_t x_234; lean_object* x_235; -x_231 = lean_ctor_get(x_230, 0); -lean_inc(x_231); -x_232 = lean_ctor_get(x_230, 1); -lean_inc(x_232); +lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; +x_244 = lean_ctor_get(x_230, 0); +lean_inc(x_244); lean_dec(x_230); -if (lean_is_scalar(x_223)) { - x_233 = lean_alloc_ctor(1, 1, 0); +x_245 = l_Lean_Elab_Term_throwErrorAt___rarg(x_244, x_235, x_146, x_6); +lean_dec(x_244); +x_246 = lean_ctor_get(x_245, 0); +lean_inc(x_246); +x_247 = lean_ctor_get(x_245, 1); +lean_inc(x_247); +if (lean_is_exclusive(x_245)) { + lean_ctor_release(x_245, 0); + lean_ctor_release(x_245, 1); + x_248 = x_245; } else { - x_233 = x_223; + lean_dec_ref(x_245); + x_248 = lean_box(0); } -lean_ctor_set(x_233, 0, x_231); -x_234 = 1; -lean_inc(x_168); -lean_inc(x_233); -lean_inc(x_222); -x_235 = l_Lean_Elab_Term_elabTerm(x_222, x_233, x_234, x_168, x_232); -if (lean_obj_tag(x_235) == 0) +if (lean_is_scalar(x_248)) { + x_249 = lean_alloc_ctor(1, 2, 0); +} else { + x_249 = x_248; +} +lean_ctor_set(x_249, 0, x_246); +lean_ctor_set(x_249, 1, x_247); +return x_249; +} +} +block_229: { -lean_object* x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; lean_object* x_240; -x_236 = lean_ctor_get(x_235, 0); -lean_inc(x_236); -x_237 = lean_ctor_get(x_235, 1); -lean_inc(x_237); -lean_dec(x_235); -x_238 = l_Lean_Elab_replaceRef(x_222, x_167); -lean_dec(x_167); -lean_dec(x_222); -x_239 = lean_alloc_ctor(0, 10, 3); -lean_ctor_set(x_239, 0, x_154); -lean_ctor_set(x_239, 1, x_155); -lean_ctor_set(x_239, 2, x_156); -lean_ctor_set(x_239, 3, x_157); -lean_ctor_set(x_239, 4, x_158); -lean_ctor_set(x_239, 5, x_159); -lean_ctor_set(x_239, 6, x_160); -lean_ctor_set(x_239, 7, x_161); -lean_ctor_set(x_239, 8, x_162); -lean_ctor_set(x_239, 9, x_238); -lean_ctor_set_uint8(x_239, sizeof(void*)*10, x_163); -lean_ctor_set_uint8(x_239, sizeof(void*)*10 + 1, x_164); -lean_ctor_set_uint8(x_239, sizeof(void*)*10 + 2, x_165); -x_240 = l_Lean_Elab_Term_ensureHasType(x_233, x_236, x_239, x_237); -if (lean_obj_tag(x_240) == 0) +lean_object* x_208; +lean_inc(x_146); +lean_inc(x_197); +x_208 = l_Lean_Elab_Term_inferType(x_197, x_146, x_207); +if (lean_obj_tag(x_208) == 0) { -lean_object* x_241; lean_object* x_242; lean_object* x_243; lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; -x_241 = lean_ctor_get(x_240, 0); -lean_inc(x_241); -x_242 = lean_ctor_get(x_240, 1); -lean_inc(x_242); -lean_dec(x_240); -if (lean_is_scalar(x_202)) { - x_243 = lean_alloc_ctor(1, 1, 0); +lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; +x_209 = lean_ctor_get(x_208, 0); +lean_inc(x_209); +x_210 = lean_ctor_get(x_208, 1); +lean_inc(x_210); +lean_dec(x_208); +if (lean_is_scalar(x_201)) { + x_211 = lean_alloc_ctor(1, 1, 0); } else { - x_243 = x_202; + x_211 = x_201; } -lean_ctor_set(x_243, 0, x_241); -if (lean_is_scalar(x_221)) { - x_244 = lean_alloc_ctor(0, 4, 2); +lean_ctor_set(x_211, 0, x_209); +lean_inc(x_146); +x_212 = l_Lean_Elab_Term_elabTermEnsuringType(x_200, x_211, x_146, x_210); +if (lean_obj_tag(x_212) == 0) +{ +lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; +x_213 = lean_ctor_get(x_212, 0); +lean_inc(x_213); +x_214 = lean_ctor_get(x_212, 1); +lean_inc(x_214); +lean_dec(x_212); +if (lean_is_scalar(x_180)) { + x_215 = lean_alloc_ctor(1, 1, 0); } else { - x_244 = x_221; + x_215 = x_180; } -lean_ctor_set(x_244, 0, x_217); -lean_ctor_set(x_244, 1, x_218); -lean_ctor_set(x_244, 2, x_219); -lean_ctor_set(x_244, 3, x_243); -lean_ctor_set_uint8(x_244, sizeof(void*)*4, x_203); -lean_ctor_set_uint8(x_244, sizeof(void*)*4 + 1, x_220); -x_245 = lean_array_push(x_3, x_244); -x_246 = lean_unsigned_to_nat(1u); -x_247 = lean_nat_add(x_2, x_246); +lean_ctor_set(x_215, 0, x_213); +if (lean_is_scalar(x_199)) { + x_216 = lean_alloc_ctor(0, 4, 2); +} else { + x_216 = x_199; +} +lean_ctor_set(x_216, 0, x_195); +lean_ctor_set(x_216, 1, x_196); +lean_ctor_set(x_216, 2, x_197); +lean_ctor_set(x_216, 3, x_215); +lean_ctor_set_uint8(x_216, sizeof(void*)*4, x_181); +lean_ctor_set_uint8(x_216, sizeof(void*)*4 + 1, x_198); +x_217 = lean_array_push(x_3, x_216); +x_218 = lean_unsigned_to_nat(1u); +x_219 = lean_nat_add(x_2, x_218); lean_dec(x_2); -x_2 = x_247; -x_3 = x_245; -x_5 = x_168; -x_6 = x_242; +x_2 = x_219; +x_3 = x_217; +x_5 = x_146; +x_6 = x_214; goto _start; } else { -lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; -lean_dec(x_221); -lean_dec(x_219); -lean_dec(x_218); -lean_dec(x_217); -lean_dec(x_202); -lean_dec(x_168); +lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; +lean_dec(x_199); +lean_dec(x_197); +lean_dec(x_196); +lean_dec(x_195); +lean_dec(x_180); +lean_dec(x_146); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_249 = lean_ctor_get(x_240, 0); -lean_inc(x_249); -x_250 = lean_ctor_get(x_240, 1); -lean_inc(x_250); -if (lean_is_exclusive(x_240)) { - lean_ctor_release(x_240, 0); - lean_ctor_release(x_240, 1); - x_251 = x_240; +x_221 = lean_ctor_get(x_212, 0); +lean_inc(x_221); +x_222 = lean_ctor_get(x_212, 1); +lean_inc(x_222); +if (lean_is_exclusive(x_212)) { + lean_ctor_release(x_212, 0); + lean_ctor_release(x_212, 1); + x_223 = x_212; } else { - lean_dec_ref(x_240); - x_251 = lean_box(0); + lean_dec_ref(x_212); + x_223 = lean_box(0); } -if (lean_is_scalar(x_251)) { - x_252 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_223)) { + x_224 = lean_alloc_ctor(1, 2, 0); } else { - x_252 = x_251; + x_224 = x_223; } -lean_ctor_set(x_252, 0, x_249); -lean_ctor_set(x_252, 1, x_250); -return x_252; +lean_ctor_set(x_224, 0, x_221); +lean_ctor_set(x_224, 1, x_222); +return x_224; } } else { -lean_object* x_253; lean_object* x_254; lean_object* x_255; lean_object* x_256; -lean_dec(x_233); -lean_dec(x_222); -lean_dec(x_221); -lean_dec(x_219); -lean_dec(x_218); -lean_dec(x_217); -lean_dec(x_202); -lean_dec(x_168); -lean_dec(x_167); -lean_dec(x_162); -lean_dec(x_161); -lean_dec(x_160); -lean_dec(x_159); -lean_dec(x_158); -lean_dec(x_157); -lean_dec(x_156); -lean_dec(x_155); -lean_dec(x_154); +lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; +lean_dec(x_201); +lean_dec(x_200); +lean_dec(x_199); +lean_dec(x_197); +lean_dec(x_196); +lean_dec(x_195); +lean_dec(x_180); +lean_dec(x_146); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_253 = lean_ctor_get(x_235, 0); -lean_inc(x_253); -x_254 = lean_ctor_get(x_235, 1); -lean_inc(x_254); -if (lean_is_exclusive(x_235)) { - lean_ctor_release(x_235, 0); - lean_ctor_release(x_235, 1); - x_255 = x_235; +x_225 = lean_ctor_get(x_208, 0); +lean_inc(x_225); +x_226 = lean_ctor_get(x_208, 1); +lean_inc(x_226); +if (lean_is_exclusive(x_208)) { + lean_ctor_release(x_208, 0); + lean_ctor_release(x_208, 1); + x_227 = x_208; } else { - lean_dec_ref(x_235); - x_255 = lean_box(0); + lean_dec_ref(x_208); + x_227 = lean_box(0); } -if (lean_is_scalar(x_255)) { - x_256 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_227)) { + x_228 = lean_alloc_ctor(1, 2, 0); } else { - x_256 = x_255; + x_228 = x_227; } -lean_ctor_set(x_256, 0, x_253); -lean_ctor_set(x_256, 1, x_254); -return x_256; -} -} -else -{ -lean_object* x_257; lean_object* x_258; lean_object* x_259; lean_object* x_260; -lean_dec(x_223); -lean_dec(x_222); -lean_dec(x_221); -lean_dec(x_219); -lean_dec(x_218); -lean_dec(x_217); -lean_dec(x_202); -lean_dec(x_168); -lean_dec(x_167); -lean_dec(x_162); -lean_dec(x_161); -lean_dec(x_160); -lean_dec(x_159); -lean_dec(x_158); -lean_dec(x_157); -lean_dec(x_156); -lean_dec(x_155); -lean_dec(x_154); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_257 = lean_ctor_get(x_230, 0); -lean_inc(x_257); -x_258 = lean_ctor_get(x_230, 1); -lean_inc(x_258); -if (lean_is_exclusive(x_230)) { - lean_ctor_release(x_230, 0); - lean_ctor_release(x_230, 1); - x_259 = x_230; -} else { - lean_dec_ref(x_230); - x_259 = lean_box(0); -} -if (lean_is_scalar(x_259)) { - x_260 = lean_alloc_ctor(1, 2, 0); -} else { - x_260 = x_259; -} -lean_ctor_set(x_260, 0, x_257); -lean_ctor_set(x_260, 1, x_258); -return x_260; +lean_ctor_set(x_228, 0, x_225); +lean_ctor_set(x_228, 1, x_226); +return x_228; } } } @@ -6219,29 +5928,19 @@ return x_260; } default: { -lean_object* x_290; lean_object* x_291; lean_object* x_292; -lean_dec(x_202); -lean_dec(x_201); -lean_dec(x_167); -lean_dec(x_162); -lean_dec(x_161); -lean_dec(x_160); -lean_dec(x_159); -lean_dec(x_158); -lean_dec(x_157); -lean_dec(x_156); -lean_dec(x_155); -lean_dec(x_154); +lean_object* x_258; lean_object* x_259; lean_object* x_260; +lean_dec(x_180); +lean_dec(x_179); lean_dec(x_12); lean_dec(x_10); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_290 = l_Lean_Elab_Term_getFVarLocalDecl_x21___closed__1; -x_291 = l_unreachable_x21___rarg(x_290); -x_292 = lean_apply_2(x_291, x_168, x_6); -return x_292; +x_258 = l_Lean_Elab_Term_getFVarLocalDecl_x21___closed__1; +x_259 = l_unreachable_x21___rarg(x_258); +x_260 = lean_apply_2(x_259, x_146, x_6); +return x_260; } } } diff --git a/stage0/stdlib/Lean/Elab/Syntax.c b/stage0/stdlib/Lean/Elab/Syntax.c index ad37b8a78a..46a8f0d1c4 100644 --- a/stage0/stdlib/Lean/Elab/Syntax.c +++ b/stage0/stdlib/Lean/Elab/Syntax.c @@ -17538,6 +17538,8 @@ lean_object* l_Lean_Elab_Command_withExpectedType(lean_object* x_1, lean_object* _start: { lean_object* x_5; +lean_inc(x_3); +lean_inc(x_1); x_5 = l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(x_1, x_3, x_4); if (lean_obj_tag(x_5) == 0) { diff --git a/stage0/stdlib/Lean/Elab/SyntheticMVars.c b/stage0/stdlib/Lean/Elab/SyntheticMVars.c index 0090d5fc9e..a49845935c 100644 --- a/stage0/stdlib/Lean/Elab/SyntheticMVars.c +++ b/stage0/stdlib/Lean/Elab/SyntheticMVars.c @@ -1856,6 +1856,16 @@ x_48 = lean_ctor_get_uint8(x_6, sizeof(void*)*10 + 1); x_49 = lean_ctor_get_uint8(x_6, sizeof(void*)*10 + 2); x_50 = lean_ctor_get(x_6, 9); lean_inc(x_50); +lean_inc(x_50); +lean_inc(x_46); +lean_inc(x_2); +lean_inc(x_45); +lean_inc(x_44); +lean_inc(x_43); +lean_inc(x_42); +lean_inc(x_41); +lean_inc(x_40); +lean_inc(x_39); x_51 = lean_alloc_ctor(0, 10, 3); lean_ctor_set(x_51, 0, x_39); lean_ctor_set(x_51, 1, x_40); @@ -1894,78 +1904,79 @@ uint8_t x_60; lean_object* x_61; x_60 = 1; lean_inc(x_51); lean_inc(x_59); +lean_inc(x_4); x_61 = l___private_Lean_Elab_SyntheticMVars_1__resumeElabTerm(x_4, x_59, x_60, x_51, x_58); if (lean_obj_tag(x_61) == 0) { -lean_object* x_62; lean_object* x_63; lean_object* x_64; +lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; x_62 = lean_ctor_get(x_61, 0); lean_inc(x_62); x_63 = lean_ctor_get(x_61, 1); lean_inc(x_63); lean_dec(x_61); -lean_inc(x_51); -x_64 = l_Lean_Elab_Term_ensureHasType(x_59, x_62, x_51, x_63); -if (lean_obj_tag(x_64) == 0) +x_64 = l_Lean_Elab_replaceRef(x_4, x_50); +lean_dec(x_50); +lean_dec(x_4); +x_65 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_65, 0, x_39); +lean_ctor_set(x_65, 1, x_40); +lean_ctor_set(x_65, 2, x_41); +lean_ctor_set(x_65, 3, x_42); +lean_ctor_set(x_65, 4, x_43); +lean_ctor_set(x_65, 5, x_44); +lean_ctor_set(x_65, 6, x_45); +lean_ctor_set(x_65, 7, x_2); +lean_ctor_set(x_65, 8, x_46); +lean_ctor_set(x_65, 9, x_64); +lean_ctor_set_uint8(x_65, sizeof(void*)*10, x_47); +lean_ctor_set_uint8(x_65, sizeof(void*)*10 + 1, x_48); +lean_ctor_set_uint8(x_65, sizeof(void*)*10 + 2, x_49); +x_66 = l_Lean_Elab_Term_ensureHasType(x_59, x_62, x_65, x_63); +if (lean_obj_tag(x_66) == 0) { -lean_object* x_65; lean_object* x_66; lean_object* x_67; uint8_t x_68; +lean_object* x_67; lean_object* x_68; lean_object* x_69; uint8_t x_70; lean_dec(x_6); lean_dec(x_5); -x_65 = lean_ctor_get(x_64, 0); -lean_inc(x_65); -x_66 = lean_ctor_get(x_64, 1); -lean_inc(x_66); -lean_dec(x_64); -x_67 = l_Lean_Elab_Term_assignExprMVar(x_3, x_65, x_51, x_66); +x_67 = lean_ctor_get(x_66, 0); +lean_inc(x_67); +x_68 = lean_ctor_get(x_66, 1); +lean_inc(x_68); +lean_dec(x_66); +x_69 = l_Lean_Elab_Term_assignExprMVar(x_3, x_67, x_51, x_68); lean_dec(x_51); -x_68 = !lean_is_exclusive(x_67); -if (x_68 == 0) +x_70 = !lean_is_exclusive(x_69); +if (x_70 == 0) { -lean_object* x_69; lean_object* x_70; -x_69 = lean_ctor_get(x_67, 0); -lean_dec(x_69); -x_70 = lean_box(x_60); -lean_ctor_set(x_67, 0, x_70); -return x_67; -} -else -{ -lean_object* x_71; lean_object* x_72; lean_object* x_73; -x_71 = lean_ctor_get(x_67, 1); -lean_inc(x_71); -lean_dec(x_67); +lean_object* x_71; lean_object* x_72; +x_71 = lean_ctor_get(x_69, 0); +lean_dec(x_71); x_72 = lean_box(x_60); -x_73 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_73, 0, x_72); -lean_ctor_set(x_73, 1, x_71); -return x_73; -} +lean_ctor_set(x_69, 0, x_72); +return x_69; } else { -lean_object* x_74; lean_object* x_75; -lean_dec(x_51); -lean_dec(x_3); -x_74 = lean_ctor_get(x_64, 0); -lean_inc(x_74); -x_75 = lean_ctor_get(x_64, 1); -lean_inc(x_75); -lean_dec(x_64); -x_8 = x_74; -x_9 = x_75; -goto block_38; +lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_73 = lean_ctor_get(x_69, 1); +lean_inc(x_73); +lean_dec(x_69); +x_74 = lean_box(x_60); +x_75 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_75, 0, x_74); +lean_ctor_set(x_75, 1, x_73); +return x_75; } } else { lean_object* x_76; lean_object* x_77; -lean_dec(x_59); lean_dec(x_51); lean_dec(x_3); -x_76 = lean_ctor_get(x_61, 0); +x_76 = lean_ctor_get(x_66, 0); lean_inc(x_76); -x_77 = lean_ctor_get(x_61, 1); +x_77 = lean_ctor_get(x_66, 1); lean_inc(x_77); -lean_dec(x_61); +lean_dec(x_66); x_8 = x_76; x_9 = x_77; goto block_38; @@ -1973,86 +1984,141 @@ goto block_38; } else { -uint8_t x_78; lean_object* x_79; -x_78 = 0; -lean_inc(x_51); -lean_inc(x_59); -x_79 = l___private_Lean_Elab_SyntheticMVars_1__resumeElabTerm(x_4, x_59, x_78, x_51, x_58); -if (lean_obj_tag(x_79) == 0) -{ -lean_object* x_80; lean_object* x_81; lean_object* x_82; -x_80 = lean_ctor_get(x_79, 0); -lean_inc(x_80); -x_81 = lean_ctor_get(x_79, 1); -lean_inc(x_81); -lean_dec(x_79); -lean_inc(x_51); -x_82 = l_Lean_Elab_Term_ensureHasType(x_59, x_80, x_51, x_81); -if (lean_obj_tag(x_82) == 0) -{ -lean_object* x_83; lean_object* x_84; lean_object* x_85; uint8_t x_86; -lean_dec(x_6); -lean_dec(x_5); -x_83 = lean_ctor_get(x_82, 0); -lean_inc(x_83); -x_84 = lean_ctor_get(x_82, 1); -lean_inc(x_84); -lean_dec(x_82); -x_85 = l_Lean_Elab_Term_assignExprMVar(x_3, x_83, x_51, x_84); -lean_dec(x_51); -x_86 = !lean_is_exclusive(x_85); -if (x_86 == 0) -{ -lean_object* x_87; uint8_t x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_85, 0); -lean_dec(x_87); -x_88 = 1; -x_89 = lean_box(x_88); -lean_ctor_set(x_85, 0, x_89); -return x_85; -} -else -{ -lean_object* x_90; uint8_t x_91; lean_object* x_92; lean_object* x_93; -x_90 = lean_ctor_get(x_85, 1); -lean_inc(x_90); -lean_dec(x_85); -x_91 = 1; -x_92 = lean_box(x_91); -x_93 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_93, 0, x_92); -lean_ctor_set(x_93, 1, x_90); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; +lean_object* x_78; lean_object* x_79; +lean_dec(x_59); lean_dec(x_51); +lean_dec(x_50); +lean_dec(x_46); +lean_dec(x_45); +lean_dec(x_44); +lean_dec(x_43); +lean_dec(x_42); +lean_dec(x_41); +lean_dec(x_40); +lean_dec(x_39); +lean_dec(x_4); lean_dec(x_3); -x_94 = lean_ctor_get(x_82, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_82, 1); -lean_inc(x_95); -lean_dec(x_82); -x_8 = x_94; -x_9 = x_95; +lean_dec(x_2); +x_78 = lean_ctor_get(x_61, 0); +lean_inc(x_78); +x_79 = lean_ctor_get(x_61, 1); +lean_inc(x_79); +lean_dec(x_61); +x_8 = x_78; +x_9 = x_79; goto block_38; } } else { -lean_object* x_96; lean_object* x_97; -lean_dec(x_59); +uint8_t x_80; lean_object* x_81; +x_80 = 0; +lean_inc(x_51); +lean_inc(x_59); +lean_inc(x_4); +x_81 = l___private_Lean_Elab_SyntheticMVars_1__resumeElabTerm(x_4, x_59, x_80, x_51, x_58); +if (lean_obj_tag(x_81) == 0) +{ +lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; +x_82 = lean_ctor_get(x_81, 0); +lean_inc(x_82); +x_83 = lean_ctor_get(x_81, 1); +lean_inc(x_83); +lean_dec(x_81); +x_84 = l_Lean_Elab_replaceRef(x_4, x_50); +lean_dec(x_50); +lean_dec(x_4); +x_85 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_85, 0, x_39); +lean_ctor_set(x_85, 1, x_40); +lean_ctor_set(x_85, 2, x_41); +lean_ctor_set(x_85, 3, x_42); +lean_ctor_set(x_85, 4, x_43); +lean_ctor_set(x_85, 5, x_44); +lean_ctor_set(x_85, 6, x_45); +lean_ctor_set(x_85, 7, x_2); +lean_ctor_set(x_85, 8, x_46); +lean_ctor_set(x_85, 9, x_84); +lean_ctor_set_uint8(x_85, sizeof(void*)*10, x_47); +lean_ctor_set_uint8(x_85, sizeof(void*)*10 + 1, x_48); +lean_ctor_set_uint8(x_85, sizeof(void*)*10 + 2, x_49); +x_86 = l_Lean_Elab_Term_ensureHasType(x_59, x_82, x_85, x_83); +if (lean_obj_tag(x_86) == 0) +{ +lean_object* x_87; lean_object* x_88; lean_object* x_89; uint8_t x_90; +lean_dec(x_6); +lean_dec(x_5); +x_87 = lean_ctor_get(x_86, 0); +lean_inc(x_87); +x_88 = lean_ctor_get(x_86, 1); +lean_inc(x_88); +lean_dec(x_86); +x_89 = l_Lean_Elab_Term_assignExprMVar(x_3, x_87, x_51, x_88); +lean_dec(x_51); +x_90 = !lean_is_exclusive(x_89); +if (x_90 == 0) +{ +lean_object* x_91; uint8_t x_92; lean_object* x_93; +x_91 = lean_ctor_get(x_89, 0); +lean_dec(x_91); +x_92 = 1; +x_93 = lean_box(x_92); +lean_ctor_set(x_89, 0, x_93); +return x_89; +} +else +{ +lean_object* x_94; uint8_t x_95; lean_object* x_96; lean_object* x_97; +x_94 = lean_ctor_get(x_89, 1); +lean_inc(x_94); +lean_dec(x_89); +x_95 = 1; +x_96 = lean_box(x_95); +x_97 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_97, 0, x_96); +lean_ctor_set(x_97, 1, x_94); +return x_97; +} +} +else +{ +lean_object* x_98; lean_object* x_99; lean_dec(x_51); lean_dec(x_3); -x_96 = lean_ctor_get(x_79, 0); -lean_inc(x_96); -x_97 = lean_ctor_get(x_79, 1); -lean_inc(x_97); -lean_dec(x_79); -x_8 = x_96; -x_9 = x_97; +x_98 = lean_ctor_get(x_86, 0); +lean_inc(x_98); +x_99 = lean_ctor_get(x_86, 1); +lean_inc(x_99); +lean_dec(x_86); +x_8 = x_98; +x_9 = x_99; +goto block_38; +} +} +else +{ +lean_object* x_100; lean_object* x_101; +lean_dec(x_59); +lean_dec(x_51); +lean_dec(x_50); +lean_dec(x_46); +lean_dec(x_45); +lean_dec(x_44); +lean_dec(x_43); +lean_dec(x_42); +lean_dec(x_41); +lean_dec(x_40); +lean_dec(x_39); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_100 = lean_ctor_get(x_81, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_81, 1); +lean_inc(x_101); +lean_dec(x_81); +x_8 = x_100; +x_9 = x_101; goto block_38; } } diff --git a/stage0/stdlib/Lean/Elab/Term.c b/stage0/stdlib/Lean/Elab/Term.c index ca14db359e..8cf3fb3507 100644 --- a/stage0/stdlib/Lean/Elab/Term.c +++ b/stage0/stdlib/Lean/Elab/Term.c @@ -286,6 +286,7 @@ lean_object* l_Lean_Elab_Term_monadLog___closed__1; lean_object* l___private_Lean_Elab_Term_18__mkPairsAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_isCharLit_x3f(lean_object*); lean_object* l_Array_isEqvAux___main___at_Lean_Elab_Term_withMVarContext___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_elabTermEnsuringType(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Std_PersistentArray_foldlM___at___private_Lean_Elab_Term_3__fromMetaState___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_synthesizeInstMVarCore___closed__5; @@ -648,7 +649,6 @@ uint8_t l___private_Lean_Elab_Term_14__isLambdaWithImplicit(lean_object*); extern lean_object* l_Lean_EnvExtension_setState___closed__1; lean_object* l_Lean_Elab_Term_liftLevelM___rarg___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_modifyEnv(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_tryPostponeIfMVar___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_ReaderT_lift___at_Lean_Elab_Term_Lean_Elab_MonadMacroAdapter___spec__1(lean_object*); lean_object* l_Lean_Elab_Term_whnfCore(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_monadLog___lambda__4___boxed(lean_object*, lean_object*, lean_object*); @@ -833,7 +833,6 @@ lean_object* l_Lean_Elab_Term_withReducible___rarg(lean_object*, lean_object*, l lean_object* l_Lean_Elab_Term_instantiateLevelMVars(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_ensureHasTypeAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_tryLiftAndCoe___closed__5; -lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_uint32_to_nat(uint32_t); lean_object* l_Lean_Elab_Term_throwTypeMismatchError___rarg___closed__1; lean_object* l___private_Lean_Elab_Term_17__elabOptLevel(lean_object*, lean_object*, lean_object*); @@ -18026,6 +18025,8 @@ lean_dec(x_4); if (x_5 == 0) { lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); x_6 = lean_box(0); x_7 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_7, 0, x_6); @@ -18034,20 +18035,67 @@ return x_7; } else { -lean_object* x_8; -x_8 = l_Lean_Elab_Term_tryPostpone(x_2, x_3); +lean_object* x_8; uint8_t x_9; +lean_inc(x_2); +x_8 = l_Lean_Elab_Term_instantiateMVars(x_1, x_2, x_3); +x_9 = !lean_is_exclusive(x_8); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_8, 0); +x_11 = lean_ctor_get(x_8, 1); +x_12 = l_Lean_Expr_getAppFn___main(x_10); +lean_dec(x_10); +x_13 = l_Lean_Expr_isMVar(x_12); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_2); +x_14 = lean_box(0); +lean_ctor_set(x_8, 0, x_14); return x_8; } -} -} -lean_object* l_Lean_Elab_Term_tryPostponeIfMVar___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: +else { -lean_object* x_4; -x_4 = l_Lean_Elab_Term_tryPostponeIfMVar(x_1, x_2, x_3); +lean_object* x_15; +lean_free_object(x_8); +x_15 = l_Lean_Elab_Term_tryPostpone(x_2, x_11); lean_dec(x_2); -lean_dec(x_1); -return x_4; +return x_15; +} +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_16 = lean_ctor_get(x_8, 0); +x_17 = lean_ctor_get(x_8, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_8); +x_18 = l_Lean_Expr_getAppFn___main(x_16); +lean_dec(x_16); +x_19 = l_Lean_Expr_isMVar(x_18); +lean_dec(x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; +lean_dec(x_2); +x_20 = lean_box(0); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_17); +return x_21; +} +else +{ +lean_object* x_22; +x_22 = l_Lean_Elab_Term_tryPostpone(x_2, x_17); +lean_dec(x_2); +return x_22; +} +} +} } } lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -18057,27 +18105,20 @@ if (lean_obj_tag(x_1) == 0) { lean_object* x_4; x_4 = l_Lean_Elab_Term_tryPostpone(x_2, x_3); +lean_dec(x_2); return x_4; } else { lean_object* x_5; lean_object* x_6; x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +lean_dec(x_1); x_6 = l_Lean_Elab_Term_tryPostponeIfMVar(x_5, x_2, x_3); return x_6; } } } -lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(x_1, x_2, x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_4; -} -} lean_object* _init_l___private_Lean_Elab_Term_10__postponeElabTerm___closed__1() { _start: { @@ -22425,6 +22466,110 @@ x_7 = l_Lean_Elab_Term_elabTerm(x_1, x_2, x_6, x_4, x_5); return x_7; } } +lean_object* l_Lean_Elab_Term_elabTermEnsuringType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; lean_object* x_6; +x_5 = 1; +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_1); +x_6 = l_Lean_Elab_Term_elabTerm(x_1, x_2, x_5, x_3, x_4); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; uint8_t x_9; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_6, 1); +lean_inc(x_8); +lean_dec(x_6); +x_9 = !lean_is_exclusive(x_3); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_3, 9); +x_11 = l_Lean_Elab_replaceRef(x_1, x_10); +lean_dec(x_10); +lean_dec(x_1); +lean_ctor_set(x_3, 9, x_11); +x_12 = l_Lean_Elab_Term_ensureHasType(x_2, x_7, x_3, x_8); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; uint8_t x_23; uint8_t x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_13 = lean_ctor_get(x_3, 0); +x_14 = lean_ctor_get(x_3, 1); +x_15 = lean_ctor_get(x_3, 2); +x_16 = lean_ctor_get(x_3, 3); +x_17 = lean_ctor_get(x_3, 4); +x_18 = lean_ctor_get(x_3, 5); +x_19 = lean_ctor_get(x_3, 6); +x_20 = lean_ctor_get(x_3, 7); +x_21 = lean_ctor_get(x_3, 8); +x_22 = lean_ctor_get_uint8(x_3, sizeof(void*)*10); +x_23 = lean_ctor_get_uint8(x_3, sizeof(void*)*10 + 1); +x_24 = lean_ctor_get_uint8(x_3, sizeof(void*)*10 + 2); +x_25 = lean_ctor_get(x_3, 9); +lean_inc(x_25); +lean_inc(x_21); +lean_inc(x_20); +lean_inc(x_19); +lean_inc(x_18); +lean_inc(x_17); +lean_inc(x_16); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_dec(x_3); +x_26 = l_Lean_Elab_replaceRef(x_1, x_25); +lean_dec(x_25); +lean_dec(x_1); +x_27 = lean_alloc_ctor(0, 10, 3); +lean_ctor_set(x_27, 0, x_13); +lean_ctor_set(x_27, 1, x_14); +lean_ctor_set(x_27, 2, x_15); +lean_ctor_set(x_27, 3, x_16); +lean_ctor_set(x_27, 4, x_17); +lean_ctor_set(x_27, 5, x_18); +lean_ctor_set(x_27, 6, x_19); +lean_ctor_set(x_27, 7, x_20); +lean_ctor_set(x_27, 8, x_21); +lean_ctor_set(x_27, 9, x_26); +lean_ctor_set_uint8(x_27, sizeof(void*)*10, x_22); +lean_ctor_set_uint8(x_27, sizeof(void*)*10 + 1, x_23); +lean_ctor_set_uint8(x_27, sizeof(void*)*10 + 2, x_24); +x_28 = l_Lean_Elab_Term_ensureHasType(x_2, x_7, x_27, x_8); +return x_28; +} +} +else +{ +uint8_t x_29; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_29 = !lean_is_exclusive(x_6); +if (x_29 == 0) +{ +return x_6; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_6, 0); +x_31 = lean_ctor_get(x_6, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_6); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; +} +} +} +} lean_object* l_Lean_Elab_Term_elabTermWithoutImplicitLambdas(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5) { _start: { diff --git a/stage0/stdlib/Lean/Meta/ExprDefEq.c b/stage0/stdlib/Lean/Meta/ExprDefEq.c index a9ac272aa9..c4ae3e585d 100644 --- a/stage0/stdlib/Lean/Meta/ExprDefEq.c +++ b/stage0/stdlib/Lean/Meta/ExprDefEq.c @@ -26,6 +26,7 @@ lean_object* l___private_Lean_Meta_ExprDefEq_43__isDefEqWHNF(lean_object*, lean_ uint8_t l_Array_anyRangeMAux___main___at_Lean_Meta_CheckAssignmentQuick_check___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_anyRangeMAux___main___at___private_Lean_Meta_ExprDefEq_19__processAssignmentAux___main___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_mvarId_x21(lean_object*); +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__1; lean_object* l___private_Lean_Meta_ExprDefEq_12__checkAssignmentFailure___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_19__processAssignmentAux___main___closed__2; lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); @@ -64,6 +65,7 @@ lean_object* l___private_Lean_Meta_ExprDefEq_14__processAssignmentFOApproxAux(le lean_object* lean_metavar_ctx_get_expr_assignment(lean_object*, lean_object*); uint8_t l_Array_anyRangeMAux___main___at_Lean_Meta_CheckAssignment_check___main___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_2__isDefEqArgsFirstPass___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkMVar(lean_object*); lean_object* l_Lean_Meta_isClassQuick___main(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_withNewLocalInstances___main___at___private_Lean_Meta_ExprDefEq_18__processConstApprox___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -96,16 +98,17 @@ lean_object* l_Lean_LocalContext_findFVar_x3f(lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_15__processAssignmentFOApprox___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isTypeCorrect(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppFn___main(lean_object*); +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_25__isDefEqLeftRight___closed__2; extern lean_object* l_Lean_Expr_getAppArgs___closed__1; lean_object* l_Lean_Meta_isDefEqNative(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_WHNF_unfoldDefinitionAux___at_Lean_Meta_unfoldDefinition_x3f___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Meta_isLevelDefEqAux___main___closed__5; +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__2; lean_object* l___private_Lean_Meta_ExprDefEq_31__unfoldDefEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_contains___at_Lean_Meta_CheckAssignment_check___main___spec__2(lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_21__isDeltaCandidate___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__6; uint8_t l_Lean_isReducible(lean_object*, lean_object*); lean_object* l_Lean_Meta_CheckAssignment_Lean_MonadCache___closed__1; uint8_t l_Lean_LocalContext_contains(lean_object*, lean_object*); @@ -158,6 +161,7 @@ lean_object* l___private_Lean_Meta_ExprDefEq_19__processAssignmentAux(lean_objec lean_object* l___private_Lean_Meta_ExprDefEq_12__checkAssignmentFailure___closed__8; uint8_t l_Lean_Literal_beq(lean_object*, lean_object*); lean_object* l_Lean_Meta_isExprDefEqAuxImpl___closed__1; +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__4; lean_object* l_Lean_Meta_isLevelDefEqAux___main(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isExprDefEqAuxImpl___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_HashMapImp_insert___at_Lean_Closure_visitExpr___spec__3(lean_object*, lean_object*, lean_object*); @@ -174,7 +178,6 @@ extern lean_object* l_Lean_formatEntry___closed__2; lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l_Array_anyRangeMAux___main___at___private_Lean_Meta_ExprDefEq_19__processAssignmentAux___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_44__unstuckMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__7; lean_object* l_Array_contains___at_Lean_Meta_CheckAssignment_check___main___spec__2___boxed(lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_22__isListLevelDefEq(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_38__isAssignable(lean_object*, lean_object*, lean_object*); @@ -207,7 +210,6 @@ uint8_t l_Lean_Meta_TransparencyMode_beq(uint8_t, uint8_t); lean_object* l___private_Lean_Meta_ExprDefEq_13__visit(lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_2__isDefEqArgsFirstPass___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_commitWhen___at_Lean_Meta_isExprDefEqAuxImpl___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__5; lean_object* l___private_Lean_Meta_ExprDefEq_6__isDefEqBindingAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_11__visit(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHeuristic___spec__1___lambda__2___closed__3; @@ -255,7 +257,6 @@ lean_object* l_Lean_LocalDecl_type(lean_object*); lean_object* l_Lean_LocalDecl_value_x3f(lean_object*); lean_object* lean_local_ctx_mk_local_decl(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Meta_withNewLocalInstances___main___at___private_Lean_Meta_ExprDefEq_18__processConstApprox___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__3; lean_object* l_Lean_Meta_assignExprMVar(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_anyRangeMAux___main___at_Lean_Meta_CheckAssignmentQuick_check___main___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_CheckAssignment_getMCtx(lean_object*); @@ -263,7 +264,6 @@ lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHe uint8_t l_Lean_MetavarKind_isSyntheticOpaque(uint8_t); lean_object* l_Lean_WHNF_whnfCore___main___at_Lean_Meta_whnfCore___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Meta_ParamInfo_inhabited; -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__6; lean_object* l___private_Lean_Meta_ExprDefEq_5__isDefEqArgs(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_getLocalDecl(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isDefEqBindingDomain___main___at___private_Lean_Meta_ExprDefEq_6__isDefEqBindingAux___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -281,6 +281,7 @@ lean_object* l_Lean_mkApp(lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_37__isSynthetic___boxed(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_hasMVar(lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___closed__4; +lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_29__sameHeadSymbol___boxed(lean_object*, lean_object*); lean_object* lean_metavar_ctx_mk_decl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t); extern uint8_t l_Bool_Inhabited; @@ -289,7 +290,6 @@ lean_object* lean_panic_fn(lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_36__isDelayedAssignedHead(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_CheckAssignmentQuick_check(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l___private_Lean_Meta_ExprDefEq_39__etaEq(lean_object*, lean_object*); -lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Bool_toLBool(uint8_t); lean_object* l___private_Lean_Meta_ExprDefEq_15__processAssignmentFOApprox___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_24__isDefEqRight(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -310,10 +310,10 @@ lean_object* l___private_Lean_Meta_ExprDefEq_12__checkAssignmentFailure___closed lean_object* l_Lean_Meta_getFunInfoNArgs(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_metavar_ctx_find_decl(lean_object*, lean_object*); uint8_t l_Lean_Expr_isFVar(lean_object*); +lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqProofIrrel(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Expr_2__mkAppRangeAux___main(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfImpl___main___spec__1___closed__1; lean_object* l_Lean_Meta_isDefEqBindingDomain___main___at___private_Lean_Meta_ExprDefEq_6__isDefEqBindingAux___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqProofIrrel(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Expr_updateLet_x21___closed__1; lean_object* lean_expr_update_lambda(lean_object*, uint8_t, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_44__unstuckMVar___at___private_Lean_Meta_ExprDefEq_45__isDefEqOnFailure___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); @@ -324,7 +324,6 @@ uint8_t l_Lean_Meta_TransparencyMode_lt(uint8_t, uint8_t); extern lean_object* l_Lean_prodToExpr___rarg___lambda__1___closed__3; lean_object* l_Lean_Meta_isDelayedAssigned(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_hasLooseBVars(lean_object*); -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__2; lean_object* l___private_Lean_Expr_9__etaExpandedAux___main(lean_object*, lean_object*); lean_object* l_Lean_Meta_mkLambda(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_getMVarDecl(lean_object*, lean_object*, lean_object*); @@ -343,12 +342,14 @@ lean_object* l_Lean_Meta_reduceNative_x3f(lean_object*, lean_object*, lean_objec lean_object* l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___closed__3; lean_object* l_Lean_Meta_whnfD(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_CheckAssignment_getMCtx___boxed(lean_object*); +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__5; lean_object* l_Lean_Meta_setIsExprDefEqAuxRef___closed__1; lean_object* l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___closed__5; +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__3; lean_object* l_Lean_Meta_isDefEqNat(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHeuristic___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Meta_resettingSynthInstanceCache___rarg___closed__1; -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__4; lean_object* l_Lean_MetavarContext_getDecl(lean_object*, lean_object*); lean_object* l_Lean_Meta_isReadOnlyOrSyntheticOpaqueExprMVar(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_commitWhen___at_Lean_Meta_isExprDefEqAuxImpl___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -358,6 +359,7 @@ uint8_t l_Array_anyRangeMAux___main___at___private_Lean_Meta_ExprDefEq_19__proce lean_object* l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_local_ctx_find(lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_3__isDefEqArgsAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__7; lean_object* l___private_Lean_Meta_ExprDefEq_21__isDeltaCandidate(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_7__isDefEqBinding___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_46__consumeLet___main(lean_object*); @@ -378,12 +380,10 @@ lean_object* l___private_Lean_Meta_ExprDefEq_40__isLetFVar(lean_object*, lean_ob lean_object* l___private_Lean_Meta_ExprDefEq_20__processAssignment(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_anyRangeMAux___main___at___private_Lean_Meta_ExprDefEq_19__processAssignmentAux___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHeuristic___spec__1___lambda__2___closed__1; -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__1; lean_object* l___private_Lean_Meta_ExprDefEq_6__isDefEqBindingAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHeuristic___spec__1___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Expr_updateForallE_x21___closed__1; lean_object* lean_name_mk_numeral(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_ExprDefEq_30__unfoldComparingHeadsDefEq___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_LocalContext_isSubPrefixOf(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_15__processAssignmentFOApprox___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -44504,7 +44504,422 @@ return x_17; } } } -lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqProofIrrel(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +lean_inc(x_3); +lean_inc(x_1); +x_5 = l_Lean_Meta_isProofQuick___main(x_1, x_3, x_4); +if (lean_obj_tag(x_5) == 0) +{ +lean_object* x_6; uint8_t x_7; +x_6 = lean_ctor_get(x_5, 0); +lean_inc(x_6); +x_7 = lean_unbox(x_6); +switch (x_7) { +case 0: +{ +uint8_t x_8; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_8 = !lean_is_exclusive(x_5); +if (x_8 == 0) +{ +lean_object* x_9; uint8_t x_10; lean_object* x_11; +x_9 = lean_ctor_get(x_5, 0); +lean_dec(x_9); +x_10 = 2; +x_11 = lean_box(x_10); +lean_ctor_set(x_5, 0, x_11); +return x_5; +} +else +{ +lean_object* x_12; uint8_t x_13; lean_object* x_14; lean_object* x_15; +x_12 = lean_ctor_get(x_5, 1); +lean_inc(x_12); +lean_dec(x_5); +x_13 = 2; +x_14 = lean_box(x_13); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_12); +return x_15; +} +} +case 1: +{ +lean_object* x_16; lean_object* x_17; +lean_dec(x_6); +x_16 = lean_ctor_get(x_5, 1); +lean_inc(x_16); +lean_dec(x_5); +lean_inc(x_3); +x_17 = l_Lean_Meta_inferType(x_1, x_3, x_16); +if (lean_obj_tag(x_17) == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +lean_inc(x_3); +x_20 = l_Lean_Meta_inferType(x_2, x_3, x_19); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = l_Lean_Meta_isExprDefEqAux(x_18, x_21, x_3, x_22); +if (lean_obj_tag(x_23) == 0) +{ +uint8_t x_24; +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +lean_object* x_25; uint8_t x_26; uint8_t x_27; lean_object* x_28; +x_25 = lean_ctor_get(x_23, 0); +x_26 = lean_unbox(x_25); +lean_dec(x_25); +x_27 = l_Bool_toLBool(x_26); +x_28 = lean_box(x_27); +lean_ctor_set(x_23, 0, x_28); +return x_23; +} +else +{ +lean_object* x_29; lean_object* x_30; uint8_t x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; +x_29 = lean_ctor_get(x_23, 0); +x_30 = lean_ctor_get(x_23, 1); +lean_inc(x_30); +lean_inc(x_29); +lean_dec(x_23); +x_31 = lean_unbox(x_29); +lean_dec(x_29); +x_32 = l_Bool_toLBool(x_31); +x_33 = lean_box(x_32); +x_34 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_30); +return x_34; +} +} +else +{ +uint8_t x_35; +x_35 = !lean_is_exclusive(x_23); +if (x_35 == 0) +{ +return x_23; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_23, 0); +x_37 = lean_ctor_get(x_23, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_23); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_36); +lean_ctor_set(x_38, 1, x_37); +return x_38; +} +} +} +else +{ +uint8_t x_39; +lean_dec(x_18); +lean_dec(x_3); +x_39 = !lean_is_exclusive(x_20); +if (x_39 == 0) +{ +return x_20; +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_40 = lean_ctor_get(x_20, 0); +x_41 = lean_ctor_get(x_20, 1); +lean_inc(x_41); +lean_inc(x_40); +lean_dec(x_20); +x_42 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_42, 0, x_40); +lean_ctor_set(x_42, 1, x_41); +return x_42; +} +} +} +else +{ +uint8_t x_43; +lean_dec(x_3); +lean_dec(x_2); +x_43 = !lean_is_exclusive(x_17); +if (x_43 == 0) +{ +return x_17; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_17, 0); +x_45 = lean_ctor_get(x_17, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_17); +x_46 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_46, 0, x_44); +lean_ctor_set(x_46, 1, x_45); +return x_46; +} +} +} +default: +{ +lean_object* x_47; lean_object* x_48; +x_47 = lean_ctor_get(x_5, 1); +lean_inc(x_47); +lean_dec(x_5); +lean_inc(x_3); +x_48 = l_Lean_Meta_inferType(x_1, x_3, x_47); +if (lean_obj_tag(x_48) == 0) +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_48, 0); +lean_inc(x_49); +x_50 = lean_ctor_get(x_48, 1); +lean_inc(x_50); +lean_dec(x_48); +lean_inc(x_3); +lean_inc(x_49); +x_51 = l_Lean_Meta_isProp(x_49, x_3, x_50); +if (lean_obj_tag(x_51) == 0) +{ +lean_object* x_52; uint8_t x_53; +x_52 = lean_ctor_get(x_51, 0); +lean_inc(x_52); +x_53 = lean_unbox(x_52); +lean_dec(x_52); +if (x_53 == 0) +{ +uint8_t x_54; +lean_dec(x_49); +lean_dec(x_3); +lean_dec(x_2); +x_54 = !lean_is_exclusive(x_51); +if (x_54 == 0) +{ +lean_object* x_55; +x_55 = lean_ctor_get(x_51, 0); +lean_dec(x_55); +lean_ctor_set(x_51, 0, x_6); +return x_51; +} +else +{ +lean_object* x_56; lean_object* x_57; +x_56 = lean_ctor_get(x_51, 1); +lean_inc(x_56); +lean_dec(x_51); +x_57 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_57, 0, x_6); +lean_ctor_set(x_57, 1, x_56); +return x_57; +} +} +else +{ +lean_object* x_58; lean_object* x_59; +lean_dec(x_6); +x_58 = lean_ctor_get(x_51, 1); +lean_inc(x_58); +lean_dec(x_51); +lean_inc(x_3); +x_59 = l_Lean_Meta_inferType(x_2, x_3, x_58); +if (lean_obj_tag(x_59) == 0) +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_60 = lean_ctor_get(x_59, 0); +lean_inc(x_60); +x_61 = lean_ctor_get(x_59, 1); +lean_inc(x_61); +lean_dec(x_59); +x_62 = l_Lean_Meta_isExprDefEqAux(x_49, x_60, x_3, x_61); +if (lean_obj_tag(x_62) == 0) +{ +uint8_t x_63; +x_63 = !lean_is_exclusive(x_62); +if (x_63 == 0) +{ +lean_object* x_64; uint8_t x_65; uint8_t x_66; lean_object* x_67; +x_64 = lean_ctor_get(x_62, 0); +x_65 = lean_unbox(x_64); +lean_dec(x_64); +x_66 = l_Bool_toLBool(x_65); +x_67 = lean_box(x_66); +lean_ctor_set(x_62, 0, x_67); +return x_62; +} +else +{ +lean_object* x_68; lean_object* x_69; uint8_t x_70; uint8_t x_71; lean_object* x_72; lean_object* x_73; +x_68 = lean_ctor_get(x_62, 0); +x_69 = lean_ctor_get(x_62, 1); +lean_inc(x_69); +lean_inc(x_68); +lean_dec(x_62); +x_70 = lean_unbox(x_68); +lean_dec(x_68); +x_71 = l_Bool_toLBool(x_70); +x_72 = lean_box(x_71); +x_73 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_73, 0, x_72); +lean_ctor_set(x_73, 1, x_69); +return x_73; +} +} +else +{ +uint8_t x_74; +x_74 = !lean_is_exclusive(x_62); +if (x_74 == 0) +{ +return x_62; +} +else +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; +x_75 = lean_ctor_get(x_62, 0); +x_76 = lean_ctor_get(x_62, 1); +lean_inc(x_76); +lean_inc(x_75); +lean_dec(x_62); +x_77 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_77, 0, x_75); +lean_ctor_set(x_77, 1, x_76); +return x_77; +} +} +} +else +{ +uint8_t x_78; +lean_dec(x_49); +lean_dec(x_3); +x_78 = !lean_is_exclusive(x_59); +if (x_78 == 0) +{ +return x_59; +} +else +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_79 = lean_ctor_get(x_59, 0); +x_80 = lean_ctor_get(x_59, 1); +lean_inc(x_80); +lean_inc(x_79); +lean_dec(x_59); +x_81 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_81, 0, x_79); +lean_ctor_set(x_81, 1, x_80); +return x_81; +} +} +} +} +else +{ +uint8_t x_82; +lean_dec(x_49); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_82 = !lean_is_exclusive(x_51); +if (x_82 == 0) +{ +return x_51; +} +else +{ +lean_object* x_83; lean_object* x_84; lean_object* x_85; +x_83 = lean_ctor_get(x_51, 0); +x_84 = lean_ctor_get(x_51, 1); +lean_inc(x_84); +lean_inc(x_83); +lean_dec(x_51); +x_85 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_85, 0, x_83); +lean_ctor_set(x_85, 1, x_84); +return x_85; +} +} +} +else +{ +uint8_t x_86; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_86 = !lean_is_exclusive(x_48); +if (x_86 == 0) +{ +return x_48; +} +else +{ +lean_object* x_87; lean_object* x_88; lean_object* x_89; +x_87 = lean_ctor_get(x_48, 0); +x_88 = lean_ctor_get(x_48, 1); +lean_inc(x_88); +lean_inc(x_87); +lean_dec(x_48); +x_89 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_89, 0, x_87); +lean_ctor_set(x_89, 1, x_88); +return x_89; +} +} +} +} +} +else +{ +uint8_t x_90; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_90 = !lean_is_exclusive(x_5); +if (x_90 == 0) +{ +return x_5; +} +else +{ +lean_object* x_91; lean_object* x_92; lean_object* x_93; +x_91 = lean_ctor_get(x_5, 0); +x_92 = lean_ctor_get(x_5, 1); +lean_inc(x_92); +lean_inc(x_91); +lean_dec(x_5); +x_93 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_93, 0, x_91); +lean_ctor_set(x_93, 1, x_92); +return x_93; +} +} +} +} +lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { uint8_t x_5; @@ -44864,7 +45279,7 @@ return x_58; } } } -lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { uint8_t x_5; @@ -45224,7 +45639,7 @@ return x_58; } } } -lean_object* _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__1() { +lean_object* _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -45234,7 +45649,7 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__2() { +lean_object* _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__2() { _start: { lean_object* x_1; @@ -45242,27 +45657,27 @@ x_1 = lean_mk_string(" [nonassignable]"); return x_1; } } -lean_object* _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__3() { +lean_object* _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__2; +x_1 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__2; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__4() { +lean_object* _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__3; +x_1 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__3; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__5() { +lean_object* _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__5() { _start: { lean_object* x_1; @@ -45270,27 +45685,27 @@ x_1 = lean_mk_string(" [assignable]"); return x_1; } } -lean_object* _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__6() { +lean_object* _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__6() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__5; +x_1 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__5; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__7() { +lean_object* _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__7() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__6; +x_1 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__6; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_355; @@ -45303,10 +45718,8 @@ case 1: lean_object* x_379; lean_object* x_380; lean_object* x_381; x_379 = lean_ctor_get(x_1, 0); lean_inc(x_379); -lean_dec(x_1); x_380 = lean_ctor_get(x_2, 0); lean_inc(x_380); -lean_dec(x_2); lean_inc(x_3); lean_inc(x_379); x_381 = l___private_Lean_Meta_ExprDefEq_40__isLetFVar(x_379, x_3, x_4); @@ -45323,6 +45736,7 @@ lean_object* x_384; lean_object* x_385; x_384 = lean_ctor_get(x_381, 1); lean_inc(x_384); lean_dec(x_381); +lean_inc(x_3); lean_inc(x_380); x_385 = l___private_Lean_Meta_ExprDefEq_40__isLetFVar(x_380, x_3, x_384); if (lean_obj_tag(x_385) == 0) @@ -45338,306 +45752,344 @@ uint8_t x_388; x_388 = !lean_is_exclusive(x_385); if (x_388 == 0) { -lean_object* x_389; uint8_t x_390; uint8_t x_391; lean_object* x_392; -x_389 = lean_ctor_get(x_385, 0); -lean_dec(x_389); -x_390 = lean_name_eq(x_379, x_380); +lean_object* x_389; lean_object* x_390; uint8_t x_391; +x_389 = lean_ctor_get(x_385, 1); +x_390 = lean_ctor_get(x_385, 0); +lean_dec(x_390); +x_391 = lean_name_eq(x_379, x_380); lean_dec(x_380); lean_dec(x_379); -x_391 = l_Bool_toLBool(x_390); -x_392 = lean_box(x_391); -lean_ctor_set(x_385, 0, x_392); -return x_385; +if (x_391 == 0) +{ +lean_object* x_392; +lean_free_object(x_385); +x_392 = l___private_Lean_Meta_ExprDefEq_41__isDefEqProofIrrel(x_1, x_2, x_3, x_389); +return x_392; } else { -lean_object* x_393; uint8_t x_394; uint8_t x_395; lean_object* x_396; lean_object* x_397; -x_393 = lean_ctor_get(x_385, 1); -lean_inc(x_393); +uint8_t x_393; lean_object* x_394; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_393 = 1; +x_394 = lean_box(x_393); +lean_ctor_set(x_385, 0, x_394); +return x_385; +} +} +else +{ +lean_object* x_395; uint8_t x_396; +x_395 = lean_ctor_get(x_385, 1); +lean_inc(x_395); lean_dec(x_385); -x_394 = lean_name_eq(x_379, x_380); +x_396 = lean_name_eq(x_379, x_380); lean_dec(x_380); lean_dec(x_379); -x_395 = l_Bool_toLBool(x_394); -x_396 = lean_box(x_395); -x_397 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_397, 0, x_396); -lean_ctor_set(x_397, 1, x_393); +if (x_396 == 0) +{ +lean_object* x_397; +x_397 = l___private_Lean_Meta_ExprDefEq_41__isDefEqProofIrrel(x_1, x_2, x_3, x_395); return x_397; } +else +{ +uint8_t x_398; lean_object* x_399; lean_object* x_400; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_398 = 1; +x_399 = lean_box(x_398); +x_400 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_400, 0, x_399); +lean_ctor_set(x_400, 1, x_395); +return x_400; +} +} } else { -uint8_t x_398; +uint8_t x_401; lean_dec(x_380); lean_dec(x_379); -x_398 = !lean_is_exclusive(x_385); -if (x_398 == 0) +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_401 = !lean_is_exclusive(x_385); +if (x_401 == 0) { -lean_object* x_399; uint8_t x_400; lean_object* x_401; -x_399 = lean_ctor_get(x_385, 0); -lean_dec(x_399); -x_400 = 2; -x_401 = lean_box(x_400); -lean_ctor_set(x_385, 0, x_401); -return x_385; -} -else -{ -lean_object* x_402; uint8_t x_403; lean_object* x_404; lean_object* x_405; -x_402 = lean_ctor_get(x_385, 1); -lean_inc(x_402); -lean_dec(x_385); +lean_object* x_402; uint8_t x_403; lean_object* x_404; +x_402 = lean_ctor_get(x_385, 0); +lean_dec(x_402); x_403 = 2; x_404 = lean_box(x_403); -x_405 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_405, 0, x_404); -lean_ctor_set(x_405, 1, x_402); -return x_405; +lean_ctor_set(x_385, 0, x_404); +return x_385; +} +else +{ +lean_object* x_405; uint8_t x_406; lean_object* x_407; lean_object* x_408; +x_405 = lean_ctor_get(x_385, 1); +lean_inc(x_405); +lean_dec(x_385); +x_406 = 2; +x_407 = lean_box(x_406); +x_408 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_408, 0, x_407); +lean_ctor_set(x_408, 1, x_405); +return x_408; } } } else { -uint8_t x_406; +uint8_t x_409; lean_dec(x_380); lean_dec(x_379); -x_406 = !lean_is_exclusive(x_385); -if (x_406 == 0) +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_409 = !lean_is_exclusive(x_385); +if (x_409 == 0) { return x_385; } else { -lean_object* x_407; lean_object* x_408; lean_object* x_409; -x_407 = lean_ctor_get(x_385, 0); -x_408 = lean_ctor_get(x_385, 1); -lean_inc(x_408); -lean_inc(x_407); +lean_object* x_410; lean_object* x_411; lean_object* x_412; +x_410 = lean_ctor_get(x_385, 0); +x_411 = lean_ctor_get(x_385, 1); +lean_inc(x_411); +lean_inc(x_410); lean_dec(x_385); -x_409 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_409, 0, x_407); -lean_ctor_set(x_409, 1, x_408); -return x_409; +x_412 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_412, 0, x_410); +lean_ctor_set(x_412, 1, x_411); +return x_412; } } } else { -uint8_t x_410; +uint8_t x_413; lean_dec(x_380); lean_dec(x_379); lean_dec(x_3); -x_410 = !lean_is_exclusive(x_381); -if (x_410 == 0) +lean_dec(x_2); +lean_dec(x_1); +x_413 = !lean_is_exclusive(x_381); +if (x_413 == 0) { -lean_object* x_411; uint8_t x_412; lean_object* x_413; -x_411 = lean_ctor_get(x_381, 0); -lean_dec(x_411); -x_412 = 2; -x_413 = lean_box(x_412); -lean_ctor_set(x_381, 0, x_413); -return x_381; -} -else -{ -lean_object* x_414; uint8_t x_415; lean_object* x_416; lean_object* x_417; -x_414 = lean_ctor_get(x_381, 1); -lean_inc(x_414); -lean_dec(x_381); +lean_object* x_414; uint8_t x_415; lean_object* x_416; +x_414 = lean_ctor_get(x_381, 0); +lean_dec(x_414); x_415 = 2; x_416 = lean_box(x_415); -x_417 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_417, 0, x_416); -lean_ctor_set(x_417, 1, x_414); -return x_417; +lean_ctor_set(x_381, 0, x_416); +return x_381; +} +else +{ +lean_object* x_417; uint8_t x_418; lean_object* x_419; lean_object* x_420; +x_417 = lean_ctor_get(x_381, 1); +lean_inc(x_417); +lean_dec(x_381); +x_418 = 2; +x_419 = lean_box(x_418); +x_420 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_420, 0, x_419); +lean_ctor_set(x_420, 1, x_417); +return x_420; } } } else { -uint8_t x_418; +uint8_t x_421; lean_dec(x_380); lean_dec(x_379); lean_dec(x_3); -x_418 = !lean_is_exclusive(x_381); -if (x_418 == 0) +lean_dec(x_2); +lean_dec(x_1); +x_421 = !lean_is_exclusive(x_381); +if (x_421 == 0) { return x_381; } else { -lean_object* x_419; lean_object* x_420; lean_object* x_421; -x_419 = lean_ctor_get(x_381, 0); -x_420 = lean_ctor_get(x_381, 1); -lean_inc(x_420); -lean_inc(x_419); -lean_dec(x_381); -x_421 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_421, 0, x_419); -lean_ctor_set(x_421, 1, x_420); -return x_421; -} -} -} -case 10: -{ -lean_object* x_422; -x_422 = lean_ctor_get(x_2, 1); +lean_object* x_422; lean_object* x_423; lean_object* x_424; +x_422 = lean_ctor_get(x_381, 0); +x_423 = lean_ctor_get(x_381, 1); +lean_inc(x_423); lean_inc(x_422); -lean_dec(x_2); -x_2 = x_422; -goto _start; -} -default: -{ -lean_object* x_424; -x_424 = lean_box(0); -x_5 = x_424; -goto block_354; -} -} -} -case 3: -{ -switch (lean_obj_tag(x_2)) { -case 3: -{ -lean_object* x_425; lean_object* x_426; lean_object* x_427; -x_425 = lean_ctor_get(x_1, 0); -lean_inc(x_425); -lean_dec(x_1); -x_426 = lean_ctor_get(x_2, 0); -lean_inc(x_426); -lean_dec(x_2); -x_427 = l_Lean_Meta_isLevelDefEqAux___main(x_425, x_426, x_3, x_4); -lean_dec(x_3); -if (lean_obj_tag(x_427) == 0) -{ -uint8_t x_428; -x_428 = !lean_is_exclusive(x_427); -if (x_428 == 0) -{ -lean_object* x_429; uint8_t x_430; uint8_t x_431; lean_object* x_432; -x_429 = lean_ctor_get(x_427, 0); -x_430 = lean_unbox(x_429); -lean_dec(x_429); -x_431 = l_Bool_toLBool(x_430); -x_432 = lean_box(x_431); -lean_ctor_set(x_427, 0, x_432); -return x_427; -} -else -{ -lean_object* x_433; lean_object* x_434; uint8_t x_435; uint8_t x_436; lean_object* x_437; lean_object* x_438; -x_433 = lean_ctor_get(x_427, 0); -x_434 = lean_ctor_get(x_427, 1); -lean_inc(x_434); -lean_inc(x_433); -lean_dec(x_427); -x_435 = lean_unbox(x_433); -lean_dec(x_433); -x_436 = l_Bool_toLBool(x_435); -x_437 = lean_box(x_436); -x_438 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_438, 0, x_437); -lean_ctor_set(x_438, 1, x_434); -return x_438; -} -} -else -{ -uint8_t x_439; -x_439 = !lean_is_exclusive(x_427); -if (x_439 == 0) -{ -return x_427; -} -else -{ -lean_object* x_440; lean_object* x_441; lean_object* x_442; -x_440 = lean_ctor_get(x_427, 0); -x_441 = lean_ctor_get(x_427, 1); -lean_inc(x_441); -lean_inc(x_440); -lean_dec(x_427); -x_442 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_442, 0, x_440); -lean_ctor_set(x_442, 1, x_441); -return x_442; +lean_dec(x_381); +x_424 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_424, 0, x_422); +lean_ctor_set(x_424, 1, x_423); +return x_424; } } } case 10: { -lean_object* x_443; -x_443 = lean_ctor_get(x_2, 1); -lean_inc(x_443); +lean_object* x_425; +x_425 = lean_ctor_get(x_2, 1); +lean_inc(x_425); lean_dec(x_2); -x_2 = x_443; +x_2 = x_425; goto _start; } default: { -lean_object* x_445; -x_445 = lean_box(0); -x_5 = x_445; +lean_object* x_427; +x_427 = lean_box(0); +x_5 = x_427; goto block_354; } } } -case 6: +case 3: { switch (lean_obj_tag(x_2)) { -case 6: +case 3: +{ +lean_object* x_428; lean_object* x_429; lean_object* x_430; +x_428 = lean_ctor_get(x_1, 0); +lean_inc(x_428); +lean_dec(x_1); +x_429 = lean_ctor_get(x_2, 0); +lean_inc(x_429); +lean_dec(x_2); +x_430 = l_Lean_Meta_isLevelDefEqAux___main(x_428, x_429, x_3, x_4); +lean_dec(x_3); +if (lean_obj_tag(x_430) == 0) +{ +uint8_t x_431; +x_431 = !lean_is_exclusive(x_430); +if (x_431 == 0) +{ +lean_object* x_432; uint8_t x_433; uint8_t x_434; lean_object* x_435; +x_432 = lean_ctor_get(x_430, 0); +x_433 = lean_unbox(x_432); +lean_dec(x_432); +x_434 = l_Bool_toLBool(x_433); +x_435 = lean_box(x_434); +lean_ctor_set(x_430, 0, x_435); +return x_430; +} +else +{ +lean_object* x_436; lean_object* x_437; uint8_t x_438; uint8_t x_439; lean_object* x_440; lean_object* x_441; +x_436 = lean_ctor_get(x_430, 0); +x_437 = lean_ctor_get(x_430, 1); +lean_inc(x_437); +lean_inc(x_436); +lean_dec(x_430); +x_438 = lean_unbox(x_436); +lean_dec(x_436); +x_439 = l_Bool_toLBool(x_438); +x_440 = lean_box(x_439); +x_441 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_441, 0, x_440); +lean_ctor_set(x_441, 1, x_437); +return x_441; +} +} +else +{ +uint8_t x_442; +x_442 = !lean_is_exclusive(x_430); +if (x_442 == 0) +{ +return x_430; +} +else +{ +lean_object* x_443; lean_object* x_444; lean_object* x_445; +x_443 = lean_ctor_get(x_430, 0); +x_444 = lean_ctor_get(x_430, 1); +lean_inc(x_444); +lean_inc(x_443); +lean_dec(x_430); +x_445 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_445, 0, x_443); +lean_ctor_set(x_445, 1, x_444); +return x_445; +} +} +} +case 10: { lean_object* x_446; -x_446 = lean_box(0); -x_355 = x_446; -goto block_378; -} -case 10: -{ -lean_object* x_447; -x_447 = lean_ctor_get(x_2, 1); -lean_inc(x_447); +x_446 = lean_ctor_get(x_2, 1); +lean_inc(x_446); lean_dec(x_2); -x_2 = x_447; +x_2 = x_446; goto _start; } default: { +lean_object* x_448; +x_448 = lean_box(0); +x_5 = x_448; +goto block_354; +} +} +} +case 6: +{ +switch (lean_obj_tag(x_2)) { +case 6: +{ lean_object* x_449; x_449 = lean_box(0); -x_5 = x_449; -goto block_354; -} -} -} -case 7: -{ -switch (lean_obj_tag(x_2)) { -case 7: -{ -lean_object* x_450; -x_450 = lean_box(0); -x_355 = x_450; +x_355 = x_449; goto block_378; } case 10: { -lean_object* x_451; -x_451 = lean_ctor_get(x_2, 1); -lean_inc(x_451); +lean_object* x_450; +x_450 = lean_ctor_get(x_2, 1); +lean_inc(x_450); lean_dec(x_2); -x_2 = x_451; +x_2 = x_450; goto _start; } default: { +lean_object* x_452; +x_452 = lean_box(0); +x_5 = x_452; +goto block_354; +} +} +} +case 7: +{ +switch (lean_obj_tag(x_2)) { +case 7: +{ lean_object* x_453; x_453 = lean_box(0); -x_5 = x_453; +x_355 = x_453; +goto block_378; +} +case 10: +{ +lean_object* x_454; +x_454 = lean_ctor_get(x_2, 1); +lean_inc(x_454); +lean_dec(x_2); +x_2 = x_454; +goto _start; +} +default: +{ +lean_object* x_456; +x_456 = lean_box(0); +x_5 = x_456; goto block_354; } } @@ -45647,67 +46099,67 @@ case 9: switch (lean_obj_tag(x_2)) { case 9: { -lean_object* x_454; lean_object* x_455; uint8_t x_456; uint8_t x_457; lean_object* x_458; lean_object* x_459; +lean_object* x_457; lean_object* x_458; uint8_t x_459; uint8_t x_460; lean_object* x_461; lean_object* x_462; lean_dec(x_3); -x_454 = lean_ctor_get(x_1, 0); -lean_inc(x_454); +x_457 = lean_ctor_get(x_1, 0); +lean_inc(x_457); lean_dec(x_1); -x_455 = lean_ctor_get(x_2, 0); -lean_inc(x_455); +x_458 = lean_ctor_get(x_2, 0); +lean_inc(x_458); lean_dec(x_2); -x_456 = l_Lean_Literal_beq(x_454, x_455); -lean_dec(x_455); -lean_dec(x_454); -x_457 = l_Bool_toLBool(x_456); -x_458 = lean_box(x_457); -x_459 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_459, 0, x_458); -lean_ctor_set(x_459, 1, x_4); -return x_459; -} -case 10: -{ -lean_object* x_460; -x_460 = lean_ctor_get(x_2, 1); -lean_inc(x_460); -lean_dec(x_2); -x_2 = x_460; -goto _start; -} -default: -{ -lean_object* x_462; -x_462 = lean_box(0); -x_5 = x_462; -goto block_354; -} -} +x_459 = l_Lean_Literal_beq(x_457, x_458); +lean_dec(x_458); +lean_dec(x_457); +x_460 = l_Bool_toLBool(x_459); +x_461 = lean_box(x_460); +x_462 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_462, 0, x_461); +lean_ctor_set(x_462, 1, x_4); +return x_462; } case 10: { lean_object* x_463; -x_463 = lean_ctor_get(x_1, 1); +x_463 = lean_ctor_get(x_2, 1); lean_inc(x_463); +lean_dec(x_2); +x_2 = x_463; +goto _start; +} +default: +{ +lean_object* x_465; +x_465 = lean_box(0); +x_5 = x_465; +goto block_354; +} +} +} +case 10: +{ +lean_object* x_466; +x_466 = lean_ctor_get(x_1, 1); +lean_inc(x_466); lean_dec(x_1); -x_1 = x_463; +x_1 = x_466; goto _start; } default: { if (lean_obj_tag(x_2) == 10) { -lean_object* x_465; -x_465 = lean_ctor_get(x_2, 1); -lean_inc(x_465); +lean_object* x_468; +x_468 = lean_ctor_get(x_2, 1); +lean_inc(x_468); lean_dec(x_2); -x_2 = x_465; +x_2 = x_468; goto _start; } else { -lean_object* x_467; -x_467 = lean_box(0); -x_5 = x_467; +lean_object* x_470; +x_470 = lean_box(0); +x_5 = x_470; goto block_354; } } @@ -46316,7 +46768,7 @@ lean_object* x_160; lean_inc(x_3); lean_inc(x_2); lean_inc(x_1); -x_160 = l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___spec__2(x_1, x_2, x_3, x_122); +x_160 = l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___spec__2(x_1, x_2, x_3, x_122); if (lean_obj_tag(x_160) == 0) { lean_object* x_161; uint8_t x_162; @@ -46460,7 +46912,7 @@ lean_dec(x_123); lean_inc(x_3); lean_inc(x_2); lean_inc(x_1); -x_124 = l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___spec__1(x_1, x_2, x_3, x_122); +x_124 = l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___spec__1(x_1, x_2, x_3, x_122); if (lean_obj_tag(x_124) == 0) { lean_object* x_125; uint8_t x_126; @@ -46753,7 +47205,7 @@ goto block_83; else { lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; uint8_t x_91; -x_87 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__1; +x_87 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__1; x_88 = l___private_Lean_Util_Trace_5__checkTraceOptionM___at_Lean_Meta_check___spec__3(x_87, x_3, x_43); x_89 = lean_ctor_get(x_88, 0); lean_inc(x_89); @@ -46817,7 +47269,7 @@ lean_ctor_set(x_62, 0, x_2); x_63 = lean_alloc_ctor(9, 2, 0); lean_ctor_set(x_63, 0, x_61); lean_ctor_set(x_63, 1, x_62); -x_64 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__1; +x_64 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__1; x_65 = l_Lean_MonadTracerAdapter_addTrace___at_Lean_Meta_isTypeCorrect___spec__1(x_64, x_63, x_3, x_51); x_66 = !lean_is_exclusive(x_65); if (x_66 == 0) @@ -46904,7 +47356,7 @@ x_222 = lean_unbox(x_33); if (x_222 == 0) { lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; uint8_t x_228; -x_223 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__4; +x_223 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__4; x_224 = lean_alloc_ctor(9, 2, 0); lean_ctor_set(x_224, 0, x_220); lean_ctor_set(x_224, 1, x_223); @@ -46933,7 +47385,7 @@ goto block_217; else { lean_object* x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; -x_233 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__7; +x_233 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__7; x_234 = lean_alloc_ctor(9, 2, 0); lean_ctor_set(x_234, 0, x_227); lean_ctor_set(x_234, 1, x_233); @@ -46949,7 +47401,7 @@ goto block_217; else { lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; lean_object* x_242; uint8_t x_243; -x_238 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__7; +x_238 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__7; x_239 = lean_alloc_ctor(9, 2, 0); lean_ctor_set(x_239, 0, x_220); lean_ctor_set(x_239, 1, x_238); @@ -46964,7 +47416,7 @@ x_243 = lean_unbox(x_37); if (x_243 == 0) { lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; -x_244 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__4; +x_244 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__4; x_245 = lean_alloc_ctor(9, 2, 0); lean_ctor_set(x_245, 0, x_242); lean_ctor_set(x_245, 1, x_244); @@ -47256,429 +47708,14 @@ return x_377; } } } -lean_object* l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main(x_1, x_2, x_3, x_4); +x_5 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main(x_1, x_2, x_3, x_4); return x_5; } } -lean_object* l___private_Lean_Meta_ExprDefEq_42__isDefEqProofIrrel(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; -lean_inc(x_3); -lean_inc(x_1); -x_5 = l_Lean_Meta_isProofQuick___main(x_1, x_3, x_4); -if (lean_obj_tag(x_5) == 0) -{ -lean_object* x_6; uint8_t x_7; -x_6 = lean_ctor_get(x_5, 0); -lean_inc(x_6); -x_7 = lean_unbox(x_6); -switch (x_7) { -case 0: -{ -uint8_t x_8; -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_8 = !lean_is_exclusive(x_5); -if (x_8 == 0) -{ -lean_object* x_9; uint8_t x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_5, 0); -lean_dec(x_9); -x_10 = 2; -x_11 = lean_box(x_10); -lean_ctor_set(x_5, 0, x_11); -return x_5; -} -else -{ -lean_object* x_12; uint8_t x_13; lean_object* x_14; lean_object* x_15; -x_12 = lean_ctor_get(x_5, 1); -lean_inc(x_12); -lean_dec(x_5); -x_13 = 2; -x_14 = lean_box(x_13); -x_15 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_15, 0, x_14); -lean_ctor_set(x_15, 1, x_12); -return x_15; -} -} -case 1: -{ -lean_object* x_16; lean_object* x_17; -lean_dec(x_6); -x_16 = lean_ctor_get(x_5, 1); -lean_inc(x_16); -lean_dec(x_5); -lean_inc(x_3); -x_17 = l_Lean_Meta_inferType(x_1, x_3, x_16); -if (lean_obj_tag(x_17) == 0) -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -lean_inc(x_3); -x_20 = l_Lean_Meta_inferType(x_2, x_3, x_19); -if (lean_obj_tag(x_20) == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); -lean_dec(x_20); -x_23 = l_Lean_Meta_isExprDefEqAux(x_18, x_21, x_3, x_22); -if (lean_obj_tag(x_23) == 0) -{ -uint8_t x_24; -x_24 = !lean_is_exclusive(x_23); -if (x_24 == 0) -{ -lean_object* x_25; uint8_t x_26; uint8_t x_27; lean_object* x_28; -x_25 = lean_ctor_get(x_23, 0); -x_26 = lean_unbox(x_25); -lean_dec(x_25); -x_27 = l_Bool_toLBool(x_26); -x_28 = lean_box(x_27); -lean_ctor_set(x_23, 0, x_28); -return x_23; -} -else -{ -lean_object* x_29; lean_object* x_30; uint8_t x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; -x_29 = lean_ctor_get(x_23, 0); -x_30 = lean_ctor_get(x_23, 1); -lean_inc(x_30); -lean_inc(x_29); -lean_dec(x_23); -x_31 = lean_unbox(x_29); -lean_dec(x_29); -x_32 = l_Bool_toLBool(x_31); -x_33 = lean_box(x_32); -x_34 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_34, 0, x_33); -lean_ctor_set(x_34, 1, x_30); -return x_34; -} -} -else -{ -uint8_t x_35; -x_35 = !lean_is_exclusive(x_23); -if (x_35 == 0) -{ -return x_23; -} -else -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_23, 0); -x_37 = lean_ctor_get(x_23, 1); -lean_inc(x_37); -lean_inc(x_36); -lean_dec(x_23); -x_38 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_38, 0, x_36); -lean_ctor_set(x_38, 1, x_37); -return x_38; -} -} -} -else -{ -uint8_t x_39; -lean_dec(x_18); -lean_dec(x_3); -x_39 = !lean_is_exclusive(x_20); -if (x_39 == 0) -{ -return x_20; -} -else -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_20, 0); -x_41 = lean_ctor_get(x_20, 1); -lean_inc(x_41); -lean_inc(x_40); -lean_dec(x_20); -x_42 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_42, 0, x_40); -lean_ctor_set(x_42, 1, x_41); -return x_42; -} -} -} -else -{ -uint8_t x_43; -lean_dec(x_3); -lean_dec(x_2); -x_43 = !lean_is_exclusive(x_17); -if (x_43 == 0) -{ -return x_17; -} -else -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_44 = lean_ctor_get(x_17, 0); -x_45 = lean_ctor_get(x_17, 1); -lean_inc(x_45); -lean_inc(x_44); -lean_dec(x_17); -x_46 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_46, 0, x_44); -lean_ctor_set(x_46, 1, x_45); -return x_46; -} -} -} -default: -{ -lean_object* x_47; lean_object* x_48; -x_47 = lean_ctor_get(x_5, 1); -lean_inc(x_47); -lean_dec(x_5); -lean_inc(x_3); -x_48 = l_Lean_Meta_inferType(x_1, x_3, x_47); -if (lean_obj_tag(x_48) == 0) -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_49 = lean_ctor_get(x_48, 0); -lean_inc(x_49); -x_50 = lean_ctor_get(x_48, 1); -lean_inc(x_50); -lean_dec(x_48); -lean_inc(x_3); -lean_inc(x_49); -x_51 = l_Lean_Meta_isProp(x_49, x_3, x_50); -if (lean_obj_tag(x_51) == 0) -{ -lean_object* x_52; uint8_t x_53; -x_52 = lean_ctor_get(x_51, 0); -lean_inc(x_52); -x_53 = lean_unbox(x_52); -lean_dec(x_52); -if (x_53 == 0) -{ -uint8_t x_54; -lean_dec(x_49); -lean_dec(x_3); -lean_dec(x_2); -x_54 = !lean_is_exclusive(x_51); -if (x_54 == 0) -{ -lean_object* x_55; -x_55 = lean_ctor_get(x_51, 0); -lean_dec(x_55); -lean_ctor_set(x_51, 0, x_6); -return x_51; -} -else -{ -lean_object* x_56; lean_object* x_57; -x_56 = lean_ctor_get(x_51, 1); -lean_inc(x_56); -lean_dec(x_51); -x_57 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_57, 0, x_6); -lean_ctor_set(x_57, 1, x_56); -return x_57; -} -} -else -{ -lean_object* x_58; lean_object* x_59; -lean_dec(x_6); -x_58 = lean_ctor_get(x_51, 1); -lean_inc(x_58); -lean_dec(x_51); -lean_inc(x_3); -x_59 = l_Lean_Meta_inferType(x_2, x_3, x_58); -if (lean_obj_tag(x_59) == 0) -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; -x_60 = lean_ctor_get(x_59, 0); -lean_inc(x_60); -x_61 = lean_ctor_get(x_59, 1); -lean_inc(x_61); -lean_dec(x_59); -x_62 = l_Lean_Meta_isExprDefEqAux(x_49, x_60, x_3, x_61); -if (lean_obj_tag(x_62) == 0) -{ -uint8_t x_63; -x_63 = !lean_is_exclusive(x_62); -if (x_63 == 0) -{ -lean_object* x_64; uint8_t x_65; uint8_t x_66; lean_object* x_67; -x_64 = lean_ctor_get(x_62, 0); -x_65 = lean_unbox(x_64); -lean_dec(x_64); -x_66 = l_Bool_toLBool(x_65); -x_67 = lean_box(x_66); -lean_ctor_set(x_62, 0, x_67); -return x_62; -} -else -{ -lean_object* x_68; lean_object* x_69; uint8_t x_70; uint8_t x_71; lean_object* x_72; lean_object* x_73; -x_68 = lean_ctor_get(x_62, 0); -x_69 = lean_ctor_get(x_62, 1); -lean_inc(x_69); -lean_inc(x_68); -lean_dec(x_62); -x_70 = lean_unbox(x_68); -lean_dec(x_68); -x_71 = l_Bool_toLBool(x_70); -x_72 = lean_box(x_71); -x_73 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_73, 0, x_72); -lean_ctor_set(x_73, 1, x_69); -return x_73; -} -} -else -{ -uint8_t x_74; -x_74 = !lean_is_exclusive(x_62); -if (x_74 == 0) -{ -return x_62; -} -else -{ -lean_object* x_75; lean_object* x_76; lean_object* x_77; -x_75 = lean_ctor_get(x_62, 0); -x_76 = lean_ctor_get(x_62, 1); -lean_inc(x_76); -lean_inc(x_75); -lean_dec(x_62); -x_77 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_77, 0, x_75); -lean_ctor_set(x_77, 1, x_76); -return x_77; -} -} -} -else -{ -uint8_t x_78; -lean_dec(x_49); -lean_dec(x_3); -x_78 = !lean_is_exclusive(x_59); -if (x_78 == 0) -{ -return x_59; -} -else -{ -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_59, 0); -x_80 = lean_ctor_get(x_59, 1); -lean_inc(x_80); -lean_inc(x_79); -lean_dec(x_59); -x_81 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_81, 0, x_79); -lean_ctor_set(x_81, 1, x_80); -return x_81; -} -} -} -} -else -{ -uint8_t x_82; -lean_dec(x_49); -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_82 = !lean_is_exclusive(x_51); -if (x_82 == 0) -{ -return x_51; -} -else -{ -lean_object* x_83; lean_object* x_84; lean_object* x_85; -x_83 = lean_ctor_get(x_51, 0); -x_84 = lean_ctor_get(x_51, 1); -lean_inc(x_84); -lean_inc(x_83); -lean_dec(x_51); -x_85 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_85, 0, x_83); -lean_ctor_set(x_85, 1, x_84); -return x_85; -} -} -} -else -{ -uint8_t x_86; -lean_dec(x_6); -lean_dec(x_3); -lean_dec(x_2); -x_86 = !lean_is_exclusive(x_48); -if (x_86 == 0) -{ -return x_48; -} -else -{ -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_48, 0); -x_88 = lean_ctor_get(x_48, 1); -lean_inc(x_88); -lean_inc(x_87); -lean_dec(x_48); -x_89 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_89, 0, x_87); -lean_ctor_set(x_89, 1, x_88); -return x_89; -} -} -} -} -} -else -{ -uint8_t x_90; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_90 = !lean_is_exclusive(x_5); -if (x_90 == 0) -{ -return x_5; -} -else -{ -lean_object* x_91; lean_object* x_92; lean_object* x_93; -x_91 = lean_ctor_get(x_5, 0); -x_92 = lean_ctor_get(x_5, 1); -lean_inc(x_92); -lean_inc(x_91); -lean_dec(x_5); -x_93 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_93, 0, x_91); -lean_ctor_set(x_93, 1, x_92); -return x_93; -} -} -} -} lean_object* l_Lean_Meta_whenUndefDo(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -47825,7 +47862,7 @@ lean_dec(x_2); lean_inc(x_4); lean_inc(x_10); lean_inc(x_7); -x_13 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main(x_7, x_10, x_4, x_11); +x_13 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main(x_7, x_10, x_4, x_11); if (lean_obj_tag(x_13) == 0) { lean_object* x_14; uint8_t x_15; @@ -47947,7 +47984,7 @@ lean_object* x_39; lean_inc(x_4); lean_inc(x_10); lean_inc(x_7); -x_39 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main(x_7, x_10, x_4, x_11); +x_39 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main(x_7, x_10, x_4, x_11); if (lean_obj_tag(x_39) == 0) { lean_object* x_40; uint8_t x_41; @@ -49046,7 +49083,7 @@ lean_dec(x_2); lean_inc(x_3); lean_inc(x_9); lean_inc(x_6); -x_13 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main(x_6, x_9, x_3, x_10); +x_13 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main(x_6, x_9, x_3, x_10); if (lean_obj_tag(x_13) == 0) { lean_object* x_14; uint8_t x_15; @@ -51310,7 +51347,7 @@ lean_dec(x_11); lean_inc(x_3); lean_inc(x_9); lean_inc(x_6); -x_501 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main(x_6, x_9, x_3, x_10); +x_501 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main(x_6, x_9, x_3, x_10); if (lean_obj_tag(x_501) == 0) { lean_object* x_502; uint8_t x_503; @@ -55837,7 +55874,7 @@ lean_object* x_8; lean_inc(x_3); lean_inc(x_6); lean_inc(x_5); -x_8 = l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main(x_5, x_6, x_3, x_7); +x_8 = l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main(x_5, x_6, x_3, x_7); if (lean_obj_tag(x_8) == 0) { lean_object* x_9; uint8_t x_10; @@ -55917,7 +55954,7 @@ lean_dec(x_8); lean_inc(x_3); lean_inc(x_6); lean_inc(x_5); -x_28 = l___private_Lean_Meta_ExprDefEq_42__isDefEqProofIrrel(x_5, x_6, x_3, x_27); +x_28 = l___private_Lean_Meta_ExprDefEq_41__isDefEqProofIrrel(x_5, x_6, x_3, x_27); if (lean_obj_tag(x_28) == 0) { lean_object* x_29; uint8_t x_30; @@ -56345,20 +56382,20 @@ l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHeuristic___spe lean_mark_persistent(l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHeuristic___spec__1___lambda__2___closed__2); l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHeuristic___spec__1___lambda__2___closed__3 = _init_l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHeuristic___spec__1___lambda__2___closed__3(); lean_mark_persistent(l_Lean_Meta_commitWhen___at___private_Lean_Meta_ExprDefEq_26__tryHeuristic___spec__1___lambda__2___closed__3); -l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__1 = _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__1); -l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__2 = _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__2); -l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__3 = _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__3); -l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__4 = _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__4(); -lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__4); -l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__5 = _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__5(); -lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__5); -l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__6 = _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__6(); -lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__6); -l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__7 = _init_l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__7(); -lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_41__isDefEqQuick___main___closed__7); +l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__1 = _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__1); +l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__2 = _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__2); +l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__3 = _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__3); +l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__4 = _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__4(); +lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__4); +l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__5 = _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__5(); +lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__5); +l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__6 = _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__6(); +lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__6); +l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__7 = _init_l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__7(); +lean_mark_persistent(l___private_Lean_Meta_ExprDefEq_42__isDefEqQuick___main___closed__7); l_Lean_Meta_isExprDefEqAuxImpl___closed__1 = _init_l_Lean_Meta_isExprDefEqAuxImpl___closed__1(); lean_mark_persistent(l_Lean_Meta_isExprDefEqAuxImpl___closed__1); l_Lean_Meta_setIsExprDefEqAuxRef___closed__1 = _init_l_Lean_Meta_setIsExprDefEqAuxRef___closed__1(); diff --git a/stage0/stdlib/Lean/Parser/Tactic.c b/stage0/stdlib/Lean/Parser/Tactic.c index 81338eed93..7aeb775b91 100644 --- a/stage0/stdlib/Lean/Parser/Tactic.c +++ b/stage0/stdlib/Lean/Parser/Tactic.c @@ -144,7 +144,6 @@ lean_object* l_Lean_Parser_Tactic_apply___closed__4; lean_object* l_Lean_Parser_Tactic_allGoals___elambda__1___closed__6; lean_object* l_Lean_Parser_Tactic_exact___elambda__1___closed__6; extern lean_object* l_Lean_Parser_darrow; -extern lean_object* l_Lean_Parser_Term_le_parenthesizer___closed__2; extern lean_object* l_Lean_Parser_antiquotNestedExpr_parenthesizer___closed__1; lean_object* l_Lean_Parser_Tactic_inductionAlt___closed__4; lean_object* l_Lean_Parser_Tactic_inductionAlt; @@ -728,6 +727,7 @@ lean_object* l_Lean_Parser_Tactic_cases_parenthesizer___closed__3; extern lean_object* l_Lean_Parser_Term_namedHole_parenthesizer___closed__2; lean_object* l_Lean_Parser_Tactic_underscore_parenthesizer___rarg___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Tactic_inductionAlts___closed__1; +lean_object* l_Lean_Parser_Tactic_generalize_parenthesizer___closed__7; lean_object* l___regBuiltin_Lean_Parser_Tactic_clear_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Tactic_skip_parenthesizer___closed__2; lean_object* l_Lean_Parser_Tactic_cases_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); @@ -803,6 +803,7 @@ lean_object* l_Lean_Parser_Tactic_paren___closed__7; extern lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14; lean_object* l_Lean_Parser_Tactic_clear_parenthesizer___closed__1; lean_object* l_Lean_Parser_Tactic_allGoals___elambda__1___closed__4; +lean_object* l_Lean_Parser_termParser_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_string_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_Parser_Tactic_withAlts___closed__3; lean_object* l_Lean_Parser_Tactic_majorPremise; @@ -7851,21 +7852,19 @@ return x_2; lean_object* _init_l_Lean_Parser_Tactic_generalize_parenthesizer___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_le_parenthesizer___closed__2; -x_2 = l_Lean_Parser_Term_namedHole_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(51u); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; } } lean_object* _init_l_Lean_Parser_Tactic_generalize_parenthesizer___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__2; -x_2 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__3; +x_1 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__3; +x_2 = l_Lean_Parser_Term_namedHole_parenthesizer___closed__2; x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); lean_closure_set(x_3, 0, x_1); lean_closure_set(x_3, 1, x_2); @@ -7876,7 +7875,7 @@ lean_object* _init_l_Lean_Parser_Tactic_generalize_parenthesizer___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__2; +x_1 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__2; x_2 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__4; x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); lean_closure_set(x_3, 0, x_1); @@ -7887,10 +7886,22 @@ return x_3; lean_object* _init_l_Lean_Parser_Tactic_generalize_parenthesizer___closed__6() { _start: { +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__2; +x_2 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__5; +x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Parser_Tactic_generalize_parenthesizer___closed__7() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = l_Lean_Parser_Tactic_generalize___elambda__1___closed__2; x_2 = lean_unsigned_to_nat(1024u); -x_3 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__5; +x_3 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__6; x_4 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_leadingNode_parenthesizer), 7, 3); lean_closure_set(x_4, 0, x_1); lean_closure_set(x_4, 1, x_2); @@ -7903,7 +7914,7 @@ _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; x_5 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__1; -x_6 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__6; +x_6 = l_Lean_Parser_Tactic_generalize_parenthesizer___closed__7; x_7 = l_Lean_PrettyPrinter_Parenthesizer_orelse_parenthesizer(x_5, x_6, x_1, x_2, x_3, x_4); return x_7; } @@ -16409,6 +16420,8 @@ l_Lean_Parser_Tactic_generalize_parenthesizer___closed__5 = _init_l_Lean_Parser_ lean_mark_persistent(l_Lean_Parser_Tactic_generalize_parenthesizer___closed__5); l_Lean_Parser_Tactic_generalize_parenthesizer___closed__6 = _init_l_Lean_Parser_Tactic_generalize_parenthesizer___closed__6(); lean_mark_persistent(l_Lean_Parser_Tactic_generalize_parenthesizer___closed__6); +l_Lean_Parser_Tactic_generalize_parenthesizer___closed__7 = _init_l_Lean_Parser_Tactic_generalize_parenthesizer___closed__7(); +lean_mark_persistent(l_Lean_Parser_Tactic_generalize_parenthesizer___closed__7); l___regBuiltin_Lean_Parser_Tactic_generalize_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Tactic_generalize_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Tactic_generalize_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Tactic_generalize_parenthesizer(lean_io_mk_world()); diff --git a/stage0/stdlib/Lean/Parser/Term.c b/stage0/stdlib/Lean/Parser/Term.c index 1548a4a60e..291079fe40 100644 --- a/stage0/stdlib/Lean/Parser/Term.c +++ b/stage0/stdlib/Lean/Parser/Term.c @@ -39,7 +39,6 @@ lean_object* l_Lean_Parser_Term_doPat___closed__7; lean_object* l_Lean_Parser_Term_binderTactic_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_liftMethod_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_iff___elambda__1___closed__1; -lean_object* l_Lean_Parser_Term_bor_parenthesizer___closed__2; lean_object* l_Lean_Parser_Level_quot___closed__3; lean_object* l_Lean_Parser_Term_uminus_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_not; @@ -109,7 +108,6 @@ lean_object* l_Lean_Parser_Term_if___elambda__1___closed__18; lean_object* l___regBuiltinParser_Lean_Parser_Term_structInst(lean_object*); lean_object* l_Lean_Parser_Term_gt___elambda__1___closed__1; lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_matchAlts___elambda__1___spec__2___closed__3; -lean_object* l_Lean_Parser_Term_arrow_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_haveAssign___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__20; lean_object* l_Lean_PrettyPrinter_Parenthesizer_categoryParser_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -127,6 +125,7 @@ lean_object* l_Lean_Parser_Term_andthen___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_doPat_parenthesizer___closed__2; lean_object* l_Lean_Parser_andthenInfo(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_have___elambda__1___closed__7; +lean_object* l_Lean_Parser_Term_infixL_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_explicit___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_bnot___closed__4; lean_object* l_Lean_Parser_Term_sub___elambda__1(lean_object*, lean_object*); @@ -176,7 +175,6 @@ lean_object* l_Lean_Parser_Term_leftArrow_parenthesizer___rarg(lean_object*, lea lean_object* l_Lean_Parser_Term_show; lean_object* l_Lean_Parser_Level_quot_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_matchDiscr___closed__1; -lean_object* l_Lean_Parser_Term_band_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_ne___elambda__1___closed__3; lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_matchAlts___elambda__1___spec__2___closed__5; lean_object* l_Lean_Parser_Term_band; @@ -199,10 +197,10 @@ lean_object* l_Lean_Parser_Term_instBinder; lean_object* l_Lean_Parser_Term_fun___closed__7; lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_match__syntax_parenthesizer___closed__2; +lean_object* l_Lean_Parser_Term_infixR_parenthesizer(lean_object*); extern lean_object* l_Lean_Parser_Level_paren___closed__2; lean_object* l_Lean_Parser_Term_inaccessible___closed__1; lean_object* l_Lean_Parser_Term_bindOp_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_mapRev_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_not___closed__6; lean_object* l_Lean_Parser_Term_matchAlts(uint8_t); lean_object* l_Lean_Parser_Term_haveAssign___elambda__1___closed__7; @@ -214,13 +212,12 @@ lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__12; lean_object* l_Lean_Parser_Term_lt___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_funBinder_quot___closed__4; lean_object* l_Lean_Parser_Term_namedArgument___closed__7; -lean_object* l_Lean_Parser_Term_add_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_bne___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_suffices___closed__2; lean_object* l_Lean_Parser_Term_doExpr___closed__2; +lean_object* l_Lean_Parser_Term_infixL_parenthesizer___boxed(lean_object*); lean_object* l_Lean_Parser_Term_explicit___closed__1; lean_object* l_Lean_Parser_Term_andthen___closed__3; -lean_object* l_Lean_Parser_Term_iff_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_not___elambda__1___closed__7; lean_object* l___regBuiltin_Lean_Parser_Term_tacticBlock_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_bracketedBinder(uint8_t); @@ -243,7 +240,6 @@ lean_object* l_Lean_Parser_Term_nativeDecide___closed__3; lean_object* l_Lean_Parser_Term_forall___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_optType_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_not___closed__5; -lean_object* l_Lean_Parser_Term_orelse_parenthesizer___closed__2; lean_object* l_Lean_PrettyPrinter_Parenthesizer_leadingNode_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_pow___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_char___closed__3; @@ -264,7 +260,6 @@ lean_object* l_Lean_Parser_Term_seqLeft___closed__2; lean_object* l_Lean_Parser_Term_namedArgument___closed__5; extern lean_object* l_Lean_Parser_Level_max_parenthesizer___closed__2; lean_object* l_Lean_Parser_Tactic_seq; -lean_object* l_Lean_Parser_Term_le_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_mod_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_show___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_decide___elambda__1___closed__6; @@ -307,7 +302,6 @@ lean_object* l_Lean_Parser_Term_match__syntax___closed__7; lean_object* l_Lean_Parser_Term_nativeRefl___elambda__1___closed__5; extern lean_object* l_Lean_Parser_mkAntiquot_parenthesizer___rarg___closed__19; lean_object* l_Lean_Parser_Term_nativeRefl_parenthesizer___closed__1; -lean_object* l_Lean_Parser_Term_fcomp_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_matchAlt___closed__8; lean_object* l_Lean_Parser_Term_prod___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_forall_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); @@ -413,6 +407,7 @@ lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_bracketedDoSeq___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_byTactic; lean_object* l_Lean_Parser_Term_have___closed__3; +lean_object* l_Lean_Parser_Term_unicodeInfixL_parenthesizer___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_arrayLit_parenthesizer___closed__1; lean_object* l_Lean_Parser_ParserState_pushSyntax(lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Parser_Term_tparser_x21_parenthesizer(lean_object*); @@ -454,6 +449,7 @@ lean_object* l_Lean_Parser_Term_anonymousCtor___closed__4; lean_object* l_Lean_Parser_Term_or___closed__2; lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_explicitUniv_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Term_infixR_parenthesizer___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_simpleBinder_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_depArrow___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_fromTerm___elambda__1___closed__2; @@ -482,7 +478,6 @@ lean_object* l_Lean_Parser_Term_arrow___closed__2; lean_object* l_Lean_Parser_Term_nomatch___elambda__1___closed__1; lean_object* l___regBuiltin_Lean_Parser_Term_subtype_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_uminus___elambda__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_le_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_app_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_structInstLVal___closed__7; lean_object* l_Lean_Parser_Term_nomatch_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); @@ -541,7 +536,6 @@ lean_object* l_Lean_Parser_Term_cdot___closed__4; lean_object* l_Lean_Parser_Term_type_parenthesizer___closed__7; lean_object* l_Lean_Parser_orelseFn(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_registerBuiltinDynamicParserAttribute(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_cons_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_namedArgument___elambda__1___closed__2; lean_object* l_Lean_Parser_regBuiltinTacticParserAttr(lean_object*); lean_object* l_Lean_Parser_Term_doLet___elambda__1___closed__3; @@ -551,11 +545,9 @@ lean_object* l_Lean_Parser_Term_nomatch___elambda__1___closed__4; lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_matchAlts___elambda__1___spec__16___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_suffices_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_arrayLit___elambda__1___closed__5; -lean_object* l_Lean_Parser_Term_add_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_decide; lean_object* l___regBuiltin_Lean_Parser_Term_nomatch_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_listLit___closed__2; -lean_object* l_Lean_Parser_Term_andthen_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_band___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_ParserState_mkTrailingNode(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_seqRight___elambda__1___closed__2; @@ -606,6 +598,7 @@ lean_object* l_Lean_Parser_Term_structInst_parenthesizer(lean_object*, lean_obje lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Tactic_seq___elambda__1___spec__2___closed__1; lean_object* l_Lean_Parser_Term_show___closed__6; lean_object* l_Lean_Parser_Term_doId_parenthesizer___closed__6; +lean_object* l_Lean_Parser_Term_infixL_parenthesizer___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_nomatch___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_typeAscription_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_listLit___closed__4; @@ -627,7 +620,6 @@ lean_object* l_Lean_Parser_Term_forall___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_instBinder___closed__3; lean_object* l___regBuiltin_Lean_Parser_Term_listLit_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_pow_parenthesizer___closed__1; -lean_object* l_Lean_Parser_Term_le_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_haveAssign_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_instBinder_parenthesizer___closed__4; lean_object* l___regBuiltin_Lean_Parser_Term_proj_parenthesizer___closed__1; @@ -706,7 +698,6 @@ lean_object* l_Lean_Parser_Term_andM___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_namedPattern_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_mul___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_forall_parenthesizer___closed__8; -lean_object* l_Lean_Parser_Term_pow_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_tupleTail___elambda__1___closed__2; lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_fun___elambda__1___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_pow_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); @@ -732,6 +723,7 @@ lean_object* l_Lean_Parser_Term_sort___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_not___closed__2; lean_object* l_Lean_Parser_nodeWithAntiquot_parenthesizer___boxed(lean_object*); lean_object* l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Term_unicodeInfixR_parenthesizer___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_not_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_implicitBinder___closed__4; lean_object* l_Lean_Parser_Tactic_nonEmptySeq___closed__4; @@ -797,7 +789,6 @@ lean_object* l___regBuiltin_Lean_Parser_Term_namedHole_parenthesizer(lean_object lean_object* l_Lean_Parser_checkPrecFn(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_doElem___closed__5; -lean_object* l_Lean_Parser_Term_iff_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_lt_parenthesizer___closed__1; lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Parser_Term_seqLeft_parenthesizer(lean_object*); @@ -848,6 +839,7 @@ lean_object* l_Lean_Parser_Term_binderTactic___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_eq___closed__4; lean_object* l_Lean_Parser_Term_structInstArrayRef_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_matchAlts_parenthesizer(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Parser_Term_unicodeInfixL_parenthesizer___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_depArrow___closed__8; lean_object* l_Lean_Parser_Term_dollarProj___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_nativeDecide___elambda__1___closed__6; @@ -871,6 +863,7 @@ lean_object* l_Lean_Parser_Term_bindOp___closed__3; lean_object* l_Lean_Parser_Term_add___elambda__1(lean_object*, lean_object*); extern lean_object* l_Lean_mkTermIdFromIdent___closed__2; lean_object* l_Lean_Parser_Term_parser_x21___elambda__1(lean_object*, lean_object*); +lean_object* l_Lean_Parser_Term_unicodeInfixL_parenthesizer(lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Parser_Term_seq_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_beq___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_dollar; @@ -880,7 +873,6 @@ lean_object* l_Lean_Parser_Term_mul___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__9; lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_explicitUniv___elambda__1___spec__2___closed__2; lean_object* l_Lean_Parser_Term_structInst_parenthesizer___closed__8; -lean_object* l_Lean_Parser_Term_cons_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_funBinder_quot___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_orM_parenthesizer___closed__1; lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_explicitUniv___elambda__1___spec__2___closed__1; @@ -989,7 +981,6 @@ lean_object* l_Lean_Parser_Term_anonymousCtor___closed__3; lean_object* l_Lean_Parser_Term_emptyC___elambda__1___closed__2; lean_object* l___regBuiltin_Lean_Parser_Term_match_parenthesizer___closed__1; lean_object* l_Lean_Parser_sepBy1Fn___at_Lean_Parser_Term_matchAlts___elambda__1___spec__11___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_and_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_typeAscription_parenthesizer___closed__1; lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_listLit___elambda__1___spec__2(uint8_t, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_arrow; @@ -1010,7 +1001,6 @@ lean_object* l_Lean_Parser_Term_match___closed__6; lean_object* l_Lean_Parser_Term_uminus___elambda__1___closed__8; lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_mapRev___closed__1; -lean_object* l_Lean_Parser_Term_lt_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_do___closed__2; lean_object* l_Lean_Parser_Term_add_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_tparser_x21_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); @@ -1038,7 +1028,6 @@ lean_object* l_Lean_Parser_Term_modN___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__16; lean_object* l_Lean_Parser_Term_uminus___closed__4; lean_object* l_Lean_Parser_Term_prod; -lean_object* l_Lean_Parser_Term_pow_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_sorry___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_let___closed__8; lean_object* l_Lean_Parser_Term_optType; @@ -1063,7 +1052,6 @@ lean_object* l_Lean_Parser_Term_ge___closed__4; lean_object* l_Lean_Parser_Term_nomatch; lean_object* l_Lean_Parser_Term_namedHole___elambda__1___closed__6; lean_object* l_Lean_Parser_Term_parenSpecial; -lean_object* l_Lean_Parser_Term_andthen_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_funBinder___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_proj___closed__4; lean_object* l_Lean_Parser_Term_nativeRefl___closed__2; @@ -1169,7 +1157,6 @@ lean_object* l_Lean_Parser_Term_let___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_andthen_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_bne; lean_object* l_Lean_Parser_Term_dollar___closed__5; -lean_object* l_Lean_Parser_Term_band_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_subtype___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_explicitBinder___closed__7; lean_object* l_Lean_Parser_Term_match___closed__5; @@ -1186,6 +1173,7 @@ lean_object* l___regBuiltin_Lean_Parser_Term_nomatch_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_binderIdent___closed__3; lean_object* l_Lean_Parser_Term_band___elambda__1___closed__1; lean_object* l_Array_shrink___main___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Parser_Term_infixR_parenthesizer___boxed(lean_object*); lean_object* l_Lean_Parser_Term_letPatDecl_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_quotedName___elambda__1___closed__2; @@ -1259,7 +1247,6 @@ lean_object* l_Lean_Parser_Term_structInstField___elambda__1___closed__3; extern lean_object* l_Lean_String_HasQuote___closed__1; lean_object* l_Lean_Parser_Term_paren___closed__4; uint8_t l_Lean_Parser_tryAnti(lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_prod_parenthesizer___closed__3; lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_matchAlts___elambda__1___spec__14___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_mul; lean_object* l_Lean_Parser_Term_ge___elambda__1___closed__1; @@ -1348,7 +1335,6 @@ lean_object* l_Lean_Parser_Term_if___elambda__1___closed__14; lean_object* l_Lean_Parser_Term_funBinder___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_ne___closed__3; lean_object* l_Lean_Parser_Term_have_parenthesizer___closed__4; -lean_object* l_Lean_Parser_Term_add_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_show___closed__2; lean_object* l_Lean_Parser_Term_uminus___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_orelse___closed__2; @@ -1357,7 +1343,6 @@ lean_object* l_Lean_Parser_Term_implicitBinder___elambda__1(lean_object*, lean_o lean_object* l_Lean_Parser_Term_bnot___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_namedPattern___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_structInstArrayRef___elambda__1___closed__7; -lean_object* l_Lean_Parser_Term_or_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_structInstLVal; lean_object* l_Lean_Parser_Term_orM; lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__8; @@ -1377,7 +1362,6 @@ lean_object* l_Lean_Parser_Term_depArrow___closed__4; lean_object* l_Lean_Parser_Term_quotedName_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Std_PersistentArray_Stats_toString___closed__4; lean_object* l_Lean_Parser_Term_subtype___closed__5; -lean_object* l_Lean_Parser_Term_orM_parenthesizer___closed__2; lean_object* l___regBuiltinParser_Lean_Parser_Term_bindOp(lean_object*); lean_object* l_Lean_Parser_Term_nativeDecide___closed__4; lean_object* l_Lean_Parser_Term_byTactic_parenthesizer___closed__2; @@ -1398,7 +1382,6 @@ lean_object* l_Lean_Parser_Term_emptyC___closed__2; lean_object* l___regBuiltin_Lean_Parser_Term_subst_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_mod___elambda__1___closed__1; lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_match___elambda__1___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_orelse_parenthesizer___closed__3; lean_object* l___regBuiltinParser_Lean_Parser_Term_seqRight(lean_object*); lean_object* l_Lean_Parser_Term_bracketedDoSeq_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_match__syntax_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); @@ -1435,7 +1418,6 @@ lean_object* l_Lean_Parser_Term_andthen___elambda__1(lean_object*, lean_object*) lean_object* l_Lean_Parser_Term_matchDiscr___closed__8; lean_object* l_Lean_Parser_Term_fcomp___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_cons; -lean_object* l_Lean_Parser_Term_iff_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_explicitBinder_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_dollarProj___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_nomatch___elambda__1(lean_object*, lean_object*); @@ -1514,7 +1496,6 @@ lean_object* l_Lean_Parser_Term_uminus___closed__5; lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__2; lean_object* l___regBuiltin_Lean_Parser_Term_gt_parenthesizer___closed__1; lean_object* l___regBuiltinParser_Lean_Parser_Term_funBinder_quot(lean_object*); -lean_object* l_Lean_Parser_Term_or_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_fcomp___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_letIdDecl_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_fromTerm___closed__7; @@ -1555,7 +1536,6 @@ lean_object* l_Lean_Parser_Term_proj___closed__5; lean_object* l_Lean_Parser_Term_letIdDecl_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_nativeDecide___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_leftArrow___elambda__1___closed__6; -lean_object* l_Lean_Parser_Term_bindOp_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_binderDefault___closed__2; lean_object* l_Lean_Parser_Term_orM___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_structInstField___closed__1; @@ -1617,12 +1597,12 @@ lean_object* l_Lean_Parser_Term_letPatDecl___closed__7; lean_object* l_Lean_Parser_Term_explicitBinder___boxed(lean_object*); lean_object* l_Lean_Parser_Term_seq_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Parser_Term_andthen_parenthesizer(lean_object*); -lean_object* l_Lean_Parser_Term_seq_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_do___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_and___elambda__1___closed__5; lean_object* l_Lean_Parser_Term_show___closed__5; lean_object* l_Lean_Parser_Term_beq___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_uminus___elambda__1___closed__5; +lean_object* l_Lean_Parser_Term_unicodeInfixR_parenthesizer(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_have___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_namedHole___elambda__1___closed__3; lean_object* l_Lean_Parser_sepByFn___at_Lean_Parser_Term_listLit___elambda__1___spec__1___boxed(lean_object*, lean_object*, lean_object*); @@ -1715,7 +1695,6 @@ lean_object* l_Lean_Parser_Term_bor___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_listLit___closed__7; lean_object* l_Lean_Parser_Term_doSeq_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_bor___elambda__1___closed__2; -lean_object* l_Lean_Parser_Term_andthen_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_simpleBinder_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_inaccessible_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_mul_parenthesizer___closed__1; @@ -1727,7 +1706,6 @@ lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__21; lean_object* l_Lean_Parser_Term_emptyC; lean_object* l_Lean_Parser_Term_letPatDecl___closed__3; lean_object* l___regBuiltinParser_Lean_Parser_Term_sort(lean_object*); -lean_object* l_Lean_Parser_Term_mul_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_id___closed__3; lean_object* l_Lean_Parser_Term_let___elambda__1___closed__2; lean_object* l_Lean_Parser_Term_unicodeInfixL(lean_object*, lean_object*, lean_object*); @@ -1870,7 +1848,6 @@ lean_object* l_Lean_Parser_Term_letDecl___closed__4; lean_object* l_Lean_Parser_Term_prod___elambda__1___closed__3; lean_object* l_Lean_Parser_sepBy1Fn___at_Lean_Parser_Term_matchAlts___elambda__1___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_String_HasQuote___closed__2; -lean_object* l_Lean_Parser_Term_mul_parenthesizer___closed__2; lean_object* l_Lean_Parser_sepByFn___at_Lean_Parser_Term_structInst___elambda__1___spec__1(uint8_t, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_nameLit___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_if___closed__2; @@ -1967,7 +1944,6 @@ lean_object* l___regBuiltin_Lean_Parser_Term_bne_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_arrayRef___closed__2; lean_object* l___regBuiltin_Lean_Parser_Term_quotedName_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_dollar_parenthesizer___closed__1; -lean_object* l_Lean_Parser_Term_prod_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_namedHole___closed__7; lean_object* l_Lean_Parser_Term_bnot___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_namedArgument___closed__8; @@ -2102,14 +2078,12 @@ lean_object* l_Lean_Parser_Term_le___closed__1; lean_object* l_Lean_Parser_Term_and___closed__4; extern lean_object* l_Lean_PrettyPrinter_Parenthesizer_level_parenthesizer___lambda__1___closed__2; lean_object* l_Lean_Parser_Term_sorry; -lean_object* l_Lean_Parser_Term_arrow_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_listLit_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_nativeDecide_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_tparser_x21___closed__3; lean_object* l_Lean_Parser_Term_structInstLVal___closed__4; lean_object* l_Lean_Parser_Term_matchAlt; lean_object* l_Lean_Parser_Term_letIdLhs_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_mul_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_or___closed__3; lean_object* l_Lean_Parser_Term_inaccessible___elambda__1___closed__2; lean_object* l_Lean_Parser_sepBy1Fn___at_Lean_Parser_Term_subst___elambda__1___spec__1(uint8_t, uint8_t, lean_object*, lean_object*); @@ -2233,11 +2207,9 @@ lean_object* l_Lean_Parser_Term_paren___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_add___closed__2; lean_object* l_Lean_Parser_Term_nativeDecide_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_listLit___elambda__1___closed__4; -lean_object* l_Lean_Parser_Term_bor_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_if___closed__14; lean_object* l_Lean_Parser_Term_doSeq___closed__3; lean_object* l_Lean_Parser_Tactic_quot___closed__4; -lean_object* l_Lean_Parser_Term_prod_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_type___elambda__1___closed__9; lean_object* l_Lean_Parser_Term_structInst___closed__13; lean_object* l_Lean_Parser_Term_doLet___elambda__1___closed__4; @@ -2384,7 +2356,6 @@ lean_object* l_Lean_Parser_Term_where___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_depArrow_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_subtype___closed__10; lean_object* l_Lean_Parser_Term_append___elambda__1(lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_or_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_show_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_tupleTail___closed__2; lean_object* l_Lean_Parser_Term_structInstLVal___closed__11; @@ -2532,7 +2503,6 @@ lean_object* l_Lean_Parser_Term_letIdDecl_parenthesizer___closed__4; lean_object* l___regBuiltin_Lean_Parser_Term_orM_parenthesizer(lean_object*); lean_object* l_Lean_Parser_Term_implicitBinder___closed__1; lean_object* l_Lean_Parser_Term_tparser_x21___closed__4; -lean_object* l_Lean_Parser_Term_fcomp_parenthesizer___closed__3; lean_object* l_Lean_Parser_Term_doExpr___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_typeAscription___closed__2; lean_object* l_Lean_Parser_Term_byTactic___closed__3; @@ -2556,7 +2526,6 @@ lean_object* l_Lean_Parser_Term_explicitBinder___closed__4; lean_object* l_Lean_Parser_Term_fun_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_andM___closed__3; lean_object* l_Lean_Parser_Term_band___closed__2; -lean_object* l_Lean_Parser_Term_seq_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_optIdent_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_let_parenthesizer___closed__3; lean_object* l_Lean_Parser_Tactic_quot___closed__5; @@ -2615,11 +2584,10 @@ lean_object* l_Lean_Parser_Term_tacticBlock___closed__6; extern lean_object* l_Lean_Parser_mkAntiquot___closed__6; lean_object* l_Lean_Parser_Term_equiv___elambda__1___closed__4; lean_object* l_Lean_Parser_Term_subtype_parenthesizer___closed__3; -lean_object* l_Lean_Parser_Term_orelse_parenthesizer___closed__4; lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_subst___elambda__1___spec__2___closed__1; +lean_object* l_Lean_Parser_Term_unicodeInfixR_parenthesizer___boxed(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_letPatDecl___elambda__1(lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_letIdDecl___closed__8; -lean_object* l_Lean_Parser_Term_cons_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_have___elambda__1___closed__5; lean_object* l___regBuiltin_Lean_Parser_Term_bor_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_fun_parenthesizer___closed__2; @@ -2799,7 +2767,6 @@ lean_object* l_Lean_Parser_Term_matchDiscr___elambda__1___closed__7; lean_object* l_Lean_Parser_Term_funBinder_quot___closed__6; lean_object* l_Lean_Parser_Term_and_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_bindOp___elambda__1___closed__1; -lean_object* l_Lean_Parser_Term_pow_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_letEqnsDecl_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_suffices; lean_object* l_Lean_Parser_Term_dollar_parenthesizer___closed__3; @@ -2887,7 +2854,6 @@ lean_object* l_Lean_Parser_Term_doExpr___elambda__1___closed__3; lean_object* l_Lean_Parser_Term_char___elambda__1___closed__4; lean_object* l___regBuiltin_Lean_Parser_Term_nativeDecide_parenthesizer___closed__1; lean_object* l_Lean_Parser_Term_if___elambda__1___closed__11; -lean_object* l_Lean_Parser_Term_bindOp_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_map___elambda__1___closed__1; lean_object* l_Lean_Parser_Term_matchAlt___closed__6; lean_object* l_Lean_Parser_Term_parenSpecial___closed__4; @@ -2937,7 +2903,6 @@ lean_object* l___regBuiltin_Lean_Parser_Term_liftMethod_parenthesizer___closed__ lean_object* l_Lean_Parser_Term_inaccessible_parenthesizer___closed__2; lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__10; lean_object* l_Lean_Parser_Term_decide___closed__4; -lean_object* l_Lean_Parser_Term_bindOp_parenthesizer___closed__2; extern lean_object* l_Lean_Parser_Parser_inhabited___closed__1; lean_object* l_Lean_Parser_Term_tupleTail_parenthesizer___closed__4; lean_object* l_Lean_Parser_Term_namedPattern_parenthesizer___closed__2; @@ -3064,7 +3029,6 @@ lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__14; lean_object* l_Lean_Parser_Term_hole___closed__1; lean_object* l_Lean_Parser_Term_type___closed__9; lean_object* l_Lean_Parser_Term_sub_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Parser_Term_fcomp_parenthesizer___closed__2; lean_object* l___regBuiltin_Lean_Parser_Term_arrayLit_parenthesizer(lean_object*); lean_object* l_Lean_Parser_termParser_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Parser_Term_letIdLhs_parenthesizer___closed__2; @@ -54727,47 +54691,58 @@ x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); return x_6; } } +lean_object* l_Lean_Parser_Term_unicodeInfixR_parenthesizer___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_inc(x_1); +x_6 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +lean_closure_set(x_6, 0, x_1); +x_7 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); +lean_closure_set(x_7, 0, x_1); +x_8 = l_Lean_Parser_Term_depArrow_parenthesizer___closed__4; +x_9 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); +lean_closure_set(x_9, 0, x_8); +lean_closure_set(x_9, 1, x_7); +x_10 = l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer(x_6, x_9, x_2, x_3, x_4, x_5); +return x_10; +} +} +lean_object* l_Lean_Parser_Term_unicodeInfixR_parenthesizer(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixR_parenthesizer___rarg), 5, 0); +return x_3; +} +} +lean_object* l_Lean_Parser_Term_unicodeInfixR_parenthesizer___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_Parser_Term_unicodeInfixR_parenthesizer(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} lean_object* _init_l_Lean_Parser_Term_arrow_parenthesizer___closed__1() { _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(25u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixR_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_arrow_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_depArrow_parenthesizer___closed__4; -x_2 = l_Lean_Parser_Term_arrow_parenthesizer___closed__1; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_arrow_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_depArrow_parenthesizer___closed__3; -x_2 = l_Lean_Parser_Term_arrow_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_arrow_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_arrow___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_arrow_parenthesizer___closed__3; +x_7 = l_Lean_Parser_Term_arrow_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -56668,57 +56643,57 @@ x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); return x_6; } } +lean_object* l_Lean_Parser_Term_infixR_parenthesizer___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_inc(x_1); +x_6 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +lean_closure_set(x_6, 0, x_1); +x_7 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); +lean_closure_set(x_7, 0, x_1); +x_8 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; +x_9 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); +lean_closure_set(x_9, 0, x_8); +lean_closure_set(x_9, 1, x_7); +x_10 = l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer(x_6, x_9, x_2, x_3, x_4, x_5); +return x_10; +} +} +lean_object* l_Lean_Parser_Term_infixR_parenthesizer(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR_parenthesizer___rarg), 5, 0); +return x_2; +} +} +lean_object* l_Lean_Parser_Term_infixR_parenthesizer___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_Term_infixR_parenthesizer(x_1); +lean_dec(x_1); +return x_2; +} +} lean_object* _init_l_Lean_Parser_Term_fcomp_parenthesizer___closed__1() { _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(90u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_fcomp_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(90u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_fcomp_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_fcomp_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_fcomp_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_fcomp_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_fcomp_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_fcomp_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_fcomp___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_fcomp_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_fcomp_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -56878,52 +56853,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(35u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_prod_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(35u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_prod_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_prod_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_prod_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_prod_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_prod_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_prod_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_prod___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_prod_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_prod_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -57070,57 +57011,60 @@ x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); return x_6; } } +lean_object* l_Lean_Parser_Term_infixL_parenthesizer___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_inc(x_1); +x_6 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +lean_closure_set(x_6, 0, x_1); +x_7 = lean_unsigned_to_nat(1u); +x_8 = lean_nat_add(x_1, x_7); +lean_dec(x_1); +x_9 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; +x_11 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); +lean_closure_set(x_11, 0, x_10); +lean_closure_set(x_11, 1, x_9); +x_12 = l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer(x_6, x_11, x_2, x_3, x_4, x_5); +return x_12; +} +} +lean_object* l_Lean_Parser_Term_infixL_parenthesizer(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL_parenthesizer___rarg), 5, 0); +return x_2; +} +} +lean_object* l_Lean_Parser_Term_infixL_parenthesizer___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Parser_Term_infixL_parenthesizer(x_1); +lean_dec(x_1); +return x_2; +} +} lean_object* _init_l_Lean_Parser_Term_add_parenthesizer___closed__1() { _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(65u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_add_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(66u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_add_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_add_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_add_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_add_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_add_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_add_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_add___elambda__1___closed__1; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_add_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_add_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -57273,7 +57217,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_sub___elambda__1___closed__1; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_add_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_add_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -57425,52 +57369,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(70u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_mul_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(71u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_mul_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_mul_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_mul_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_mul_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_mul_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_mul_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_mul___elambda__1___closed__1; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_mul_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_mul_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -57623,7 +57533,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_div___elambda__1___closed__1; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_mul_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_mul_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -57776,7 +57686,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_mod___elambda__1___closed__1; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_mul_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_mul_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -57937,7 +57847,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_modN___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_mul_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_mul_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -58097,52 +58007,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(80u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_pow_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(80u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_pow_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_pow_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_pow_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_pow_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_pow_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_pow_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_pow___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_pow_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_pow_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -58306,57 +58182,61 @@ x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1); return x_6; } } +lean_object* l_Lean_Parser_Term_unicodeInfixL_parenthesizer___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_inc(x_1); +x_6 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +lean_closure_set(x_6, 0, x_1); +x_7 = lean_unsigned_to_nat(1u); +x_8 = lean_nat_add(x_1, x_7); +lean_dec(x_1); +x_9 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = l_Lean_Parser_Term_depArrow_parenthesizer___closed__4; +x_11 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); +lean_closure_set(x_11, 0, x_10); +lean_closure_set(x_11, 1, x_9); +x_12 = l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer(x_6, x_11, x_2, x_3, x_4, x_5); +return x_12; +} +} +lean_object* l_Lean_Parser_Term_unicodeInfixL_parenthesizer(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixL_parenthesizer___rarg), 5, 0); +return x_3; +} +} +lean_object* l_Lean_Parser_Term_unicodeInfixL_parenthesizer___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_Parser_Term_unicodeInfixL_parenthesizer(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} lean_object* _init_l_Lean_Parser_Term_le_parenthesizer___closed__1() { _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(50u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixL_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_le_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(51u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_le_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_depArrow_parenthesizer___closed__4; -x_2 = l_Lean_Parser_Term_le_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_le_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_le_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_le_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_le_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_le___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_le_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_le_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -58526,7 +58406,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_ge___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_le_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_le_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -58684,25 +58564,11 @@ return x_6; lean_object* _init_l_Lean_Parser_Term_lt_parenthesizer___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_le_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_lt_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_le_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_lt_parenthesizer___closed__1; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(50u); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL_parenthesizer___rarg), 5, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; } } lean_object* l_Lean_Parser_Term_lt_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -58711,7 +58577,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_lt___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -58872,7 +58738,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_gt___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -59033,7 +58899,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_eq___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -59194,7 +59060,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_ne___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -59347,7 +59213,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_beq___elambda__1___closed__1; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -59508,7 +59374,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_bne___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -59678,7 +59544,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_heq___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_le_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_le_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -59839,7 +59705,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_equiv___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_lt_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -60596,25 +60462,11 @@ return x_6; lean_object* _init_l_Lean_Parser_Term_and_parenthesizer___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_depArrow_parenthesizer___closed__4; -x_2 = l_Lean_Parser_Term_prod_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_and_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_prod_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_and_parenthesizer___closed__1; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(35u); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixR_parenthesizer___rarg), 5, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; } } lean_object* l_Lean_Parser_Term_and_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -60623,7 +60475,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_and___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_and_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_and_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -60792,52 +60644,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(30u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixR_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_or_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(30u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_or_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_depArrow_parenthesizer___closed__4; -x_2 = l_Lean_Parser_Term_or_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_or_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_or_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_or_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_or_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_or___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_or_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_or_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -61006,52 +60824,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(20u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_unicodeInfixL_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_iff_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(21u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_iff_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_depArrow_parenthesizer___closed__4; -x_2 = l_Lean_Parser_Term_iff_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_iff_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_iff_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_iff_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_iff_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_iff___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_iff_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_iff_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -61210,43 +60994,19 @@ lean_object* _init_l_Lean_Parser_Term_band_parenthesizer___closed__1() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(36u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); +x_1 = lean_unsigned_to_nat(35u); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_band_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_band_parenthesizer___closed__1; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_band_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_prod_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_band_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_band_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_band___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_band_parenthesizer___closed__3; +x_7 = l_Lean_Parser_Term_band_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -61405,43 +61165,19 @@ lean_object* _init_l_Lean_Parser_Term_bor_parenthesizer___closed__1() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(31u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); +x_1 = lean_unsigned_to_nat(30u); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_bor_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_bor_parenthesizer___closed__1; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_bor_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_or_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_bor_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_bor_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_bor___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_bor_parenthesizer___closed__3; +x_7 = l_Lean_Parser_Term_bor_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -61602,7 +61338,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_append___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_add_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_add_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -61754,52 +61490,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(67u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_cons_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(67u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_cons_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_cons_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_cons_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_cons_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_cons_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_cons_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_cons___elambda__1___closed__1; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_cons_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_cons_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -61959,52 +61661,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(2u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_orelse_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(2u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_orelse_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_orelse_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_orelse_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_orelse_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_orelse_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_orelse_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_orelse___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_orelse_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_orelse_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -62162,25 +61830,11 @@ return x_6; lean_object* _init_l_Lean_Parser_Term_orM_parenthesizer___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_or_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_orM_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_or_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_orM_parenthesizer___closed__1; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(30u); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR_parenthesizer___rarg), 5, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; } } lean_object* l_Lean_Parser_Term_orM_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { @@ -62189,7 +61843,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_orM___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_orM_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_orM_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -62350,7 +62004,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_andM___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_prod_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_prod_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -62510,52 +62164,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(60u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_andthen_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(60u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_andthen_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_andthen_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_andthen_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_andthen_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_andthen_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_andthen_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_andthen___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_andthen_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_andthen_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -62715,52 +62335,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(55u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_bindOp_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(56u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* _init_l_Lean_Parser_Term_bindOp_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_bindOp_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_bindOp_parenthesizer___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_bindOp_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_bindOp_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_bindOp_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_bindOp___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_bindOp_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_bindOp_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -62920,30 +62506,18 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(100u); -x_2 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_checkPrec_parenthesizer___boxed), 5, 1); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixR_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_mapRev_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_mapRev_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_uminus_parenthesizer___closed__3; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_mapRev_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_mapRev___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_mapRev_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_mapRev_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -63094,43 +62668,19 @@ lean_object* _init_l_Lean_Parser_Term_seq_parenthesizer___closed__1() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(61u); -x_2 = lean_alloc_closure((void*)(l_Lean_Parser_termParser_parenthesizer), 5, 1); +x_1 = lean_unsigned_to_nat(60u); +x_2 = lean_alloc_closure((void*)(l_Lean_Parser_Term_infixL_parenthesizer___rarg), 5, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -lean_object* _init_l_Lean_Parser_Term_seq_parenthesizer___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__1; -x_2 = l_Lean_Parser_Term_seq_parenthesizer___closed__1; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} -lean_object* _init_l_Lean_Parser_Term_seq_parenthesizer___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Parser_Term_andthen_parenthesizer___closed__1; -x_2 = l_Lean_Parser_Term_seq_parenthesizer___closed__2; -x_3 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_andthen_parenthesizer), 6, 2); -lean_closure_set(x_3, 0, x_1); -lean_closure_set(x_3, 1, x_2); -return x_3; -} -} lean_object* l_Lean_Parser_Term_seq_parenthesizer(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_seq___elambda__1___closed__1; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_seq_parenthesizer___closed__3; +x_7 = l_Lean_Parser_Term_seq_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -63291,7 +62841,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_seqLeft___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_seq_parenthesizer___closed__3; +x_7 = l_Lean_Parser_Term_seq_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -63452,7 +63002,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_seqRight___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_andthen_parenthesizer___closed__4; +x_7 = l_Lean_Parser_Term_andthen_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -63613,7 +63163,7 @@ _start: lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = l_Lean_Parser_Term_map___elambda__1___closed__2; x_6 = lean_unsigned_to_nat(1024u); -x_7 = l_Lean_Parser_Term_mapRev_parenthesizer___closed__2; +x_7 = l_Lean_Parser_Term_mapRev_parenthesizer___closed__1; x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4); return x_8; } @@ -70641,10 +70191,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_arrow_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_arrow_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_arrow_parenthesizer___closed__1); -l_Lean_Parser_Term_arrow_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_arrow_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_arrow_parenthesizer___closed__2); -l_Lean_Parser_Term_arrow_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_arrow_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_arrow_parenthesizer___closed__3); l___regBuiltin_Lean_Parser_Term_arrow_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_arrow_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_arrow_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_arrow_parenthesizer(lean_io_mk_world()); @@ -70823,12 +70369,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_fcomp_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_fcomp_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_fcomp_parenthesizer___closed__1); -l_Lean_Parser_Term_fcomp_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_fcomp_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_fcomp_parenthesizer___closed__2); -l_Lean_Parser_Term_fcomp_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_fcomp_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_fcomp_parenthesizer___closed__3); -l_Lean_Parser_Term_fcomp_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_fcomp_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_fcomp_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_fcomp_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_fcomp_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_fcomp_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_fcomp_parenthesizer(lean_io_mk_world()); @@ -70857,12 +70397,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_prod_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_prod_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_prod_parenthesizer___closed__1); -l_Lean_Parser_Term_prod_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_prod_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_prod_parenthesizer___closed__2); -l_Lean_Parser_Term_prod_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_prod_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_prod_parenthesizer___closed__3); -l_Lean_Parser_Term_prod_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_prod_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_prod_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_prod_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_prod_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_prod_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_prod_parenthesizer(lean_io_mk_world()); @@ -70889,12 +70423,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_add_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_add_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_add_parenthesizer___closed__1); -l_Lean_Parser_Term_add_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_add_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_add_parenthesizer___closed__2); -l_Lean_Parser_Term_add_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_add_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_add_parenthesizer___closed__3); -l_Lean_Parser_Term_add_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_add_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_add_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_add_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_add_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_add_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_add_parenthesizer(lean_io_mk_world()); @@ -70945,12 +70473,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_mul_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_mul_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_mul_parenthesizer___closed__1); -l_Lean_Parser_Term_mul_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_mul_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_mul_parenthesizer___closed__2); -l_Lean_Parser_Term_mul_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_mul_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_mul_parenthesizer___closed__3); -l_Lean_Parser_Term_mul_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_mul_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_mul_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_mul_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_mul_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_mul_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_mul_parenthesizer(lean_io_mk_world()); @@ -71053,12 +70575,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_pow_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_pow_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_pow_parenthesizer___closed__1); -l_Lean_Parser_Term_pow_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_pow_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_pow_parenthesizer___closed__2); -l_Lean_Parser_Term_pow_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_pow_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_pow_parenthesizer___closed__3); -l_Lean_Parser_Term_pow_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_pow_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_pow_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_pow_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_pow_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_pow_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_pow_parenthesizer(lean_io_mk_world()); @@ -71089,12 +70605,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_le_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_le_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_le_parenthesizer___closed__1); -l_Lean_Parser_Term_le_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_le_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_le_parenthesizer___closed__2); -l_Lean_Parser_Term_le_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_le_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_le_parenthesizer___closed__3); -l_Lean_Parser_Term_le_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_le_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_le_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_le_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_le_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_le_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_le_parenthesizer(lean_io_mk_world()); @@ -71151,8 +70661,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_lt_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_lt_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_lt_parenthesizer___closed__1); -l_Lean_Parser_Term_lt_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_lt_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_lt_parenthesizer___closed__2); l___regBuiltin_Lean_Parser_Term_lt_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_lt_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_lt_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_lt_parenthesizer(lean_io_mk_world()); @@ -71411,8 +70919,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_and_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_and_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_and_parenthesizer___closed__1); -l_Lean_Parser_Term_and_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_and_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_and_parenthesizer___closed__2); l___regBuiltin_Lean_Parser_Term_and_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_and_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_and_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_and_parenthesizer(lean_io_mk_world()); @@ -71443,12 +70949,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_or_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_or_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_or_parenthesizer___closed__1); -l_Lean_Parser_Term_or_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_or_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_or_parenthesizer___closed__2); -l_Lean_Parser_Term_or_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_or_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_or_parenthesizer___closed__3); -l_Lean_Parser_Term_or_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_or_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_or_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_or_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_or_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_or_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_or_parenthesizer(lean_io_mk_world()); @@ -71479,12 +70979,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_iff_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_iff_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_iff_parenthesizer___closed__1); -l_Lean_Parser_Term_iff_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_iff_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_iff_parenthesizer___closed__2); -l_Lean_Parser_Term_iff_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_iff_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_iff_parenthesizer___closed__3); -l_Lean_Parser_Term_iff_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_iff_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_iff_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_iff_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_iff_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_iff_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_iff_parenthesizer(lean_io_mk_world()); @@ -71513,10 +71007,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_band_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_band_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_band_parenthesizer___closed__1); -l_Lean_Parser_Term_band_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_band_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_band_parenthesizer___closed__2); -l_Lean_Parser_Term_band_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_band_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_band_parenthesizer___closed__3); l___regBuiltin_Lean_Parser_Term_band_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_band_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_band_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_band_parenthesizer(lean_io_mk_world()); @@ -71545,10 +71035,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_bor_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_bor_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_bor_parenthesizer___closed__1); -l_Lean_Parser_Term_bor_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_bor_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_bor_parenthesizer___closed__2); -l_Lean_Parser_Term_bor_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_bor_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_bor_parenthesizer___closed__3); l___regBuiltin_Lean_Parser_Term_bor_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_bor_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_bor_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_bor_parenthesizer(lean_io_mk_world()); @@ -71601,12 +71087,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_cons_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_cons_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_cons_parenthesizer___closed__1); -l_Lean_Parser_Term_cons_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_cons_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_cons_parenthesizer___closed__2); -l_Lean_Parser_Term_cons_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_cons_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_cons_parenthesizer___closed__3); -l_Lean_Parser_Term_cons_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_cons_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_cons_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_cons_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_cons_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_cons_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_cons_parenthesizer(lean_io_mk_world()); @@ -71635,12 +71115,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_orelse_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_orelse_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_orelse_parenthesizer___closed__1); -l_Lean_Parser_Term_orelse_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_orelse_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_orelse_parenthesizer___closed__2); -l_Lean_Parser_Term_orelse_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_orelse_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_orelse_parenthesizer___closed__3); -l_Lean_Parser_Term_orelse_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_orelse_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_orelse_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_orelse_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_orelse_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_orelse_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_orelse_parenthesizer(lean_io_mk_world()); @@ -71669,8 +71143,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_orM_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_orM_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_orM_parenthesizer___closed__1); -l_Lean_Parser_Term_orM_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_orM_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_orM_parenthesizer___closed__2); l___regBuiltin_Lean_Parser_Term_orM_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_orM_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_orM_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_orM_parenthesizer(lean_io_mk_world()); @@ -71725,12 +71197,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_andthen_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_andthen_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_andthen_parenthesizer___closed__1); -l_Lean_Parser_Term_andthen_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_andthen_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_andthen_parenthesizer___closed__2); -l_Lean_Parser_Term_andthen_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_andthen_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_andthen_parenthesizer___closed__3); -l_Lean_Parser_Term_andthen_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_andthen_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_andthen_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_andthen_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_andthen_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_andthen_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_andthen_parenthesizer(lean_io_mk_world()); @@ -71759,12 +71225,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_bindOp_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_bindOp_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_bindOp_parenthesizer___closed__1); -l_Lean_Parser_Term_bindOp_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_bindOp_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_bindOp_parenthesizer___closed__2); -l_Lean_Parser_Term_bindOp_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_bindOp_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_bindOp_parenthesizer___closed__3); -l_Lean_Parser_Term_bindOp_parenthesizer___closed__4 = _init_l_Lean_Parser_Term_bindOp_parenthesizer___closed__4(); -lean_mark_persistent(l_Lean_Parser_Term_bindOp_parenthesizer___closed__4); l___regBuiltin_Lean_Parser_Term_bindOp_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_bindOp_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_bindOp_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_bindOp_parenthesizer(lean_io_mk_world()); @@ -71793,8 +71253,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_mapRev_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_mapRev_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_mapRev_parenthesizer___closed__1); -l_Lean_Parser_Term_mapRev_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_mapRev_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_mapRev_parenthesizer___closed__2); l___regBuiltin_Lean_Parser_Term_mapRev_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_mapRev_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_mapRev_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_mapRev_parenthesizer(lean_io_mk_world()); @@ -71821,10 +71279,6 @@ if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); l_Lean_Parser_Term_seq_parenthesizer___closed__1 = _init_l_Lean_Parser_Term_seq_parenthesizer___closed__1(); lean_mark_persistent(l_Lean_Parser_Term_seq_parenthesizer___closed__1); -l_Lean_Parser_Term_seq_parenthesizer___closed__2 = _init_l_Lean_Parser_Term_seq_parenthesizer___closed__2(); -lean_mark_persistent(l_Lean_Parser_Term_seq_parenthesizer___closed__2); -l_Lean_Parser_Term_seq_parenthesizer___closed__3 = _init_l_Lean_Parser_Term_seq_parenthesizer___closed__3(); -lean_mark_persistent(l_Lean_Parser_Term_seq_parenthesizer___closed__3); l___regBuiltin_Lean_Parser_Term_seq_parenthesizer___closed__1 = _init_l___regBuiltin_Lean_Parser_Term_seq_parenthesizer___closed__1(); lean_mark_persistent(l___regBuiltin_Lean_Parser_Term_seq_parenthesizer___closed__1); res = l___regBuiltin_Lean_Parser_Term_seq_parenthesizer(lean_io_mk_world());