diff --git a/stage0/src/Init/Control/Lawful.lean b/stage0/src/Init/Control/Lawful.lean index 021e3926a4..ded479811c 100644 --- a/stage0/src/Init/Control/Lawful.lean +++ b/stage0/src/Init/Control/Lawful.lean @@ -111,9 +111,9 @@ theorem ext [Monad m] {x y : ExceptT ε m α} (h : x.run = y.run) : x = y := by simp [run] at h assumption -@[simp] theorem run_pure [Monad m] : run (pure x : ExceptT ε m α) = pure (Except.ok x) := rfl +@[simp] theorem run_pure [Monad m] (x : α) : run (pure x : ExceptT ε m α) = pure (Except.ok x) := rfl -@[simp] theorem run_lift [Monad m] (x : m α) : run (ExceptT.lift x : ExceptT ε m α) = (Except.ok <$> x : m (Except ε α)) := rfl +@[simp] theorem run_lift {α β ε : Type u} [Monad m] (x : m α) : run (ExceptT.lift x : ExceptT ε m α) = (Except.ok <$> x : m (Except ε α)) := rfl @[simp] theorem run_throw [Monad m] : run (throw e : ExceptT ε m β) = pure (Except.error e) := rfl diff --git a/stage0/src/Init/Core.lean b/stage0/src/Init/Core.lean index 3d1f9bda33..c2d345489d 100644 --- a/stage0/src/Init/Core.lean +++ b/stage0/src/Init/Core.lean @@ -315,7 +315,8 @@ theorem Iff.comm : (a ↔ b) ↔ (b ↔ a) := theorem Exists.elim {α : Sort u} {p : α → Prop} {b : Prop} (h₁ : Exists (fun x => p x)) (h₂ : ∀ (a : α), p a → b) : b := - h₂ h₁.1 h₁.2 + match h₁ with + | intro a h => h₂ a h /- Decidable -/ diff --git a/stage0/src/Lean/Elab/App.lean b/stage0/src/Lean/Elab/App.lean index 3b53f66c8d..70a731d8a4 100644 --- a/stage0/src/Lean/Elab/App.lean +++ b/stage0/src/Lean/Elab/App.lean @@ -36,6 +36,15 @@ private def ensureArgType (f : Expr) (arg : Expr) (expectedType : Expr) : TermEl let argType ← inferType arg ensureHasTypeAux expectedType argType arg f +private def mkProjAndCheck (structName : Name) (idx : Nat) (e : Expr) : MetaM Expr := do + let r := mkProj structName idx e + let eType ← inferType e + if (← isProp eType) then + let rType ← inferType r + if !(← isProp rType) then + throwError "invalid projection, the expression{indentExpr e}\nis a proposition and has type{indentExpr eType}\nbut the projected value is not, it has type{indentExpr rType}" + return r + /- Relevant definitions: ``` @@ -703,7 +712,7 @@ private def elabAppLValsAux (namedArgs : Array NamedArg) (args : Array Arg) (exp let (f, lvalRes) ← resolveLVal f lval hasArgs match lvalRes with | LValResolution.projIdx structName idx => - let f := mkProj structName idx f + let f ← mkProjAndCheck structName idx f addTermInfo lval.getRef f loop f lvals | LValResolution.projFn baseStructName structName fieldName => diff --git a/stage0/src/Lean/Meta/Injective.lean b/stage0/src/Lean/Meta/Injective.lean index 6b0a997dff..a0ba276eb9 100644 --- a/stage0/src/Lean/Meta/Injective.lean +++ b/stage0/src/Lean/Meta/Injective.lean @@ -127,8 +127,8 @@ private def mkInjectiveEqTheoremValue (ctorName : Name) (targetType : Expr) : Me let (_, mvarId₂) ← intro1 mvarId₂ solveEqOfCtorEq ctorName mvarId₁ h let mvarId₂ ← casesAnd mvarId₂ - let mvarId₂ ← substEqs mvarId₂ - applyRefl mvarId₂ (injTheoremFailureHeader ctorName) + if let some mvarId₂ ← substEqs mvarId₂ then + applyRefl mvarId₂ (injTheoremFailureHeader ctorName) mkLambdaFVars xs mvar private def mkInjectiveEqTheorem (ctorVal : ConstructorVal) : MetaM Unit := do diff --git a/stage0/src/Lean/Meta/Tactic/Cases.lean b/stage0/src/Lean/Meta/Tactic/Cases.lean index 8afc43bb9c..968bac7522 100644 --- a/stage0/src/Lean/Meta/Tactic/Cases.lean +++ b/stage0/src/Lean/Meta/Tactic/Cases.lean @@ -340,11 +340,11 @@ def casesAnd (mvarId : MVarId) : MetaM MVarId := do let mvarIds ← casesRec mvarId fun localDecl => return (← instantiateMVars localDecl.type).isAppOfArity ``And 2 exactlyOne mvarIds -def substEqs (mvarId : MVarId) : MetaM MVarId := do +def substEqs (mvarId : MVarId) : MetaM (Option MVarId) := do let mvarIds ← casesRec mvarId fun localDecl => do let type ← instantiateMVars localDecl.type return type.isEq || type.isHEq - exactlyOne mvarIds + ensureAtMostOne mvarIds structure ByCasesSubgoal where mvarId : MVarId diff --git a/stage0/src/library/compiler/csimp.cpp b/stage0/src/library/compiler/csimp.cpp index 0dcd4d46bb..1f29278f4d 100644 --- a/stage0/src/library/compiler/csimp.cpp +++ b/stage0/src/library/compiler/csimp.cpp @@ -233,6 +233,15 @@ class csimp_fn { return tc.whnf(tc.infer(e)); } + optional whnf_infer_type_guarded(expr const & e) { + try { + expr r = whnf_infer_type(e); + return optional(r); + } catch (kernel_exception &) { + return optional(); + } + } + name next_name() { /* Remark: we use `m_x.append_after(m_next_idx)` instead of `name(m_x, m_next_idx)` because the resulting name is confusing during debugging: it looks like a projection application. @@ -1165,11 +1174,14 @@ class csimp_fn { /* When we simplify before erasure, we eta-expand all lambdas which are not join points. */ buffer eta_args; if (m_before_erasure && !is_join_point_def) { - expr e_type = whnf_infer_type(e); - while (is_pi(e_type)) { - expr arg = m_lctx.mk_local_decl(ngen(), binding_name(e_type), binding_domain(e_type), binding_info(e_type)); - eta_args.push_back(arg); - e_type = whnf(instantiate(binding_body(e_type), arg)); + // HACK: infer_type may fail + if (auto e_type_opt = whnf_infer_type_guarded(e)) { + expr e_type = *e_type_opt; + while (is_pi(e_type)) { + expr arg = m_lctx.mk_local_decl(ngen(), binding_name(e_type), binding_domain(e_type), binding_info(e_type)); + eta_args.push_back(arg); + e_type = whnf(instantiate(binding_body(e_type), arg)); + } } } unsigned saved_fvars_size = m_fvars.size(); @@ -1518,27 +1530,34 @@ class csimp_fn { update_expr2ctor(major, c, args, cidx, zs); new_minor = visit(minor, false); } - new_minor = mk_let(zs, saved_fvars_size, new_minor, false); - expr result_minor = mk_minor_lambda(zs, new_minor); - if (all_equal_opt) { - expr result_minor_body = result_minor; - for (unsigned i = 0; i < zs.size(); i++) { - result_minor_body = binding_body(result_minor_body); - if (has_loose_bvars(result_minor_body)) { - /* Minor premise depends on constructor fields. */ - all_equal_opt = false; - break; - } - } + try { + new_minor = mk_let(zs, saved_fvars_size, new_minor, false); + expr result_minor = mk_minor_lambda(zs, new_minor); + if (all_equal_opt) { + expr result_minor_body = result_minor; + for (unsigned i = 0; i < zs.size(); i++) { + result_minor_body = binding_body(result_minor_body); + if (has_loose_bvars(result_minor_body)) { + /* Minor premise depends on constructor fields. */ + all_equal_opt = false; + break; + } + } + } + if (all_equal_opt) { + if (!a_minor) { + a_minor = new_minor; + } else if (new_minor != *a_minor) { + all_equal_opt = false; + } + } + args[minor_idx] = result_minor; + } catch (kernel_exception &) { + // HACK: the code above depends on `infer_type`, and it may fail. + // The compiler performs transformations that do not preserve typability. + // When we rewrite the compiler in Lean, we must write a custom `infer_type` that returns an + // `Any` type in this kind of situation. } - if (all_equal_opt) { - if (!a_minor) { - a_minor = new_minor; - } else if (new_minor != *a_minor) { - all_equal_opt = false; - } - } - args[minor_idx] = result_minor; } if (all_equal_opt && a_minor && !is_join_point_app(*a_minor)) { /* diff --git a/stage0/stdlib/Lean/Elab/App.c b/stage0/stdlib/Lean/Elab/App.c index 5c775b5fd2..3e51c94b33 100644 --- a/stage0/stdlib/Lean/Elab/App.c +++ b/stage0/stdlib/Lean/Elab/App.c @@ -22,6 +22,7 @@ static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_resolveLValAux__ static lean_object* l___regBuiltin_Lean_Elab_Term_elabExplicitUniv_declRange___closed__4; lean_object* l_Lean_Expr_bindingInfo_x21(lean_object*); static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_finalize___lambda__3___closed__1; +static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__6; LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_getArgExpectedType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__12; lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_elabForall___spec__1___rarg(lean_object*); @@ -41,7 +42,6 @@ lean_object* l_Lean_Meta_mkFreshLevelMVar(lean_object*, lean_object*, lean_objec lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); static lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_App___hyg_5____closed__4; static lean_object* l_Lean_Elab_Term_elabAppArgs___closed__12; -static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__5; static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_processExplictArg___closed__4; LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_addLValArg___spec__2___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_stringToMessageData(lean_object*); @@ -95,6 +95,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Term_elabApp___lambda__2(lean_object*, lean LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppFn___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_elabAndAddNewArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_throwError___at___private_Lean_Meta_Basic_0__Lean_Meta_processPostponedStep___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_elabAndAddNewArg___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_Std_Range_forIn_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_anyNamedArgDependsOnCurrent___spec__2___closed__1; lean_object* l_Lean_Elab_Term_withoutPostponingUniverseConstraints___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -336,6 +337,7 @@ static lean_object* l___regBuiltin_Lean_Elab_Term_elabApp_declRange___closed__1; LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_addLValArg___spec__2___lambda__5___boxed(lean_object**); LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppFnId___boxed(lean_object**); LEAN_EXPORT lean_object* l_Lean_Elab_Term_elabAppArgs(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__4; static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_resolveLValAux___lambda__1___closed__4; LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_addLValArg(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*); static lean_object* l___regBuiltin_Lean_Elab_Term_elabIdent_declRange___closed__4; @@ -379,6 +381,7 @@ static lean_object* l___regBuiltin_Lean_Elab_Term_elabProj_declRange___closed__5 LEAN_EXPORT lean_object* l_List_forIn_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_mkBaseProjections___spec__1(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_App_0__Lean_Elab_Term_addLValArg___lambda__1___boxed(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___regBuiltin_Lean_Elab_Term_elabPipeProj_declRange(lean_object*); +static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__1; lean_object* lean_format_pretty(lean_object*, lean_object*); extern lean_object* l_Lean_choiceKind; LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Elab_App_0__Lean_Elab_Term_resolveLValAux___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -429,6 +432,7 @@ static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_fina LEAN_EXPORT lean_object* l_List_foldlM___at___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppFnId___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_shouldPropagateExpectedTypeFor(lean_object*); static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_finalize___closed__1; +static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__3; lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*); lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Term_elabChoice_declRange___closed__2; @@ -455,6 +459,7 @@ static lean_object* l___regBuiltin_Lean_Elab_Term_elabPipeProj_declRange___close LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_anyNamedArgDependsOnCurrent___lambda__1___boxed(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_Util_Trace_0__Lean_checkTraceOptionM___at___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_propagateExpectedType___spec__2___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_App_0__Lean_Elab_Term_elabAppFn___closed__16; +static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__5; static lean_object* l_Lean_Elab_Term_instToStringNamedArg___closed__3; extern lean_object* l_Lean_Meta_instMonadMetaM; LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Term_throwInvalidNamedArg___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -610,10 +615,12 @@ static lean_object* l___regBuiltin_Lean_Elab_Term_elabChoice___closed__1; uint8_t l_Lean_Expr_isFVar(lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_finalize___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___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_getForallBody___lambda__1___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_App___hyg_11892_(lean_object*); +static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__7; +LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_App___hyg_12092_(lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_App___hyg_5_(lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppAux(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_propagateExpectedTypeFor___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop(lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppFn___closed__21; @@ -624,10 +631,12 @@ static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_addLValArg___lam lean_object* l_Lean_Meta_mkArrow(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_constName_x3f(lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Term_elabApp_declRange___closed__4; +static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__2; static lean_object* l_Lean_Elab_Term_elabExplicit___closed__2; lean_object* lean_infer_type(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_finalize___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_propagateExpectedType___closed__2; +LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isExprDefEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_mkFreshExprMVarImpl(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Term_elabExplicitUniv_declRange___closed__6; @@ -640,6 +649,7 @@ static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_addLValArg___clo static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_resolveLValAux___closed__9; static lean_object* l_Lean_Elab_Term_throwInvalidNamedArg___rarg___closed__3; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Elab_App_0__Lean_Elab_Term_getSuccess___spec__1(lean_object*, size_t, size_t, lean_object*); +static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; static lean_object* l___regBuiltin_Lean_Elab_Term_elabArrayRef_declRange___closed__2; lean_object* l_Lean_Meta_instantiateMVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Term_elabPipeProj_declRange___closed__6; @@ -726,15 +736,16 @@ static lean_object* l___regBuiltin_Lean_Elab_Term_elabPipeProj_declRange___close static lean_object* l___regBuiltin_Lean_Elab_Term_elabExplicitUniv___closed__3; static lean_object* l___regBuiltin_Lean_Elab_Term_elabProj_declRange___closed__4; LEAN_EXPORT lean_object* l_Lean_throwErrorAt___at___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppAux___spec__3(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_App_0__Lean_Elab_Term_mkProjAndCheck(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Term_elabArrayRef_declRange___closed__6; uint8_t l_Lean_isStructureLike(lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Term_elabChoice_declRange___closed__4; static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppFn___closed__4; +lean_object* l_Lean_Meta_isProp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Term_elabChoice_declRange___closed__1; static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkBaseProjections___closed__2; lean_object* l_Lean_indentExpr(lean_object*); static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_propagateExpectedType___closed__6; -static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_resolveLValAux___closed__14; static lean_object* l___regBuiltin_Lean_Elab_Term_elabIdent___closed__1; lean_object* l_Lean_Elab_Term_synthesizeCoeInstMVarCore(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -1443,6 +1454,403 @@ return x_21; } } } +LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_1); +lean_ctor_set(x_8, 1, x_7); +return x_8; +} +} +static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("invalid projection, the expression"); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("\nis a proposition and has type"); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("\nbut the projected value is not, it has type"); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__5; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string(""); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__7; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck(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; lean_object* x_10; +lean_inc(x_3); +x_9 = l_Lean_mkProj(x_1, x_2, x_3); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_10 = lean_infer_type(x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_10) == 0) +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_11); +x_13 = l_Lean_Meta_isProp(x_11, x_4, x_5, x_6, x_7, x_12); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; uint8_t x_15; +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +x_15 = lean_unbox(x_14); +lean_dec(x_14); +if (x_15 == 0) +{ +uint8_t x_16; +lean_dec(x_11); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_16 = !lean_is_exclusive(x_13); +if (x_16 == 0) +{ +lean_object* x_17; +x_17 = lean_ctor_get(x_13, 0); +lean_dec(x_17); +lean_ctor_set(x_13, 0, x_9); +return x_13; +} +else +{ +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_13, 1); +lean_inc(x_18); +lean_dec(x_13); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_9); +lean_ctor_set(x_19, 1, x_18); +return x_19; +} +} +else +{ +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_13, 1); +lean_inc(x_20); +lean_dec(x_13); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_9); +x_21 = lean_infer_type(x_9, x_4, x_5, x_6, x_7, x_20); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_22); +x_24 = l_Lean_Meta_isProp(x_22, x_4, x_5, x_6, x_7, x_23); +if (lean_obj_tag(x_24) == 0) +{ +lean_object* x_25; uint8_t x_26; +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +x_26 = lean_unbox(x_25); +lean_dec(x_25); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; +lean_dec(x_9); +x_27 = lean_ctor_get(x_24, 1); +lean_inc(x_27); +lean_dec(x_24); +x_28 = l_Lean_indentExpr(x_3); +x_29 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__2; +x_30 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_28); +x_31 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__4; +x_32 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +x_33 = l_Lean_indentExpr(x_11); +x_34 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_34, 0, x_32); +lean_ctor_set(x_34, 1, x_33); +x_35 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__6; +x_36 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +x_37 = l_Lean_indentExpr(x_22); +x_38 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_38, 0, x_36); +lean_ctor_set(x_38, 1, x_37); +x_39 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; +x_40 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +x_41 = l_Lean_throwError___at___private_Lean_Meta_Basic_0__Lean_Meta_processPostponedStep___spec__1(x_40, x_4, x_5, x_6, x_7, x_27); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_42 = !lean_is_exclusive(x_41); +if (x_42 == 0) +{ +return x_41; +} +else +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_43 = lean_ctor_get(x_41, 0); +x_44 = lean_ctor_get(x_41, 1); +lean_inc(x_44); +lean_inc(x_43); +lean_dec(x_41); +x_45 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_45, 0, x_43); +lean_ctor_set(x_45, 1, x_44); +return x_45; +} +} +else +{ +uint8_t x_46; +lean_dec(x_22); +lean_dec(x_11); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_46 = !lean_is_exclusive(x_24); +if (x_46 == 0) +{ +lean_object* x_47; +x_47 = lean_ctor_get(x_24, 0); +lean_dec(x_47); +lean_ctor_set(x_24, 0, x_9); +return x_24; +} +else +{ +lean_object* x_48; lean_object* x_49; +x_48 = lean_ctor_get(x_24, 1); +lean_inc(x_48); +lean_dec(x_24); +x_49 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_49, 0, x_9); +lean_ctor_set(x_49, 1, x_48); +return x_49; +} +} +} +else +{ +uint8_t x_50; +lean_dec(x_22); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_50 = !lean_is_exclusive(x_24); +if (x_50 == 0) +{ +return x_24; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_51 = lean_ctor_get(x_24, 0); +x_52 = lean_ctor_get(x_24, 1); +lean_inc(x_52); +lean_inc(x_51); +lean_dec(x_24); +x_53 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_53, 0, x_51); +lean_ctor_set(x_53, 1, x_52); +return x_53; +} +} +} +else +{ +uint8_t x_54; +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_54 = !lean_is_exclusive(x_21); +if (x_54 == 0) +{ +return x_21; +} +else +{ +lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_55 = lean_ctor_get(x_21, 0); +x_56 = lean_ctor_get(x_21, 1); +lean_inc(x_56); +lean_inc(x_55); +lean_dec(x_21); +x_57 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_57, 0, x_55); +lean_ctor_set(x_57, 1, x_56); +return x_57; +} +} +} +} +else +{ +uint8_t x_58; +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_58 = !lean_is_exclusive(x_13); +if (x_58 == 0) +{ +return x_13; +} +else +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_59 = lean_ctor_get(x_13, 0); +x_60 = lean_ctor_get(x_13, 1); +lean_inc(x_60); +lean_inc(x_59); +lean_dec(x_13); +x_61 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_61, 0, x_59); +lean_ctor_set(x_61, 1, x_60); +return x_61; +} +} +} +else +{ +uint8_t x_62; +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_62 = !lean_is_exclusive(x_10); +if (x_62 == 0) +{ +return x_10; +} +else +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; +x_63 = lean_ctor_get(x_10, 0); +x_64 = lean_ctor_get(x_10, 1); +lean_inc(x_64); +lean_inc(x_63); +lean_dec(x_10); +x_65 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_65, 0, x_63); +lean_ctor_set(x_65, 1, x_64); +return x_65; +} +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; +x_8 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_8; +} +} static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_tryCoeFun_x3f___closed__1() { _start: { @@ -2371,23 +2779,6 @@ x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string(""); -return x_1; -} -} -static lean_object* _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__5; -x_2 = l_Lean_stringToMessageData(x_1); -return x_2; -} -} LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType(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: { @@ -2501,7 +2892,7 @@ x_38 = l_Lean_indentExpr(x_23); x_39 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_39, 0, x_37); lean_ctor_set(x_39, 1, x_38); -x_40 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_40 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_41 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_41, 0, x_39); lean_ctor_set(x_41, 1, x_40); @@ -5142,7 +5533,7 @@ lean_ctor_set(x_30, 1, x_29); x_31 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_31, 0, x_30); lean_ctor_set(x_31, 1, x_15); -x_32 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_32 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_33 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_33, 0, x_31); lean_ctor_set(x_33, 1, x_32); @@ -5201,7 +5592,7 @@ lean_ctor_set(x_52, 1, x_51); x_53 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_53, 0, x_52); lean_ctor_set(x_53, 1, x_15); -x_54 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_54 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_55 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_55, 0, x_53); lean_ctor_set(x_55, 1, x_54); @@ -5274,7 +5665,7 @@ lean_ctor_set(x_77, 1, x_76); x_78 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_78, 0, x_77); lean_ctor_set(x_78, 1, x_15); -x_79 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_79 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_80 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_80, 0, x_78); lean_ctor_set(x_80, 1, x_79); @@ -5641,7 +6032,7 @@ lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean lean_inc(x_3); x_31 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_31, 0, x_3); -x_32 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_32 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_33 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_33, 0, x_32); lean_ctor_set(x_33, 1, x_31); @@ -6067,7 +6458,7 @@ lean_ctor_set(x_51, 0, x_50); x_52 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_52, 0, x_49); lean_ctor_set(x_52, 1, x_51); -x_53 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_53 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_54 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_54, 0, x_52); lean_ctor_set(x_54, 1, x_53); @@ -6372,7 +6763,7 @@ lean_ctor_set(x_139, 0, x_138); x_140 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_140, 0, x_137); lean_ctor_set(x_140, 1, x_139); -x_141 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_141 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_142 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_142, 0, x_140); lean_ctor_set(x_142, 1, x_141); @@ -6771,7 +7162,7 @@ x_24 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_finalize___lambda x_25 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_25, 0, x_24); lean_ctor_set(x_25, 1, x_23); -x_26 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_26 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_27 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_27, 0, x_25); lean_ctor_set(x_27, 1, x_26); @@ -6909,7 +7300,7 @@ lean_ctor_set(x_25, 0, x_14); x_26 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_26, 0, x_24); lean_ctor_set(x_26, 1, x_25); -x_27 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_27 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_28 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_28, 0, x_26); lean_ctor_set(x_28, 1, x_27); @@ -10712,7 +11103,7 @@ lean_ctor_set(x_30, 1, x_29); x_31 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_31, 0, x_30); lean_ctor_set(x_31, 1, x_26); -x_32 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_32 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_33 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_33, 0, x_31); lean_ctor_set(x_33, 1, x_32); @@ -10739,7 +11130,7 @@ lean_ctor_set(x_41, 1, x_40); x_42 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_42, 0, x_41); lean_ctor_set(x_42, 1, x_26); -x_43 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_43 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_44 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_44, 0, x_42); lean_ctor_set(x_44, 1, x_43); @@ -10903,7 +11294,7 @@ LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_throwLValEr _start: { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_11 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_11 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_12 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_12, 0, x_11); lean_ctor_set(x_12, 1, x_3); @@ -16840,7 +17231,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; x_1 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__1; x_2 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__2; -x_3 = lean_unsigned_to_nat(723u); +x_3 = lean_unsigned_to_nat(732u); x_4 = lean_unsigned_to_nat(8u); x_5 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -16919,36 +17310,36 @@ return x_3; LEAN_EXPORT lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, uint8_t x_7, uint8_t 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) { _start: { -uint8_t x_17; uint8_t x_208; +uint8_t x_17; uint8_t x_214; lean_dec(x_9); -x_208 = l_Array_isEmpty___rarg(x_4); -if (x_208 == 0) +x_214 = l_Array_isEmpty___rarg(x_4); +if (x_214 == 0) { -uint8_t x_209; -x_209 = 1; -x_17 = x_209; -goto block_207; +uint8_t x_215; +x_215 = 1; +x_17 = x_215; +goto block_213; } else { -uint8_t x_210; -x_210 = l_Array_isEmpty___rarg(x_5); -if (x_210 == 0) +uint8_t x_216; +x_216 = l_Array_isEmpty___rarg(x_5); +if (x_216 == 0) { -uint8_t x_211; -x_211 = 1; -x_17 = x_211; -goto block_207; +uint8_t x_217; +x_217 = 1; +x_17 = x_217; +goto block_213; } else { -uint8_t x_212; -x_212 = 0; -x_17 = x_212; -goto block_207; +uint8_t x_218; +x_218 = 0; +x_17 = x_218; +goto block_213; } } -block_207: +block_213: { lean_object* x_18; lean_inc(x_15); @@ -17147,7 +17538,7 @@ return x_62; } case 1: { -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; uint8_t x_71; lean_object* x_72; +lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; x_63 = lean_ctor_get(x_18, 1); lean_inc(x_63); lean_dec(x_18); @@ -17159,33 +17550,45 @@ lean_inc(x_65); x_66 = lean_ctor_get(x_20, 1); lean_inc(x_66); lean_dec(x_20); -x_67 = l_Lean_mkProj(x_65, x_66, x_64); -x_68 = l_Lean_Elab_Term_LVal_getRef(x_2); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +x_67 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck(x_65, x_66, x_64, x_12, x_13, x_14, x_15, x_63); +if (lean_obj_tag(x_67) == 0) +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; uint8_t x_73; lean_object* x_74; +x_68 = lean_ctor_get(x_67, 0); +lean_inc(x_68); +x_69 = lean_ctor_get(x_67, 1); +lean_inc(x_69); +lean_dec(x_67); +x_70 = l_Lean_Elab_Term_LVal_getRef(x_2); lean_dec(x_2); -x_69 = lean_box(0); -x_70 = lean_box(0); -x_71 = 0; +x_71 = lean_box(0); +x_72 = lean_box(0); +x_73 = 0; lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -lean_inc(x_67); -x_72 = l_Lean_Elab_Term_addTermInfo(x_68, x_67, x_69, x_69, x_70, x_71, x_10, x_11, x_12, x_13, x_14, x_15, x_63); -if (lean_obj_tag(x_72) == 0) +lean_inc(x_68); +x_74 = l_Lean_Elab_Term_addTermInfo(x_70, x_68, x_71, x_71, x_72, x_73, x_10, x_11, x_12, x_13, x_14, x_15, x_69); +if (lean_obj_tag(x_74) == 0) { -lean_object* x_73; lean_object* x_74; -x_73 = lean_ctor_get(x_72, 1); -lean_inc(x_73); -lean_dec(x_72); -x_74 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop(x_4, x_5, x_6, x_7, x_8, x_67, x_3, x_10, x_11, x_12, x_13, x_14, x_15, x_73); -return x_74; +lean_object* x_75; lean_object* x_76; +x_75 = lean_ctor_get(x_74, 1); +lean_inc(x_75); +lean_dec(x_74); +x_76 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop(x_4, x_5, x_6, x_7, x_8, x_68, x_3, x_10, x_11, x_12, x_13, x_14, x_15, x_75); +return x_76; } else { -uint8_t x_75; -lean_dec(x_67); +uint8_t x_77; +lean_dec(x_68); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17196,69 +17599,103 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_75 = !lean_is_exclusive(x_72); -if (x_75 == 0) +x_77 = !lean_is_exclusive(x_74); +if (x_77 == 0) { -return x_72; +return x_74; } else { -lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_76 = lean_ctor_get(x_72, 0); -x_77 = lean_ctor_get(x_72, 1); -lean_inc(x_77); -lean_inc(x_76); -lean_dec(x_72); -x_78 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_78, 0, x_76); -lean_ctor_set(x_78, 1, x_77); -return x_78; +lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_78 = lean_ctor_get(x_74, 0); +x_79 = lean_ctor_get(x_74, 1); +lean_inc(x_79); +lean_inc(x_78); +lean_dec(x_74); +x_80 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_80, 0, x_78); +lean_ctor_set(x_80, 1, x_79); +return x_80; +} +} +} +else +{ +uint8_t x_81; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_81 = !lean_is_exclusive(x_67); +if (x_81 == 0) +{ +return x_67; +} +else +{ +lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_82 = lean_ctor_get(x_67, 0); +x_83 = lean_ctor_get(x_67, 1); +lean_inc(x_83); +lean_inc(x_82); +lean_dec(x_67); +x_84 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_84, 0, x_82); +lean_ctor_set(x_84, 1, x_83); +return x_84; } } } case 2: { -lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; uint8_t x_84; -x_79 = lean_ctor_get(x_18, 1); -lean_inc(x_79); +lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; uint8_t x_90; +x_85 = lean_ctor_get(x_18, 1); +lean_inc(x_85); lean_dec(x_18); -x_80 = lean_ctor_get(x_19, 0); -lean_inc(x_80); +x_86 = lean_ctor_get(x_19, 0); +lean_inc(x_86); lean_dec(x_19); -x_81 = lean_ctor_get(x_20, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_20, 1); -lean_inc(x_82); -x_83 = lean_ctor_get(x_20, 2); -lean_inc(x_83); +x_87 = lean_ctor_get(x_20, 0); +lean_inc(x_87); +x_88 = lean_ctor_get(x_20, 1); +lean_inc(x_88); +x_89 = lean_ctor_get(x_20, 2); +lean_inc(x_89); lean_dec(x_20); -x_84 = lean_name_eq(x_81, x_82); -if (x_84 == 0) +x_90 = lean_name_eq(x_87, x_88); +if (x_90 == 0) { -lean_object* x_85; +lean_object* x_91; lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -x_85 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkBaseProjections(x_81, x_82, x_80, x_10, x_11, x_12, x_13, x_14, x_15, x_79); -if (lean_obj_tag(x_85) == 0) +x_91 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkBaseProjections(x_87, x_88, x_86, x_10, x_11, x_12, x_13, x_14, x_15, x_85); +if (lean_obj_tag(x_91) == 0) { -lean_object* x_86; lean_object* x_87; lean_object* x_88; -x_86 = lean_ctor_get(x_85, 0); -lean_inc(x_86); -x_87 = lean_ctor_get(x_85, 1); -lean_inc(x_87); -lean_dec(x_85); -x_88 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__2(x_83, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_81, x_86, x_10, x_11, x_12, x_13, x_14, x_15, x_87); -return x_88; +lean_object* x_92; lean_object* x_93; lean_object* x_94; +x_92 = lean_ctor_get(x_91, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_91, 1); +lean_inc(x_93); +lean_dec(x_91); +x_94 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__2(x_89, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_87, x_92, x_10, x_11, x_12, x_13, x_14, x_15, x_93); +return x_94; } else { -uint8_t x_89; -lean_dec(x_83); -lean_dec(x_81); +uint8_t x_95; +lean_dec(x_89); +lean_dec(x_87); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17270,101 +17707,101 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_89 = !lean_is_exclusive(x_85); -if (x_89 == 0) +x_95 = !lean_is_exclusive(x_91); +if (x_95 == 0) { -return x_85; +return x_91; } else { -lean_object* x_90; lean_object* x_91; lean_object* x_92; -x_90 = lean_ctor_get(x_85, 0); -x_91 = lean_ctor_get(x_85, 1); -lean_inc(x_91); -lean_inc(x_90); -lean_dec(x_85); -x_92 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_92, 0, x_90); -lean_ctor_set(x_92, 1, x_91); -return x_92; +lean_object* x_96; lean_object* x_97; lean_object* x_98; +x_96 = lean_ctor_get(x_91, 0); +x_97 = lean_ctor_get(x_91, 1); +lean_inc(x_97); +lean_inc(x_96); +lean_dec(x_91); +x_98 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_98, 0, x_96); +lean_ctor_set(x_98, 1, x_97); +return x_98; } } } else { -lean_object* x_93; -lean_dec(x_82); -x_93 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__2(x_83, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_81, x_80, x_10, x_11, x_12, x_13, x_14, x_15, x_79); -return x_93; +lean_object* x_99; +lean_dec(x_88); +x_99 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__2(x_89, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_87, x_86, x_10, x_11, x_12, x_13, x_14, x_15, x_85); +return x_99; } } case 3: { -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; uint8_t x_102; lean_object* x_103; -x_94 = lean_ctor_get(x_18, 1); -lean_inc(x_94); +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; uint8_t x_108; lean_object* x_109; +x_100 = lean_ctor_get(x_18, 1); +lean_inc(x_100); lean_dec(x_18); -x_95 = lean_ctor_get(x_19, 0); -lean_inc(x_95); +x_101 = lean_ctor_get(x_19, 0); +lean_inc(x_101); lean_dec(x_19); -x_96 = lean_ctor_get(x_20, 0); -lean_inc(x_96); -x_97 = lean_ctor_get(x_20, 1); -lean_inc(x_97); -x_98 = lean_ctor_get(x_20, 2); -lean_inc(x_98); -lean_dec(x_20); -x_99 = l_Lean_Elab_Term_LVal_getRef(x_2); -lean_dec(x_2); -x_100 = lean_box(0); -x_101 = lean_box(0); -x_102 = 0; -lean_inc(x_15); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_98); -x_103 = l_Lean_Elab_Term_addTermInfo(x_99, x_98, x_100, x_100, x_101, x_102, x_10, x_11, x_12, x_13, x_14, x_15, x_94); -if (lean_obj_tag(x_103) == 0) -{ -lean_object* x_104; uint8_t x_105; -x_104 = lean_ctor_get(x_103, 1); +x_102 = lean_ctor_get(x_20, 0); +lean_inc(x_102); +x_103 = lean_ctor_get(x_20, 1); +lean_inc(x_103); +x_104 = lean_ctor_get(x_20, 2); lean_inc(x_104); -lean_dec(x_103); -x_105 = l_List_isEmpty___rarg(x_3); -if (x_105 == 0) -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; -lean_dec(x_97); -lean_dec(x_96); -x_106 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_106, 0, x_95); -x_107 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_processExplictArg___closed__8; -x_108 = lean_array_push(x_107, x_106); -x_109 = l_Lean_Elab_Term_ElabAppArgs_State_etaArgs___default___closed__1; +lean_dec(x_20); +x_105 = l_Lean_Elab_Term_LVal_getRef(x_2); +lean_dec(x_2); +x_106 = lean_box(0); +x_107 = lean_box(0); +x_108 = 0; lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -x_110 = l_Lean_Elab_Term_elabAppArgs(x_98, x_109, x_108, x_100, x_102, x_102, x_10, x_11, x_12, x_13, x_14, x_15, x_104); -if (lean_obj_tag(x_110) == 0) +lean_inc(x_104); +x_109 = l_Lean_Elab_Term_addTermInfo(x_105, x_104, x_106, x_106, x_107, x_108, x_10, x_11, x_12, x_13, x_14, x_15, x_100); +if (lean_obj_tag(x_109) == 0) { -lean_object* x_111; lean_object* x_112; lean_object* x_113; -x_111 = lean_ctor_get(x_110, 0); -lean_inc(x_111); -x_112 = lean_ctor_get(x_110, 1); -lean_inc(x_112); -lean_dec(x_110); -x_113 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop(x_4, x_5, x_6, x_7, x_8, x_111, x_3, x_10, x_11, x_12, x_13, x_14, x_15, x_112); -return x_113; +lean_object* x_110; uint8_t x_111; +x_110 = lean_ctor_get(x_109, 1); +lean_inc(x_110); +lean_dec(x_109); +x_111 = l_List_isEmpty___rarg(x_3); +if (x_111 == 0) +{ +lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; +lean_dec(x_103); +lean_dec(x_102); +x_112 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_112, 0, x_101); +x_113 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_processExplictArg___closed__8; +x_114 = lean_array_push(x_113, x_112); +x_115 = l_Lean_Elab_Term_ElabAppArgs_State_etaArgs___default___closed__1; +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +x_116 = l_Lean_Elab_Term_elabAppArgs(x_104, x_115, x_114, x_106, x_108, x_108, x_10, x_11, x_12, x_13, x_14, x_15, x_110); +if (lean_obj_tag(x_116) == 0) +{ +lean_object* x_117; lean_object* x_118; lean_object* x_119; +x_117 = lean_ctor_get(x_116, 0); +lean_inc(x_117); +x_118 = lean_ctor_get(x_116, 1); +lean_inc(x_118); +lean_dec(x_116); +x_119 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop(x_4, x_5, x_6, x_7, x_8, x_117, x_3, x_10, x_11, x_12, x_13, x_14, x_15, x_118); +return x_119; } else { -uint8_t x_114; +uint8_t x_120; lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17375,71 +17812,71 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_114 = !lean_is_exclusive(x_110); -if (x_114 == 0) +x_120 = !lean_is_exclusive(x_116); +if (x_120 == 0) { -return x_110; +return x_116; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_110, 0); -x_116 = lean_ctor_get(x_110, 1); -lean_inc(x_116); -lean_inc(x_115); -lean_dec(x_110); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; -} -} -} -else -{ -lean_object* x_118; -lean_dec(x_3); -lean_inc(x_15); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_98); -x_118 = lean_infer_type(x_98, x_12, x_13, x_14, x_15, x_104); -if (lean_obj_tag(x_118) == 0) -{ -lean_object* x_119; lean_object* x_120; lean_object* x_121; -x_119 = lean_ctor_get(x_118, 0); -lean_inc(x_119); -x_120 = lean_ctor_get(x_118, 1); -lean_inc(x_120); -lean_dec(x_118); -lean_inc(x_15); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -x_121 = l___private_Lean_Elab_App_0__Lean_Elab_Term_addLValArg(x_96, x_97, x_95, x_5, x_4, x_119, x_10, x_11, x_12, x_13, x_14, x_15, x_120); -if (lean_obj_tag(x_121) == 0) -{ -lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; -x_122 = lean_ctor_get(x_121, 0); +lean_object* x_121; lean_object* x_122; lean_object* x_123; +x_121 = lean_ctor_get(x_116, 0); +x_122 = lean_ctor_get(x_116, 1); lean_inc(x_122); -x_123 = lean_ctor_get(x_121, 1); -lean_inc(x_123); -lean_dec(x_121); -x_124 = lean_ctor_get(x_122, 0); -lean_inc(x_124); -x_125 = lean_ctor_get(x_122, 1); -lean_inc(x_125); -lean_dec(x_122); -x_126 = l_Lean_Elab_Term_elabAppArgs(x_98, x_125, x_124, x_6, x_7, x_8, x_10, x_11, x_12, x_13, x_14, x_15, x_123); -return x_126; +lean_inc(x_121); +lean_dec(x_116); +x_123 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_123, 0, x_121); +lean_ctor_set(x_123, 1, x_122); +return x_123; +} +} } else { -uint8_t x_127; -lean_dec(x_98); +lean_object* x_124; +lean_dec(x_3); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_104); +x_124 = lean_infer_type(x_104, x_12, x_13, x_14, x_15, x_110); +if (lean_obj_tag(x_124) == 0) +{ +lean_object* x_125; lean_object* x_126; lean_object* x_127; +x_125 = lean_ctor_get(x_124, 0); +lean_inc(x_125); +x_126 = lean_ctor_get(x_124, 1); +lean_inc(x_126); +lean_dec(x_124); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +x_127 = l___private_Lean_Elab_App_0__Lean_Elab_Term_addLValArg(x_102, x_103, x_101, x_5, x_4, x_125, x_10, x_11, x_12, x_13, x_14, x_15, x_126); +if (lean_obj_tag(x_127) == 0) +{ +lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; +x_128 = lean_ctor_get(x_127, 0); +lean_inc(x_128); +x_129 = lean_ctor_get(x_127, 1); +lean_inc(x_129); +lean_dec(x_127); +x_130 = lean_ctor_get(x_128, 0); +lean_inc(x_130); +x_131 = lean_ctor_get(x_128, 1); +lean_inc(x_131); +lean_dec(x_128); +x_132 = l_Lean_Elab_Term_elabAppArgs(x_104, x_131, x_130, x_6, x_7, x_8, x_10, x_11, x_12, x_13, x_14, x_15, x_129); +return x_132; +} +else +{ +uint8_t x_133; +lean_dec(x_104); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17447,33 +17884,33 @@ lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); lean_dec(x_6); -x_127 = !lean_is_exclusive(x_121); -if (x_127 == 0) +x_133 = !lean_is_exclusive(x_127); +if (x_133 == 0) { -return x_121; +return x_127; } else { -lean_object* x_128; lean_object* x_129; lean_object* x_130; -x_128 = lean_ctor_get(x_121, 0); -x_129 = lean_ctor_get(x_121, 1); -lean_inc(x_129); -lean_inc(x_128); -lean_dec(x_121); -x_130 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_130, 0, x_128); -lean_ctor_set(x_130, 1, x_129); -return x_130; +lean_object* x_134; lean_object* x_135; lean_object* x_136; +x_134 = lean_ctor_get(x_127, 0); +x_135 = lean_ctor_get(x_127, 1); +lean_inc(x_135); +lean_inc(x_134); +lean_dec(x_127); +x_136 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_136, 0, x_134); +lean_ctor_set(x_136, 1, x_135); +return x_136; } } } else { -uint8_t x_131; -lean_dec(x_98); -lean_dec(x_97); -lean_dec(x_96); -lean_dec(x_95); +uint8_t x_137; +lean_dec(x_104); +lean_dec(x_103); +lean_dec(x_102); +lean_dec(x_101); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17483,34 +17920,34 @@ lean_dec(x_10); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -x_131 = !lean_is_exclusive(x_118); -if (x_131 == 0) +x_137 = !lean_is_exclusive(x_124); +if (x_137 == 0) { -return x_118; +return x_124; } else { -lean_object* x_132; lean_object* x_133; lean_object* x_134; -x_132 = lean_ctor_get(x_118, 0); -x_133 = lean_ctor_get(x_118, 1); -lean_inc(x_133); -lean_inc(x_132); -lean_dec(x_118); -x_134 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_134, 0, x_132); -lean_ctor_set(x_134, 1, x_133); -return x_134; +lean_object* x_138; lean_object* x_139; lean_object* x_140; +x_138 = lean_ctor_get(x_124, 0); +x_139 = lean_ctor_get(x_124, 1); +lean_inc(x_139); +lean_inc(x_138); +lean_dec(x_124); +x_140 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_140, 0, x_138); +lean_ctor_set(x_140, 1, x_139); +return x_140; } } } } else { -uint8_t x_135; -lean_dec(x_98); -lean_dec(x_97); -lean_dec(x_96); -lean_dec(x_95); +uint8_t x_141; +lean_dec(x_104); +lean_dec(x_103); +lean_dec(x_102); +lean_dec(x_101); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17521,118 +17958,118 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_135 = !lean_is_exclusive(x_103); -if (x_135 == 0) +x_141 = !lean_is_exclusive(x_109); +if (x_141 == 0) { -return x_103; +return x_109; } else { -lean_object* x_136; lean_object* x_137; lean_object* x_138; -x_136 = lean_ctor_get(x_103, 0); -x_137 = lean_ctor_get(x_103, 1); -lean_inc(x_137); -lean_inc(x_136); -lean_dec(x_103); -x_138 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_138, 0, x_136); -lean_ctor_set(x_138, 1, x_137); -return x_138; +lean_object* x_142; lean_object* x_143; lean_object* x_144; +x_142 = lean_ctor_get(x_109, 0); +x_143 = lean_ctor_get(x_109, 1); +lean_inc(x_143); +lean_inc(x_142); +lean_dec(x_109); +x_144 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_144, 0, x_142); +lean_ctor_set(x_144, 1, x_143); +return x_144; } } } default: { -lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; -x_139 = lean_ctor_get(x_18, 1); -lean_inc(x_139); +lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; +x_145 = lean_ctor_get(x_18, 1); +lean_inc(x_145); lean_dec(x_18); -x_140 = lean_ctor_get(x_19, 0); -lean_inc(x_140); -lean_dec(x_19); -x_141 = lean_ctor_get(x_20, 0); -lean_inc(x_141); -x_142 = lean_ctor_get(x_20, 1); -lean_inc(x_142); -lean_dec(x_20); -x_143 = lean_box(0); -lean_inc(x_15); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_10); -x_144 = l_Lean_Elab_Term_mkConst(x_141, x_143, x_10, x_11, x_12, x_13, x_14, x_15, x_139); -if (lean_obj_tag(x_144) == 0) -{ -lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; uint8_t x_150; lean_object* x_151; -x_145 = lean_ctor_get(x_144, 0); -lean_inc(x_145); -x_146 = lean_ctor_get(x_144, 1); +x_146 = lean_ctor_get(x_19, 0); lean_inc(x_146); -lean_dec(x_144); -x_147 = l_Lean_Elab_Term_LVal_getRef(x_2); -lean_dec(x_2); -x_148 = lean_box(0); +lean_dec(x_19); +x_147 = lean_ctor_get(x_20, 0); +lean_inc(x_147); +x_148 = lean_ctor_get(x_20, 1); +lean_inc(x_148); +lean_dec(x_20); x_149 = lean_box(0); -x_150 = 0; lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); -lean_inc(x_11); lean_inc(x_10); -lean_inc(x_145); -x_151 = l_Lean_Elab_Term_addTermInfo(x_147, x_145, x_148, x_148, x_149, x_150, x_10, x_11, x_12, x_13, x_14, x_15, x_146); -if (lean_obj_tag(x_151) == 0) +x_150 = l_Lean_Elab_Term_mkConst(x_147, x_149, x_10, x_11, x_12, x_13, x_14, x_15, x_145); +if (lean_obj_tag(x_150) == 0) { -lean_object* x_152; uint8_t x_153; -x_152 = lean_ctor_get(x_151, 1); +lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; uint8_t x_156; lean_object* x_157; +x_151 = lean_ctor_get(x_150, 0); +lean_inc(x_151); +x_152 = lean_ctor_get(x_150, 1); lean_inc(x_152); -lean_dec(x_151); -x_153 = l_List_isEmpty___rarg(x_3); -if (x_153 == 0) -{ -lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; -x_154 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_154, 0, x_140); +lean_dec(x_150); +x_153 = l_Lean_Elab_Term_LVal_getRef(x_2); +lean_dec(x_2); +x_154 = lean_box(0); x_155 = lean_box(0); -x_156 = l_List_forIn_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_mkBaseProjections___spec__1___closed__2; -x_157 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_157, 0, x_155); -lean_ctor_set(x_157, 1, x_156); -lean_ctor_set(x_157, 2, x_154); -x_158 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_158, 0, x_142); -x_159 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__12; -x_160 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_160, 0, x_155); -lean_ctor_set(x_160, 1, x_159); -lean_ctor_set(x_160, 2, x_158); -x_161 = l___private_Lean_Elab_App_0__Lean_Elab_Term_tryCoeFun_x3f___closed__3; -x_162 = lean_array_push(x_161, x_157); -x_163 = lean_array_push(x_162, x_160); -x_164 = l_Lean_Elab_Term_ElabAppArgs_State_etaArgs___default___closed__1; +x_156 = 0; lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -x_165 = l_Lean_Elab_Term_elabAppArgs(x_145, x_163, x_164, x_148, x_150, x_150, x_10, x_11, x_12, x_13, x_14, x_15, x_152); -if (lean_obj_tag(x_165) == 0) +lean_inc(x_151); +x_157 = l_Lean_Elab_Term_addTermInfo(x_153, x_151, x_154, x_154, x_155, x_156, x_10, x_11, x_12, x_13, x_14, x_15, x_152); +if (lean_obj_tag(x_157) == 0) { -lean_object* x_166; lean_object* x_167; lean_object* x_168; -x_166 = lean_ctor_get(x_165, 0); -lean_inc(x_166); -x_167 = lean_ctor_get(x_165, 1); -lean_inc(x_167); -lean_dec(x_165); -x_168 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop(x_4, x_5, x_6, x_7, x_8, x_166, x_3, x_10, x_11, x_12, x_13, x_14, x_15, x_167); -return x_168; +lean_object* x_158; uint8_t x_159; +x_158 = lean_ctor_get(x_157, 1); +lean_inc(x_158); +lean_dec(x_157); +x_159 = l_List_isEmpty___rarg(x_3); +if (x_159 == 0) +{ +lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; +x_160 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_160, 0, x_146); +x_161 = lean_box(0); +x_162 = l_List_forIn_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_mkBaseProjections___spec__1___closed__2; +x_163 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_163, 0, x_161); +lean_ctor_set(x_163, 1, x_162); +lean_ctor_set(x_163, 2, x_160); +x_164 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_164, 0, x_148); +x_165 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__12; +x_166 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_166, 0, x_161); +lean_ctor_set(x_166, 1, x_165); +lean_ctor_set(x_166, 2, x_164); +x_167 = l___private_Lean_Elab_App_0__Lean_Elab_Term_tryCoeFun_x3f___closed__3; +x_168 = lean_array_push(x_167, x_163); +x_169 = lean_array_push(x_168, x_166); +x_170 = l_Lean_Elab_Term_ElabAppArgs_State_etaArgs___default___closed__1; +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +x_171 = l_Lean_Elab_Term_elabAppArgs(x_151, x_169, x_170, x_154, x_156, x_156, x_10, x_11, x_12, x_13, x_14, x_15, x_158); +if (lean_obj_tag(x_171) == 0) +{ +lean_object* x_172; lean_object* x_173; lean_object* x_174; +x_172 = lean_ctor_get(x_171, 0); +lean_inc(x_172); +x_173 = lean_ctor_get(x_171, 1); +lean_inc(x_173); +lean_dec(x_171); +x_174 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop(x_4, x_5, x_6, x_7, x_8, x_172, x_3, x_10, x_11, x_12, x_13, x_14, x_15, x_173); +return x_174; } else { -uint8_t x_169; +uint8_t x_175; lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17643,82 +18080,82 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_169 = !lean_is_exclusive(x_165); -if (x_169 == 0) +x_175 = !lean_is_exclusive(x_171); +if (x_175 == 0) { -return x_165; +return x_171; } else { -lean_object* x_170; lean_object* x_171; lean_object* x_172; -x_170 = lean_ctor_get(x_165, 0); -x_171 = lean_ctor_get(x_165, 1); -lean_inc(x_171); -lean_inc(x_170); -lean_dec(x_165); -x_172 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_172, 0, x_170); -lean_ctor_set(x_172, 1, x_171); -return x_172; +lean_object* x_176; lean_object* x_177; lean_object* x_178; +x_176 = lean_ctor_get(x_171, 0); +x_177 = lean_ctor_get(x_171, 1); +lean_inc(x_177); +lean_inc(x_176); +lean_dec(x_171); +x_178 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_178, 0, x_176); +lean_ctor_set(x_178, 1, x_177); +return x_178; } } } else { -lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; +lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_dec(x_3); -x_173 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_173, 0, x_140); -x_174 = lean_box(0); -x_175 = l_List_forIn_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_mkBaseProjections___spec__1___closed__2; -x_176 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_176, 0, x_174); -lean_ctor_set(x_176, 1, x_175); -lean_ctor_set(x_176, 2, x_173); -lean_inc(x_15); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -x_177 = l_Lean_Elab_Term_addNamedArg(x_4, x_176, x_10, x_11, x_12, x_13, x_14, x_15, x_152); -if (lean_obj_tag(x_177) == 0) -{ -lean_object* x_178; lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; -x_178 = lean_ctor_get(x_177, 0); -lean_inc(x_178); -x_179 = lean_ctor_get(x_177, 1); -lean_inc(x_179); -lean_dec(x_177); -x_180 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_180, 0, x_142); -x_181 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__12; +x_179 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_179, 0, x_146); +x_180 = lean_box(0); +x_181 = l_List_forIn_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_mkBaseProjections___spec__1___closed__2; x_182 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_182, 0, x_174); +lean_ctor_set(x_182, 0, x_180); lean_ctor_set(x_182, 1, x_181); -lean_ctor_set(x_182, 2, x_180); +lean_ctor_set(x_182, 2, x_179); lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -x_183 = l_Lean_Elab_Term_addNamedArg(x_178, x_182, x_10, x_11, x_12, x_13, x_14, x_15, x_179); +x_183 = l_Lean_Elab_Term_addNamedArg(x_4, x_182, x_10, x_11, x_12, x_13, x_14, x_15, x_158); if (lean_obj_tag(x_183) == 0) { -lean_object* x_184; lean_object* x_185; lean_object* x_186; +lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; x_184 = lean_ctor_get(x_183, 0); lean_inc(x_184); x_185 = lean_ctor_get(x_183, 1); lean_inc(x_185); lean_dec(x_183); -x_186 = l_Lean_Elab_Term_elabAppArgs(x_145, x_184, x_5, x_6, x_7, x_8, x_10, x_11, x_12, x_13, x_14, x_15, x_185); -return x_186; +x_186 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_186, 0, x_148); +x_187 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__12; +x_188 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_188, 0, x_180); +lean_ctor_set(x_188, 1, x_187); +lean_ctor_set(x_188, 2, x_186); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +x_189 = l_Lean_Elab_Term_addNamedArg(x_184, x_188, x_10, x_11, x_12, x_13, x_14, x_15, x_185); +if (lean_obj_tag(x_189) == 0) +{ +lean_object* x_190; lean_object* x_191; lean_object* x_192; +x_190 = lean_ctor_get(x_189, 0); +lean_inc(x_190); +x_191 = lean_ctor_get(x_189, 1); +lean_inc(x_191); +lean_dec(x_189); +x_192 = l_Lean_Elab_Term_elabAppArgs(x_151, x_190, x_5, x_6, x_7, x_8, x_10, x_11, x_12, x_13, x_14, x_15, x_191); +return x_192; } else { -uint8_t x_187; -lean_dec(x_145); +uint8_t x_193; +lean_dec(x_151); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17727,101 +18164,101 @@ lean_dec(x_11); lean_dec(x_10); lean_dec(x_6); lean_dec(x_5); -x_187 = !lean_is_exclusive(x_183); -if (x_187 == 0) +x_193 = !lean_is_exclusive(x_189); +if (x_193 == 0) +{ +return x_189; +} +else +{ +lean_object* x_194; lean_object* x_195; lean_object* x_196; +x_194 = lean_ctor_get(x_189, 0); +x_195 = lean_ctor_get(x_189, 1); +lean_inc(x_195); +lean_inc(x_194); +lean_dec(x_189); +x_196 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_196, 0, x_194); +lean_ctor_set(x_196, 1, x_195); +return x_196; +} +} +} +else +{ +uint8_t x_197; +lean_dec(x_151); +lean_dec(x_148); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_6); +lean_dec(x_5); +x_197 = !lean_is_exclusive(x_183); +if (x_197 == 0) { return x_183; } else { -lean_object* x_188; lean_object* x_189; lean_object* x_190; -x_188 = lean_ctor_get(x_183, 0); -x_189 = lean_ctor_get(x_183, 1); -lean_inc(x_189); -lean_inc(x_188); +lean_object* x_198; lean_object* x_199; lean_object* x_200; +x_198 = lean_ctor_get(x_183, 0); +x_199 = lean_ctor_get(x_183, 1); +lean_inc(x_199); +lean_inc(x_198); lean_dec(x_183); -x_190 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_190, 0, x_188); -lean_ctor_set(x_190, 1, x_189); -return x_190; -} -} -} -else -{ -uint8_t x_191; -lean_dec(x_145); -lean_dec(x_142); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_6); -lean_dec(x_5); -x_191 = !lean_is_exclusive(x_177); -if (x_191 == 0) -{ -return x_177; -} -else -{ -lean_object* x_192; lean_object* x_193; lean_object* x_194; -x_192 = lean_ctor_get(x_177, 0); -x_193 = lean_ctor_get(x_177, 1); -lean_inc(x_193); -lean_inc(x_192); -lean_dec(x_177); -x_194 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_194, 0, x_192); -lean_ctor_set(x_194, 1, x_193); -return x_194; +x_200 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_200, 0, x_198); +lean_ctor_set(x_200, 1, x_199); +return x_200; } } } } else { -uint8_t x_195; -lean_dec(x_145); -lean_dec(x_142); -lean_dec(x_140); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_195 = !lean_is_exclusive(x_151); -if (x_195 == 0) -{ -return x_151; -} -else -{ -lean_object* x_196; lean_object* x_197; lean_object* x_198; -x_196 = lean_ctor_get(x_151, 0); -x_197 = lean_ctor_get(x_151, 1); -lean_inc(x_197); -lean_inc(x_196); +uint8_t x_201; lean_dec(x_151); -x_198 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_198, 0, x_196); -lean_ctor_set(x_198, 1, x_197); -return x_198; +lean_dec(x_148); +lean_dec(x_146); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_201 = !lean_is_exclusive(x_157); +if (x_201 == 0) +{ +return x_157; +} +else +{ +lean_object* x_202; lean_object* x_203; lean_object* x_204; +x_202 = lean_ctor_get(x_157, 0); +x_203 = lean_ctor_get(x_157, 1); +lean_inc(x_203); +lean_inc(x_202); +lean_dec(x_157); +x_204 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_204, 0, x_202); +lean_ctor_set(x_204, 1, x_203); +return x_204; } } } else { -uint8_t x_199; -lean_dec(x_142); -lean_dec(x_140); +uint8_t x_205; +lean_dec(x_148); +lean_dec(x_146); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17833,23 +18270,23 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_199 = !lean_is_exclusive(x_144); -if (x_199 == 0) +x_205 = !lean_is_exclusive(x_150); +if (x_205 == 0) { -return x_144; +return x_150; } else { -lean_object* x_200; lean_object* x_201; lean_object* x_202; -x_200 = lean_ctor_get(x_144, 0); -x_201 = lean_ctor_get(x_144, 1); -lean_inc(x_201); -lean_inc(x_200); -lean_dec(x_144); -x_202 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_202, 0, x_200); -lean_ctor_set(x_202, 1, x_201); -return x_202; +lean_object* x_206; lean_object* x_207; lean_object* x_208; +x_206 = lean_ctor_get(x_150, 0); +x_207 = lean_ctor_get(x_150, 1); +lean_inc(x_207); +lean_inc(x_206); +lean_dec(x_150); +x_208 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_208, 0, x_206); +lean_ctor_set(x_208, 1, x_207); +return x_208; } } } @@ -17857,7 +18294,7 @@ return x_202; } else { -uint8_t x_203; +uint8_t x_209; lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -17869,23 +18306,23 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_203 = !lean_is_exclusive(x_18); -if (x_203 == 0) +x_209 = !lean_is_exclusive(x_18); +if (x_209 == 0) { return x_18; } else { -lean_object* x_204; lean_object* x_205; lean_object* x_206; -x_204 = lean_ctor_get(x_18, 0); -x_205 = lean_ctor_get(x_18, 1); -lean_inc(x_205); -lean_inc(x_204); +lean_object* x_210; lean_object* x_211; lean_object* x_212; +x_210 = lean_ctor_get(x_18, 0); +x_211 = lean_ctor_get(x_18, 1); +lean_inc(x_211); +lean_inc(x_210); lean_dec(x_18); -x_206 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_206, 0, x_204); -lean_ctor_set(x_206, 1, x_205); -return x_206; +x_212 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_212, 0, x_210); +lean_ctor_set(x_212, 1, x_211); +return x_212; } } } @@ -23896,7 +24333,7 @@ x_22 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_22, 0, x_21); x_23 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_23, 0, x_22); -x_24 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_24 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_25 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_25, 0, x_24); lean_ctor_set(x_25, 1, x_23); @@ -23982,7 +24419,7 @@ x_52 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_52, 0, x_51); x_53 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_53, 0, x_52); -x_54 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_54 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_55 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_55, 0, x_54); lean_ctor_set(x_55, 1, x_53); @@ -24120,7 +24557,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; x_1 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__1; x_2 = l_Array_mapMUnsafe_map___at___private_Lean_Elab_App_0__Lean_Elab_Term_mergeFailures___spec__2___closed__1; -x_3 = lean_unsigned_to_nat(890u); +x_3 = lean_unsigned_to_nat(899u); x_4 = lean_unsigned_to_nat(35u); x_5 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -24334,7 +24771,7 @@ x_16 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mergeFailures___rarg___closed x_17 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_17, 0, x_16); lean_ctor_set(x_17, 1, x_15); -x_18 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_18 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_19 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_19, 0, x_17); lean_ctor_set(x_19, 1, x_18); @@ -24432,7 +24869,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; x_1 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__1; x_2 = l_Array_mapMUnsafe_map___at___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppAux___spec__2___closed__1; -x_3 = lean_unsigned_to_nat(907u); +x_3 = lean_unsigned_to_nat(916u); x_4 = lean_unsigned_to_nat(35u); x_5 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppLValsAux_loop___lambda__3___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -24697,7 +25134,7 @@ x_47 = l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppAux___closed__2; x_48 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_48, 0, x_47); lean_ctor_set(x_48, 1, x_46); -x_49 = l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6; +x_49 = l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8; x_50 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_50, 0, x_48); lean_ctor_set(x_50, 1, x_49); @@ -26944,7 +27381,7 @@ x_4 = l_Lean_addBuiltinDeclarationRanges(x_2, x_3, x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_App___hyg_11892_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Elab_Term_initFn____x40_Lean_Elab_App___hyg_12092_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; @@ -27027,6 +27464,22 @@ l_Lean_Elab_Term_throwInvalidNamedArg___rarg___closed__7 = _init_l_Lean_Elab_Ter lean_mark_persistent(l_Lean_Elab_Term_throwInvalidNamedArg___rarg___closed__7); l_Lean_Elab_Term_throwInvalidNamedArg___rarg___closed__8 = _init_l_Lean_Elab_Term_throwInvalidNamedArg___rarg___closed__8(); lean_mark_persistent(l_Lean_Elab_Term_throwInvalidNamedArg___rarg___closed__8); +l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__1 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__1(); +lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__1); +l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__2 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__2(); +lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__2); +l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__3 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__3(); +lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__3); +l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__4 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__4(); +lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__4); +l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__5 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__5(); +lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__5); +l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__6 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__6(); +lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__6); +l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__7 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__7(); +lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__7); +l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8(); +lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_mkProjAndCheck___closed__8); l___private_Lean_Elab_App_0__Lean_Elab_Term_tryCoeFun_x3f___closed__1 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_tryCoeFun_x3f___closed__1(); lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_tryCoeFun_x3f___closed__1); l___private_Lean_Elab_App_0__Lean_Elab_Term_tryCoeFun_x3f___closed__2 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_tryCoeFun_x3f___closed__2(); @@ -27056,10 +27509,6 @@ l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNorm lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__3); l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__4 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__4(); lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__4); -l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__5 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__5(); -lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__5); -l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6(); -lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_synthesizePendingAndNormalizeFunType___closed__6); l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_hasOptAutoParams___closed__1 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_hasOptAutoParams___closed__1(); lean_mark_persistent(l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_hasOptAutoParams___closed__1); l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_shouldPropagateExpectedTypeFor___closed__1 = _init_l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_shouldPropagateExpectedTypeFor___closed__1(); @@ -27680,7 +28129,7 @@ lean_mark_persistent(l___regBuiltin_Lean_Elab_Term_elabArrayRef_declRange___clos res = l___regBuiltin_Lean_Elab_Term_elabArrayRef_declRange(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -res = l_Lean_Elab_Term_initFn____x40_Lean_Elab_App___hyg_11892_(lean_io_mk_world()); +res = l_Lean_Elab_Term_initFn____x40_Lean_Elab_App___hyg_12092_(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)); diff --git a/stage0/stdlib/Lean/Meta/Injective.c b/stage0/stdlib/Lean/Meta/Injective.c index 61f3939eb2..226c8bff1a 100644 --- a/stage0/stdlib/Lean/Meta/Injective.c +++ b/stage0/stdlib/Lean/Meta/Injective.c @@ -19,9 +19,7 @@ static lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Meta_Injecti size_t lean_usize_add(size_t, size_t); lean_object* l_Lean_Expr_mvarId_x21(lean_object*); static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__4; -static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4; lean_object* l_Lean_stringToMessageData(lean_object*); -static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3; lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_addDecl___at_Lean_Meta_mkAuxLemma___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); @@ -43,6 +41,7 @@ LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Meta_In LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveTheorems(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Meta_mkInjectiveTheorems___closed__1; lean_object* lean_st_ref_get(lean_object*, lean_object*); +static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2; static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_solveEqOfCtorEq___closed__4; LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___lambda__1(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_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -64,9 +63,9 @@ static lean_object* l_Lean_Meta_elimOptParam___lambda__1___closed__1; LEAN_EXPORT lean_object* l_Lean_Meta_withNewBinderInfos___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__3(lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___rarg___closed__2; -static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1; static lean_object* l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__1; lean_object* lean_nat_add(lean_object*, lean_object*); +static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6; LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_apply(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_elimOptParam___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -79,24 +78,22 @@ lean_object* l_Lean_Meta_intro1Core(lean_object*, uint8_t, lean_object*, lean_ob static lean_object* l_Lean_Meta_mkInjectiveTheoremNameFor___closed__2; lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_withNewBinderInfosImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); -static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2; -static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2; +static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4; lean_object* l_Lean_Meta_applyRefl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__2; +static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2; static lean_object* l_Lean_Meta_mkInjectiveTheoremNameFor___closed__1; LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveEqTheoremNameFor(lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveEqTheoremNameFor___boxed(lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkAnd_x3f(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Meta_simpExtension; lean_object* l_Lean_Option_register___at_Std_Format_initFn____x40_Lean_Data_Format___hyg_54____spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_mkLambdaFVars(lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_fvarId_x21(lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3; -static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5; static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__3; -static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6; uint8_t l_Lean_Option_get___at_Lean_ppExpr___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__2___boxed(lean_object*, lean_object*, lean_object*); @@ -109,6 +106,7 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiv uint8_t l_Lean_Expr_isAppOfArity(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_instInhabitedExpr; +static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7; lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_reverse___rarg(lean_object*); uint8_t l_Array_isEmpty___rarg(lean_object*); @@ -118,26 +116,29 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_injTheorem lean_object* lean_whnf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure(lean_object*); lean_object* l_Lean_Meta_saturate(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5; size_t lean_usize_of_nat(lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__2(size_t, size_t, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_withNewBinderInfos___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__3___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_forM___at___private_Lean_Meta_Injective_0__Lean_Meta_solveEqOfCtorEq___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__1___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_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3; LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Meta_Injective_0__Lean_Meta_mkAnd_x3f___spec__1(lean_object*, size_t, size_t, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_forallTelescope___at___private_Lean_Meta_InferType_0__Lean_Meta_inferForallType___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveTheoremNameFor(lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1; lean_object* l_Lean_Meta_substEqs(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); lean_object* l_Lean_Meta_assumptionCore(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716_(lean_object*); uint8_t lean_expr_eqv(lean_object*, lean_object*); lean_object* l_Lean_throwError___at_Lean_Meta_abstractRange___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveTheoremNameFor___boxed(lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheorem(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7; lean_object* l_Lean_Name_append(lean_object*, lean_object*); lean_object* l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_SynthInstance_0__Lean_Meta_SynthInstance_removeUnusedArguments_x3f___spec__2___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_forallBoundedTelescope___at_Lean_Meta_addPPExplicitToExposeDiff_visit___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -145,6 +146,7 @@ LEAN_EXPORT lean_object* l_panic___at___private_Lean_Meta_Injective_0__Lean_Meta LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___lambda__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* l_List_mapTRAux___at_Lean_mkConstWithLevelParams___spec__1(lean_object*, lean_object*); static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___lambda__2___closed__1; +static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4; LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_solveEqOfCtorEq___closed__3; @@ -164,6 +166,7 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiv static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__2; LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_mkHEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3; LEAN_EXPORT lean_object* l_Lean_Meta_elimOptParam___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_mkFreshExprSyntheticOpaqueMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_injection(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -173,8 +176,6 @@ uint8_t l_Lean_Expr_occurs(lean_object*, lean_object*); lean_object* l_Lean_Meta_mkEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkAppB(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isProp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4; -static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1; lean_object* l_Lean_mkConst(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Meta_elimOptParam___closed__1; @@ -183,6 +184,7 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiv LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_instInhabitedMetaM___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_solveEqOfCtorEq___closed__5; +static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1; uint8_t lean_nat_dec_lt(lean_object*, lean_object*); static lean_object* _init_l_Subarray_forInUnsafe_loop___at___private_Lean_Meta_Injective_0__Lean_Meta_mkAnd_x3f___spec__1___closed__1() { _start: @@ -3549,7 +3551,17 @@ x_8 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3 return x_8; } } -static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1() { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +uint8_t x_9; uint8_t x_10; lean_object* x_11; +x_9 = 0; +x_10 = 1; +x_11 = l_Lean_Meta_mkLambdaFVars(x_1, x_2, x_9, x_10, x_4, x_5, x_6, x_7, x_8); +return x_11; +} +} +static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1() { _start: { lean_object* x_1; @@ -3557,17 +3569,17 @@ x_1 = lean_mk_string("Eq"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1; +x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3() { _start: { lean_object* x_1; @@ -3575,27 +3587,27 @@ x_1 = lean_mk_string("propIntro"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4() { +static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2; -x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3; +x_1 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2; +x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5() { +static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4; +x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4; x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6() { +static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6() { _start: { lean_object* x_1; @@ -3603,16 +3615,16 @@ x_1 = lean_mk_string("unexpected number of subgoals when proving injective theor return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7() { +static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6; +x_1 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6; x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___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* x_7, lean_object* x_8) { _start: { 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; @@ -3625,7 +3637,7 @@ x_12 = lean_ctor_get(x_10, 1); lean_inc(x_12); lean_dec(x_10); x_13 = l_Lean_Expr_mvarId_x21(x_11); -x_14 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5; +x_14 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); @@ -3646,7 +3658,7 @@ lean_inc(x_17); lean_dec(x_15); x_18 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_18, 0, x_1); -x_19 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7; +x_19 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7; x_20 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_20, 0, x_19); lean_ctor_set(x_20, 1, x_18); @@ -3677,7 +3689,7 @@ lean_inc(x_25); lean_dec(x_15); x_26 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_26, 0, x_1); -x_27 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7; +x_27 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7; x_28 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_28, 0, x_27); lean_ctor_set(x_28, 1, x_26); @@ -3776,60 +3788,51 @@ lean_inc(x_4); x_51 = l_Lean_Meta_substEqs(x_49, x_4, x_5, x_6, x_7, x_50); if (lean_obj_tag(x_51) == 0) { -lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; +lean_object* x_52; x_52 = lean_ctor_get(x_51, 0); lean_inc(x_52); +if (lean_obj_tag(x_52) == 0) +{ +lean_object* x_53; uint8_t x_54; lean_object* x_55; +lean_dec(x_1); x_53 = lean_ctor_get(x_51, 1); lean_inc(x_53); lean_dec(x_51); -x_54 = l___private_Lean_Meta_Injective_0__Lean_Meta_injTheoremFailureHeader(x_1); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_55 = l_Lean_Meta_applyRefl(x_52, x_54, x_4, x_5, x_6, x_7, x_53); -if (lean_obj_tag(x_55) == 0) -{ -lean_object* x_56; uint8_t x_57; lean_object* x_58; -x_56 = lean_ctor_get(x_55, 1); -lean_inc(x_56); -lean_dec(x_55); -x_57 = 1; -x_58 = l_Lean_Meta_mkLambdaFVars(x_2, x_11, x_36, x_57, x_4, x_5, x_6, x_7, x_56); +x_54 = 1; +x_55 = l_Lean_Meta_mkLambdaFVars(x_2, x_11, x_36, x_54, x_4, x_5, x_6, x_7, x_53); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -return x_58; -} -else -{ -uint8_t x_59; -lean_dec(x_11); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -x_59 = !lean_is_exclusive(x_55); -if (x_59 == 0) -{ return x_55; } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; -x_60 = lean_ctor_get(x_55, 0); -x_61 = lean_ctor_get(x_55, 1); -lean_inc(x_61); +lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_56 = lean_ctor_get(x_51, 1); +lean_inc(x_56); +lean_dec(x_51); +x_57 = lean_ctor_get(x_52, 0); +lean_inc(x_57); +lean_dec(x_52); +x_58 = l___private_Lean_Meta_Injective_0__Lean_Meta_injTheoremFailureHeader(x_1); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_59 = l_Lean_Meta_applyRefl(x_57, x_58, x_4, x_5, x_6, x_7, x_56); +if (lean_obj_tag(x_59) == 0) +{ +lean_object* x_60; uint8_t x_61; lean_object* x_62; +x_60 = lean_ctor_get(x_59, 1); lean_inc(x_60); -lean_dec(x_55); -x_62 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_62, 0, x_60); -lean_ctor_set(x_62, 1, x_61); +lean_dec(x_59); +x_61 = 1; +x_62 = l_Lean_Meta_mkLambdaFVars(x_2, x_11, x_36, x_61, x_4, x_5, x_6, x_7, x_60); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); return x_62; } -} -} else { uint8_t x_63; @@ -3839,20 +3842,19 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); -lean_dec(x_1); -x_63 = !lean_is_exclusive(x_51); +x_63 = !lean_is_exclusive(x_59); if (x_63 == 0) { -return x_51; +return x_59; } else { lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_64 = lean_ctor_get(x_51, 0); -x_65 = lean_ctor_get(x_51, 1); +x_64 = lean_ctor_get(x_59, 0); +x_65 = lean_ctor_get(x_59, 1); lean_inc(x_65); lean_inc(x_64); -lean_dec(x_51); +lean_dec(x_59); x_66 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_66, 0, x_64); lean_ctor_set(x_66, 1, x_65); @@ -3860,6 +3862,7 @@ return x_66; } } } +} else { uint8_t x_67; @@ -3870,19 +3873,19 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_67 = !lean_is_exclusive(x_48); +x_67 = !lean_is_exclusive(x_51); if (x_67 == 0) { -return x_48; +return x_51; } else { lean_object* x_68; lean_object* x_69; lean_object* x_70; -x_68 = lean_ctor_get(x_48, 0); -x_69 = lean_ctor_get(x_48, 1); +x_68 = lean_ctor_get(x_51, 0); +x_69 = lean_ctor_get(x_51, 1); lean_inc(x_69); lean_inc(x_68); -lean_dec(x_48); +lean_dec(x_51); x_70 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_70, 0, x_68); lean_ctor_set(x_70, 1, x_69); @@ -3893,7 +3896,6 @@ return x_70; else { uint8_t x_71; -lean_dec(x_45); lean_dec(x_11); lean_dec(x_7); lean_dec(x_6); @@ -3901,19 +3903,19 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_71 = !lean_is_exclusive(x_46); +x_71 = !lean_is_exclusive(x_48); if (x_71 == 0) { -return x_46; +return x_48; } else { lean_object* x_72; lean_object* x_73; lean_object* x_74; -x_72 = lean_ctor_get(x_46, 0); -x_73 = lean_ctor_get(x_46, 1); +x_72 = lean_ctor_get(x_48, 0); +x_73 = lean_ctor_get(x_48, 1); lean_inc(x_73); lean_inc(x_72); -lean_dec(x_46); +lean_dec(x_48); x_74 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_74, 0, x_72); lean_ctor_set(x_74, 1, x_73); @@ -3924,8 +3926,7 @@ return x_74; else { uint8_t x_75; -lean_dec(x_41); -lean_dec(x_40); +lean_dec(x_45); lean_dec(x_11); lean_dec(x_7); lean_dec(x_6); @@ -3933,19 +3934,19 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_75 = !lean_is_exclusive(x_42); +x_75 = !lean_is_exclusive(x_46); if (x_75 == 0) { -return x_42; +return x_46; } else { lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_76 = lean_ctor_get(x_42, 0); -x_77 = lean_ctor_get(x_42, 1); +x_76 = lean_ctor_get(x_46, 0); +x_77 = lean_ctor_get(x_46, 1); lean_inc(x_77); lean_inc(x_76); -lean_dec(x_42); +lean_dec(x_46); x_78 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_78, 0, x_76); lean_ctor_set(x_78, 1, x_77); @@ -3956,7 +3957,8 @@ return x_78; else { uint8_t x_79; -lean_dec(x_35); +lean_dec(x_41); +lean_dec(x_40); lean_dec(x_11); lean_dec(x_7); lean_dec(x_6); @@ -3964,19 +3966,19 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_79 = !lean_is_exclusive(x_37); +x_79 = !lean_is_exclusive(x_42); if (x_79 == 0) { -return x_37; +return x_42; } else { lean_object* x_80; lean_object* x_81; lean_object* x_82; -x_80 = lean_ctor_get(x_37, 0); -x_81 = lean_ctor_get(x_37, 1); +x_80 = lean_ctor_get(x_42, 0); +x_81 = lean_ctor_get(x_42, 1); lean_inc(x_81); lean_inc(x_80); -lean_dec(x_37); +lean_dec(x_42); x_82 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_82, 0, x_80); lean_ctor_set(x_82, 1, x_81); @@ -3986,38 +3988,8 @@ return x_82; } else { -lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; -lean_dec(x_32); -lean_dec(x_24); -lean_dec(x_16); -lean_dec(x_11); -lean_dec(x_2); -x_83 = lean_ctor_get(x_15, 1); -lean_inc(x_83); -lean_dec(x_15); -x_84 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_84, 0, x_1); -x_85 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7; -x_86 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_86, 0, x_85); -lean_ctor_set(x_86, 1, x_84); -x_87 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__4; -x_88 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_88, 0, x_86); -lean_ctor_set(x_88, 1, x_87); -x_89 = l_Lean_throwError___at_Lean_Meta_abstractRange___spec__1(x_88, x_4, x_5, x_6, x_7, x_83); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_89; -} -} -} -} -else -{ -uint8_t x_90; +uint8_t x_83; +lean_dec(x_35); lean_dec(x_11); lean_dec(x_7); lean_dec(x_6); @@ -4025,23 +3997,84 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_90 = !lean_is_exclusive(x_15); -if (x_90 == 0) +x_83 = !lean_is_exclusive(x_37); +if (x_83 == 0) +{ +return x_37; +} +else +{ +lean_object* x_84; lean_object* x_85; lean_object* x_86; +x_84 = lean_ctor_get(x_37, 0); +x_85 = lean_ctor_get(x_37, 1); +lean_inc(x_85); +lean_inc(x_84); +lean_dec(x_37); +x_86 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_86, 0, x_84); +lean_ctor_set(x_86, 1, x_85); +return x_86; +} +} +} +else +{ +lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; +lean_dec(x_32); +lean_dec(x_24); +lean_dec(x_16); +lean_dec(x_11); +lean_dec(x_2); +x_87 = lean_ctor_get(x_15, 1); +lean_inc(x_87); +lean_dec(x_15); +x_88 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_88, 0, x_1); +x_89 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7; +x_90 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_90, 0, x_89); +lean_ctor_set(x_90, 1, x_88); +x_91 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__4; +x_92 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_92, 0, x_90); +lean_ctor_set(x_92, 1, x_91); +x_93 = l_Lean_throwError___at_Lean_Meta_abstractRange___spec__1(x_92, x_4, x_5, x_6, x_7, x_87); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_93; +} +} +} +} +else +{ +uint8_t x_94; +lean_dec(x_11); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +x_94 = !lean_is_exclusive(x_15); +if (x_94 == 0) { return x_15; } else { -lean_object* x_91; lean_object* x_92; lean_object* x_93; -x_91 = lean_ctor_get(x_15, 0); -x_92 = lean_ctor_get(x_15, 1); -lean_inc(x_92); -lean_inc(x_91); +lean_object* x_95; lean_object* x_96; lean_object* x_97; +x_95 = lean_ctor_get(x_15, 0); +x_96 = lean_ctor_get(x_15, 1); +lean_inc(x_96); +lean_inc(x_95); lean_dec(x_15); -x_93 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_93, 0, x_91); -lean_ctor_set(x_93, 1, x_92); -return x_93; +x_97 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_97, 0, x_95); +lean_ctor_set(x_97, 1, x_96); +return x_97; } } } @@ -4050,12 +4083,24 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiv _start: { lean_object* x_8; lean_object* x_9; -x_8 = lean_alloc_closure((void*)(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1), 8, 1); +x_8 = lean_alloc_closure((void*)(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2), 8, 1); lean_closure_set(x_8, 0, x_1); x_9 = l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_getParamNames___spec__2___rarg(x_2, x_8, x_3, x_4, x_5, x_6, x_7); return x_9; } } +LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; +x_9 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +return x_9; +} +} static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem___closed__1() { _start: { @@ -4401,7 +4446,7 @@ return x_83; } } } -static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1() { +static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1() { _start: { lean_object* x_1; @@ -4409,17 +4454,17 @@ x_1 = lean_mk_string("genInjectivity"); return x_1; } } -static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2() { +static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1; +x_2 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3() { +static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3() { _start: { lean_object* x_1; @@ -4427,13 +4472,13 @@ x_1 = lean_mk_string("generate injectivity theorems for inductive datatype const return x_1; } } -static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4() { +static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4() { _start: { uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_1 = 1; x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___rarg___closed__1; -x_3 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3; +x_3 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3; x_4 = lean_box(x_1); x_5 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_5, 0, x_4); @@ -4442,12 +4487,12 @@ lean_ctor_set(x_5, 2, x_3); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_2 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2; -x_3 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4; +x_2 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2; +x_3 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4; x_4 = l_Lean_Option_register___at_Std_Format_initFn____x40_Lean_Data_Format___hyg_54____spec__1(x_2, x_3, x_1); return x_4; } @@ -4658,7 +4703,7 @@ if (x_13 == 0) lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; x_14 = lean_ctor_get(x_12, 0); x_15 = lean_ctor_get(x_12, 1); -x_16 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4; +x_16 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4; x_17 = l_Lean_Environment_contains(x_10, x_16); if (x_17 == 0) { @@ -4849,7 +4894,7 @@ x_50 = lean_ctor_get(x_12, 1); lean_inc(x_50); lean_inc(x_49); lean_dec(x_12); -x_51 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4; +x_51 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4; x_52 = l_Lean_Environment_contains(x_10, x_51); if (x_52 == 0) { @@ -5161,31 +5206,31 @@ l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__1 = _init_l_Lean_Meta_mkInject lean_mark_persistent(l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__1); l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__2 = _init_l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__2(); lean_mark_persistent(l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__2); -l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1); -l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2); -l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3); -l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4(); -lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4); -l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5(); -lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5); -l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6(); -lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6); -l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7(); -lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7); +l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1); +l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2); +l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3); +l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4(); +lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4); +l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5(); +lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5); +l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6(); +lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6); +l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7(); +lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7); l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem___closed__1 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem___closed__1(); lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem___closed__1); -l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1(); -lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1); -l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2(); -lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2); -l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3(); -lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3); -l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4(); -lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4); -if (builtin) {res = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673_(lean_io_mk_world()); +l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1(); +lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1); +l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2(); +lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2); +l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3(); +lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3); +l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4(); +lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4); +if (builtin) {res = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_Meta_genInjectivity = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Meta_genInjectivity); diff --git a/stage0/stdlib/Lean/Meta/Tactic/Cases.c b/stage0/stdlib/Lean/Meta/Tactic/Cases.c index 3269855ba1..730901e422 100644 --- a/stage0/stdlib/Lean/Meta/Tactic/Cases.c +++ b/stage0/stdlib/Lean/Meta/Tactic/Cases.c @@ -28,6 +28,7 @@ LEAN_EXPORT lean_object* l___private_Lean_MetavarContext_0__Lean_MetavarContext_ static lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_Cases_hasIndepIndices___spec__54___closed__2; lean_object* l_Lean_Expr_mvarId_x21(lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Meta_casesRec___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_ensureAtMostOne(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); lean_object* l_Lean_stringToMessageData(lean_object*); LEAN_EXPORT lean_object* l_Lean_Expr_withAppAux___at_Lean_Meta_generalizeIndices___spec__1___lambda__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -251,7 +252,7 @@ LEAN_EXPORT lean_object* l_Lean_Expr_withAppAux___at___private_Lean_Meta_Tactic_ LEAN_EXPORT lean_object* l_Std_PersistentArray_anyMAux___at___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_Cases_hasIndepIndices___spec__30___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_withMVarContext___at___private_Lean_Meta_SynthInstance_0__Lean_Meta_synthPendingImp___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Expr_withAppAux___at___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_Cases_mkCasesContext_x3f___spec__1___closed__1; -LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4311_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4314_(lean_object*); lean_object* l_Lean_LocalDecl_fvarId(lean_object*); LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_Cases_hasIndepIndices___spec__15(lean_object*, lean_object*, lean_object*, size_t, size_t); static lean_object* l_Lean_Meta_Cases_unifyEqs_substEq___closed__1; @@ -15928,7 +15929,7 @@ x_10 = lean_ctor_get(x_8, 1); lean_inc(x_10); lean_dec(x_8); x_11 = l_Lean_Meta_casesAnd___closed__4; -x_12 = l_Lean_Meta_exactlyOne(x_9, x_11, x_2, x_3, x_4, x_5, x_10); +x_12 = l_Lean_Meta_ensureAtMostOne(x_9, x_11, x_2, x_3, x_4, x_5, x_10); return x_12; } else @@ -16660,7 +16661,7 @@ lean_dec(x_2); return x_7; } } -LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4311_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4314_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; @@ -16836,7 +16837,7 @@ l_Lean_Meta_byCases___closed__4 = _init_l_Lean_Meta_byCases___closed__4(); lean_mark_persistent(l_Lean_Meta_byCases___closed__4); l_Lean_Meta_byCases___closed__5 = _init_l_Lean_Meta_byCases___closed__5(); lean_mark_persistent(l_Lean_Meta_byCases___closed__5); -res = l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4311_(lean_io_mk_world()); +res = l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4314_(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));