chore: update stage0
This commit is contained in:
parent
627594b88a
commit
91d48c9150
4 changed files with 632 additions and 759 deletions
4
stage0/src/Lean/Elab/App.lean
generated
4
stage0/src/Lean/Elab/App.lean
generated
|
|
@ -658,6 +658,10 @@ private partial def consumeImplicits (stx : Syntax) (e eType : Expr) (hasArgs :
|
|||
private partial def resolveLValLoop (lval : LVal) (e eType : Expr) (previousExceptions : Array Exception) (hasArgs : Bool) : TermElabM (Expr × LValResolution) := do
|
||||
let (e, eType) ← consumeImplicits lval.getRef e eType hasArgs
|
||||
tryPostponeIfMVar eType
|
||||
/- If `eType` is still a metavariable application, we try to apply default instances to "unblock" it. -/
|
||||
if (← isMVarApp eType) then
|
||||
synthesizeSyntheticMVarsUsingDefault
|
||||
let eType ← instantiateMVars eType
|
||||
try
|
||||
let lvalRes ← resolveLValAux e eType lval
|
||||
return (e, lvalRes)
|
||||
|
|
|
|||
7
stage0/src/Lean/Elab/Term.lean
generated
7
stage0/src/Lean/Elab/Term.lean
generated
|
|
@ -992,10 +992,13 @@ def tryPostpone : TermElabM Unit := do
|
|||
if (← read).mayPostpone then
|
||||
throwPostpone
|
||||
|
||||
/-- Return `true` if `e` reduces (by unfolding only `[reducible]` declarations) to `?m ...` -/
|
||||
def isMVarApp (e : Expr) : TermElabM Bool :=
|
||||
return (← whnfR e).getAppFn.isMVar
|
||||
|
||||
/-- If `mayPostpone == true` and `e`'s head is a metavariable, throw `Exception.postpone`. -/
|
||||
def tryPostponeIfMVar (e : Expr) : TermElabM Unit := do
|
||||
let e ← whnfR e
|
||||
if e.getAppFn.isMVar then
|
||||
if (← isMVarApp e) then
|
||||
tryPostpone
|
||||
|
||||
/-- If `e? = some e`, then `tryPostponeIfMVar e`, otherwise it is just `tryPostpone`. -/
|
||||
|
|
|
|||
1113
stage0/stdlib/Lean/Elab/App.c
generated
1113
stage0/stdlib/Lean/Elab/App.c
generated
File diff suppressed because it is too large
Load diff
267
stage0/stdlib/Lean/Elab/Term.c
generated
267
stage0/stdlib/Lean/Elab/Term.c
generated
|
|
@ -195,7 +195,6 @@ LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Elab_Term_0__Lean
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_instInhabitedTermElabResult___rarg(lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_mkTermElabAttributeUnsafe___closed__1;
|
||||
static lean_object* l_Lean_Elab_Term_instMonadTermElabM___closed__5;
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__2;
|
||||
static lean_object* l_Lean_Elab_Term_mkCoe___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_isMonadApp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_throwAbortTerm___at_Lean_Elab_Term_throwMVarError___spec__2___rarg(lean_object*);
|
||||
|
|
@ -310,6 +309,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Term_getSyntheticMVarDecl_x3f___lambda__1__
|
|||
lean_object* l_Std_RBNode_findCore___at___private_Lean_MetavarContext_0__Lean_MetavarContext_MkBinding_elimApp___spec__5(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_exprToSyntax___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_ensureType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__2;
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Term_withoutModifyingElabMetaStateWithInfo___spec__14___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_MessageData_ofList(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_getDelayedMVarAssignment_x3f___at_Lean_Elab_Term_ContainsPendingMVar_visit___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -513,6 +513,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_withMacroExpansionInfo___at_Lean_Elab_Term_
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_instInhabitedTermElabM___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_mkTermElabAttributeUnsafe___closed__11;
|
||||
lean_object* l_Lean_MessageData_toString(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__1;
|
||||
static lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_tryCoeSort___lambda__1___closed__5;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_observing(lean_object*);
|
||||
uint8_t l_Lean_Syntax_matchesNull(lean_object*, lean_object*);
|
||||
|
|
@ -566,6 +567,7 @@ static lean_object* l_Lean_Elab_Term_MVarErrorInfo_logError___closed__1;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_mkTypeMismatchError___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_elabImplicitLambdaAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_logAt___at_Lean_Elab_Term_traceAtCmdPos___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__2;
|
||||
static lean_object* l_Lean_Elab_throwAbortTerm___at_Lean_Elab_Term_throwMVarError___spec__2___rarg___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_withMacroExpansionInfo___at_Lean_Elab_Term_withMacroExpansion___spec__1___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_PersistentArray_mapM___at_Lean_Elab_Term_withoutModifyingElabMetaStateWithInfo___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -646,7 +648,6 @@ static lean_object* l_Lean_Elab_Term_mkTypeMismatchError___closed__6;
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_blockImplicitLambda___boxed(lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_GetOpKind_noConfusion___rarg___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_GetOpKind_opName___boxed(lean_object*);
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__1;
|
||||
static lean_object* l_Lean_Elab_Term_instMetaEvalTermElabM___rarg___closed__7;
|
||||
static lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Term_addAutoBoundImplicits_go___spec__50___closed__1;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_MetavarContext_0__Lean_DependsOn_dep_visitMain___at_Lean_Elab_Term_addAutoBoundImplicits_go___spec__3(lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -686,7 +687,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Term_commitIfDidNotPostpone(lean_object*);
|
|||
lean_object* lean_st_mk_ref(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_5983_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_5960_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_mkAuxName___at_Lean_Elab_Term_mkAuxName___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Term_setElabConfig(lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_mkExplicitBinder___closed__14;
|
||||
|
|
@ -727,6 +728,7 @@ LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Term_collectUn
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_MVarErrorInfo_logError_appendExtra(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_isLetRecAuxMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_instMonadMacroAdapterTermElabM___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__1;
|
||||
LEAN_EXPORT uint8_t l_Lean_Elab_Term_Context_errToSorry___default;
|
||||
LEAN_EXPORT lean_object* l_Lean_getDelayedMVarRoot___at_Lean_Elab_Term_isLetRecAuxMVar___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_instInhabitedTermElabResult(lean_object*);
|
||||
|
|
@ -755,7 +757,6 @@ static lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_tryCoeSort___la
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_getSyntheticMVarDecl_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint64_t lean_uint64_of_nat(lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_isHole___closed__4;
|
||||
static lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_resolveId_x3f(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_isExprMVarAssigned___at_Lean_Elab_Term_synthesizeInstMVarCore___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_mkDeclName___at_Lean_Elab_Term_expandDeclId___spec__2___closed__1;
|
||||
|
|
@ -803,6 +804,7 @@ static lean_object* l_Lean_Elab_Term_MVarErrorInfo_logError___closed__3;
|
|||
static lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_tryCoeSort___closed__3;
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Elab_Term_0__Lean_Elab_Term_withoutModifyingStateWithInfoAndMessagesImpl___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t l_Lean_MessageData_hasSyntheticSorry(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_isMVarApp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_registerMVarErrorHoleInfo___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_tryCoeSort___lambda__1___closed__4;
|
||||
static lean_object* l_Lean_Elab_mkDeclName___at_Lean_Elab_Term_expandDeclId___spec__2___closed__2;
|
||||
|
|
@ -822,6 +824,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Term_elabTermEnsuringType___boxed(lean_obje
|
|||
lean_object* lean_whnf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at_Lean_Elab_Term_addAutoBoundImplicits_go___spec__9(lean_object*, lean_object*, size_t, size_t);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_synthesizeInstMVarCore___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_isMVarApp___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT uint8_t l_Lean_Elab_Term_Context_isNoncomputableSection___default;
|
||||
static lean_object* l_Lean_Elab_Term_tryPostponeIfHasMVars___closed__6;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_instMetaEvalTermElabM___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -869,7 +872,6 @@ LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Term_withoutModif
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_mkConst(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_dropTermParens___closed__2;
|
||||
lean_object* l_Lean_LocalDecl_fvarId(lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__2;
|
||||
lean_object* l___private_Lean_Util_Trace_0__Lean_addTraceOptions(lean_object*);
|
||||
lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_withMVarContextImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_resolveName___closed__4;
|
||||
|
|
@ -1247,7 +1249,7 @@ static lean_object* l_Lean_Elab_Tactic_instInhabitedSnapshot___closed__17;
|
|||
LEAN_EXPORT lean_object* l_ReaderT_pure___at_Lean_Elab_Term_addTermInfo___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_throwErrorIfErrors(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_getDelayedMVarAssignment_x3f___at_Lean_Elab_Term_isLetRecAuxMVar___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_PersistentArray_mapM___at_Lean_Elab_Term_withoutModifyingElabMetaStateWithInfo___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_addAutoBoundImplicits(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Elab_Term_addAutoBoundImplicits_go___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -1291,7 +1293,6 @@ lean_object* l_Lean_MetavarContext_getDecl(lean_object*, lean_object*);
|
|||
static lean_object* l_Lean_Elab_Term_MVarErrorInfo_logError_addArgName___closed__2;
|
||||
uint8_t l_Std_PersistentArray_anyM___at_Lean_MessageLog_hasErrors___spec__1(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_liftMacroM___at___private_Lean_Elab_Term_0__Lean_Elab_Term_elabTermAux___spec__2___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__3;
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_Term_0__Lean_Elab_Term_applyAttributesCore___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Term_addAutoBoundImplicits_go___spec__50(lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Core_resetMessageLog(lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -1404,6 +1405,7 @@ static lean_object* l_Lean_Elab_Term_instInhabitedLetRecToLift___closed__4;
|
|||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Term_withoutModifyingElabMetaStateWithInfo___spec__12___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Option_set___at_Lean_Meta_withPPInaccessibleNamesImp___spec__2(lean_object*, lean_object*, uint8_t);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_mkSyntheticSorryFor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__3;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_mkTermInfo(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Term_synthesizeInstMVarCore___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_MVarErrorInfo_logError___closed__8;
|
||||
|
|
@ -28210,6 +28212,80 @@ lean_dec(x_2);
|
|||
return x_8;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_isMVarApp(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_9;
|
||||
x_9 = l_Lean_Meta_whnfR(x_1, x_4, x_5, x_6, x_7, x_8);
|
||||
if (lean_obj_tag(x_9) == 0)
|
||||
{
|
||||
uint8_t x_10;
|
||||
x_10 = !lean_is_exclusive(x_9);
|
||||
if (x_10 == 0)
|
||||
{
|
||||
lean_object* x_11; lean_object* x_12; uint8_t x_13; lean_object* x_14;
|
||||
x_11 = lean_ctor_get(x_9, 0);
|
||||
x_12 = l_Lean_Expr_getAppFn(x_11);
|
||||
lean_dec(x_11);
|
||||
x_13 = l_Lean_Expr_isMVar(x_12);
|
||||
lean_dec(x_12);
|
||||
x_14 = lean_box(x_13);
|
||||
lean_ctor_set(x_9, 0, x_14);
|
||||
return x_9;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; lean_object* x_19; lean_object* x_20;
|
||||
x_15 = lean_ctor_get(x_9, 0);
|
||||
x_16 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_16);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_9);
|
||||
x_17 = l_Lean_Expr_getAppFn(x_15);
|
||||
lean_dec(x_15);
|
||||
x_18 = l_Lean_Expr_isMVar(x_17);
|
||||
lean_dec(x_17);
|
||||
x_19 = lean_box(x_18);
|
||||
x_20 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_19);
|
||||
lean_ctor_set(x_20, 1, x_16);
|
||||
return x_20;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_21;
|
||||
x_21 = !lean_is_exclusive(x_9);
|
||||
if (x_21 == 0)
|
||||
{
|
||||
return x_9;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_22; lean_object* x_23; lean_object* x_24;
|
||||
x_22 = lean_ctor_get(x_9, 0);
|
||||
x_23 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_23);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_9);
|
||||
x_24 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_24, 0, x_22);
|
||||
lean_ctor_set(x_24, 1, x_23);
|
||||
return x_24;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_isMVarApp___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_9;
|
||||
x_9 = l_Lean_Elab_Term_isMVarApp(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
return x_9;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_tryPostponeIfMVar(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
_start:
|
||||
{
|
||||
|
|
@ -28218,107 +28294,84 @@ lean_inc(x_7);
|
|||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
x_9 = l_Lean_Meta_whnfR(x_1, x_4, x_5, x_6, x_7, x_8);
|
||||
x_9 = l_Lean_Elab_Term_isMVarApp(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8);
|
||||
if (lean_obj_tag(x_9) == 0)
|
||||
{
|
||||
uint8_t x_10;
|
||||
x_10 = !lean_is_exclusive(x_9);
|
||||
if (x_10 == 0)
|
||||
lean_object* x_10; uint8_t x_11;
|
||||
x_10 = lean_ctor_get(x_9, 0);
|
||||
lean_inc(x_10);
|
||||
x_11 = lean_unbox(x_10);
|
||||
lean_dec(x_10);
|
||||
if (x_11 == 0)
|
||||
{
|
||||
lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14;
|
||||
x_11 = lean_ctor_get(x_9, 0);
|
||||
x_12 = lean_ctor_get(x_9, 1);
|
||||
x_13 = l_Lean_Expr_getAppFn(x_11);
|
||||
lean_dec(x_11);
|
||||
x_14 = l_Lean_Expr_isMVar(x_13);
|
||||
lean_dec(x_13);
|
||||
if (x_14 == 0)
|
||||
{
|
||||
lean_object* x_15;
|
||||
uint8_t x_12;
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_15 = lean_box(0);
|
||||
lean_ctor_set(x_9, 0, x_15);
|
||||
x_12 = !lean_is_exclusive(x_9);
|
||||
if (x_12 == 0)
|
||||
{
|
||||
lean_object* x_13; lean_object* x_14;
|
||||
x_13 = lean_ctor_get(x_9, 0);
|
||||
lean_dec(x_13);
|
||||
x_14 = lean_box(0);
|
||||
lean_ctor_set(x_9, 0, x_14);
|
||||
return x_9;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_16;
|
||||
lean_free_object(x_9);
|
||||
x_16 = l_Lean_Elab_Term_tryPostpone(x_2, x_3, x_4, x_5, x_6, x_7, x_12);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
return x_16;
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
x_15 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_9);
|
||||
x_16 = lean_box(0);
|
||||
x_17 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_17, 0, x_16);
|
||||
lean_ctor_set(x_17, 1, x_15);
|
||||
return x_17;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20;
|
||||
x_17 = lean_ctor_get(x_9, 0);
|
||||
lean_object* x_18; lean_object* x_19;
|
||||
x_18 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_18);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_9);
|
||||
x_19 = l_Lean_Expr_getAppFn(x_17);
|
||||
lean_dec(x_17);
|
||||
x_20 = l_Lean_Expr_isMVar(x_19);
|
||||
lean_dec(x_19);
|
||||
x_19 = l_Lean_Elab_Term_tryPostpone(x_2, x_3, x_4, x_5, x_6, x_7, x_18);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
return x_19;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_20;
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_20 = !lean_is_exclusive(x_9);
|
||||
if (x_20 == 0)
|
||||
{
|
||||
lean_object* x_21; lean_object* x_22;
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_21 = lean_box(0);
|
||||
x_22 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_22, 0, x_21);
|
||||
lean_ctor_set(x_22, 1, x_18);
|
||||
return x_22;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_23;
|
||||
x_23 = l_Lean_Elab_Term_tryPostpone(x_2, x_3, x_4, x_5, x_6, x_7, x_18);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
return x_23;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_24;
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_24 = !lean_is_exclusive(x_9);
|
||||
if (x_24 == 0)
|
||||
{
|
||||
return x_9;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_9, 0);
|
||||
x_26 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_26);
|
||||
lean_inc(x_25);
|
||||
lean_object* x_21; lean_object* x_22; lean_object* x_23;
|
||||
x_21 = lean_ctor_get(x_9, 0);
|
||||
x_22 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_22);
|
||||
lean_inc(x_21);
|
||||
lean_dec(x_9);
|
||||
x_27 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_25);
|
||||
lean_ctor_set(x_27, 1, x_26);
|
||||
return x_27;
|
||||
x_23 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_23, 0, x_21);
|
||||
lean_ctor_set(x_23, 1, x_22);
|
||||
return x_23;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -48805,7 +48858,7 @@ lean_dec(x_3);
|
|||
return x_10;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__1() {
|
||||
static lean_object* _init_l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
|
|
@ -48813,21 +48866,21 @@ x_1 = lean_mk_string_from_bytes("letrec", 6);
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__2() {
|
||||
static lean_object* _init_l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = l_Lean_Elab_Term_MVarErrorInfo_logError___closed__11;
|
||||
x_2 = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__1;
|
||||
x_2 = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__1;
|
||||
x_3 = lean_name_mk_string(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270_(lean_object* x_1) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301_(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_2; lean_object* x_3;
|
||||
x_2 = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__2;
|
||||
x_2 = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__2;
|
||||
x_3 = l_Lean_registerTraceClass(x_2, x_1);
|
||||
return x_3;
|
||||
}
|
||||
|
|
@ -49326,7 +49379,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Term_isLetRecAuxMVar(lean_object* x_1, lean
|
|||
_start:
|
||||
{
|
||||
lean_object* x_9; uint8_t x_10; lean_object* x_11; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41;
|
||||
x_9 = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__2;
|
||||
x_9 = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__2;
|
||||
x_38 = lean_st_ref_get(x_7, x_8);
|
||||
x_39 = lean_ctor_get(x_38, 0);
|
||||
lean_inc(x_39);
|
||||
|
|
@ -57962,7 +58015,7 @@ x_3 = lean_alloc_closure((void*)(l_Lean_Elab_withoutModifyingStateWithInfoAndMes
|
|||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__1() {
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
|
|
@ -57972,7 +58025,7 @@ x_3 = lean_name_mk_string(x_1, x_2);
|
|||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__2() {
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
|
|
@ -57980,17 +58033,17 @@ x_1 = lean_mk_string_from_bytes("debug", 5);
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__3() {
|
||||
static lean_object* _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__3() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = l_Lean_Elab_Term_MVarErrorInfo_logError___closed__11;
|
||||
x_2 = l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__2;
|
||||
x_2 = l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__2;
|
||||
x_3 = lean_name_mk_string(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486_(lean_object* x_1) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517_(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_2; lean_object* x_3;
|
||||
|
|
@ -58002,7 +58055,7 @@ lean_object* x_4; lean_object* x_5; lean_object* x_6;
|
|||
x_4 = lean_ctor_get(x_3, 1);
|
||||
lean_inc(x_4);
|
||||
lean_dec(x_3);
|
||||
x_5 = l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__1;
|
||||
x_5 = l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__1;
|
||||
x_6 = l_Lean_registerTraceClass(x_5, x_4);
|
||||
if (lean_obj_tag(x_6) == 0)
|
||||
{
|
||||
|
|
@ -58010,7 +58063,7 @@ lean_object* x_7; lean_object* x_8; lean_object* x_9;
|
|||
x_7 = lean_ctor_get(x_6, 1);
|
||||
lean_inc(x_7);
|
||||
lean_dec(x_6);
|
||||
x_8 = l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__3;
|
||||
x_8 = l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__3;
|
||||
x_9 = l_Lean_registerTraceClass(x_8, x_7);
|
||||
return x_9;
|
||||
}
|
||||
|
|
@ -58859,11 +58912,11 @@ l_Lean_Elab_Term_mkAuxName___closed__1 = _init_l_Lean_Elab_Term_mkAuxName___clos
|
|||
lean_mark_persistent(l_Lean_Elab_Term_mkAuxName___closed__1);
|
||||
l_Lean_Elab_Term_mkAuxName___closed__2 = _init_l_Lean_Elab_Term_mkAuxName___closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_Term_mkAuxName___closed__2);
|
||||
l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__1 = _init_l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__1);
|
||||
l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__2 = _init_l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270____closed__2);
|
||||
res = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13270_(lean_io_mk_world());
|
||||
l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__1 = _init_l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__1);
|
||||
l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__2 = _init_l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301____closed__2);
|
||||
res = l_Lean_Elab_Term_initFn____x40_Lean_Elab_Term___hyg_13301_(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
l_Lean_Elab_Term_isLetRecAuxMVar___lambda__2___closed__1 = _init_l_Lean_Elab_Term_isLetRecAuxMVar___lambda__2___closed__1();
|
||||
|
|
@ -59022,13 +59075,13 @@ l_Lean_Elab_Term_exprToSyntax___closed__3 = _init_l_Lean_Elab_Term_exprToSyntax_
|
|||
lean_mark_persistent(l_Lean_Elab_Term_exprToSyntax___closed__3);
|
||||
l_Lean_Elab_Term_exprToSyntax___closed__4 = _init_l_Lean_Elab_Term_exprToSyntax___closed__4();
|
||||
lean_mark_persistent(l_Lean_Elab_Term_exprToSyntax___closed__4);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__1 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__1);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__2 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__2);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__3 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__3();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486____closed__3);
|
||||
res = l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15486_(lean_io_mk_world());
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__1 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__1);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__2 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__2);
|
||||
l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__3 = _init_l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__3();
|
||||
lean_mark_persistent(l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517____closed__3);
|
||||
res = l_Lean_Elab_initFn____x40_Lean_Elab_Term___hyg_15517_(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
return lean_io_result_mk_ok(lean_box(0));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue