chore: update stage0

This commit is contained in:
Leonardo de Moura 2020-01-25 15:15:05 -08:00
parent 5796eba368
commit 2ae231cc65
12 changed files with 3252 additions and 3022 deletions

View file

@ -313,11 +313,6 @@ modify $ fun s => { syntheticMVars := { mvarId := mvarId, ref := ref, kind := ki
@[inline] def withoutPostponing {α} (x : TermElabM α) : TermElabM α :=
adaptReader (fun (ctx : Context) => { mayPostpone := false, .. ctx }) x
@[inline] def withNode {α} (stx : Syntax) (x : Syntax → TermElabM α) : TermElabM α :=
match stx with
| Syntax.node _ _ => x stx
| _ => throwError stx ("term elaborator failed, unexpected syntax: " ++ toString stx)
/-- Creates syntax for `(` <ident> `:` <type> `)` -/
def mkExplicitBinder (ident : Syntax) (type : Syntax) : Syntax :=
mkNode `Lean.Parser.Term.explicitBinder #[mkAtom "(", mkNullNode #[ident], mkNullNode #[mkAtom ":", type], mkNullNode, mkAtom ")"]
@ -471,13 +466,13 @@ instance : MonadMacroAdapter TermElabM :=
/- Main loop for `elabTerm` -/
partial def elabTermAux (expectedType? : Option Expr) (catchExPostpone := true) : Syntax → TermElabM Expr
| stx => withFreshMacroScope $ withIncRecDepth stx $ withNode stx $ fun node => do
| stx => withFreshMacroScope $ withIncRecDepth stx $ do
trace `Elab.step stx $ fun _ => stx;
s ← get;
let table := (termElabAttribute.ext.getState s.env).table;
let k := node.getKind;
let k := stx.getKind;
match table.find? k with
| some elabFns => elabTermUsing s node expectedType? catchExPostpone elabFns
| some elabFns => elabTermUsing s stx expectedType? catchExPostpone elabFns
| none => do
env ← getEnv;
stx' ← catch

View file

@ -304,9 +304,27 @@ lvls.foldSepRevArgsM
pure (lvl::lvls))
[]
private partial def elabAppFnId (ref : Syntax) (fIdent : Syntax) (fExplicitUnivs : List Level) (lvals : List LVal)
(namedArgs : Array NamedArg) (args : Array Arg) (expectedType? : Option Expr) (explicit : Bool) (acc : Array TermElabResult)
: TermElabM (Array TermElabResult) :=
match fIdent with
| Syntax.ident _ _ n preresolved => do
funLVals ← resolveName fIdent n preresolved fExplicitUnivs;
funLVals.foldlM
(fun acc ⟨f, fields⟩ => do
let lvals' := fields.map LVal.fieldName;
s ← observing $ elabAppLVals ref f (lvals' ++ lvals) namedArgs args expectedType? explicit;
pure $ acc.push s)
acc
| _ => throwUnsupportedSyntax
private partial def elabAppFn (ref : Syntax) : Syntax → List LVal → Array NamedArg → Array Arg → Option Expr → Bool → Array TermElabResult → TermElabM (Array TermElabResult)
| f, lvals, namedArgs, args, expectedType?, explicit, acc =>
if f.getKind == choiceKind then
if f.isIdent then
-- A raw identifier is not a valid Term. Recall that `Term.id` is defined as `parser! ident >> optional (explicitUniv <|> namedPattern)`
-- We handle it here to make macro development more comfortable.
elabAppFnId ref f [] lvals namedArgs args expectedType? explicit acc
else if f.getKind == choiceKind then
f.getArgs.foldlM (fun acc f => elabAppFn f lvals namedArgs args expectedType? explicit acc) acc
else match_syntax f with
| `(@$id:id) =>
@ -319,20 +337,10 @@ private partial def elabAppFn (ref : Syntax) : Syntax → List LVal → Array Na
elabAppFn (f.getArg 0) (newLVals ++ lvals) namedArgs args expectedType? explicit acc
| `($e[$idx]) =>
elabAppFn e (LVal.getOp idx :: lvals) namedArgs args expectedType? explicit acc
-- TODO: replace `*` with new `?` optional modifier
| `($id:ident$us:explicitUniv*) =>
| `($id:ident$us:explicitUniv*) => do
-- Remark: `id.<namedPattern>` should already have been expanded
match id with
| Syntax.ident _ _ n preresolved => do
us ← if us.isEmpty then pure [] else elabExplicitUniv (us.get! 0);
funLVals ← resolveName f n preresolved us;
funLVals.foldlM
(fun acc ⟨f, fields⟩ => do
let lvals' := fields.map LVal.fieldName;
s ← observing $ elabAppLVals ref f (lvals' ++ lvals) namedArgs args expectedType? explicit;
pure $ acc.push s)
acc
| _ => throwUnsupportedSyntax
us ← if us.isEmpty then pure [] else elabExplicitUniv (us.get! 0);
elabAppFnId ref id us lvals namedArgs args expectedType? explicit acc
| _ => do
f ← elabTerm f none;
s ← observing $ elabAppLVals ref f lvals namedArgs args expectedType? explicit;
@ -410,6 +418,9 @@ fun stx expectedType? => elabAppAux stx stx #[] #[] expectedType?
@[builtinTermElab choice] def elabChoice : TermElab := elabAtom
@[builtinTermElab proj] def elabProj : TermElab := elabAtom
@[builtinTermElab arrayRef] def elabArrayRef : TermElab := elabAtom
/- A raw identiier is not a valid term,
but it is nice to have a handler for them because it allows `macros` to insert them into terms. -/
@[builtinTermElab ident] def elabRawIdent : TermElab := elabAtom
@[builtinTermElab sortApp] def elabSortApp : TermElab :=
fun stx _ => do

View file

@ -56,32 +56,33 @@ else
throwUnsupportedSyntax
private def matchBinder (stx : Syntax) : TermElabM (Array BinderView) :=
withNode stx $ fun node => do
let k := node.getKind;
match stx with
| Syntax.node k args =>
if k == `Lean.Parser.Term.simpleBinder then
-- binderIdent+
let ids := (node.getArg 0).getArgs;
let ids := (args.get! 0).getArgs;
let type := mkHole stx;
ids.mapM $ fun id => do id ← expandBinderIdent id; pure { id := id, type := type, bi := BinderInfo.default }
else if k == `Lean.Parser.Term.explicitBinder then do
-- `(` binderIdent+ binderType (binderDefault <|> binderTactic)? `)`
let ids := (node.getArg 1).getArgs;
let type := expandBinderType (node.getArg 2);
let optModifier := node.getArg 3;
let ids := (args.get! 1).getArgs;
let type := expandBinderType (args.get! 2);
let optModifier := args.get! 3;
type ← expandBinderModifier type optModifier;
ids.mapM $ fun id => do id ← expandBinderIdent id; pure { id := id, type := type, bi := BinderInfo.default }
else if k == `Lean.Parser.Term.implicitBinder then
-- `{` binderIdent+ binderType `}`
let ids := (node.getArg 1).getArgs;
let type := expandBinderType (node.getArg 2);
let ids := (args.get! 1).getArgs;
let type := expandBinderType (args.get! 2);
ids.mapM $ fun id => do id ← expandBinderIdent id; pure { id := id, type := type, bi := BinderInfo.implicit }
else if k == `Lean.Parser.Term.instBinder then do
-- `[` optIdent type `]`
id ← expandOptIdent (node.getArg 1);
let type := node.getArg 2;
id ← expandOptIdent (args.get! 1);
let type := args.get! 2;
pure #[ { id := id, type := type, bi := BinderInfo.instImplicit } ]
else
throwError stx "term elaborator failed, unexpected binder syntax"
throwUnsupportedSyntax
| _ => throwUnsupportedSyntax
def mkFreshFVarId : TermElabM Name := do
s ← get;
@ -275,12 +276,8 @@ if optType.isNone then
else
(optType.getArg 0).getArg 1
def elabLetIdDecl (ref : Syntax) (decl body : Syntax) (expectedType? : Option Expr) : TermElabM Expr := do
-- `decl` is of the form: ident bracktedBinder+ (`:` term)? `:=` term
let n := decl.getIdAt 0;
let binders := (decl.getArg 1).getArgs;
let type := expandOptType ref (decl.getArg 2);
let val := decl.getArg 4;
def elabLetDeclAux (ref : Syntax) (n : Name) (binders : Array Syntax) (type : Syntax) (val : Syntax) (body : Syntax)
(expectedType? : Option Expr) : TermElabM Expr := do
(type, val) ← elabBinders binders $ fun xs => do {
type ← elabType type;
val ← elabTerm val type;
@ -294,6 +291,14 @@ withLetDecl ref n type val $ fun x => do
body ← instantiateMVars ref body;
mkLet ref x body
def elabLetIdDecl (ref : Syntax) (decl body : Syntax) (expectedType? : Option Expr) : TermElabM Expr :=
-- `decl` is of the form: ident bracktedBinder+ (`:` term)? `:=` term
let n := decl.getIdAt 0;
let binders := (decl.getArg 1).getArgs;
let type := expandOptType ref (decl.getArg 2);
let val := decl.getArg 4;
elabLetDeclAux ref n binders type val body expectedType?
def elabLetEqnsDecl (ref : Syntax) (decl body : Syntax) (expectedType? : Option Expr) : TermElabM Expr :=
throwError decl "not implemented yet"

View file

@ -98,6 +98,9 @@ def letEqns := parser! try (letIdLhs >> lookahead " | ") >> many1Inden
def letPatDecl := parser! termParser >> optType >> " := " >> termParser
def letDecl := try letIdDecl <|> letEqns <|> letPatDecl
@[builtinTermParser] def «let» := parser! "let " >> letDecl >> "; " >> termParser
@[builtinTermParser] def «let_core» := parser! "let_core " >> termParser >> ":=" >> termParser >> "; " >> termParser
def leftArrow : Parser := unicodeSymbol " ← " " <- "
def doLet := parser! "let " >> letDecl
def doId := parser! try (ident >> optType >> leftArrow) >> termParser

View file

@ -507,7 +507,6 @@ lean_object* l_Lean_Elab_Term_elabSubtype___lambda__1___closed__6;
lean_object* l_Lean_Elab_Term_elabDo___lambda__1___closed__1;
lean_object* l_Lean_mkTermIdFrom(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabGT___closed__2;
extern lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
lean_object* l_Lean_Expr_consumeMData___main(lean_object*);
lean_object* l_Lean_Elab_Term_elabGT___closed__1;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabAnoymousCtor___closed__1;
@ -570,6 +569,7 @@ lean_object* l_Lean_Elab_Term_elabIf___lambda__1___closed__9;
lean_object* l_Lean_Elab_Term_elabBEq___closed__2;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabLT___closed__2;
lean_object* l_Lean_Elab_Term_elabBNe___closed__1;
extern lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
lean_object* l_Lean_Elab_Term_elabDollarProj___closed__1;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabBind___closed__1;
lean_object* l_Lean_Elab_Term_elabBNe___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
@ -4648,7 +4648,7 @@ x_21 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed
lean_inc(x_3);
x_22 = lean_array_push(x_3, x_21);
x_23 = lean_array_push(x_22, x_14);
x_24 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_24 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_25 = lean_array_push(x_23, x_24);
x_26 = lean_array_push(x_25, x_7);
x_27 = lean_alloc_ctor(1, 2, 0);

View file

@ -29,7 +29,6 @@ lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabDeclaration(lean_ob
lean_object* l_Lean_Syntax_getOptional_x3f(lean_object*);
uint8_t lean_name_eq(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_elabConstant___closed__2;
extern lean_object* l_Lean_Elab_Term_elabLet___closed__7;
lean_object* l_Lean_Elab_Command_elabDeclaration___closed__4;
lean_object* l_Lean_Syntax_getIdAt(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_elabExample(lean_object*, lean_object*, lean_object*, lean_object*);
@ -71,6 +70,7 @@ lean_object* l_Lean_Elab_Command_elabConstant___closed__11;
extern lean_object* l_Lean_Parser_Command_def___elambda__1___closed__2;
extern lean_object* l_Lean_Parser_Command_declValSimple___elambda__1___closed__2;
extern lean_object* l_Lean_Meta_registerInstanceAttr___closed__1;
extern lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__7;
lean_object* l_Lean_Elab_Command_elabConstant(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_elabAxiom___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_expandOptDeclSig(lean_object*);
@ -546,7 +546,7 @@ x_34 = l_Lean_mkAppStx___closed__8;
x_35 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_35, 0, x_34);
lean_ctor_set(x_35, 1, x_33);
x_36 = l_Lean_Elab_Term_elabLet___closed__7;
x_36 = l_Lean_Parser_Term_let__core___elambda__1___closed__7;
x_37 = l_Lean_mkAtomFrom(x_2, x_36);
x_38 = l_Lean_mkAppStx___closed__9;
x_39 = lean_array_push(x_38, x_37);

View file

@ -265,6 +265,7 @@ lean_object* l_Lean_Unhygienic_run___rarg(lean_object*);
lean_object* l_Lean_String_HasQuote(lean_object*);
lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_Quotation_match__syntax_expand___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_Quotation_stxQuot_expand___closed__6;
extern lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__7;
lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___closed__3;
lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*);
lean_object* l_List_lengthAux___main___rarg(lean_object*, lean_object*);
@ -483,7 +484,6 @@ lean_object* l_Lean_Elab_Term_getOpenDecls(lean_object*, lean_object*);
lean_object* l_List_foldl___main___at___private_Init_Lean_Elab_Quotation_13__toPreterm___main___spec__11(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkTermIdFrom(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__17;
lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___closed__4;
lean_object* l_List_filterAux___main___at___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___spec__9(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main(lean_object*, lean_object*, lean_object*);
@ -4829,24 +4829,16 @@ return x_3;
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string(":=");
return x_1;
}
}
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__7;
x_3 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
return x_3;
}
}
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__5() {
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4() {
_start:
{
lean_object* x_1;
@ -4854,22 +4846,22 @@ x_1 = lean_mk_string("discr");
return x_1;
}
}
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6() {
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__5;
x_1 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_2 = lean_string_utf8_byte_size(x_1);
return x_2;
}
}
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7() {
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__5;
x_1 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_2 = lean_unsigned_to_nat(0u);
x_3 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_3 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__5;
x_4 = lean_alloc_ctor(0, 3, 0);
lean_ctor_set(x_4, 0, x_1);
lean_ctor_set(x_4, 1, x_2);
@ -4877,17 +4869,17 @@ lean_ctor_set(x_4, 2, x_3);
return x_4;
}
}
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8() {
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__5;
x_2 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9() {
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8() {
_start:
{
lean_object* x_1;
@ -4895,12 +4887,12 @@ x_1 = lean_mk_string(";");
return x_1;
}
}
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10() {
lean_object* _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_2 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_3 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
@ -4928,12 +4920,12 @@ x_12 = l_Array_empty___closed__1;
x_13 = lean_array_push(x_12, x_1);
x_14 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_15 = lean_array_push(x_13, x_14);
x_16 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_16 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_17 = lean_array_push(x_15, x_16);
x_18 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_18 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_19 = l_Lean_addMacroScope(x_10, x_18, x_6);
x_20 = lean_box(0);
x_21 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_21 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_22 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_22, 0, x_11);
lean_ctor_set(x_22, 1, x_21);
@ -4952,7 +4944,7 @@ lean_ctor_set(x_29, 0, x_28);
lean_ctor_set(x_29, 1, x_27);
x_30 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_31 = lean_array_push(x_30, x_29);
x_32 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_32 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_33 = lean_array_push(x_31, x_32);
x_34 = lean_array_push(x_33, x_2);
x_35 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -4975,12 +4967,12 @@ x_40 = l_Array_empty___closed__1;
x_41 = lean_array_push(x_40, x_1);
x_42 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_43 = lean_array_push(x_41, x_42);
x_44 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_44 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_45 = lean_array_push(x_43, x_44);
x_46 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_46 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_47 = l_Lean_addMacroScope(x_37, x_46, x_6);
x_48 = lean_box(0);
x_49 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_49 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_50 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_50, 0, x_39);
lean_ctor_set(x_50, 1, x_49);
@ -4999,7 +4991,7 @@ lean_ctor_set(x_57, 0, x_56);
lean_ctor_set(x_57, 1, x_55);
x_58 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_59 = lean_array_push(x_58, x_57);
x_60 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_60 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_61 = lean_array_push(x_59, x_60);
x_62 = lean_array_push(x_61, x_2);
x_63 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -5223,7 +5215,7 @@ x_19 = l_Array_empty___closed__1;
x_20 = lean_array_push(x_19, x_2);
x_21 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_22 = lean_array_push(x_20, x_21);
x_23 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_23 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_24 = lean_array_push(x_22, x_23);
x_25 = l_Lean_mkAppStx___closed__7;
x_26 = lean_name_mk_string(x_1, x_25);
@ -5255,9 +5247,9 @@ x_40 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_40, 0, x_4);
lean_ctor_set(x_40, 1, x_39);
x_41 = lean_array_push(x_19, x_40);
x_42 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_42 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_43 = l_Lean_addMacroScope(x_13, x_42, x_9);
x_44 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_44 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_45 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_45, 0, x_16);
lean_ctor_set(x_45, 1, x_44);
@ -5283,7 +5275,7 @@ lean_ctor_set(x_55, 0, x_18);
lean_ctor_set(x_55, 1, x_54);
x_56 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_57 = lean_array_push(x_56, x_55);
x_58 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_58 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_59 = lean_array_push(x_57, x_58);
x_60 = lean_array_push(x_59, x_5);
x_61 = lean_alloc_ctor(1, 2, 0);
@ -5311,7 +5303,7 @@ x_69 = l_Array_empty___closed__1;
x_70 = lean_array_push(x_69, x_2);
x_71 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_72 = lean_array_push(x_70, x_71);
x_73 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_73 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_74 = lean_array_push(x_72, x_73);
x_75 = l_Lean_mkAppStx___closed__7;
x_76 = lean_name_mk_string(x_1, x_75);
@ -5343,9 +5335,9 @@ x_90 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_90, 0, x_4);
lean_ctor_set(x_90, 1, x_89);
x_91 = lean_array_push(x_69, x_90);
x_92 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_92 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_93 = l_Lean_addMacroScope(x_62, x_92, x_9);
x_94 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_94 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_95 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_95, 0, x_66);
lean_ctor_set(x_95, 1, x_94);
@ -5371,7 +5363,7 @@ lean_ctor_set(x_105, 0, x_68);
lean_ctor_set(x_105, 1, x_104);
x_106 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_107 = lean_array_push(x_106, x_105);
x_108 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_108 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_109 = lean_array_push(x_107, x_108);
x_110 = lean_array_push(x_109, x_5);
x_111 = lean_alloc_ctor(1, 2, 0);
@ -5470,12 +5462,12 @@ x_18 = l_Array_empty___closed__1;
x_19 = lean_array_push(x_18, x_2);
x_20 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_21 = lean_array_push(x_19, x_20);
x_22 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_22 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_23 = lean_array_push(x_21, x_22);
x_24 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_24 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_25 = l_Lean_addMacroScope(x_12, x_24, x_8);
x_26 = lean_box(0);
x_27 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_27 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_28 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_28, 0, x_15);
lean_ctor_set(x_28, 1, x_27);
@ -5492,7 +5484,7 @@ lean_ctor_set(x_33, 0, x_17);
lean_ctor_set(x_33, 1, x_32);
x_34 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_35 = lean_array_push(x_34, x_33);
x_36 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_36 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_37 = lean_array_push(x_35, x_36);
x_38 = lean_array_push(x_37, x_4);
x_39 = lean_alloc_ctor(1, 2, 0);
@ -5519,12 +5511,12 @@ x_47 = l_Array_empty___closed__1;
x_48 = lean_array_push(x_47, x_2);
x_49 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_50 = lean_array_push(x_48, x_49);
x_51 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_51 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_52 = lean_array_push(x_50, x_51);
x_53 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_53 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_54 = l_Lean_addMacroScope(x_40, x_53, x_8);
x_55 = lean_box(0);
x_56 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_56 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_57 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_57, 0, x_44);
lean_ctor_set(x_57, 1, x_56);
@ -5541,7 +5533,7 @@ lean_ctor_set(x_62, 0, x_46);
lean_ctor_set(x_62, 1, x_61);
x_63 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_64 = lean_array_push(x_63, x_62);
x_65 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_65 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_66 = lean_array_push(x_64, x_65);
x_67 = lean_array_push(x_66, x_4);
x_68 = lean_alloc_ctor(1, 2, 0);
@ -7192,9 +7184,9 @@ x_27 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_27, 0, x_26);
lean_ctor_set(x_27, 1, x_25);
x_28 = lean_array_push(x_22, x_27);
x_29 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_29 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_30 = l_Lean_addMacroScope(x_13, x_29, x_10);
x_31 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_31 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_32 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_32, 0, x_15);
lean_ctor_set(x_32, 1, x_31);
@ -7294,9 +7286,9 @@ x_76 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_76, 0, x_75);
lean_ctor_set(x_76, 1, x_74);
x_77 = lean_array_push(x_71, x_76);
x_78 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_78 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_79 = l_Lean_addMacroScope(x_62, x_78, x_59);
x_80 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_80 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_81 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_81, 0, x_64);
lean_ctor_set(x_81, 1, x_80);
@ -8297,9 +8289,9 @@ if (x_57 == 0)
lean_object* x_58; 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; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80;
x_58 = lean_ctor_get(x_56, 0);
x_59 = lean_box(0);
x_60 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_60 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_61 = l_Lean_addMacroScope(x_58, x_60, x_54);
x_62 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_62 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_63 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_63, 0, x_59);
lean_ctor_set(x_63, 1, x_62);
@ -8310,7 +8302,7 @@ x_65 = lean_array_push(x_64, x_63);
x_66 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_67 = lean_array_push(x_65, x_66);
x_68 = lean_array_push(x_67, x_66);
x_69 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_69 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_70 = lean_array_push(x_68, x_69);
x_71 = lean_array_push(x_70, x_17);
x_72 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -8319,7 +8311,7 @@ lean_ctor_set(x_73, 0, x_72);
lean_ctor_set(x_73, 1, x_71);
x_74 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_75 = lean_array_push(x_74, x_73);
x_76 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_76 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_77 = lean_array_push(x_75, x_76);
x_78 = lean_array_push(x_77, x_51);
x_79 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -8338,9 +8330,9 @@ lean_inc(x_82);
lean_inc(x_81);
lean_dec(x_56);
x_83 = lean_box(0);
x_84 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_84 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_85 = l_Lean_addMacroScope(x_81, x_84, x_54);
x_86 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_86 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_87 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_87, 0, x_83);
lean_ctor_set(x_87, 1, x_86);
@ -8351,7 +8343,7 @@ x_89 = lean_array_push(x_88, x_87);
x_90 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_91 = lean_array_push(x_89, x_90);
x_92 = lean_array_push(x_91, x_90);
x_93 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_93 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_94 = lean_array_push(x_92, x_93);
x_95 = lean_array_push(x_94, x_17);
x_96 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -8360,7 +8352,7 @@ lean_ctor_set(x_97, 0, x_96);
lean_ctor_set(x_97, 1, x_95);
x_98 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_99 = lean_array_push(x_98, x_97);
x_100 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_100 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_101 = lean_array_push(x_99, x_100);
x_102 = lean_array_push(x_101, x_51);
x_103 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -8449,9 +8441,9 @@ x_135 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_135, 0, x_134);
lean_ctor_set(x_135, 1, x_133);
x_136 = lean_array_push(x_130, x_135);
x_137 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_137 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_138 = l_Lean_addMacroScope(x_122, x_137, x_119);
x_139 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_139 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_140 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_140, 0, x_124);
lean_ctor_set(x_140, 1, x_139);
@ -8498,7 +8490,7 @@ lean_ctor_set(x_159, 3, x_27);
x_160 = lean_array_push(x_130, x_159);
x_161 = lean_array_push(x_160, x_132);
x_162 = lean_array_push(x_161, x_132);
x_163 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_163 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_164 = lean_array_push(x_162, x_163);
x_165 = lean_array_push(x_164, x_17);
x_166 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -8507,7 +8499,7 @@ lean_ctor_set(x_167, 0, x_166);
lean_ctor_set(x_167, 1, x_165);
x_168 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_169 = lean_array_push(x_168, x_167);
x_170 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_170 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_171 = lean_array_push(x_169, x_170);
x_172 = l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__18;
x_173 = l_Lean_addMacroScope(x_157, x_172, x_153);
@ -8571,7 +8563,7 @@ lean_ctor_set(x_201, 3, x_27);
x_202 = lean_array_push(x_130, x_201);
x_203 = lean_array_push(x_202, x_132);
x_204 = lean_array_push(x_203, x_132);
x_205 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_205 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_206 = lean_array_push(x_204, x_205);
x_207 = lean_array_push(x_206, x_17);
x_208 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -8580,7 +8572,7 @@ lean_ctor_set(x_209, 0, x_208);
lean_ctor_set(x_209, 1, x_207);
x_210 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_211 = lean_array_push(x_210, x_209);
x_212 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_212 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_213 = lean_array_push(x_211, x_212);
x_214 = l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__18;
x_215 = l_Lean_addMacroScope(x_198, x_214, x_153);
@ -8734,9 +8726,9 @@ x_274 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_274, 0, x_273);
lean_ctor_set(x_274, 1, x_272);
x_275 = lean_array_push(x_269, x_274);
x_276 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_276 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_277 = l_Lean_addMacroScope(x_261, x_276, x_258);
x_278 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_278 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_279 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_279, 0, x_263);
lean_ctor_set(x_279, 1, x_278);
@ -8790,7 +8782,7 @@ lean_ctor_set(x_299, 3, x_27);
x_300 = lean_array_push(x_269, x_299);
x_301 = lean_array_push(x_300, x_271);
x_302 = lean_array_push(x_301, x_271);
x_303 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_303 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_304 = lean_array_push(x_302, x_303);
x_305 = lean_array_push(x_304, x_17);
x_306 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -8799,7 +8791,7 @@ lean_ctor_set(x_307, 0, x_306);
lean_ctor_set(x_307, 1, x_305);
x_308 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_309 = lean_array_push(x_308, x_307);
x_310 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_310 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_311 = lean_array_push(x_309, x_310);
x_312 = l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__18;
x_313 = l_Lean_addMacroScope(x_295, x_312, x_292);
@ -9032,9 +9024,9 @@ if (lean_is_exclusive(x_375)) {
x_378 = lean_box(0);
}
x_379 = lean_box(0);
x_380 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_380 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_381 = l_Lean_addMacroScope(x_376, x_380, x_373);
x_382 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_382 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_383 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_383, 0, x_379);
lean_ctor_set(x_383, 1, x_382);
@ -9045,7 +9037,7 @@ x_385 = lean_array_push(x_384, x_383);
x_386 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_387 = lean_array_push(x_385, x_386);
x_388 = lean_array_push(x_387, x_386);
x_389 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_389 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_390 = lean_array_push(x_388, x_389);
x_391 = lean_array_push(x_390, x_17);
x_392 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -9054,7 +9046,7 @@ lean_ctor_set(x_393, 0, x_392);
lean_ctor_set(x_393, 1, x_391);
x_394 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_395 = lean_array_push(x_394, x_393);
x_396 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_396 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_397 = lean_array_push(x_395, x_396);
x_398 = lean_array_push(x_397, x_370);
x_399 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -9175,9 +9167,9 @@ x_437 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_437, 0, x_436);
lean_ctor_set(x_437, 1, x_435);
x_438 = lean_array_push(x_432, x_437);
x_439 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_439 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_440 = l_Lean_addMacroScope(x_424, x_439, x_421);
x_441 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_441 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_442 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_442, 0, x_426);
lean_ctor_set(x_442, 1, x_441);
@ -9231,7 +9223,7 @@ lean_ctor_set(x_462, 3, x_27);
x_463 = lean_array_push(x_432, x_462);
x_464 = lean_array_push(x_463, x_434);
x_465 = lean_array_push(x_464, x_434);
x_466 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_466 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_467 = lean_array_push(x_465, x_466);
x_468 = lean_array_push(x_467, x_17);
x_469 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -9240,7 +9232,7 @@ lean_ctor_set(x_470, 0, x_469);
lean_ctor_set(x_470, 1, x_468);
x_471 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_472 = lean_array_push(x_471, x_470);
x_473 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_473 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_474 = lean_array_push(x_472, x_473);
x_475 = l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__18;
x_476 = l_Lean_addMacroScope(x_458, x_475, x_455);
@ -9511,9 +9503,9 @@ if (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; lean_object* x_561; lean_object* x_562; lean_object* x_563; lean_object* x_564; lean_object* x_565; lean_object* x_566; lean_object* x_567; lean_object* x_568; lean_object* x_569; lean_object* x_570; lean_object* x_571; lean_object* x_572; lean_object* x_573;
x_551 = lean_ctor_get(x_549, 0);
x_552 = lean_box(0);
x_553 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_553 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_554 = l_Lean_addMacroScope(x_551, x_553, x_547);
x_555 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_555 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_556 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_556, 0, x_552);
lean_ctor_set(x_556, 1, x_555);
@ -9524,7 +9516,7 @@ x_558 = lean_array_push(x_557, x_556);
x_559 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_560 = lean_array_push(x_558, x_559);
x_561 = lean_array_push(x_560, x_559);
x_562 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_562 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_563 = lean_array_push(x_561, x_562);
x_564 = lean_array_push(x_563, x_17);
x_565 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -9533,7 +9525,7 @@ lean_ctor_set(x_566, 0, x_565);
lean_ctor_set(x_566, 1, x_564);
x_567 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_568 = lean_array_push(x_567, x_566);
x_569 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_569 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_570 = lean_array_push(x_568, x_569);
x_571 = lean_array_push(x_570, x_544);
x_572 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -9552,9 +9544,9 @@ lean_inc(x_575);
lean_inc(x_574);
lean_dec(x_549);
x_576 = lean_box(0);
x_577 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_577 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_578 = l_Lean_addMacroScope(x_574, x_577, x_547);
x_579 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_579 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_580 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_580, 0, x_576);
lean_ctor_set(x_580, 1, x_579);
@ -9565,7 +9557,7 @@ x_582 = lean_array_push(x_581, x_580);
x_583 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_584 = lean_array_push(x_582, x_583);
x_585 = lean_array_push(x_584, x_583);
x_586 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_586 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_587 = lean_array_push(x_585, x_586);
x_588 = lean_array_push(x_587, x_17);
x_589 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -9574,7 +9566,7 @@ lean_ctor_set(x_590, 0, x_589);
lean_ctor_set(x_590, 1, x_588);
x_591 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_592 = lean_array_push(x_591, x_590);
x_593 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_593 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_594 = lean_array_push(x_592, x_593);
x_595 = lean_array_push(x_594, x_544);
x_596 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -9663,11 +9655,11 @@ x_628 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_628, 0, x_627);
lean_ctor_set(x_628, 1, x_626);
x_629 = lean_array_push(x_623, x_628);
x_630 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_630 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
lean_inc(x_612);
lean_inc(x_615);
x_631 = l_Lean_addMacroScope(x_615, x_630, x_612);
x_632 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_632 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_633 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_633, 0, x_617);
lean_ctor_set(x_633, 1, x_632);
@ -9800,7 +9792,7 @@ lean_ctor_set(x_705, 3, x_520);
x_706 = lean_array_push(x_623, x_705);
x_707 = lean_array_push(x_706, x_625);
x_708 = lean_array_push(x_707, x_625);
x_709 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_709 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_710 = lean_array_push(x_708, x_709);
x_711 = lean_array_push(x_710, x_17);
x_712 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -9809,7 +9801,7 @@ lean_ctor_set(x_713, 0, x_712);
lean_ctor_set(x_713, 1, x_711);
x_714 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_715 = lean_array_push(x_714, x_713);
x_716 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_716 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_717 = lean_array_push(x_715, x_716);
x_718 = l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__18;
x_719 = l_Lean_addMacroScope(x_703, x_718, x_699);
@ -9873,7 +9865,7 @@ lean_ctor_set(x_747, 3, x_520);
x_748 = lean_array_push(x_623, x_747);
x_749 = lean_array_push(x_748, x_625);
x_750 = lean_array_push(x_749, x_625);
x_751 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_751 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_752 = lean_array_push(x_750, x_751);
x_753 = lean_array_push(x_752, x_17);
x_754 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -9882,7 +9874,7 @@ lean_ctor_set(x_755, 0, x_754);
lean_ctor_set(x_755, 1, x_753);
x_756 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_757 = lean_array_push(x_756, x_755);
x_758 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_758 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_759 = lean_array_push(x_757, x_758);
x_760 = l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__18;
x_761 = l_Lean_addMacroScope(x_744, x_760, x_699);
@ -10037,11 +10029,11 @@ x_820 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_820, 0, x_819);
lean_ctor_set(x_820, 1, x_818);
x_821 = lean_array_push(x_815, x_820);
x_822 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_822 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
lean_inc(x_804);
lean_inc(x_807);
x_823 = l_Lean_addMacroScope(x_807, x_822, x_804);
x_824 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_824 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_825 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_825, 0, x_809);
lean_ctor_set(x_825, 1, x_824);
@ -10181,7 +10173,7 @@ lean_ctor_set(x_898, 3, x_520);
x_899 = lean_array_push(x_815, x_898);
x_900 = lean_array_push(x_899, x_817);
x_901 = lean_array_push(x_900, x_817);
x_902 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_902 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_903 = lean_array_push(x_901, x_902);
x_904 = lean_array_push(x_903, x_17);
x_905 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -10190,7 +10182,7 @@ lean_ctor_set(x_906, 0, x_905);
lean_ctor_set(x_906, 1, x_904);
x_907 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_908 = lean_array_push(x_907, x_906);
x_909 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_909 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_910 = lean_array_push(x_908, x_909);
x_911 = l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__18;
x_912 = l_Lean_addMacroScope(x_894, x_911, x_891);
@ -10426,9 +10418,9 @@ if (lean_is_exclusive(x_974)) {
x_977 = lean_box(0);
}
x_978 = lean_box(0);
x_979 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_979 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_980 = l_Lean_addMacroScope(x_975, x_979, x_972);
x_981 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_981 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_982 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_982, 0, x_978);
lean_ctor_set(x_982, 1, x_981);
@ -10439,7 +10431,7 @@ x_984 = lean_array_push(x_983, x_982);
x_985 = l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
x_986 = lean_array_push(x_984, x_985);
x_987 = lean_array_push(x_986, x_985);
x_988 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_988 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_989 = lean_array_push(x_987, x_988);
x_990 = lean_array_push(x_989, x_17);
x_991 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -10448,7 +10440,7 @@ lean_ctor_set(x_992, 0, x_991);
lean_ctor_set(x_992, 1, x_990);
x_993 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_994 = lean_array_push(x_993, x_992);
x_995 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_995 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_996 = lean_array_push(x_994, x_995);
x_997 = lean_array_push(x_996, x_969);
x_998 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -10569,11 +10561,11 @@ x_1036 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_1036, 0, x_1035);
lean_ctor_set(x_1036, 1, x_1034);
x_1037 = lean_array_push(x_1031, x_1036);
x_1038 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8;
x_1038 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
lean_inc(x_1020);
lean_inc(x_1023);
x_1039 = l_Lean_addMacroScope(x_1023, x_1038, x_1020);
x_1040 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__7;
x_1040 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__6;
x_1041 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_1041, 0, x_1025);
lean_ctor_set(x_1041, 1, x_1040);
@ -10713,7 +10705,7 @@ lean_ctor_set(x_1114, 3, x_520);
x_1115 = lean_array_push(x_1031, x_1114);
x_1116 = lean_array_push(x_1115, x_1033);
x_1117 = lean_array_push(x_1116, x_1033);
x_1118 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_1118 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_1119 = lean_array_push(x_1117, x_1118);
x_1120 = lean_array_push(x_1119, x_17);
x_1121 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -10722,7 +10714,7 @@ lean_ctor_set(x_1122, 0, x_1121);
lean_ctor_set(x_1122, 1, x_1120);
x_1123 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_1124 = lean_array_push(x_1123, x_1122);
x_1125 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_1125 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_1126 = lean_array_push(x_1124, x_1125);
x_1127 = l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___closed__18;
x_1128 = l_Lean_addMacroScope(x_1110, x_1127, x_1107);
@ -11711,7 +11703,7 @@ lean_ctor_set(x_65, 3, x_25);
x_66 = lean_array_push(x_28, x_65);
x_67 = lean_array_push(x_66, x_30);
x_68 = lean_array_push(x_67, x_30);
x_69 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_69 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_70 = lean_array_push(x_68, x_69);
x_71 = l___private_Init_Lean_Elab_Quotation_11__letBindRhss___main___closed__13;
x_72 = lean_array_push(x_71, x_13);
@ -11726,7 +11718,7 @@ lean_ctor_set(x_77, 0, x_76);
lean_ctor_set(x_77, 1, x_75);
x_78 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_79 = lean_array_push(x_78, x_77);
x_80 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_80 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_81 = lean_array_push(x_79, x_80);
x_82 = lean_array_push(x_81, x_56);
x_83 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -11753,7 +11745,7 @@ lean_ctor_set(x_88, 3, x_25);
x_89 = lean_array_push(x_28, x_88);
x_90 = lean_array_push(x_89, x_30);
x_91 = lean_array_push(x_90, x_30);
x_92 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_92 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_93 = lean_array_push(x_91, x_92);
x_94 = l___private_Init_Lean_Elab_Quotation_11__letBindRhss___main___closed__13;
x_95 = lean_array_push(x_94, x_13);
@ -11768,7 +11760,7 @@ lean_ctor_set(x_100, 0, x_99);
lean_ctor_set(x_100, 1, x_98);
x_101 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_102 = lean_array_push(x_101, x_100);
x_103 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_103 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_104 = lean_array_push(x_102, x_103);
x_105 = lean_array_push(x_104, x_56);
x_106 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -11902,7 +11894,7 @@ lean_ctor_set(x_145, 3, x_25);
x_146 = lean_array_push(x_28, x_145);
x_147 = lean_array_push(x_146, x_30);
x_148 = lean_array_push(x_147, x_30);
x_149 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_149 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_150 = lean_array_push(x_148, x_149);
x_151 = l___private_Init_Lean_Elab_Quotation_11__letBindRhss___main___closed__13;
x_152 = lean_array_push(x_151, x_13);
@ -11917,7 +11909,7 @@ lean_ctor_set(x_157, 0, x_156);
lean_ctor_set(x_157, 1, x_155);
x_158 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_159 = lean_array_push(x_158, x_157);
x_160 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_160 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_161 = lean_array_push(x_159, x_160);
x_162 = lean_array_push(x_161, x_135);
x_163 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -12096,7 +12088,7 @@ lean_ctor_set(x_229, 3, x_194);
x_230 = lean_array_push(x_197, x_229);
x_231 = lean_array_push(x_230, x_199);
x_232 = lean_array_push(x_231, x_199);
x_233 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_233 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_234 = lean_array_push(x_232, x_233);
x_235 = lean_array_push(x_234, x_184);
x_236 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -12105,7 +12097,7 @@ lean_ctor_set(x_237, 0, x_236);
lean_ctor_set(x_237, 1, x_235);
x_238 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_239 = lean_array_push(x_238, x_237);
x_240 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_240 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_241 = lean_array_push(x_239, x_240);
x_242 = lean_array_push(x_241, x_220);
x_243 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -12132,7 +12124,7 @@ lean_ctor_set(x_248, 3, x_194);
x_249 = lean_array_push(x_197, x_248);
x_250 = lean_array_push(x_249, x_199);
x_251 = lean_array_push(x_250, x_199);
x_252 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_252 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_253 = lean_array_push(x_251, x_252);
x_254 = lean_array_push(x_253, x_184);
x_255 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -12141,7 +12133,7 @@ lean_ctor_set(x_256, 0, x_255);
lean_ctor_set(x_256, 1, x_254);
x_257 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_258 = lean_array_push(x_257, x_256);
x_259 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_259 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_260 = lean_array_push(x_258, x_259);
x_261 = lean_array_push(x_260, x_220);
x_262 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -12275,7 +12267,7 @@ lean_ctor_set(x_301, 3, x_194);
x_302 = lean_array_push(x_197, x_301);
x_303 = lean_array_push(x_302, x_199);
x_304 = lean_array_push(x_303, x_199);
x_305 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_305 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_306 = lean_array_push(x_304, x_305);
x_307 = lean_array_push(x_306, x_184);
x_308 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -12284,7 +12276,7 @@ lean_ctor_set(x_309, 0, x_308);
lean_ctor_set(x_309, 1, x_307);
x_310 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_311 = lean_array_push(x_310, x_309);
x_312 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_312 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_313 = lean_array_push(x_311, x_312);
x_314 = lean_array_push(x_313, x_291);
x_315 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -12487,7 +12479,7 @@ lean_ctor_set(x_383, 3, x_340);
x_384 = lean_array_push(x_343, x_383);
x_385 = lean_array_push(x_384, x_345);
x_386 = lean_array_push(x_385, x_345);
x_387 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_387 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_388 = lean_array_push(x_386, x_387);
x_389 = lean_array_push(x_388, x_330);
x_390 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -12496,7 +12488,7 @@ lean_ctor_set(x_391, 0, x_390);
lean_ctor_set(x_391, 1, x_389);
x_392 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_393 = lean_array_push(x_392, x_391);
x_394 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_394 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_395 = lean_array_push(x_393, x_394);
x_396 = lean_array_push(x_395, x_373);
x_397 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -12706,7 +12698,7 @@ lean_ctor_set(x_466, 3, x_418);
x_467 = lean_array_push(x_421, x_466);
x_468 = lean_array_push(x_467, x_423);
x_469 = lean_array_push(x_468, x_423);
x_470 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_470 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_471 = lean_array_push(x_469, x_470);
x_472 = l___private_Init_Lean_Elab_Quotation_11__letBindRhss___main___closed__13;
x_473 = lean_array_push(x_472, x_406);
@ -12721,7 +12713,7 @@ lean_ctor_set(x_478, 0, x_477);
lean_ctor_set(x_478, 1, x_476);
x_479 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_480 = lean_array_push(x_479, x_478);
x_481 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_481 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_482 = lean_array_push(x_480, x_481);
x_483 = lean_array_push(x_482, x_456);
x_484 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -12942,7 +12934,7 @@ lean_ctor_set(x_557, 3, x_513);
x_558 = lean_array_push(x_516, x_557);
x_559 = lean_array_push(x_558, x_518);
x_560 = lean_array_push(x_559, x_518);
x_561 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_561 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_562 = lean_array_push(x_560, x_561);
x_563 = lean_array_push(x_562, x_503);
x_564 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -12951,7 +12943,7 @@ lean_ctor_set(x_565, 0, x_564);
lean_ctor_set(x_565, 1, x_563);
x_566 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_567 = lean_array_push(x_566, x_565);
x_568 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_568 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_569 = lean_array_push(x_567, x_568);
x_570 = lean_array_push(x_569, x_547);
x_571 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -13177,7 +13169,7 @@ lean_ctor_set(x_643, 3, x_594);
x_644 = lean_array_push(x_597, x_643);
x_645 = lean_array_push(x_644, x_599);
x_646 = lean_array_push(x_645, x_599);
x_647 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_647 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_648 = lean_array_push(x_646, x_647);
x_649 = l___private_Init_Lean_Elab_Quotation_11__letBindRhss___main___closed__13;
x_650 = lean_array_push(x_649, x_581);
@ -13192,7 +13184,7 @@ lean_ctor_set(x_655, 0, x_654);
lean_ctor_set(x_655, 1, x_653);
x_656 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_657 = lean_array_push(x_656, x_655);
x_658 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_658 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_659 = lean_array_push(x_657, x_658);
x_660 = lean_array_push(x_659, x_633);
x_661 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -13416,7 +13408,7 @@ lean_ctor_set(x_734, 3, x_690);
x_735 = lean_array_push(x_693, x_734);
x_736 = lean_array_push(x_735, x_695);
x_737 = lean_array_push(x_736, x_695);
x_738 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_738 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_739 = lean_array_push(x_737, x_738);
x_740 = lean_array_push(x_739, x_680);
x_741 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -13425,7 +13417,7 @@ lean_ctor_set(x_742, 0, x_741);
lean_ctor_set(x_742, 1, x_740);
x_743 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__2;
x_744 = lean_array_push(x_743, x_742);
x_745 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10;
x_745 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9;
x_746 = lean_array_push(x_744, x_745);
x_747 = lean_array_push(x_746, x_724);
x_748 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -25460,8 +25452,6 @@ l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8 = _
lean_mark_persistent(l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__8);
l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9 = _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9();
lean_mark_persistent(l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__9);
l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10 = _init_l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10();
lean_mark_persistent(l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__10);
l_Array_umapMAux___main___at___private_Init_Lean_Elab_Quotation_7__getHeadInfo___spec__2___closed__1 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_Quotation_7__getHeadInfo___spec__2___closed__1();
lean_mark_persistent(l_Array_umapMAux___main___at___private_Init_Lean_Elab_Quotation_7__getHeadInfo___spec__2___closed__1);
l_Array_umapMAux___main___at___private_Init_Lean_Elab_Quotation_7__getHeadInfo___spec__2___closed__2 = _init_l_Array_umapMAux___main___at___private_Init_Lean_Elab_Quotation_7__getHeadInfo___spec__2___closed__2();

View file

@ -19,6 +19,7 @@ lean_object* l_Lean_Elab_Term_toParserDescrAux___main___closed__95;
extern lean_object* l_Lean_Parser_Syntax_many___elambda__1___closed__1;
lean_object* l_Lean_Elab_Term_getEnv___rarg(lean_object*);
extern lean_object* l_Lean_Name_toString___closed__1;
extern lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_Syntax_2__mkParserSeq___spec__1___closed__2;
lean_object* l_Lean_Elab_Command_elabMacroRules___lambda__1___closed__24;
lean_object* l___private_Init_Lean_Elab_Syntax_4__withFirst(lean_object*);
@ -264,7 +265,6 @@ lean_object* l_Lean_Elab_Command_expandNotation___closed__3;
extern lean_object* l___regBuiltinParser_Lean_Parser_Command_antiquot___closed__2;
lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_Syntax_2__mkParserSeq___spec__1___closed__1;
lean_object* l_Lean_Elab_Term_getCurrMacroScope(lean_object*, lean_object*);
extern lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
lean_object* l_Lean_Elab_Term_toParserDescrAux___main___closed__91;
lean_object* l_Lean_Elab_Command_elabMacroRules___lambda__1___closed__29;
lean_object* l_Lean_Elab_Term_toParserDescrAux___main___closed__78;
@ -7730,7 +7730,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Array_empty___closed__1;
x_2 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__4;
x_2 = l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__3___closed__3;
x_3 = lean_array_push(x_1, x_2);
return x_3;
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -24,17 +24,14 @@ lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabDepArrow___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_instantiateMVars(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__2;
lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabDepArrow(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabArrow___closed__1;
lean_object* l___private_Init_Lean_Elab_TermBinders_1__expandBinderType___boxed(lean_object*);
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabFun___closed__1;
lean_object* l_Lean_Format_pretty(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___main___closed__3;
extern lean_object* l_Lean_List_format___rarg___closed__2;
uint8_t lean_name_eq(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLet___closed__10;
lean_object* l_Lean_Elab_Term_elabLet___closed__7;
lean_object* l_Lean_Syntax_getIdAt(lean_object*, lean_object*);
lean_object* lean_local_ctx_mk_let_decl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -49,9 +46,9 @@ extern uint8_t l___private_Init_Lean_Elab_Term_4__isCDot___closed__1;
extern lean_object* l_Prod_HasRepr___rarg___closed__1;
lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___main___spec__1(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_8__getFunBinderIdsAux_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLetIdDecl___closed__3;
lean_object* l_Lean_Elab_Term_elabLet(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Array_empty___closed__1;
lean_object* l_Lean_Elab_Term_elabLetDeclAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_checkTraceOption(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_8__getFunBinderIdsAux_x3f(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -96,22 +93,26 @@ lean_object* l___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___ma
lean_object* l___private_Init_Lean_Elab_TermBinders_12__regTraceClasses(lean_object*);
extern lean_object* l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabFun___closed__3;
lean_object* l_Lean_Elab_Term_elabLetIdDecl___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* lean_array_fget(lean_object*, lean_object*);
extern lean_object* l_Lean_Elab_Term_declareBuiltinTermElab___closed__3;
extern lean_object* l_Lean_Expr_getOptParamDefault_x3f___closed__2;
uint8_t lean_nat_dec_eq(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLetDeclAux___closed__2;
lean_object* l_Lean_Elab_Term_elabLetDeclAux___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabArrow___closed__2;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabArrow___closed__1;
lean_object* l_Lean_Elab_Term_mkFreshFVarId___rarg(lean_object*);
lean_object* l_Lean_Elab_Term_elabLetIdDecl___closed__1;
lean_object* l___private_Init_Lean_Elab_TermBinders_8__getFunBinderIdsAux_x3f___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_throwUnsupportedSyntax___rarg(lean_object*);
lean_object* l_Lean_Elab_Term_elabLetDeclAux___closed__1;
lean_object* l___private_Init_Lean_Elab_TermBinders_8__getFunBinderIdsAux_x3f___main(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_instBinder___elambda__1___closed__2;
lean_object* l_Lean_Elab_Term_elabLetDeclAux___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_6__elabBinderViews(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabForall___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLetDeclAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__7;
lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___main___closed__6;
lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*);
@ -127,7 +128,6 @@ extern lean_object* l_Lean_Parser_Term_explicitBinder___elambda__1___closed__2;
lean_object* l_Lean_Elab_Term_elabForall___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Syntax_getId(lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__1;
lean_object* l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___main___closed__1;
lean_object* lean_name_mk_string(lean_object*, lean_object*);
@ -140,32 +140,30 @@ extern lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__2;
lean_object* l_Lean_Elab_Term_elabArrow___lambda__1___closed__1;
lean_object* l_Lean_Elab_Term_elabBinder___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_getCurrMacroScope(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_5__matchBinder___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabArrow___lambda__1___closed__2;
lean_object* l_Lean_Elab_Term_expandOptType(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabArrow___lambda__1___closed__6;
extern lean_object* l_Lean_Options_empty;
lean_object* l_Lean_Elab_Term_mkFreshFVarId(lean_object*);
lean_object* l_Lean_Elab_Term_elabLet___closed__8;
uint8_t l_coeDecidableEq(uint8_t);
lean_object* l___private_Init_Lean_Elab_TermBinders_1__expandBinderType(lean_object*);
lean_object* l_Lean_Elab_Term_elabLetIdDecl___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLetEqnsDecl___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_Array_isEmpty___rarg(lean_object*);
extern lean_object* l_Lean_Parser_Term_arrow___elambda__1___closed__2;
lean_object* l_Lean_Elab_Term_elabArrow___lambda__1___closed__4;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabForall___closed__2;
extern lean_object* l_Lean_Parser_Term_let___elambda__1___closed__2;
lean_object* l_Lean_Elab_Term_elabLetIdDecl___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_getLocalInsts(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_mkFreshInstanceName___rarg(lean_object*);
lean_object* l_Lean_Elab_Term_isClass(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabArrow___lambda__1___closed__8;
lean_object* l_Lean_mkFVar(lean_object*);
lean_object* l_Lean_Elab_Term_elabLetDeclAux___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_addMacroScope(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLet___closed__1;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__1;
lean_object* l_Lean_Elab_Term_elabLetIdDecl___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabBinders___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l___private_Init_Lean_Meta_Tactic_Apply_3__throwApplyError___rarg___closed__6;
lean_object* l_Lean_Elab_Term_expandOptType___boxed(lean_object*, lean_object*);
@ -182,6 +180,7 @@ extern lean_object* l_Option_HasRepr___rarg___closed__3;
lean_object* l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier___closed__6;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabForall___closed__1;
extern lean_object* l_Lean_Parser_Term_implicitBinder___elambda__1___closed__2;
extern lean_object* l_Lean_Syntax_inhabited;
lean_object* l_Lean_Elab_Term_elabArrow(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_10__expandFunBindersAux___main___closed__9;
extern lean_object* l_Lean_Parser_Term_matchAlt___elambda__1___closed__2;
@ -206,8 +205,8 @@ extern lean_object* l_Lean_Parser_Term_let___elambda__1___closed__1;
lean_object* l_Lean_Syntax_getArgs(lean_object*);
lean_object* l_Lean_Syntax_getKind(lean_object*);
lean_object* l_Lean_Elab_Term_elabLetEqnsDecl(lean_object*);
lean_object* l_Lean_Elab_Term_elabLetIdDecl___closed__2;
lean_object* l_Lean_Elab_Term_mkFreshFVarId___boxed(lean_object*);
lean_object* l_Lean_Elab_Term_elabLetDeclAux___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l___private_Init_Util_1__mkPanicMessage___closed__2;
lean_object* l_Lean_Elab_Term_elabLetPatDecl___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_mkHole___closed__1;
@ -236,15 +235,13 @@ extern lean_object* l_Lean_mkHole___closed__2;
lean_object* l_Lean_Elab_Term_elabBinders___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier___closed__3;
extern lean_object* l___private_Init_Lean_Elab_Term_5__expandCDot___closed__4;
lean_object* l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__3;
lean_object* l_Lean_Elab_Term_elabLet___closed__6;
lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*);
extern lean_object* l_Lean_mkOptionalNode___closed__2;
extern lean_object* l_Lean_Elab_Term_withNode___rarg___closed__3;
lean_object* l_Lean_Elab_Term_elabLet___closed__4;
lean_object* l_Lean_Syntax_formatStxAux___main(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabArrow___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLetDeclAux___closed__3;
extern lean_object* l___private_Init_Lean_Elab_Util_8__regTraceClasses___closed__1;
lean_object* l_Lean_Elab_Term_elabForall(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLet___closed__9;
@ -802,239 +799,182 @@ goto _start;
}
}
}
lean_object* _init_l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("term elaborator failed, unexpected binder syntax");
return x_1;
}
}
lean_object* _init_l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__1;
x_2 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* _init_l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__2;
x_2 = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* l___private_Init_Lean_Elab_TermBinders_5__matchBinder(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4;
if (lean_obj_tag(x_1) == 1)
{
lean_object* x_16; lean_object* x_17; uint8_t x_18;
lean_inc(x_1);
x_16 = l_Lean_Syntax_getKind(x_1);
x_17 = l_Lean_Parser_Term_simpleBinder___elambda__1___closed__2;
x_18 = lean_name_eq(x_16, x_17);
if (x_18 == 0)
lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7;
x_4 = lean_ctor_get(x_1, 0);
x_5 = lean_ctor_get(x_1, 1);
x_6 = l_Lean_Parser_Term_simpleBinder___elambda__1___closed__2;
x_7 = lean_name_eq(x_4, x_6);
if (x_7 == 0)
{
lean_object* x_19; uint8_t x_20;
x_19 = l_Lean_Parser_Term_explicitBinder___elambda__1___closed__2;
x_20 = lean_name_eq(x_16, x_19);
if (x_20 == 0)
lean_object* x_8; uint8_t x_9;
x_8 = l_Lean_Parser_Term_explicitBinder___elambda__1___closed__2;
x_9 = lean_name_eq(x_4, x_8);
if (x_9 == 0)
{
lean_object* x_21; uint8_t x_22;
x_21 = l_Lean_Parser_Term_implicitBinder___elambda__1___closed__2;
x_22 = lean_name_eq(x_16, x_21);
if (x_22 == 0)
lean_object* x_10; uint8_t x_11;
x_10 = l_Lean_Parser_Term_implicitBinder___elambda__1___closed__2;
x_11 = lean_name_eq(x_4, x_10);
if (x_11 == 0)
{
lean_object* x_23; uint8_t x_24;
x_23 = l_Lean_Parser_Term_instBinder___elambda__1___closed__2;
x_24 = lean_name_eq(x_16, x_23);
lean_dec(x_16);
if (x_24 == 0)
lean_object* x_12; uint8_t x_13;
x_12 = l_Lean_Parser_Term_instBinder___elambda__1___closed__2;
x_13 = lean_name_eq(x_4, x_12);
if (x_13 == 0)
{
lean_object* x_25; lean_object* x_26;
x_25 = l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__3;
x_26 = l_Lean_Elab_Term_throwError___rarg(x_1, x_25, x_2, x_3);
lean_dec(x_1);
return x_26;
}
else
{
lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30;
x_27 = lean_unsigned_to_nat(1u);
x_28 = l_Lean_Syntax_getArg(x_1, x_27);
x_29 = l___private_Init_Lean_Elab_TermBinders_3__expandOptIdent(x_28, x_2, x_3);
lean_object* x_14;
lean_dec(x_2);
lean_dec(x_28);
x_30 = !lean_is_exclusive(x_29);
if (x_30 == 0)
{
lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37;
x_31 = lean_ctor_get(x_29, 0);
x_32 = lean_unsigned_to_nat(2u);
x_33 = l_Lean_Syntax_getArg(x_1, x_32);
lean_dec(x_1);
x_34 = 3;
x_35 = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(x_35, 0, x_31);
lean_ctor_set(x_35, 1, x_33);
lean_ctor_set_uint8(x_35, sizeof(void*)*2, x_34);
x_36 = l_Lean_mkOptionalNode___closed__2;
x_37 = lean_array_push(x_36, x_35);
lean_ctor_set(x_29, 0, x_37);
return x_29;
x_14 = l_Lean_Elab_Term_throwUnsupportedSyntax___rarg(x_3);
return x_14;
}
else
{
lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46;
x_38 = lean_ctor_get(x_29, 0);
x_39 = lean_ctor_get(x_29, 1);
lean_inc(x_39);
lean_inc(x_38);
lean_dec(x_29);
lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19;
x_15 = l_Lean_Syntax_inhabited;
x_16 = lean_unsigned_to_nat(1u);
x_17 = lean_array_get(x_15, x_5, x_16);
x_18 = l___private_Init_Lean_Elab_TermBinders_3__expandOptIdent(x_17, x_2, x_3);
lean_dec(x_2);
lean_dec(x_17);
x_19 = !lean_is_exclusive(x_18);
if (x_19 == 0)
{
lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26;
x_20 = lean_ctor_get(x_18, 0);
x_21 = lean_unsigned_to_nat(2u);
x_22 = lean_array_get(x_15, x_5, x_21);
x_23 = 3;
x_24 = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(x_24, 0, x_20);
lean_ctor_set(x_24, 1, x_22);
lean_ctor_set_uint8(x_24, sizeof(void*)*2, x_23);
x_25 = l_Lean_mkOptionalNode___closed__2;
x_26 = lean_array_push(x_25, x_24);
lean_ctor_set(x_18, 0, x_26);
return x_18;
}
else
{
lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35;
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_unsigned_to_nat(2u);
x_30 = lean_array_get(x_15, x_5, x_29);
x_31 = 3;
x_32 = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(x_32, 0, x_27);
lean_ctor_set(x_32, 1, x_30);
lean_ctor_set_uint8(x_32, sizeof(void*)*2, x_31);
x_33 = l_Lean_mkOptionalNode___closed__2;
x_34 = lean_array_push(x_33, x_32);
x_35 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_35, 0, x_34);
lean_ctor_set(x_35, 1, x_28);
return x_35;
}
}
}
else
{
lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44;
x_36 = l_Lean_Syntax_inhabited;
x_37 = lean_unsigned_to_nat(1u);
x_38 = lean_array_get(x_36, x_5, x_37);
x_39 = l_Lean_Syntax_getArgs(x_38);
lean_dec(x_38);
x_40 = lean_unsigned_to_nat(2u);
x_41 = l_Lean_Syntax_getArg(x_1, x_40);
lean_dec(x_1);
x_42 = 3;
x_43 = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(x_43, 0, x_38);
lean_ctor_set(x_43, 1, x_41);
lean_ctor_set_uint8(x_43, sizeof(void*)*2, x_42);
x_44 = l_Lean_mkOptionalNode___closed__2;
x_45 = lean_array_push(x_44, x_43);
x_46 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_46, 0, x_45);
lean_ctor_set(x_46, 1, x_39);
return x_46;
}
x_41 = lean_array_get(x_36, x_5, x_40);
x_42 = l___private_Init_Lean_Elab_TermBinders_1__expandBinderType(x_41);
lean_dec(x_41);
x_43 = lean_unsigned_to_nat(0u);
x_44 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__1(x_42, x_43, x_39, x_2, x_3);
lean_dec(x_2);
return x_44;
}
}
else
{
lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54;
lean_dec(x_16);
x_47 = lean_unsigned_to_nat(1u);
x_48 = l_Lean_Syntax_getArg(x_1, x_47);
x_49 = l_Lean_Syntax_getArgs(x_48);
lean_dec(x_48);
x_50 = lean_unsigned_to_nat(2u);
x_51 = l_Lean_Syntax_getArg(x_1, x_50);
lean_dec(x_1);
x_52 = l___private_Init_Lean_Elab_TermBinders_1__expandBinderType(x_51);
lean_dec(x_51);
x_53 = lean_unsigned_to_nat(0u);
x_54 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__1(x_52, x_53, x_49, x_2, x_3);
lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54;
x_45 = l_Lean_Syntax_inhabited;
x_46 = lean_unsigned_to_nat(1u);
x_47 = lean_array_get(x_45, x_5, x_46);
x_48 = l_Lean_Syntax_getArgs(x_47);
lean_dec(x_47);
x_49 = lean_unsigned_to_nat(2u);
x_50 = lean_array_get(x_45, x_5, x_49);
x_51 = l___private_Init_Lean_Elab_TermBinders_1__expandBinderType(x_50);
lean_dec(x_50);
x_52 = lean_unsigned_to_nat(3u);
x_53 = lean_array_get(x_45, x_5, x_52);
lean_inc(x_2);
x_54 = l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier(x_51, x_53, x_2, x_3);
lean_dec(x_53);
if (lean_obj_tag(x_54) == 0)
{
lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58;
x_55 = lean_ctor_get(x_54, 0);
lean_inc(x_55);
x_56 = lean_ctor_get(x_54, 1);
lean_inc(x_56);
lean_dec(x_54);
x_57 = lean_unsigned_to_nat(0u);
x_58 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__2(x_55, x_57, x_48, x_2, x_56);
lean_dec(x_2);
return x_58;
}
else
{
uint8_t x_59;
lean_dec(x_48);
lean_dec(x_2);
x_59 = !lean_is_exclusive(x_54);
if (x_59 == 0)
{
return x_54;
}
else
{
lean_object* x_60; lean_object* x_61; lean_object* x_62;
x_60 = lean_ctor_get(x_54, 0);
x_61 = lean_ctor_get(x_54, 1);
lean_inc(x_61);
lean_inc(x_60);
lean_dec(x_54);
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;
}
}
}
}
else
{
lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63;
lean_dec(x_16);
x_55 = lean_unsigned_to_nat(1u);
x_56 = l_Lean_Syntax_getArg(x_1, x_55);
x_57 = l_Lean_Syntax_getArgs(x_56);
lean_dec(x_56);
x_58 = lean_unsigned_to_nat(2u);
x_59 = l_Lean_Syntax_getArg(x_1, x_58);
x_60 = l___private_Init_Lean_Elab_TermBinders_1__expandBinderType(x_59);
lean_dec(x_59);
x_61 = lean_unsigned_to_nat(3u);
x_62 = l_Lean_Syntax_getArg(x_1, x_61);
lean_dec(x_1);
lean_inc(x_2);
x_63 = l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier(x_60, x_62, x_2, x_3);
lean_dec(x_62);
if (lean_obj_tag(x_63) == 0)
{
lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67;
x_64 = lean_ctor_get(x_63, 0);
lean_inc(x_64);
x_65 = lean_ctor_get(x_63, 1);
lean_inc(x_65);
lean_dec(x_63);
x_66 = lean_unsigned_to_nat(0u);
x_67 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__2(x_64, x_66, x_57, x_2, x_65);
lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68;
x_63 = l_Lean_Syntax_inhabited;
x_64 = lean_unsigned_to_nat(0u);
x_65 = lean_array_get(x_63, x_5, x_64);
x_66 = l_Lean_Syntax_getArgs(x_65);
lean_dec(x_65);
x_67 = l_Lean_mkHole(x_1);
x_68 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__3(x_67, x_64, x_66, x_2, x_3);
lean_dec(x_2);
return x_67;
return x_68;
}
}
else
{
uint8_t x_68;
lean_dec(x_57);
lean_object* x_69;
lean_dec(x_2);
x_68 = !lean_is_exclusive(x_63);
if (x_68 == 0)
{
return x_63;
}
else
{
lean_object* x_69; lean_object* x_70; lean_object* x_71;
x_69 = lean_ctor_get(x_63, 0);
x_70 = lean_ctor_get(x_63, 1);
lean_inc(x_70);
lean_inc(x_69);
lean_dec(x_63);
x_71 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_71, 0, x_69);
lean_ctor_set(x_71, 1, x_70);
return x_71;
}
}
}
}
else
{
lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76;
lean_dec(x_16);
x_72 = lean_unsigned_to_nat(0u);
x_73 = l_Lean_Syntax_getArg(x_1, x_72);
x_74 = l_Lean_Syntax_getArgs(x_73);
lean_dec(x_73);
x_75 = l_Lean_mkHole(x_1);
lean_dec(x_1);
x_76 = l_Array_umapMAux___main___at___private_Init_Lean_Elab_TermBinders_5__matchBinder___spec__3(x_75, x_72, x_74, x_2, x_3);
lean_dec(x_2);
return x_76;
}
}
else
{
lean_object* x_77;
x_77 = lean_box(0);
x_4 = x_77;
goto block_15;
}
block_15:
{
lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14;
lean_dec(x_4);
x_5 = lean_box(0);
x_6 = lean_unsigned_to_nat(0u);
lean_inc(x_1);
x_7 = l_Lean_Syntax_formatStxAux___main(x_5, x_6, x_1);
x_8 = l_Lean_Options_empty;
x_9 = l_Lean_Format_pretty(x_7, x_8);
x_10 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_10, 0, x_9);
x_11 = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(x_11, 0, x_10);
x_12 = l_Lean_Elab_Term_withNode___rarg___closed__3;
x_13 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_13, 0, x_12);
lean_ctor_set(x_13, 1, x_11);
x_14 = l_Lean_Elab_Term_throwError___rarg(x_1, x_13, x_2, x_3);
lean_dec(x_1);
return x_14;
x_69 = l_Lean_Elab_Term_throwUnsupportedSyntax___rarg(x_3);
return x_69;
}
}
}
@ -1065,6 +1005,15 @@ lean_dec(x_4);
return x_6;
}
}
lean_object* l___private_Init_Lean_Elab_TermBinders_5__matchBinder___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4;
x_4 = l___private_Init_Lean_Elab_TermBinders_5__matchBinder(x_1, x_2, x_3);
lean_dec(x_1);
return x_4;
}
}
lean_object* l_Lean_Elab_Term_mkFreshFVarId___rarg(lean_object* x_1) {
_start:
{
@ -1906,6 +1855,7 @@ lean_object* x_13; lean_object* x_14;
x_13 = lean_array_fget(x_1, x_2);
lean_inc(x_6);
x_14 = l___private_Init_Lean_Elab_TermBinders_5__matchBinder(x_13, x_6, x_7);
lean_dec(x_13);
if (lean_obj_tag(x_14) == 0)
{
lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18;
@ -17576,7 +17526,7 @@ lean_dec(x_1);
return x_3;
}
}
lean_object* l_Lean_Elab_Term_elabLetIdDecl___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
lean_object* l_Lean_Elab_Term_elabLetDeclAux___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
lean_object* x_7;
@ -17750,7 +17700,7 @@ return x_41;
}
}
}
lean_object* l_Lean_Elab_Term_elabLetIdDecl___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
lean_object* l_Lean_Elab_Term_elabLetDeclAux___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
uint8_t x_7; lean_object* x_8;
@ -17801,7 +17751,7 @@ return x_18;
}
}
}
lean_object* _init_l_Lean_Elab_Term_elabLetIdDecl___closed__1() {
lean_object* _init_l_Lean_Elab_Term_elabLetDeclAux___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
@ -17811,7 +17761,7 @@ x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLetIdDecl___closed__2() {
lean_object* _init_l_Lean_Elab_Term_elabLetDeclAux___closed__2() {
_start:
{
lean_object* x_1;
@ -17819,20 +17769,161 @@ x_1 = lean_mk_string("decl");
return x_1;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLetIdDecl___closed__3() {
lean_object* _init_l_Lean_Elab_Term_elabLetDeclAux___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Elab_Term_elabLetIdDecl___closed__1;
x_2 = l_Lean_Elab_Term_elabLetIdDecl___closed__2;
x_1 = l_Lean_Elab_Term_elabLetDeclAux___closed__1;
x_2 = l_Lean_Elab_Term_elabLetDeclAux___closed__2;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* l_Lean_Elab_Term_elabLetDeclAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) {
_start:
{
lean_object* x_10; lean_object* x_11;
lean_inc(x_1);
x_10 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabLetDeclAux___lambda__1___boxed), 6, 3);
lean_closure_set(x_10, 0, x_4);
lean_closure_set(x_10, 1, x_5);
lean_closure_set(x_10, 2, x_1);
lean_inc(x_8);
x_11 = l_Lean_Elab_Term_elabBinders___rarg(x_3, x_10, x_8, x_9);
if (lean_obj_tag(x_11) == 0)
{
lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20;
x_12 = lean_ctor_get(x_11, 0);
lean_inc(x_12);
x_13 = lean_ctor_get(x_11, 1);
lean_inc(x_13);
lean_dec(x_11);
x_14 = lean_ctor_get(x_12, 0);
lean_inc(x_14);
x_15 = lean_ctor_get(x_12, 1);
lean_inc(x_15);
lean_dec(x_12);
x_16 = l_Lean_Elab_Term_getOptions(x_8, x_13);
x_17 = lean_ctor_get(x_16, 0);
lean_inc(x_17);
x_18 = lean_ctor_get(x_16, 1);
lean_inc(x_18);
lean_dec(x_16);
x_19 = l_Lean_Elab_Term_elabLetDeclAux___closed__3;
x_20 = l_Lean_checkTraceOption(x_17, x_19);
lean_dec(x_17);
if (x_20 == 0)
{
lean_object* x_21; lean_object* x_22;
lean_inc(x_1);
x_21 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabLetDeclAux___lambda__2___boxed), 6, 3);
lean_closure_set(x_21, 0, x_7);
lean_closure_set(x_21, 1, x_6);
lean_closure_set(x_21, 2, x_1);
x_22 = l_Lean_Elab_Term_withLetDecl___rarg(x_1, x_2, x_14, x_15, x_21, x_8, x_18);
lean_dec(x_1);
return x_22;
}
else
{
lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35;
lean_inc(x_2);
x_23 = lean_alloc_ctor(4, 1, 0);
lean_ctor_set(x_23, 0, x_2);
x_24 = l___private_Init_Lean_Meta_ExprDefEq_17__checkTypesAndAssign___closed__5;
x_25 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_25, 0, x_23);
lean_ctor_set(x_25, 1, x_24);
lean_inc(x_14);
x_26 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_26, 0, x_14);
x_27 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_27, 0, x_25);
lean_ctor_set(x_27, 1, x_26);
x_28 = l___private_Init_Lean_Meta_ExprDefEq_10__checkAssignmentFailure___closed__5;
x_29 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_29, 0, x_27);
lean_ctor_set(x_29, 1, x_28);
lean_inc(x_15);
x_30 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_30, 0, x_15);
x_31 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_31, 0, x_29);
lean_ctor_set(x_31, 1, x_30);
x_32 = l_Lean_Elab_Term_logTrace(x_19, x_1, x_31, x_8, x_18);
x_33 = lean_ctor_get(x_32, 1);
lean_inc(x_33);
lean_dec(x_32);
lean_inc(x_1);
x_34 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabLetDeclAux___lambda__2___boxed), 6, 3);
lean_closure_set(x_34, 0, x_7);
lean_closure_set(x_34, 1, x_6);
lean_closure_set(x_34, 2, x_1);
x_35 = l_Lean_Elab_Term_withLetDecl___rarg(x_1, x_2, x_14, x_15, x_34, x_8, x_33);
lean_dec(x_1);
return x_35;
}
}
else
{
uint8_t x_36;
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_6);
lean_dec(x_2);
lean_dec(x_1);
x_36 = !lean_is_exclusive(x_11);
if (x_36 == 0)
{
return x_11;
}
else
{
lean_object* x_37; lean_object* x_38; lean_object* x_39;
x_37 = lean_ctor_get(x_11, 0);
x_38 = lean_ctor_get(x_11, 1);
lean_inc(x_38);
lean_inc(x_37);
lean_dec(x_11);
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;
}
}
}
}
lean_object* l_Lean_Elab_Term_elabLetDeclAux___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
lean_object* x_7;
x_7 = l_Lean_Elab_Term_elabLetDeclAux___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6);
lean_dec(x_3);
return x_7;
}
}
lean_object* l_Lean_Elab_Term_elabLetDeclAux___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
lean_object* x_7;
x_7 = l_Lean_Elab_Term_elabLetDeclAux___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6);
lean_dec(x_3);
return x_7;
}
}
lean_object* l_Lean_Elab_Term_elabLetDeclAux___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) {
_start:
{
lean_object* x_10;
x_10 = l_Lean_Elab_Term_elabLetDeclAux(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9);
lean_dec(x_3);
return x_10;
}
}
lean_object* l_Lean_Elab_Term_elabLetIdDecl(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18;
lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17;
x_7 = lean_unsigned_to_nat(0u);
x_8 = l_Lean_Syntax_getIdAt(x_2, x_7);
x_9 = lean_unsigned_to_nat(1u);
@ -17845,133 +17936,9 @@ x_14 = l_Lean_Elab_Term_expandOptType(x_1, x_13);
lean_dec(x_13);
x_15 = lean_unsigned_to_nat(4u);
x_16 = l_Lean_Syntax_getArg(x_2, x_15);
lean_inc(x_1);
x_17 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabLetIdDecl___lambda__1___boxed), 6, 3);
lean_closure_set(x_17, 0, x_14);
lean_closure_set(x_17, 1, x_16);
lean_closure_set(x_17, 2, x_1);
lean_inc(x_5);
x_18 = l_Lean_Elab_Term_elabBinders___rarg(x_11, x_17, x_5, x_6);
x_17 = l_Lean_Elab_Term_elabLetDeclAux(x_1, x_8, x_11, x_14, x_16, x_3, x_4, x_5, x_6);
lean_dec(x_11);
if (lean_obj_tag(x_18) == 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; lean_object* x_25; lean_object* x_26; uint8_t x_27;
x_19 = lean_ctor_get(x_18, 0);
lean_inc(x_19);
x_20 = lean_ctor_get(x_18, 1);
lean_inc(x_20);
lean_dec(x_18);
x_21 = lean_ctor_get(x_19, 0);
lean_inc(x_21);
x_22 = lean_ctor_get(x_19, 1);
lean_inc(x_22);
lean_dec(x_19);
x_23 = l_Lean_Elab_Term_getOptions(x_5, x_20);
x_24 = lean_ctor_get(x_23, 0);
lean_inc(x_24);
x_25 = lean_ctor_get(x_23, 1);
lean_inc(x_25);
lean_dec(x_23);
x_26 = l_Lean_Elab_Term_elabLetIdDecl___closed__3;
x_27 = l_Lean_checkTraceOption(x_24, x_26);
lean_dec(x_24);
if (x_27 == 0)
{
lean_object* x_28; lean_object* x_29;
lean_inc(x_1);
x_28 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabLetIdDecl___lambda__2___boxed), 6, 3);
lean_closure_set(x_28, 0, x_4);
lean_closure_set(x_28, 1, x_3);
lean_closure_set(x_28, 2, x_1);
x_29 = l_Lean_Elab_Term_withLetDecl___rarg(x_1, x_8, x_21, x_22, x_28, x_5, x_25);
lean_dec(x_1);
return x_29;
}
else
{
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42;
lean_inc(x_8);
x_30 = lean_alloc_ctor(4, 1, 0);
lean_ctor_set(x_30, 0, x_8);
x_31 = l___private_Init_Lean_Meta_ExprDefEq_17__checkTypesAndAssign___closed__5;
x_32 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_32, 0, x_30);
lean_ctor_set(x_32, 1, x_31);
lean_inc(x_21);
x_33 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_33, 0, x_21);
x_34 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_34, 0, x_32);
lean_ctor_set(x_34, 1, x_33);
x_35 = l___private_Init_Lean_Meta_ExprDefEq_10__checkAssignmentFailure___closed__5;
x_36 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_36, 0, x_34);
lean_ctor_set(x_36, 1, x_35);
lean_inc(x_22);
x_37 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_37, 0, x_22);
x_38 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_38, 0, x_36);
lean_ctor_set(x_38, 1, x_37);
x_39 = l_Lean_Elab_Term_logTrace(x_26, x_1, x_38, x_5, x_25);
x_40 = lean_ctor_get(x_39, 1);
lean_inc(x_40);
lean_dec(x_39);
lean_inc(x_1);
x_41 = lean_alloc_closure((void*)(l_Lean_Elab_Term_elabLetIdDecl___lambda__2___boxed), 6, 3);
lean_closure_set(x_41, 0, x_4);
lean_closure_set(x_41, 1, x_3);
lean_closure_set(x_41, 2, x_1);
x_42 = l_Lean_Elab_Term_withLetDecl___rarg(x_1, x_8, x_21, x_22, x_41, x_5, x_40);
lean_dec(x_1);
return x_42;
}
}
else
{
uint8_t x_43;
lean_dec(x_8);
lean_dec(x_5);
lean_dec(x_4);
lean_dec(x_3);
lean_dec(x_1);
x_43 = !lean_is_exclusive(x_18);
if (x_43 == 0)
{
return x_18;
}
else
{
lean_object* x_44; lean_object* x_45; lean_object* x_46;
x_44 = lean_ctor_get(x_18, 0);
x_45 = lean_ctor_get(x_18, 1);
lean_inc(x_45);
lean_inc(x_44);
lean_dec(x_18);
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;
}
}
}
}
lean_object* l_Lean_Elab_Term_elabLetIdDecl___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
lean_object* x_7;
x_7 = l_Lean_Elab_Term_elabLetIdDecl___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6);
lean_dec(x_3);
return x_7;
}
}
lean_object* l_Lean_Elab_Term_elabLetIdDecl___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
lean_object* x_7;
x_7 = l_Lean_Elab_Term_elabLetIdDecl___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6);
lean_dec(x_3);
return x_7;
return x_17;
}
}
lean_object* l_Lean_Elab_Term_elabLetIdDecl___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
@ -18122,24 +18089,16 @@ return x_3;
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__7() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string(":=");
return x_1;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__8() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Elab_Term_elabLet___closed__7;
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__7;
x_3 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__9() {
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__8() {
_start:
{
lean_object* x_1;
@ -18147,12 +18106,12 @@ x_1 = lean_mk_string(";");
return x_1;
}
}
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__10() {
lean_object* _init_l_Lean_Elab_Term_elabLet___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Elab_Term_elabLet___closed__9;
x_2 = l_Lean_Elab_Term_elabLet___closed__8;
x_3 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
@ -18539,7 +18498,7 @@ x_86 = lean_array_push(x_85, x_80);
x_87 = l_Lean_Elab_Term_elabLet___closed__6;
x_88 = lean_array_push(x_86, x_87);
x_89 = lean_array_push(x_88, x_87);
x_90 = l_Lean_Elab_Term_elabLet___closed__8;
x_90 = l_Lean_Elab_Term_elabLet___closed__7;
x_91 = lean_array_push(x_89, x_90);
x_92 = lean_array_push(x_91, x_78);
x_93 = l_Lean_Parser_Term_letIdDecl___elambda__1___closed__2;
@ -18548,7 +18507,7 @@ lean_ctor_set(x_94, 0, x_93);
lean_ctor_set(x_94, 1, x_92);
x_95 = l_Lean_Elab_Term_elabLet___closed__5;
x_96 = lean_array_push(x_95, x_94);
x_97 = l_Lean_Elab_Term_elabLet___closed__10;
x_97 = l_Lean_Elab_Term_elabLet___closed__9;
x_98 = lean_array_push(x_96, x_97);
x_99 = lean_array_push(x_98, x_79);
x_100 = l_Lean_Parser_Term_let___elambda__1___closed__2;
@ -18608,7 +18567,7 @@ lean_object* l___private_Init_Lean_Elab_TermBinders_12__regTraceClasses(lean_obj
_start:
{
lean_object* x_2; lean_object* x_3;
x_2 = l_Lean_Elab_Term_elabLetIdDecl___closed__1;
x_2 = l_Lean_Elab_Term_elabLetDeclAux___closed__1;
x_3 = l_Lean_registerTraceClass(x_2, x_1);
if (lean_obj_tag(x_3) == 0)
{
@ -18683,12 +18642,6 @@ l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier___closed__6 = _in
lean_mark_persistent(l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier___closed__6);
l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier___closed__7 = _init_l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier___closed__7();
lean_mark_persistent(l___private_Init_Lean_Elab_TermBinders_4__expandBinderModifier___closed__7);
l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__1 = _init_l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__1();
lean_mark_persistent(l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__1);
l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__2 = _init_l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__2();
lean_mark_persistent(l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__2);
l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__3 = _init_l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__3();
lean_mark_persistent(l___private_Init_Lean_Elab_TermBinders_5__matchBinder___closed__3);
l___regBuiltinTermElab_Lean_Elab_Term_elabForall___closed__1 = _init_l___regBuiltinTermElab_Lean_Elab_Term_elabForall___closed__1();
lean_mark_persistent(l___regBuiltinTermElab_Lean_Elab_Term_elabForall___closed__1);
l___regBuiltinTermElab_Lean_Elab_Term_elabForall___closed__2 = _init_l___regBuiltinTermElab_Lean_Elab_Term_elabForall___closed__2();
@ -18761,12 +18714,12 @@ lean_mark_persistent(l___regBuiltinTermElab_Lean_Elab_Term_elabFun___closed__3);
res = l___regBuiltinTermElab_Lean_Elab_Term_elabFun(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l_Lean_Elab_Term_elabLetIdDecl___closed__1 = _init_l_Lean_Elab_Term_elabLetIdDecl___closed__1();
lean_mark_persistent(l_Lean_Elab_Term_elabLetIdDecl___closed__1);
l_Lean_Elab_Term_elabLetIdDecl___closed__2 = _init_l_Lean_Elab_Term_elabLetIdDecl___closed__2();
lean_mark_persistent(l_Lean_Elab_Term_elabLetIdDecl___closed__2);
l_Lean_Elab_Term_elabLetIdDecl___closed__3 = _init_l_Lean_Elab_Term_elabLetIdDecl___closed__3();
lean_mark_persistent(l_Lean_Elab_Term_elabLetIdDecl___closed__3);
l_Lean_Elab_Term_elabLetDeclAux___closed__1 = _init_l_Lean_Elab_Term_elabLetDeclAux___closed__1();
lean_mark_persistent(l_Lean_Elab_Term_elabLetDeclAux___closed__1);
l_Lean_Elab_Term_elabLetDeclAux___closed__2 = _init_l_Lean_Elab_Term_elabLetDeclAux___closed__2();
lean_mark_persistent(l_Lean_Elab_Term_elabLetDeclAux___closed__2);
l_Lean_Elab_Term_elabLetDeclAux___closed__3 = _init_l_Lean_Elab_Term_elabLetDeclAux___closed__3();
lean_mark_persistent(l_Lean_Elab_Term_elabLetDeclAux___closed__3);
l_Lean_Elab_Term_elabLet___closed__1 = _init_l_Lean_Elab_Term_elabLet___closed__1();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__1);
l_Lean_Elab_Term_elabLet___closed__2 = _init_l_Lean_Elab_Term_elabLet___closed__2();
@ -18785,8 +18738,6 @@ l_Lean_Elab_Term_elabLet___closed__8 = _init_l_Lean_Elab_Term_elabLet___closed__
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__8);
l_Lean_Elab_Term_elabLet___closed__9 = _init_l_Lean_Elab_Term_elabLet___closed__9();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__9);
l_Lean_Elab_Term_elabLet___closed__10 = _init_l_Lean_Elab_Term_elabLet___closed__10();
lean_mark_persistent(l_Lean_Elab_Term_elabLet___closed__10);
l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__1 = _init_l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__1();
lean_mark_persistent(l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__1);
l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__2 = _init_l___regBuiltinTermElab_Lean_Elab_Term_elabLet___closed__2();

View file

@ -141,6 +141,7 @@ lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFnAux(lean_object*, lean_object
lean_object* l_Lean_Parser_Term_explicit___closed__1;
lean_object* l_Lean_Parser_Term_str___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_andthen___closed__3;
lean_object* l_Lean_Parser_Term_let__core;
lean_object* l_Lean_Parser_Term_not___elambda__1___closed__7;
lean_object* l_Lean_Parser_Term_checkIsSort___elambda__1___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_have___elambda__1___closed__10;
@ -185,6 +186,7 @@ lean_object* l_Lean_Parser_Term_have___closed__2;
lean_object* l_Lean_Parser_Term_implicitBinder___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_do___elambda__1___closed__1;
lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__4;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__10;
lean_object* l___regBuiltinParser_Lean_Parser_Term_lt(lean_object*);
lean_object* l_Lean_Parser_Term_explicitUniv;
extern lean_object* l_Int_repr___closed__1;
@ -211,6 +213,7 @@ lean_object* l_Lean_Parser_Term_if___closed__10;
extern lean_object* l___private_Init_Lean_Parser_Parser_14__antiquotNestedExpr___closed__3;
lean_object* l_Lean_Parser_Term_namedPattern___elambda__1___closed__6;
lean_object* l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__5;
lean_object* l___regBuiltinParser_Lean_Parser_Term_let__core(lean_object*);
lean_object* l_Lean_Parser_Term_prop;
lean_object* l_Lean_Parser_Term_seqLeft___elambda__1___closed__1;
lean_object* l_Lean_Parser_Term_hole___elambda__1(lean_object*, lean_object*, lean_object*);
@ -280,6 +283,7 @@ lean_object* l_Lean_Parser_Term_arrow___closed__1;
lean_object* l_Lean_Parser_Term_forall___closed__3;
extern lean_object* l_Lean_fieldIdxKind___closed__1;
lean_object* l_Lean_Parser_Term_subtype___closed__1;
lean_object* l_Lean_Parser_Term_let__core___closed__6;
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;
@ -461,6 +465,7 @@ extern lean_object* l_Lean_mkTermIdFromIdent___closed__1;
lean_object* l_Lean_Parser_Term_explicitUniv___closed__10;
lean_object* l_Lean_Parser_Term_do___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_where___closed__6;
lean_object* l_Lean_Parser_Term_let__core___closed__1;
lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__4;
lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__6;
lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__14;
@ -509,6 +514,7 @@ lean_object* l_Lean_Parser_Term_bracketedDoSeq___closed__3;
extern lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFn___closed__2;
lean_object* l_Lean_Parser_Term_doPat___closed__6;
lean_object* l_Lean_Parser_Term_sorry___closed__4;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__15;
lean_object* l_Lean_Parser_Term_subtype___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_where___closed__4;
lean_object* l_Lean_Parser_Term_prod___elambda__1___closed__2;
@ -546,6 +552,8 @@ lean_object* l_Lean_Parser_Term_simpleBinder___elambda__1___closed__4;
lean_object* l_Lean_Parser_Term_mul___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__9;
extern lean_object* l_Lean_Parser_unicodeSymbolFn___rarg___closed__1;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__14;
lean_object* l_Lean_Parser_Term_let__core___closed__10;
lean_object* l_Lean_Parser_Term_str___elambda__1___closed__5;
lean_object* l_Lean_Parser_Term_listLit___closed__6;
lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__2;
@ -564,9 +572,11 @@ lean_object* l_Lean_Parser_Term_doElem___closed__3;
lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_match__syntax___elambda__1___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_if___closed__3;
lean_object* l_Lean_Parser_Term_suffices___closed__4;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_fromTerm___elambda__1___closed__9;
extern lean_object* l_Lean_Parser_unicodeSymbolCheckPrecFn___closed__1;
lean_object* l_Lean_Parser_Term_let___closed__2;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__5;
lean_object* l___regBuiltinParser_Lean_Parser_Term_app(lean_object*);
lean_object* l_Lean_Parser_Term_structInst___closed__9;
lean_object* l_Lean_Parser_Term_dollarProj___elambda__1___closed__2;
@ -687,6 +697,7 @@ lean_object* l_Lean_Parser_Term_let___closed__4;
lean_object* l_Lean_Parser_Term_nomatch___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_ge___elambda__1___closed__5;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__8;
lean_object* l_Lean_Parser_Term_have___closed__11;
lean_object* l_Lean_Parser_Term_doSeq___closed__1;
lean_object* l_Lean_Parser_Term_or___elambda__1___closed__1;
@ -748,6 +759,7 @@ 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_tparser_x21___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__4;
lean_object* l_Lean_Parser_Term_quotedName___elambda__1___closed__2;
extern lean_object* l_Lean_getBuiltinSearchPath___closed__1;
lean_object* l_Lean_Parser_Term_haveAssign___elambda__1___closed__3;
@ -779,6 +791,7 @@ lean_object* l_Lean_Parser_Term_arrayRef;
lean_object* l_Lean_Parser_Term_cdot;
lean_object* l_Lean_Parser_Term_structInstSource___closed__4;
lean_object* l_Lean_Parser_Term_typeAscription___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_let__core___closed__7;
lean_object* l_Lean_Parser_Term_quotedName___elambda__1___closed__4;
lean_object* l_Lean_Parser_Term_orM___closed__1;
lean_object* l_Lean_Parser_Term_sub___elambda__1___closed__1;
@ -810,6 +823,7 @@ lean_object* l_Lean_Parser_Term_doSeq;
lean_object* l_Lean_Parser_Term_let___elambda__1___closed__6;
lean_object* l_Lean_Parser_Term_if___closed__8;
lean_object* l_Lean_Parser_Term_doElem;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__7;
lean_object* l_Lean_Parser_Term_where___closed__8;
lean_object* l_Lean_Parser_Term_do___closed__6;
lean_object* l_Lean_Parser_Term_if___elambda__1___closed__6;
@ -857,6 +871,7 @@ lean_object* l_Lean_Parser_Term_explicitBinder___closed__5;
lean_object* l_Lean_Parser_Term_implicitBinder___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*);
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_let__core___closed__5;
lean_object* l_Lean_Parser_Term_orM;
lean_object* l_Lean_Parser_Term_tparser_x21___elambda__1___closed__8;
lean_object* l_Lean_Parser_Term_heq;
@ -955,6 +970,7 @@ lean_object* l_Lean_Parser_Term_structInstSource___closed__3;
lean_object* l___regBuiltinParser_Lean_Parser_Term_seq(lean_object*);
lean_object* l_Lean_Parser_Term_equation;
lean_object* l_Lean_Parser_Term_sub___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_let__core___closed__3;
lean_object* l_Lean_Parser_Term_bindOp___closed__2;
lean_object* l_Lean_Parser_Term_uminus___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_uminus___closed__5;
@ -1013,6 +1029,7 @@ lean_object* l_Lean_Parser_Term_match__syntax___elambda__1___closed__1;
extern lean_object* l_Lean_mkAppStx___closed__6;
lean_object* l_Lean_Parser_Term_typeAscription___elambda__1___closed__4;
lean_object* l_Lean_Parser_Term_letPatDecl___closed__7;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__13;
lean_object* l_Lean_Parser_Term_explicitBinder___boxed(lean_object*);
lean_object* l_Lean_Parser_Term_do___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_and___elambda__1___closed__5;
@ -1155,6 +1172,7 @@ lean_object* l_Lean_Parser_Term_typeAscription___closed__3;
lean_object* l_Lean_Parser_Term_have___closed__10;
lean_object* l_Lean_Parser_Term_arrayRef___closed__6;
lean_object* l_Lean_Parser_Term_depArrow___elambda__1___closed__15;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__1;
lean_object* l_Lean_Parser_Term_borrowed___closed__7;
lean_object* l_Lean_Parser_Term_doLet___closed__5;
lean_object* l___regBuiltinParser_Lean_Parser_Term_prod(lean_object*);
@ -1167,6 +1185,7 @@ lean_object* l_Lean_Parser_Term_fun___closed__8;
lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__9;
lean_object* l___regBuiltinParser_Lean_Parser_Term_fun(lean_object*);
lean_object* l_Lean_Parser_Term_haveAssign___elambda__1___closed__1;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_bracktedBinder___boxed(lean_object*);
lean_object* l_Lean_Parser_Term_not___elambda__1___closed__9;
lean_object* l_Lean_Parser_Term_doElem___elambda__1(lean_object*, lean_object*, lean_object*);
@ -1218,6 +1237,7 @@ lean_object* l_Lean_Parser_Term_if___elambda__1(lean_object*, lean_object*, lean
lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__1;
lean_object* l_Lean_Parser_Term_explicitBinder___closed__6;
lean_object* l_Lean_Parser_Term_fun___elambda__1___closed__7;
lean_object* l_Lean_Parser_Term_let__core___elambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_sepBy1Info(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_borrowed___elambda__1___closed__8;
lean_object* l_Lean_Parser_Term_typeAscription___closed__7;
@ -1284,6 +1304,7 @@ lean_object* l_Lean_Parser_Term_uminus___closed__2;
lean_object* l_Lean_Parser_Term_str___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_explicit___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_fromTerm___closed__4;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__12;
lean_object* l_Lean_Parser_Term_matchAlt___closed__9;
lean_object* l_Lean_Parser_Term_arrayLit;
lean_object* l_Lean_Parser_Term_mul___closed__2;
@ -1335,6 +1356,7 @@ lean_object* l_Lean_Parser_Term_letPatDecl___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_do___closed__7;
lean_object* l_Lean_Parser_Term_match___elambda__1___closed__4;
lean_object* l_Lean_Parser_Term_append___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__6;
lean_object* l_Lean_Parser_Term_le___closed__1;
lean_object* l_Lean_Parser_Term_sorry;
lean_object* l_Lean_Parser_Term_tparser_x21___closed__3;
@ -1560,12 +1582,14 @@ lean_object* l_Lean_Parser_Term_parser_x21___closed__2;
lean_object* l_Lean_Parser_Term_emptyC___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_typeSpec___closed__4;
lean_object* l_Lean_Parser_Term_mapRev___elambda__1___closed__1;
lean_object* l_Lean_Parser_Term_let__core___closed__2;
lean_object* l_Lean_Parser_Term_app___closed__6;
lean_object* l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__1;
lean_object* l_Lean_Parser_Term_dollarProj___closed__6;
lean_object* l_Lean_Parser_Term_hole;
lean_object* l_Lean_Parser_Term_app___closed__1;
lean_object* l_Lean_Parser_Term_emptyC___closed__5;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__11;
lean_object* l_Lean_Parser_Term_if___closed__4;
lean_object* l_Lean_Parser_Term_forall___elambda__1___closed__3;
extern lean_object* l___private_Init_Lean_Parser_Parser_14__antiquotNestedExpr___closed__6;
@ -1610,6 +1634,7 @@ lean_object* l_Lean_Parser_Term_haveAssign___elambda__1___closed__6;
lean_object* l_Lean_Parser_Term_doLet___closed__4;
lean_object* l_Lean_Parser_Term_tparser_x21___closed__1;
lean_object* l_Lean_Parser_Term_match__syntax___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_let__core___closed__9;
lean_object* l_Lean_Parser_Term_implicitBinder___closed__2;
lean_object* l_Lean_Parser_Term_explicitBinder___closed__4;
lean_object* l_Lean_Parser_Term_andM___closed__3;
@ -1640,6 +1665,7 @@ lean_object* l_Lean_Parser_Term_doLet___closed__2;
extern lean_object* l_Lean_mkHole___closed__2;
lean_object* l_Lean_Parser_Term_type___closed__5;
lean_object* l_Lean_Parser_darrow___elambda__1___rarg___closed__1;
lean_object* l_Lean_Parser_Term_let__core___closed__8;
lean_object* l_Lean_Parser_Term_match___elambda__1___closed__10;
lean_object* l_Lean_Parser_Term_unicodeInfixR___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_darrow___elambda__1___rarg___closed__2;
@ -1668,6 +1694,7 @@ lean_object* l___regBuiltinParser_Lean_Parser_Term_listLit(lean_object*);
lean_object* l_Lean_Parser_Term_type___elambda__1___closed__6;
lean_object* l_Lean_Parser_mkAntiquot(uint8_t, lean_object*, lean_object*, uint8_t);
lean_object* l_Lean_Parser_Term_dollarProj___elambda__1___closed__6;
lean_object* l_Lean_Parser_Term_let__core___closed__4;
lean_object* l_Lean_Parser_Term_explicit;
lean_object* l_Lean_Parser_Term_match__syntax___elambda__1___closed__7;
lean_object* l___regBuiltinParser_Lean_Parser_Term_arrow(lean_object*);
@ -1777,6 +1804,7 @@ lean_object* l_Lean_Parser_Term_let___elambda__1(lean_object*, lean_object*, lea
lean_object* l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__6;
lean_object* l_Lean_Parser_ParserState_mkUnexpectedError(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_subtype___closed__4;
lean_object* l_Lean_Parser_Term_let__core___elambda__1___closed__9;
lean_object* l_Lean_Parser_Term_nomatch___closed__3;
lean_object* l_Lean_Parser_Term_orM___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_bindOp___elambda__1___closed__3;
@ -26170,6 +26198,611 @@ x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1);
return x_6;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("let_core");
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_mkAppStx___closed__6;
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_2 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__4() {
_start:
{
uint8_t x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5;
x_1 = 0;
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__1;
x_3 = l_Lean_Parser_Term_let__core___elambda__1___closed__3;
x_4 = 1;
x_5 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3, x_4);
return x_5;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__5() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("let_core ");
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Term_let__core___elambda__1___closed__5;
x_2 = l_String_trim(x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__7() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string(":=");
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__8() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Term_let__core___elambda__1___closed__7;
x_2 = l_String_trim(x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Char_HasRepr___closed__1;
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__8;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__10() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_let__core___elambda__1___closed__9;
x_2 = l_Char_HasRepr___closed__1;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__11() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__10;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_2);
lean_ctor_set(x_3, 1, x_1);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__12() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Parser_Term_have___elambda__1___closed__9;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_2);
lean_ctor_set(x_3, 1, x_1);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__13() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Char_HasRepr___closed__1;
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__6;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__14() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_let__core___elambda__1___closed__13;
x_2 = l_Char_HasRepr___closed__1;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___elambda__1___closed__15() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__14;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_2);
lean_ctor_set(x_3, 1, x_1);
return x_3;
}
}
lean_object* l_Lean_Parser_Term_let__core___elambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10;
x_4 = l_Lean_Parser_Term_let__core___elambda__1___closed__4;
x_5 = lean_ctor_get(x_4, 1);
lean_inc(x_5);
x_6 = lean_ctor_get(x_3, 0);
lean_inc(x_6);
x_7 = lean_array_get_size(x_6);
lean_dec(x_6);
x_8 = lean_ctor_get(x_3, 1);
lean_inc(x_8);
lean_inc(x_2);
x_9 = lean_apply_3(x_5, x_1, x_2, x_3);
x_10 = lean_ctor_get(x_9, 3);
lean_inc(x_10);
if (lean_obj_tag(x_10) == 0)
{
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_2);
return x_9;
}
else
{
lean_object* x_11; lean_object* x_12; uint8_t x_13;
x_11 = lean_ctor_get(x_10, 0);
lean_inc(x_11);
lean_dec(x_10);
x_12 = lean_ctor_get(x_9, 1);
lean_inc(x_12);
x_13 = lean_nat_dec_eq(x_12, x_8);
lean_dec(x_12);
if (x_13 == 0)
{
lean_dec(x_11);
lean_dec(x_8);
lean_dec(x_7);
lean_dec(x_2);
return x_9;
}
else
{
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_57; lean_object* x_87; lean_object* x_88;
lean_inc(x_8);
x_14 = l_Lean_Parser_ParserState_restore(x_9, x_7, x_8);
lean_dec(x_7);
x_15 = lean_ctor_get(x_14, 0);
lean_inc(x_15);
x_16 = lean_array_get_size(x_15);
lean_dec(x_15);
lean_inc(x_2);
x_87 = l_Lean_Parser_tokenFn(x_2, x_14);
x_88 = lean_ctor_get(x_87, 3);
lean_inc(x_88);
if (lean_obj_tag(x_88) == 0)
{
lean_object* x_89; lean_object* x_90;
x_89 = lean_ctor_get(x_87, 0);
lean_inc(x_89);
x_90 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__nameLitAux___spec__1(x_89);
lean_dec(x_89);
if (lean_obj_tag(x_90) == 2)
{
lean_object* x_91; lean_object* x_92; uint8_t x_93;
x_91 = lean_ctor_get(x_90, 1);
lean_inc(x_91);
lean_dec(x_90);
x_92 = l_Lean_Parser_Term_let__core___elambda__1___closed__6;
x_93 = lean_string_dec_eq(x_91, x_92);
lean_dec(x_91);
if (x_93 == 0)
{
lean_object* x_94; lean_object* x_95;
x_94 = l_Lean_Parser_Term_let__core___elambda__1___closed__15;
lean_inc(x_8);
x_95 = l_Lean_Parser_ParserState_mkErrorsAt(x_87, x_94, x_8);
x_57 = x_95;
goto block_86;
}
else
{
x_57 = x_87;
goto block_86;
}
}
else
{
lean_object* x_96; lean_object* x_97;
lean_dec(x_90);
x_96 = l_Lean_Parser_Term_let__core___elambda__1___closed__15;
lean_inc(x_8);
x_97 = l_Lean_Parser_ParserState_mkErrorsAt(x_87, x_96, x_8);
x_57 = x_97;
goto block_86;
}
}
else
{
lean_object* x_98; lean_object* x_99;
lean_dec(x_88);
x_98 = l_Lean_Parser_Term_let__core___elambda__1___closed__15;
lean_inc(x_8);
x_99 = l_Lean_Parser_ParserState_mkErrorsAt(x_87, x_98, x_8);
x_57 = x_99;
goto block_86;
}
block_56:
{
lean_object* x_18;
x_18 = lean_ctor_get(x_17, 3);
lean_inc(x_18);
if (lean_obj_tag(x_18) == 0)
{
lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22;
x_19 = l_Lean_Parser_termParser___closed__2;
x_20 = lean_unsigned_to_nat(0u);
lean_inc(x_2);
x_21 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_17);
x_22 = lean_ctor_get(x_21, 3);
lean_inc(x_22);
if (lean_obj_tag(x_22) == 0)
{
lean_object* x_23; lean_object* x_24; lean_object* x_25;
x_23 = lean_ctor_get(x_21, 1);
lean_inc(x_23);
lean_inc(x_2);
x_24 = l_Lean_Parser_tokenFn(x_2, x_21);
x_25 = lean_ctor_get(x_24, 3);
lean_inc(x_25);
if (lean_obj_tag(x_25) == 0)
{
lean_object* x_26; lean_object* x_27;
x_26 = lean_ctor_get(x_24, 0);
lean_inc(x_26);
x_27 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__nameLitAux___spec__1(x_26);
lean_dec(x_26);
if (lean_obj_tag(x_27) == 2)
{
lean_object* x_28; lean_object* x_29; uint8_t x_30;
x_28 = lean_ctor_get(x_27, 1);
lean_inc(x_28);
lean_dec(x_27);
x_29 = l_Lean_Parser_Term_have___elambda__1___closed__7;
x_30 = lean_string_dec_eq(x_28, x_29);
lean_dec(x_28);
if (x_30 == 0)
{
lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35;
lean_dec(x_2);
x_31 = l_Lean_Parser_Term_have___elambda__1___closed__10;
x_32 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_31, x_23);
x_33 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_34 = l_Lean_Parser_ParserState_mkNode(x_32, x_33, x_16);
x_35 = l_Lean_Parser_mergeOrElseErrors(x_34, x_11, x_8);
lean_dec(x_8);
return x_35;
}
else
{
lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39;
lean_dec(x_23);
x_36 = l_Lean_Parser_categoryParserFn(x_19, x_20, x_2, x_24);
x_37 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_38 = l_Lean_Parser_ParserState_mkNode(x_36, x_37, x_16);
x_39 = l_Lean_Parser_mergeOrElseErrors(x_38, x_11, x_8);
lean_dec(x_8);
return x_39;
}
}
else
{
lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44;
lean_dec(x_27);
lean_dec(x_2);
x_40 = l_Lean_Parser_Term_have___elambda__1___closed__10;
x_41 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_40, x_23);
x_42 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_43 = l_Lean_Parser_ParserState_mkNode(x_41, x_42, x_16);
x_44 = l_Lean_Parser_mergeOrElseErrors(x_43, x_11, x_8);
lean_dec(x_8);
return x_44;
}
}
else
{
lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49;
lean_dec(x_25);
lean_dec(x_2);
x_45 = l_Lean_Parser_Term_have___elambda__1___closed__10;
x_46 = l_Lean_Parser_ParserState_mkErrorsAt(x_24, x_45, x_23);
x_47 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_48 = l_Lean_Parser_ParserState_mkNode(x_46, x_47, x_16);
x_49 = l_Lean_Parser_mergeOrElseErrors(x_48, x_11, x_8);
lean_dec(x_8);
return x_49;
}
}
else
{
lean_object* x_50; lean_object* x_51; lean_object* x_52;
lean_dec(x_22);
lean_dec(x_2);
x_50 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_51 = l_Lean_Parser_ParserState_mkNode(x_21, x_50, x_16);
x_52 = l_Lean_Parser_mergeOrElseErrors(x_51, x_11, x_8);
lean_dec(x_8);
return x_52;
}
}
else
{
lean_object* x_53; lean_object* x_54; lean_object* x_55;
lean_dec(x_18);
lean_dec(x_2);
x_53 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_54 = l_Lean_Parser_ParserState_mkNode(x_17, x_53, x_16);
x_55 = l_Lean_Parser_mergeOrElseErrors(x_54, x_11, x_8);
lean_dec(x_8);
return x_55;
}
}
block_86:
{
lean_object* x_58;
x_58 = lean_ctor_get(x_57, 3);
lean_inc(x_58);
if (lean_obj_tag(x_58) == 0)
{
lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62;
x_59 = l_Lean_Parser_termParser___closed__2;
x_60 = lean_unsigned_to_nat(0u);
lean_inc(x_2);
x_61 = l_Lean_Parser_categoryParserFn(x_59, x_60, x_2, x_57);
x_62 = lean_ctor_get(x_61, 3);
lean_inc(x_62);
if (lean_obj_tag(x_62) == 0)
{
lean_object* x_63; lean_object* x_64; lean_object* x_65;
x_63 = lean_ctor_get(x_61, 1);
lean_inc(x_63);
lean_inc(x_2);
x_64 = l_Lean_Parser_tokenFn(x_2, x_61);
x_65 = lean_ctor_get(x_64, 3);
lean_inc(x_65);
if (lean_obj_tag(x_65) == 0)
{
lean_object* x_66; lean_object* x_67;
x_66 = lean_ctor_get(x_64, 0);
lean_inc(x_66);
x_67 = l_Array_back___at___private_Init_Lean_Parser_Parser_6__nameLitAux___spec__1(x_66);
lean_dec(x_66);
if (lean_obj_tag(x_67) == 2)
{
lean_object* x_68; lean_object* x_69; uint8_t x_70;
x_68 = lean_ctor_get(x_67, 1);
lean_inc(x_68);
lean_dec(x_67);
x_69 = l_Lean_Parser_Term_let__core___elambda__1___closed__8;
x_70 = lean_string_dec_eq(x_68, x_69);
lean_dec(x_68);
if (x_70 == 0)
{
lean_object* x_71; lean_object* x_72;
x_71 = l_Lean_Parser_Term_let__core___elambda__1___closed__11;
x_72 = l_Lean_Parser_ParserState_mkErrorsAt(x_64, x_71, x_63);
x_17 = x_72;
goto block_56;
}
else
{
lean_dec(x_63);
x_17 = x_64;
goto block_56;
}
}
else
{
lean_object* x_73; lean_object* x_74;
lean_dec(x_67);
x_73 = l_Lean_Parser_Term_let__core___elambda__1___closed__11;
x_74 = l_Lean_Parser_ParserState_mkErrorsAt(x_64, x_73, x_63);
x_17 = x_74;
goto block_56;
}
}
else
{
lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79;
lean_dec(x_65);
lean_dec(x_2);
x_75 = l_Lean_Parser_Term_let__core___elambda__1___closed__11;
x_76 = l_Lean_Parser_ParserState_mkErrorsAt(x_64, x_75, x_63);
x_77 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_78 = l_Lean_Parser_ParserState_mkNode(x_76, x_77, x_16);
x_79 = l_Lean_Parser_mergeOrElseErrors(x_78, x_11, x_8);
lean_dec(x_8);
return x_79;
}
}
else
{
lean_object* x_80; lean_object* x_81; lean_object* x_82;
lean_dec(x_62);
lean_dec(x_2);
x_80 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_81 = l_Lean_Parser_ParserState_mkNode(x_61, x_80, x_16);
x_82 = l_Lean_Parser_mergeOrElseErrors(x_81, x_11, x_8);
lean_dec(x_8);
return x_82;
}
}
else
{
lean_object* x_83; lean_object* x_84; lean_object* x_85;
lean_dec(x_58);
lean_dec(x_2);
x_83 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_84 = l_Lean_Parser_ParserState_mkNode(x_57, x_83, x_16);
x_85 = l_Lean_Parser_mergeOrElseErrors(x_84, x_11, x_8);
lean_dec(x_8);
return x_85;
}
}
}
}
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__6;
x_3 = l_Lean_Parser_symbolInfo(x_2, x_1);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Parser_Term_let__core___elambda__1___closed__8;
x_3 = l_Lean_Parser_symbolInfo(x_2, x_1);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Term_typeAscription___closed__2;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Term_have___closed__4;
x_4 = l_Lean_Parser_andthenInfo(x_2, x_3);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_let__core___closed__2;
x_2 = l_Lean_Parser_Term_let__core___closed__3;
x_3 = l_Lean_Parser_andthenInfo(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Term_typeAscription___closed__2;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Term_let__core___closed__4;
x_4 = l_Lean_Parser_andthenInfo(x_2, x_3);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_let__core___closed__1;
x_2 = l_Lean_Parser_Term_let__core___closed__5;
x_3 = l_Lean_Parser_andthenInfo(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__7() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_2 = l_Lean_Parser_Term_let__core___closed__6;
x_3 = l_Lean_Parser_nodeInfo(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__8() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Term_let__core___elambda__1___closed__4;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Term_let__core___closed__7;
x_4 = l_Lean_Parser_orelseInfo(x_2, x_3);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__9() {
_start:
{
lean_object* x_1;
x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Term_let__core___elambda__1), 3, 0);
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core___closed__10() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_let__core___closed__8;
x_2 = l_Lean_Parser_Term_let__core___closed__9;
x_3 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_let__core() {
_start:
{
lean_object* x_1;
x_1 = l_Lean_Parser_Term_let__core___closed__10;
return x_1;
}
}
lean_object* l___regBuiltinParser_Lean_Parser_Term_let__core(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
x_2 = 0;
x_3 = l_Lean_Parser_termParser___closed__2;
x_4 = l_Lean_Parser_Term_let__core___elambda__1___closed__2;
x_5 = l_Lean_Parser_Term_let__core;
x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1);
return x_6;
}
}
lean_object* _init_l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__1() {
_start:
{
@ -38876,6 +39509,61 @@ lean_mark_persistent(l_Lean_Parser_Term_let);
res = l___regBuiltinParser_Lean_Parser_Term_let(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l_Lean_Parser_Term_let__core___elambda__1___closed__1 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__1();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__1);
l_Lean_Parser_Term_let__core___elambda__1___closed__2 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__2();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__2);
l_Lean_Parser_Term_let__core___elambda__1___closed__3 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__3();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__3);
l_Lean_Parser_Term_let__core___elambda__1___closed__4 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__4();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__4);
l_Lean_Parser_Term_let__core___elambda__1___closed__5 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__5();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__5);
l_Lean_Parser_Term_let__core___elambda__1___closed__6 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__6();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__6);
l_Lean_Parser_Term_let__core___elambda__1___closed__7 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__7();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__7);
l_Lean_Parser_Term_let__core___elambda__1___closed__8 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__8();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__8);
l_Lean_Parser_Term_let__core___elambda__1___closed__9 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__9();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__9);
l_Lean_Parser_Term_let__core___elambda__1___closed__10 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__10();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__10);
l_Lean_Parser_Term_let__core___elambda__1___closed__11 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__11();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__11);
l_Lean_Parser_Term_let__core___elambda__1___closed__12 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__12();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__12);
l_Lean_Parser_Term_let__core___elambda__1___closed__13 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__13();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__13);
l_Lean_Parser_Term_let__core___elambda__1___closed__14 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__14();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__14);
l_Lean_Parser_Term_let__core___elambda__1___closed__15 = _init_l_Lean_Parser_Term_let__core___elambda__1___closed__15();
lean_mark_persistent(l_Lean_Parser_Term_let__core___elambda__1___closed__15);
l_Lean_Parser_Term_let__core___closed__1 = _init_l_Lean_Parser_Term_let__core___closed__1();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__1);
l_Lean_Parser_Term_let__core___closed__2 = _init_l_Lean_Parser_Term_let__core___closed__2();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__2);
l_Lean_Parser_Term_let__core___closed__3 = _init_l_Lean_Parser_Term_let__core___closed__3();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__3);
l_Lean_Parser_Term_let__core___closed__4 = _init_l_Lean_Parser_Term_let__core___closed__4();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__4);
l_Lean_Parser_Term_let__core___closed__5 = _init_l_Lean_Parser_Term_let__core___closed__5();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__5);
l_Lean_Parser_Term_let__core___closed__6 = _init_l_Lean_Parser_Term_let__core___closed__6();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__6);
l_Lean_Parser_Term_let__core___closed__7 = _init_l_Lean_Parser_Term_let__core___closed__7();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__7);
l_Lean_Parser_Term_let__core___closed__8 = _init_l_Lean_Parser_Term_let__core___closed__8();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__8);
l_Lean_Parser_Term_let__core___closed__9 = _init_l_Lean_Parser_Term_let__core___closed__9();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__9);
l_Lean_Parser_Term_let__core___closed__10 = _init_l_Lean_Parser_Term_let__core___closed__10();
lean_mark_persistent(l_Lean_Parser_Term_let__core___closed__10);
l_Lean_Parser_Term_let__core = _init_l_Lean_Parser_Term_let__core();
lean_mark_persistent(l_Lean_Parser_Term_let__core);
res = l___regBuiltinParser_Lean_Parser_Term_let__core(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__1 = _init_l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__1();
lean_mark_persistent(l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__1);
l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__2 = _init_l_Lean_Parser_Term_leftArrow___elambda__1___rarg___closed__2();