// Lean compiler output
// Module: Lean.Meta.Tactic.Grind.Arith.Linear.Search
// Imports: public import Lean.Meta.Tactic.Grind.Arith.Linear.SearchM import Lean.Meta.Tactic.Grind.Arith.Linear.IneqCnstr import Lean.Meta.Tactic.Grind.Arith.Linear.Proof
#include <lean/lean.h>
#if defined(__clang__)
#pragma clang diagnostic ignored "-Wunused-parameter"
#pragma clang diagnostic ignored "-Wunused-label"
#elif defined(__GNUC__) && !defined(__CLANG__)
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wunused-label"
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
#endif
#ifdef __cplusplus
extern "C" {
#endif
lean_object* lean_st_ref_get(lean_object*);
lean_object* l_Lean_profileitIOUnsafe___redArg(lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_PersistentArray_isEmpty___redArg(lean_object*);
lean_object* lean_array_get_size(lean_object*);
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
lean_object* lean_array_fget(lean_object*, lean_object*);
lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Meta_Grind_Arith_Linear_linearExt;
lean_object* l___private_Lean_Meta_Tactic_Grind_Types_0__Lean_Meta_Grind_SolverExtension_modifyStateImpl___redArg(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Meta_Grind_Arith_Linear_instInhabitedCase_default;
lean_object* l_outOfBounds___redArg(lean_object*);
lean_object* l_Lean_PersistentArray_get_x21___redArg(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_PersistentArray_push___redArg(lean_object*, lean_object*);
lean_object* l_Lean_stringToMessageData(lean_object*);
lean_object* l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(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_nat_to_int(lean_object*);
uint8_t lean_int_dec_eq(lean_object*, lean_object*);
lean_object* l_Lean_mkIntLit(lean_object*);
lean_object* l_Lean_mkAppB(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_instInhabitedExpr;
lean_object* l_Lean_Name_mkStr1(lean_object*);
lean_object* l_Lean_Level_succ___override(lean_object*);
lean_object* l_Lean_mkConst(lean_object*, lean_object*);
lean_object* l_Lean_mkApp3(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_MessageData_ofExpr(lean_object*);
lean_object* l_Lean_indentD(lean_object*);
lean_object* lean_array_fget_borrowed(lean_object*, lean_object*);
uint64_t l_Lean_Meta_Grind_Arith_Linear_instHashablePoly__lean_hash(lean_object*);
size_t lean_uint64_to_usize(uint64_t);
size_t lean_usize_sub(size_t, size_t);
size_t lean_usize_mul(size_t, size_t);
size_t lean_usize_shift_right(size_t, size_t);
lean_object* lean_nat_add(lean_object*, lean_object*);
size_t lean_usize_shift_left(size_t, size_t);
size_t lean_usize_land(size_t, size_t);
lean_object* lean_usize_to_nat(size_t);
uint8_t l_Lean_Grind_Linarith_instBEqPoly_beq(lean_object*, lean_object*);
lean_object* l_Lean_PersistentHashMap_mkCollisionNode___redArg(lean_object*, lean_object*, lean_object*, lean_object*);
size_t lean_usize_add(size_t, size_t);
lean_object* lean_array_push(lean_object*, lean_object*);
lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*);
uint8_t lean_usize_dec_le(size_t, size_t);
lean_object* l_Lean_PersistentHashMap_getCollisionNodeSize___redArg(lean_object*);
uint8_t l___private_Lean_Data_Name_0__Lean_Name_quickCmpImpl(lean_object*, lean_object*);
lean_object* lean_nat_mul(lean_object*, lean_object*);
lean_object* l_Std_DTreeMap_Internal_Impl_maxView___redArg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Std_DTreeMap_Internal_Impl_minView___redArg(lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t lean_usize_dec_lt(size_t, size_t);
lean_object* lean_array_uget_borrowed(lean_object*, size_t);
lean_object* l_Lean_Grind_Linarith_Poly_eval_x3f(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_Rat_ofInt(lean_object*);
lean_object* l_Rat_neg(lean_object*);
lean_object* l_Rat_div(lean_object*, lean_object*);
uint8_t l_Rat_blt(lean_object*, lean_object*);
uint8_t l_instDecidableEqRat_decEq(lean_object*, lean_object*);
size_t lean_array_size(lean_object*);
lean_object* l_Lean_mkNot(lean_object*);
lean_object* l_Lean_Name_append(lean_object*, lean_object*);
uint8_t l___private_Lean_Util_Trace_0__Lean_checkTraceOption_go(lean_object*, lean_object*, lean_object*);
lean_object* l_List_reverse___redArg(lean_object*);
lean_object* l_Lean_MessageData_ofName(lean_object*);
lean_object* l_Lean_Name_mkStr5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* lean_mk_array(lean_object*, lean_object*);
lean_object* lean_array_uset(lean_object*, size_t, lean_object*);
lean_object* lean_st_ref_take(lean_object*);
lean_object* l_Lean_PersistentArray_pop___redArg(lean_object*);
lean_object* lean_st_ref_set(lean_object*, lean_object*);
double lean_float_of_nat(lean_object*);
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
lean_object* lean_nat_sub(lean_object*, lean_object*);
lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_Grind_Arith_Linear_get_x27___redArg(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Grind_isInconsistent___redArg(lean_object*);
uint8_t lean_nat_dec_eq(lean_object*, lean_object*);
lean_object* lean_st_mk_ref(lean_object*);
lean_object* l_Lean_instInhabitedPersistentArray_default(lean_object*);
lean_object* l_Lean_MessageData_ofFormat(lean_object*);
lean_object* lean_array_to_list(lean_object*);
lean_object* lean_string_append(lean_object*, lean_object*);
lean_object* l_Nat_reprFast(lean_object*);
uint8_t lean_int_dec_lt(lean_object*, lean_object*);
lean_object* lean_nat_abs(lean_object*);
lean_object* l_Lean_MessageData_ofList(lean_object*);
lean_object* l_Lean_Meta_Grind_Arith_Linear_getVar(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_Grind_Arith_quoteIfArithTerm(lean_object*);
lean_object* l_Lean_Name_mkStr4(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Rat_add(lean_object*, lean_object*);
lean_object* l_Rat_floor(lean_object*);
lean_object* l_Rat_sub(lean_object*, lean_object*);
lean_object* l_Rat_ceil(lean_object*);
lean_object* lean_int_add(lean_object*, lean_object*);
lean_object* lean_int_sub(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Grind_Arith_Linear_isLinearOrder(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_Grind_Arith_Linear_mkCase(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_Grind_Arith_Linear_IneqCnstr_assert(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_Grind_Linarith_Poly_mul(lean_object*, lean_object*);
lean_object* l_Lean_Grind_Linarith_Poly_combine(lean_object*, lean_object*);
lean_object* l_Lean_Grind_Linarith_Poly_leadCoeff(lean_object*);
lean_object* lean_int_neg(lean_object*);
lean_object* l_Lean_Meta_Grind_Arith_Linear_inconsistent(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_PersistentArray_set___redArg(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Grind_Linarith_Poly_coeff(lean_object*, lean_object*);
lean_object* l_Lean_Core_checkSystem(lean_object*, lean_object*, lean_object*);
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
lean_object* l_mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_instMonadEST(lean_object*, lean_object*);
lean_object* l_ReaderT_instMonad___redArg(lean_object*);
lean_object* l_Lean_Core_instMonadCoreM___lam__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Core_instMonadCoreM___lam__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_ReaderT_instFunctorOfMonad___redArg___lam__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_ReaderT_instFunctorOfMonad___redArg___lam__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_ReaderT_instApplicativeOfMonad___redArg___lam__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_ReaderT_instApplicativeOfMonad___redArg___lam__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_ReaderT_instApplicativeOfMonad___redArg___lam__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_instMonadMetaM___lam__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_instMonadMetaM___lam__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_instInhabitedOfMonad___redArg(lean_object*, lean_object*);
lean_object* lean_panic_fn(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Grind_Arith_Linear_UnsatProof_toExprProof(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_Grind_closeGoal(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_Grind_Arith_Linear_UnsatProof_collectDecVars(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_PersistentArray_toList___redArg(lean_object*);
LEAN_EXPORT lean_object* l_Lean_addMessageContextFull___at___00Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1_spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_addMessageContextFull___at___00Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 68, .m_capacity = 68, .m_length = 67, .m_data = "`grind linarith` internal error, structure is not an ordered module"};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__0 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__0_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__1_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__1;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__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*);
static lean_once_cell_t l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___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*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__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_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__6___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*);
LEAN_EXPORT lean_object* l_Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 72, .m_capacity = 72, .m_length = 71, .m_data = "`grind linarith` internal error, structure is not an ordered int module"};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__0 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__0_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__1_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__1;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_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_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0(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_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0___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*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0___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 const lean_string_object l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 44, .m_capacity = 44, .m_length = 43, .m_data = "`grind linarith` internal error, unexpected"};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__0 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__0_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___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*);
LEAN_EXPORT lean_object* l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_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 const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = "Eq"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___closed__0_value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___closed__0_value),LEAN_SCALAR_PTR_LITERAL(143, 37, 101, 248, 9, 246, 191, 223)}};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___closed__1_value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___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*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___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*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___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 const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 65, .m_capacity = 65, .m_length = 64, .m_data = "`grind linarith` internal error, assigning variable out of order"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__0_value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__1_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__1;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___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 const lean_string_object l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "trace"};
static const lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___closed__0 = (const lean_object*)&l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___closed__0_value;
static const lean_ctor_object l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(212, 145, 141, 177, 67, 149, 127, 197)}};
static const lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___closed__1 = (const lean_object*)&l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___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_once_cell_t l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__0_once = LEAN_ONCE_CELL_INITIALIZER;
static double l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__0;
static const lean_string_object l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 1, .m_capacity = 1, .m_length = 0, .m_data = ""};
static const lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__1 = (const lean_object*)&l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__1_value;
static const lean_array_object l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 246}, .m_size = 0, .m_capacity = 0, .m_data = {}};
static const lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__2 = (const lean_object*)&l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "grind"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__0_value;
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "debug"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__1_value;
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 9, .m_capacity = 9, .m_length = 8, .m_data = "linarith"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__2 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__2_value;
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "search"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__3 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__3_value;
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 7, .m_capacity = 7, .m_length = 6, .m_data = "assign"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__4 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__4_value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__0_value),LEAN_SCALAR_PTR_LITERAL(223, 115, 241, 203, 181, 236, 81, 221)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__1_value),LEAN_SCALAR_PTR_LITERAL(92, 174, 15, 22, 76, 124, 59, 78)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__2_value),LEAN_SCALAR_PTR_LITERAL(215, 101, 68, 215, 12, 32, 3, 85)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value_aux_3 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value_aux_2),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__3_value),LEAN_SCALAR_PTR_LITERAL(244, 173, 66, 15, 213, 143, 53, 172)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value_aux_3),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__4_value),LEAN_SCALAR_PTR_LITERAL(15, 219, 209, 154, 141, 10, 194, 145)}};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5_value;
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 5, .m_capacity = 5, .m_length = 4, .m_data = " := "};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__6 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__6_value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__7_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__7;
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = "/"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8_value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9;
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 2, .m_capacity = 2, .m_length = 1, .m_data = "-"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10_value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___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*);
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_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*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment___lam__0(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment___lam__0___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment___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*);
LEAN_EXPORT lean_object* l_Int_cast___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__0(lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2_spec__5(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2_spec__5___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*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3_spec__4(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3_spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__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*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1(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_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__2(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__2___boxed(lean_object**);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_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*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_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_once_cell_t l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2_spec__3(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2_spec__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*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0(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_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__1(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__1___boxed(lean_object**);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0___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*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1_spec__4(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1_spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_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*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0___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*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1_spec__4(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1_spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_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*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2_spec__3(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2_spec__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*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2(lean_object*, size_t, size_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*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0(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_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__1(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__1___boxed(lean_object**);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0___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*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0___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 const lean_array_object l_Lean_Meta_Grind_Arith_Linear_getDiseqValues___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 246}, .m_size = 0, .m_capacity = 0, .m_data = {}};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_getDiseqValues___closed__0 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_getDiseqValues___closed__0_value;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getDiseqValues(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getDiseqValues___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 const lean_ctor_object l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 0}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0___closed__0 = (const lean_object*)&l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0___closed__0_value;
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0(lean_object*, lean_object*, size_t, size_t, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findDiseq_x3f(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findDiseq_x3f___boxed(lean_object*, lean_object*);
LEAN_EXPORT uint8_t l_Lean_Meta_Grind_Arith_Linear_inDiseqValues(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_inDiseqValues___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Nat_cast___at___00Lean_Meta_Grind_Arith_Linear_geAvoiding_spec__0(lean_object*);
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_geAvoiding(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_geAvoiding___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Nat_cast___at___00Nat_cast___at___00Lean_Meta_Grind_Arith_Linear_geAvoiding_spec__0_spec__0(lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_leAvoiding(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_leAvoiding___boxed(lean_object*, lean_object*);
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 9, .m_capacity = 9, .m_length = 8, .m_data = "conflict"};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__0 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__0_value;
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__0_value),LEAN_SCALAR_PTR_LITERAL(223, 115, 241, 203, 181, 236, 81, 221)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__1_value),LEAN_SCALAR_PTR_LITERAL(92, 174, 15, 22, 76, 124, 59, 78)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__2_value),LEAN_SCALAR_PTR_LITERAL(215, 101, 68, 215, 12, 32, 3, 85)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value_aux_3 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value_aux_2),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__3_value),LEAN_SCALAR_PTR_LITERAL(244, 173, 66, 15, 213, 143, 53, 172)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value_aux_3),((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__0_value),LEAN_SCALAR_PTR_LITERAL(24, 96, 199, 219, 74, 81, 53, 61)}};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1_value;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 3, .m_capacity = 3, .m_length = 2, .m_data = ", "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__2 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__2_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___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*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findInt_x3f_go(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findInt_x3f_go___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findInt_x3f(lean_object*, uint8_t, lean_object*, uint8_t, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findInt_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_findRat___closed__0_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_findRat___closed__0;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findRat(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findRat___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_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*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at___00Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11_spec__12___redArg(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11___redArg(lean_object*, lean_object*, lean_object*);
static lean_once_cell_t l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__0_once = LEAN_ONCE_CELL_INITIALIZER;
static size_t l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__0;
static lean_once_cell_t l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__1_once = LEAN_ONCE_CELL_INITIALIZER;
static size_t l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__1;
static lean_once_cell_t l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__2_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__2;
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg(lean_object*, size_t, size_t, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12___redArg(size_t, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4___redArg(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___lam__0(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___lam__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2___redArg(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0___redArg(lean_object*, size_t, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0___redArg___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0___redArg(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0___redArg___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4___redArg___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*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___redArg___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*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__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*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__6___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*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__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_EXPORT lean_object* l_Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__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*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 6, .m_capacity = 6, .m_length = 5, .m_data = "split"};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__0 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__0_value;
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__0_value),LEAN_SCALAR_PTR_LITERAL(223, 115, 241, 203, 181, 236, 81, 221)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__1_value),LEAN_SCALAR_PTR_LITERAL(92, 174, 15, 22, 76, 124, 59, 78)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__2_value),LEAN_SCALAR_PTR_LITERAL(215, 101, 68, 215, 12, 32, 3, 85)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value_aux_3 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value_aux_2),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__3_value),LEAN_SCALAR_PTR_LITERAL(244, 173, 66, 15, 213, 143, 53, 172)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value_aux_3),((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__0_value),LEAN_SCALAR_PTR_LITERAL(162, 40, 205, 216, 38, 159, 186, 145)}};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1_value;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 11, .m_capacity = 11, .m_length = 10, .m_data = ", reusing "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__2 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__2_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__3_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__3;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___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*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4(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_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__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_EXPORT lean_object* l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__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*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0(lean_object*, lean_object*, size_t, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5(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_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___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*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12(lean_object*, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at___00Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11_spec__12(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___closed__0_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___closed__0;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict(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_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___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*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___lam__0(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___lam__0___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0(size_t, size_t, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__1(lean_object*, lean_object*);
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 11, .m_capacity = 11, .m_length = 10, .m_data = ", diseqs: "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__0 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__0_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1;
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__0_value),LEAN_SCALAR_PTR_LITERAL(223, 115, 241, 203, 181, 236, 81, 221)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__1_value),LEAN_SCALAR_PTR_LITERAL(92, 174, 15, 22, 76, 124, 59, 78)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__2_value),LEAN_SCALAR_PTR_LITERAL(215, 101, 68, 215, 12, 32, 3, 85)}};
static const lean_ctor_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2_value_aux_2),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__3_value),LEAN_SCALAR_PTR_LITERAL(244, 173, 66, 15, 213, 143, 53, 172)}};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_processVar___closed__3_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__3;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 4, .m_capacity = 4, .m_length = 3, .m_data = "v: "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__4 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__4_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = ", upper: "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__6 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__6_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_processVar___closed__7_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__7;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__8_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 17, .m_capacity = 17, .m_length = 16, .m_data = ", lower, upper: "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__8 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__8_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_processVar___closed__9_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__9;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__10_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 29, .m_capacity = 29, .m_length = 28, .m_data = ", **ignore diseq**, diseqs: "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__10 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__10_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_processVar___closed__11_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__11;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_processVar___closed__12_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = ", lower: "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__12 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__12_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_processVar___closed__13_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___closed__13;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___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*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_hasAssignment(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_hasAssignment___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*);
static lean_once_cell_t l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__0_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__0;
static const lean_closure_object l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_closure_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 245}, .m_fun = (void*)l_Lean_Core_instMonadCoreM___lam__0___boxed, .m_arity = 5, .m_num_fixed = 0, .m_objs = {} };
static const lean_object* l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__1 = (const lean_object*)&l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__1_value;
static const lean_closure_object l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_closure_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 245}, .m_fun = (void*)l_Lean_Core_instMonadCoreM___lam__1___boxed, .m_arity = 7, .m_num_fixed = 0, .m_objs = {} };
static const lean_object* l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__2 = (const lean_object*)&l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__2_value;
static const lean_closure_object l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_closure_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 245}, .m_fun = (void*)l_Lean_Meta_instMonadMetaM___lam__0___boxed, .m_arity = 7, .m_num_fixed = 0, .m_objs = {} };
static const lean_object* l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__3 = (const lean_object*)&l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__3_value;
static const lean_closure_object l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_closure_object) + sizeof(void*)*0, .m_other = 0, .m_tag = 245}, .m_fun = (void*)l_Lean_Meta_instMonadMetaM___lam__1___boxed, .m_arity = 9, .m_num_fixed = 0, .m_objs = {} };
static const lean_object* l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__4 = (const lean_object*)&l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__4_value;
LEAN_EXPORT lean_object* l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__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_EXPORT lean_object* l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__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*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT uint8_t l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0___redArg(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0___redArg___boxed(lean_object*, lean_object*);
static const lean_string_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "backtrack"};
static const lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__0 = (const lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__0_value;
static const lean_ctor_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value_aux_0 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__0_value),LEAN_SCALAR_PTR_LITERAL(223, 115, 241, 203, 181, 236, 81, 221)}};
static const lean_ctor_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value_aux_1 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__1_value),LEAN_SCALAR_PTR_LITERAL(92, 174, 15, 22, 76, 124, 59, 78)}};
static const lean_ctor_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value_aux_2 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value_aux_1),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__2_value),LEAN_SCALAR_PTR_LITERAL(215, 101, 68, 215, 12, 32, 3, 85)}};
static const lean_ctor_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value_aux_3 = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value_aux_2),((lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__3_value),LEAN_SCALAR_PTR_LITERAL(244, 173, 66, 15, 213, 143, 53, 172)}};
static const lean_ctor_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 8, .m_other = 2, .m_tag = 1}, .m_objs = {((lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value_aux_3),((lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(194, 181, 179, 222, 180, 216, 89, 61)}};
static const lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1 = (const lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1_value;
static const lean_string_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "skipping "};
static const lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__2 = (const lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__2_value;
static lean_once_cell_t l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__3_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__3;
static const lean_string_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 54, .m_capacity = 54, .m_length = 53, .m_data = "`grind linarith` internal cases, cases stack is empty"};
static const lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__4 = (const lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__4_value;
static lean_once_cell_t l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__5_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__5;
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___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 const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 43, .m_capacity = 43, .m_length = 42, .m_data = "Lean.Meta.Tactic.Grind.Arith.Linear.Search"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__0_value;
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 92, .m_capacity = 92, .m_length = 91, .m_data = "_private.Lean.Meta.Tactic.Grind.Arith.Linear.Search.0.Lean.Meta.Grind.Arith.Linear.findCase"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__1 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__1_value;
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 34, .m_capacity = 34, .m_length = 33, .m_data = "unreachable code has been reached"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__2 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__2_value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__3_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__3;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___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*);
LEAN_EXPORT uint8_t l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1(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_EXPORT lean_object* l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_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*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2(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_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___lam__0(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___lam__0___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__4(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__6(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_foldlM___at___00Std_DTreeMap_Internal_Impl_foldl___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__1_spec__1(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___redArg(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___redArg___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_foldrM___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__3(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_foldrM___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__3___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__5(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5___redArg___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_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4___redArg___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_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3(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*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__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*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 23, .m_capacity = 23, .m_length = 22, .m_data = "resolved diseq split: "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__0 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__0_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__1_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__1;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 14, .m_capacity = 14, .m_length = 13, .m_data = "backtracking "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__2 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__2_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__3_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__3;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__4_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__4;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__5_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__5;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__6_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__6;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__7_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 11, .m_capacity = 11, .m_length = 10, .m_data = "dec vars: "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__7 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__7_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__8_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__8;
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 35, .m_capacity = 35, .m_length = 34, .m_data = "resolve conflict, decision stack: "};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__9 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__9_value;
static lean_once_cell_t l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__10_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__10;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___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*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_foldl___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__1(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg___lam__0(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg___lam__0___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__0(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__0___boxed(lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__1(lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
static const lean_string_object l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 82, .m_capacity = 82, .m_length = 81, .m_data = "`grind` internal error, eliminated variable must have equation associated with it"};
static const lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__0 = (const lean_object*)&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__0_value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__1_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__1;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___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*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars___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 const lean_ctor_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 1}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__0 = (const lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__0_value;
static const lean_ctor_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 0}, .m_objs = {((lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__0_value),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__1 = (const lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__1_value;
static const lean_string_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 11, .m_capacity = 11, .m_length = 10, .m_data = "next var: "};
static const lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__2 = (const lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__2_value;
static lean_once_cell_t l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__3_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__3;
static const lean_string_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__4_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 17, .m_capacity = 17, .m_length = 16, .m_data = "found assignment"};
static const lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__4 = (const lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__4_value;
static lean_once_cell_t l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__5_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__5;
static const lean_string_object l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 10, .m_capacity = 10, .m_length = 9, .m_data = "main loop"};
static const lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__6 = (const lean_object*)&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__6_value;
static lean_once_cell_t l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__7_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__7;
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___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_once_cell_t l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__0_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__0;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__1_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__1;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__2_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__2;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___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_EXPORT lean_object* l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1___redArg(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_EXPORT lean_object* l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1___redArg___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*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1(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_EXPORT lean_object* l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_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*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0___redArg___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*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_check___lam__0(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_check___lam__0___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*);
static const lean_string_object l_Lean_Meta_Grind_Arith_Linear_check___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 15, .m_capacity = 15, .m_length = 14, .m_data = "grind linarith"};
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_check___closed__0 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_check___closed__0_value;
static const lean_closure_object l_Lean_Meta_Grind_Arith_Linear_check___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_closure_object) + sizeof(void*)*1, .m_other = 0, .m_tag = 245}, .m_fun = (void*)l_Lean_Meta_Grind_Arith_Linear_check___lam__0___boxed, .m_arity = 12, .m_num_fixed = 1, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1))} };
static const lean_object* l_Lean_Meta_Grind_Arith_Linear_check___closed__1 = (const lean_object*)&l_Lean_Meta_Grind_Arith_Linear_check___closed__1_value;
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_check(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_check___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0(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_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0___boxed(lean_object**);
LEAN_EXPORT lean_object* l_Lean_addMessageContextFull___at___00Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1_spec__2(lean_object* v_msgData_1_, lean_object* v___y_2_, lean_object* v___y_3_, lean_object* v___y_4_, lean_object* v___y_5_){
_start:
{
lean_object* v___x_7_; lean_object* v_env_8_; lean_object* v___x_9_; lean_object* v_mctx_10_; lean_object* v_lctx_11_; lean_object* v_options_12_; lean_object* v___x_13_; lean_object* v___x_14_; lean_object* v___x_15_; 
v___x_7_ = lean_st_ref_get(v___y_5_);
v_env_8_ = lean_ctor_get(v___x_7_, 0);
lean_inc_ref(v_env_8_);
lean_dec(v___x_7_);
v___x_9_ = lean_st_ref_get(v___y_3_);
v_mctx_10_ = lean_ctor_get(v___x_9_, 0);
lean_inc_ref(v_mctx_10_);
lean_dec(v___x_9_);
v_lctx_11_ = lean_ctor_get(v___y_2_, 2);
v_options_12_ = lean_ctor_get(v___y_4_, 2);
lean_inc_ref(v_options_12_);
lean_inc_ref(v_lctx_11_);
v___x_13_ = lean_alloc_ctor(0, 4, 0);
lean_ctor_set(v___x_13_, 0, v_env_8_);
lean_ctor_set(v___x_13_, 1, v_mctx_10_);
lean_ctor_set(v___x_13_, 2, v_lctx_11_);
lean_ctor_set(v___x_13_, 3, v_options_12_);
v___x_14_ = lean_alloc_ctor(3, 2, 0);
lean_ctor_set(v___x_14_, 0, v___x_13_);
lean_ctor_set(v___x_14_, 1, v_msgData_1_);
v___x_15_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_15_, 0, v___x_14_);
return v___x_15_;
}
}
LEAN_EXPORT lean_object* l_Lean_addMessageContextFull___at___00Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1_spec__2___boxed(lean_object* v_msgData_16_, lean_object* v___y_17_, lean_object* v___y_18_, lean_object* v___y_19_, lean_object* v___y_20_, lean_object* v___y_21_){
_start:
{
lean_object* v_res_22_; 
v_res_22_ = l_Lean_addMessageContextFull___at___00Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1_spec__2(v_msgData_16_, v___y_17_, v___y_18_, v___y_19_, v___y_20_);
lean_dec(v___y_20_);
lean_dec_ref(v___y_19_);
lean_dec(v___y_18_);
lean_dec_ref(v___y_17_);
return v_res_22_;
}
}
LEAN_EXPORT lean_object* l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(lean_object* v_msg_23_, lean_object* v___y_24_, lean_object* v___y_25_, lean_object* v___y_26_, lean_object* v___y_27_){
_start:
{
lean_object* v_ref_29_; lean_object* v___x_30_; lean_object* v_a_31_; lean_object* v___x_33_; uint8_t v_isShared_34_; uint8_t v_isSharedCheck_39_; 
v_ref_29_ = lean_ctor_get(v___y_26_, 5);
v___x_30_ = l_Lean_addMessageContextFull___at___00Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1_spec__2(v_msg_23_, v___y_24_, v___y_25_, v___y_26_, v___y_27_);
v_a_31_ = lean_ctor_get(v___x_30_, 0);
v_isSharedCheck_39_ = !lean_is_exclusive(v___x_30_);
if (v_isSharedCheck_39_ == 0)
{
v___x_33_ = v___x_30_;
v_isShared_34_ = v_isSharedCheck_39_;
goto v_resetjp_32_;
}
else
{
lean_inc(v_a_31_);
lean_dec(v___x_30_);
v___x_33_ = lean_box(0);
v_isShared_34_ = v_isSharedCheck_39_;
goto v_resetjp_32_;
}
v_resetjp_32_:
{
lean_object* v___x_35_; lean_object* v___x_37_; 
lean_inc(v_ref_29_);
v___x_35_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_35_, 0, v_ref_29_);
lean_ctor_set(v___x_35_, 1, v_a_31_);
if (v_isShared_34_ == 0)
{
lean_ctor_set_tag(v___x_33_, 1);
lean_ctor_set(v___x_33_, 0, v___x_35_);
v___x_37_ = v___x_33_;
goto v_reusejp_36_;
}
else
{
lean_object* v_reuseFailAlloc_38_; 
v_reuseFailAlloc_38_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_38_, 0, v___x_35_);
v___x_37_ = v_reuseFailAlloc_38_;
goto v_reusejp_36_;
}
v_reusejp_36_:
{
return v___x_37_;
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg___boxed(lean_object* v_msg_40_, lean_object* v___y_41_, lean_object* v___y_42_, lean_object* v___y_43_, lean_object* v___y_44_, lean_object* v___y_45_){
_start:
{
lean_object* v_res_46_; 
v_res_46_ = l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(v_msg_40_, v___y_41_, v___y_42_, v___y_43_, v___y_44_);
lean_dec(v___y_44_);
lean_dec_ref(v___y_43_);
lean_dec(v___y_42_);
lean_dec_ref(v___y_41_);
return v_res_46_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__1(void){
_start:
{
lean_object* v___x_48_; lean_object* v___x_49_; 
v___x_48_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__0));
v___x_49_ = l_Lean_stringToMessageData(v___x_48_);
return v___x_49_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3(lean_object* v___y_50_, lean_object* v___y_51_, lean_object* v___y_52_, lean_object* v___y_53_, lean_object* v___y_54_, lean_object* v___y_55_, lean_object* v___y_56_, lean_object* v___y_57_, lean_object* v___y_58_, lean_object* v___y_59_, lean_object* v___y_60_){
_start:
{
lean_object* v___x_62_; 
v___x_62_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_50_, v___y_51_, v___y_52_, v___y_53_, v___y_54_, v___y_55_, v___y_56_, v___y_57_, v___y_58_, v___y_59_, v___y_60_);
if (lean_obj_tag(v___x_62_) == 0)
{
lean_object* v_a_63_; lean_object* v___x_65_; uint8_t v_isShared_66_; uint8_t v_isSharedCheck_74_; 
v_a_63_ = lean_ctor_get(v___x_62_, 0);
v_isSharedCheck_74_ = !lean_is_exclusive(v___x_62_);
if (v_isSharedCheck_74_ == 0)
{
v___x_65_ = v___x_62_;
v_isShared_66_ = v_isSharedCheck_74_;
goto v_resetjp_64_;
}
else
{
lean_inc(v_a_63_);
lean_dec(v___x_62_);
v___x_65_ = lean_box(0);
v_isShared_66_ = v_isSharedCheck_74_;
goto v_resetjp_64_;
}
v_resetjp_64_:
{
lean_object* v_ltFn_x3f_67_; 
v_ltFn_x3f_67_ = lean_ctor_get(v_a_63_, 21);
lean_inc(v_ltFn_x3f_67_);
lean_dec(v_a_63_);
if (lean_obj_tag(v_ltFn_x3f_67_) == 1)
{
lean_object* v_val_68_; lean_object* v___x_70_; 
v_val_68_ = lean_ctor_get(v_ltFn_x3f_67_, 0);
lean_inc(v_val_68_);
lean_dec_ref(v_ltFn_x3f_67_);
if (v_isShared_66_ == 0)
{
lean_ctor_set(v___x_65_, 0, v_val_68_);
v___x_70_ = v___x_65_;
goto v_reusejp_69_;
}
else
{
lean_object* v_reuseFailAlloc_71_; 
v_reuseFailAlloc_71_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_71_, 0, v_val_68_);
v___x_70_ = v_reuseFailAlloc_71_;
goto v_reusejp_69_;
}
v_reusejp_69_:
{
return v___x_70_;
}
}
else
{
lean_object* v___x_72_; lean_object* v___x_73_; 
lean_dec(v_ltFn_x3f_67_);
lean_del_object(v___x_65_);
v___x_72_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__1, &l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__1);
v___x_73_ = l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(v___x_72_, v___y_57_, v___y_58_, v___y_59_, v___y_60_);
return v___x_73_;
}
}
}
else
{
lean_object* v_a_75_; lean_object* v___x_77_; uint8_t v_isShared_78_; uint8_t v_isSharedCheck_82_; 
v_a_75_ = lean_ctor_get(v___x_62_, 0);
v_isSharedCheck_82_ = !lean_is_exclusive(v___x_62_);
if (v_isSharedCheck_82_ == 0)
{
v___x_77_ = v___x_62_;
v_isShared_78_ = v_isSharedCheck_82_;
goto v_resetjp_76_;
}
else
{
lean_inc(v_a_75_);
lean_dec(v___x_62_);
v___x_77_ = lean_box(0);
v_isShared_78_ = v_isSharedCheck_82_;
goto v_resetjp_76_;
}
v_resetjp_76_:
{
lean_object* v___x_80_; 
if (v_isShared_78_ == 0)
{
v___x_80_ = v___x_77_;
goto v_reusejp_79_;
}
else
{
lean_object* v_reuseFailAlloc_81_; 
v_reuseFailAlloc_81_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_81_, 0, v_a_75_);
v___x_80_ = v_reuseFailAlloc_81_;
goto v_reusejp_79_;
}
v_reusejp_79_:
{
return v___x_80_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___boxed(lean_object* v___y_83_, lean_object* v___y_84_, lean_object* v___y_85_, lean_object* v___y_86_, lean_object* v___y_87_, lean_object* v___y_88_, lean_object* v___y_89_, lean_object* v___y_90_, lean_object* v___y_91_, lean_object* v___y_92_, lean_object* v___y_93_, lean_object* v___y_94_){
_start:
{
lean_object* v_res_95_; 
v_res_95_ = l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3(v___y_83_, v___y_84_, v___y_85_, v___y_86_, v___y_87_, v___y_88_, v___y_89_, v___y_90_, v___y_91_, v___y_92_, v___y_93_);
lean_dec(v___y_93_);
lean_dec_ref(v___y_92_);
lean_dec(v___y_91_);
lean_dec_ref(v___y_90_);
lean_dec(v___y_89_);
lean_dec_ref(v___y_88_);
lean_dec(v___y_87_);
lean_dec_ref(v___y_86_);
lean_dec(v___y_85_);
lean_dec(v___y_84_);
lean_dec(v___y_83_);
return v_res_95_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0(void){
_start:
{
lean_object* v___x_96_; lean_object* v___x_97_; 
v___x_96_ = lean_unsigned_to_nat(1u);
v___x_97_ = lean_nat_to_int(v___x_96_);
return v___x_97_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5(lean_object* v_k_98_, lean_object* v_x_99_, lean_object* v___y_100_, lean_object* v___y_101_, lean_object* v___y_102_, lean_object* v___y_103_, lean_object* v___y_104_, lean_object* v___y_105_, lean_object* v___y_106_, lean_object* v___y_107_, lean_object* v___y_108_, lean_object* v___y_109_, lean_object* v___y_110_){
_start:
{
lean_object* v___x_112_; uint8_t v___x_113_; 
v___x_112_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0);
v___x_113_ = lean_int_dec_eq(v_k_98_, v___x_112_);
if (v___x_113_ == 0)
{
lean_object* v___x_114_; 
v___x_114_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_100_, v___y_101_, v___y_102_, v___y_103_, v___y_104_, v___y_105_, v___y_106_, v___y_107_, v___y_108_, v___y_109_, v___y_110_);
if (lean_obj_tag(v___x_114_) == 0)
{
lean_object* v_a_115_; lean_object* v___x_116_; 
v_a_115_ = lean_ctor_get(v___x_114_, 0);
lean_inc(v_a_115_);
lean_dec_ref(v___x_114_);
v___x_116_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_100_, v___y_101_, v___y_102_, v___y_103_, v___y_104_, v___y_105_, v___y_106_, v___y_107_, v___y_108_, v___y_109_, v___y_110_);
if (lean_obj_tag(v___x_116_) == 0)
{
lean_object* v_a_117_; lean_object* v___x_119_; uint8_t v_isShared_120_; uint8_t v_isSharedCheck_135_; 
v_a_117_ = lean_ctor_get(v___x_116_, 0);
v_isSharedCheck_135_ = !lean_is_exclusive(v___x_116_);
if (v_isSharedCheck_135_ == 0)
{
v___x_119_ = v___x_116_;
v_isShared_120_ = v_isSharedCheck_135_;
goto v_resetjp_118_;
}
else
{
lean_inc(v_a_117_);
lean_dec(v___x_116_);
v___x_119_ = lean_box(0);
v_isShared_120_ = v_isSharedCheck_135_;
goto v_resetjp_118_;
}
v_resetjp_118_:
{
lean_object* v_vars_121_; lean_object* v_zsmulFn_122_; lean_object* v_size_123_; lean_object* v___x_124_; lean_object* v___y_126_; lean_object* v___x_131_; uint8_t v___x_132_; 
v_vars_121_ = lean_ctor_get(v_a_117_, 30);
lean_inc_ref(v_vars_121_);
lean_dec(v_a_117_);
v_zsmulFn_122_ = lean_ctor_get(v_a_115_, 23);
lean_inc_ref(v_zsmulFn_122_);
lean_dec(v_a_115_);
v_size_123_ = lean_ctor_get(v_vars_121_, 2);
v___x_124_ = l_Lean_mkIntLit(v_k_98_);
v___x_131_ = l_Lean_instInhabitedExpr;
v___x_132_ = lean_nat_dec_lt(v_x_99_, v_size_123_);
if (v___x_132_ == 0)
{
lean_object* v___x_133_; 
lean_dec_ref(v_vars_121_);
v___x_133_ = l_outOfBounds___redArg(v___x_131_);
v___y_126_ = v___x_133_;
goto v___jp_125_;
}
else
{
lean_object* v___x_134_; 
v___x_134_ = l_Lean_PersistentArray_get_x21___redArg(v___x_131_, v_vars_121_, v_x_99_);
v___y_126_ = v___x_134_;
goto v___jp_125_;
}
v___jp_125_:
{
lean_object* v___x_127_; lean_object* v___x_129_; 
v___x_127_ = l_Lean_mkAppB(v_zsmulFn_122_, v___x_124_, v___y_126_);
if (v_isShared_120_ == 0)
{
lean_ctor_set(v___x_119_, 0, v___x_127_);
v___x_129_ = v___x_119_;
goto v_reusejp_128_;
}
else
{
lean_object* v_reuseFailAlloc_130_; 
v_reuseFailAlloc_130_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_130_, 0, v___x_127_);
v___x_129_ = v_reuseFailAlloc_130_;
goto v_reusejp_128_;
}
v_reusejp_128_:
{
return v___x_129_;
}
}
}
}
else
{
lean_object* v_a_136_; lean_object* v___x_138_; uint8_t v_isShared_139_; uint8_t v_isSharedCheck_143_; 
lean_dec(v_a_115_);
v_a_136_ = lean_ctor_get(v___x_116_, 0);
v_isSharedCheck_143_ = !lean_is_exclusive(v___x_116_);
if (v_isSharedCheck_143_ == 0)
{
v___x_138_ = v___x_116_;
v_isShared_139_ = v_isSharedCheck_143_;
goto v_resetjp_137_;
}
else
{
lean_inc(v_a_136_);
lean_dec(v___x_116_);
v___x_138_ = lean_box(0);
v_isShared_139_ = v_isSharedCheck_143_;
goto v_resetjp_137_;
}
v_resetjp_137_:
{
lean_object* v___x_141_; 
if (v_isShared_139_ == 0)
{
v___x_141_ = v___x_138_;
goto v_reusejp_140_;
}
else
{
lean_object* v_reuseFailAlloc_142_; 
v_reuseFailAlloc_142_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_142_, 0, v_a_136_);
v___x_141_ = v_reuseFailAlloc_142_;
goto v_reusejp_140_;
}
v_reusejp_140_:
{
return v___x_141_;
}
}
}
}
else
{
lean_object* v_a_144_; lean_object* v___x_146_; uint8_t v_isShared_147_; uint8_t v_isSharedCheck_151_; 
v_a_144_ = lean_ctor_get(v___x_114_, 0);
v_isSharedCheck_151_ = !lean_is_exclusive(v___x_114_);
if (v_isSharedCheck_151_ == 0)
{
v___x_146_ = v___x_114_;
v_isShared_147_ = v_isSharedCheck_151_;
goto v_resetjp_145_;
}
else
{
lean_inc(v_a_144_);
lean_dec(v___x_114_);
v___x_146_ = lean_box(0);
v_isShared_147_ = v_isSharedCheck_151_;
goto v_resetjp_145_;
}
v_resetjp_145_:
{
lean_object* v___x_149_; 
if (v_isShared_147_ == 0)
{
v___x_149_ = v___x_146_;
goto v_reusejp_148_;
}
else
{
lean_object* v_reuseFailAlloc_150_; 
v_reuseFailAlloc_150_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_150_, 0, v_a_144_);
v___x_149_ = v_reuseFailAlloc_150_;
goto v_reusejp_148_;
}
v_reusejp_148_:
{
return v___x_149_;
}
}
}
}
else
{
lean_object* v___x_152_; 
v___x_152_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_100_, v___y_101_, v___y_102_, v___y_103_, v___y_104_, v___y_105_, v___y_106_, v___y_107_, v___y_108_, v___y_109_, v___y_110_);
if (lean_obj_tag(v___x_152_) == 0)
{
lean_object* v_a_153_; lean_object* v___x_155_; uint8_t v_isShared_156_; uint8_t v_isSharedCheck_169_; 
v_a_153_ = lean_ctor_get(v___x_152_, 0);
v_isSharedCheck_169_ = !lean_is_exclusive(v___x_152_);
if (v_isSharedCheck_169_ == 0)
{
v___x_155_ = v___x_152_;
v_isShared_156_ = v_isSharedCheck_169_;
goto v_resetjp_154_;
}
else
{
lean_inc(v_a_153_);
lean_dec(v___x_152_);
v___x_155_ = lean_box(0);
v_isShared_156_ = v_isSharedCheck_169_;
goto v_resetjp_154_;
}
v_resetjp_154_:
{
lean_object* v_vars_157_; lean_object* v_size_158_; lean_object* v___x_159_; uint8_t v___x_160_; 
v_vars_157_ = lean_ctor_get(v_a_153_, 30);
lean_inc_ref(v_vars_157_);
lean_dec(v_a_153_);
v_size_158_ = lean_ctor_get(v_vars_157_, 2);
v___x_159_ = l_Lean_instInhabitedExpr;
v___x_160_ = lean_nat_dec_lt(v_x_99_, v_size_158_);
if (v___x_160_ == 0)
{
lean_object* v___x_161_; lean_object* v___x_163_; 
lean_dec_ref(v_vars_157_);
v___x_161_ = l_outOfBounds___redArg(v___x_159_);
if (v_isShared_156_ == 0)
{
lean_ctor_set(v___x_155_, 0, v___x_161_);
v___x_163_ = v___x_155_;
goto v_reusejp_162_;
}
else
{
lean_object* v_reuseFailAlloc_164_; 
v_reuseFailAlloc_164_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_164_, 0, v___x_161_);
v___x_163_ = v_reuseFailAlloc_164_;
goto v_reusejp_162_;
}
v_reusejp_162_:
{
return v___x_163_;
}
}
else
{
lean_object* v___x_165_; lean_object* v___x_167_; 
v___x_165_ = l_Lean_PersistentArray_get_x21___redArg(v___x_159_, v_vars_157_, v_x_99_);
if (v_isShared_156_ == 0)
{
lean_ctor_set(v___x_155_, 0, v___x_165_);
v___x_167_ = v___x_155_;
goto v_reusejp_166_;
}
else
{
lean_object* v_reuseFailAlloc_168_; 
v_reuseFailAlloc_168_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_168_, 0, v___x_165_);
v___x_167_ = v_reuseFailAlloc_168_;
goto v_reusejp_166_;
}
v_reusejp_166_:
{
return v___x_167_;
}
}
}
}
else
{
lean_object* v_a_170_; lean_object* v___x_172_; uint8_t v_isShared_173_; uint8_t v_isSharedCheck_177_; 
v_a_170_ = lean_ctor_get(v___x_152_, 0);
v_isSharedCheck_177_ = !lean_is_exclusive(v___x_152_);
if (v_isSharedCheck_177_ == 0)
{
v___x_172_ = v___x_152_;
v_isShared_173_ = v_isSharedCheck_177_;
goto v_resetjp_171_;
}
else
{
lean_inc(v_a_170_);
lean_dec(v___x_152_);
v___x_172_ = lean_box(0);
v_isShared_173_ = v_isSharedCheck_177_;
goto v_resetjp_171_;
}
v_resetjp_171_:
{
lean_object* v___x_175_; 
if (v_isShared_173_ == 0)
{
v___x_175_ = v___x_172_;
goto v_reusejp_174_;
}
else
{
lean_object* v_reuseFailAlloc_176_; 
v_reuseFailAlloc_176_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_176_, 0, v_a_170_);
v___x_175_ = v_reuseFailAlloc_176_;
goto v_reusejp_174_;
}
v_reusejp_174_:
{
return v___x_175_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___boxed(lean_object* v_k_178_, lean_object* v_x_179_, lean_object* v___y_180_, lean_object* v___y_181_, lean_object* v___y_182_, lean_object* v___y_183_, lean_object* v___y_184_, lean_object* v___y_185_, lean_object* v___y_186_, lean_object* v___y_187_, lean_object* v___y_188_, lean_object* v___y_189_, lean_object* v___y_190_, lean_object* v___y_191_){
_start:
{
lean_object* v_res_192_; 
v_res_192_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5(v_k_178_, v_x_179_, v___y_180_, v___y_181_, v___y_182_, v___y_183_, v___y_184_, v___y_185_, v___y_186_, v___y_187_, v___y_188_, v___y_189_, v___y_190_);
lean_dec(v___y_190_);
lean_dec_ref(v___y_189_);
lean_dec(v___y_188_);
lean_dec_ref(v___y_187_);
lean_dec(v___y_186_);
lean_dec_ref(v___y_185_);
lean_dec(v___y_184_);
lean_dec_ref(v___y_183_);
lean_dec(v___y_182_);
lean_dec(v___y_181_);
lean_dec(v___y_180_);
lean_dec(v_x_179_);
lean_dec(v_k_178_);
return v_res_192_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__6(lean_object* v_p_193_, lean_object* v_acc_194_, lean_object* v___y_195_, lean_object* v___y_196_, lean_object* v___y_197_, lean_object* v___y_198_, lean_object* v___y_199_, lean_object* v___y_200_, lean_object* v___y_201_, lean_object* v___y_202_, lean_object* v___y_203_, lean_object* v___y_204_, lean_object* v___y_205_){
_start:
{
if (lean_obj_tag(v_p_193_) == 0)
{
lean_object* v___x_207_; 
v___x_207_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_207_, 0, v_acc_194_);
return v___x_207_;
}
else
{
lean_object* v_k_208_; lean_object* v_v_209_; lean_object* v_p_210_; lean_object* v___x_211_; 
v_k_208_ = lean_ctor_get(v_p_193_, 0);
v_v_209_ = lean_ctor_get(v_p_193_, 1);
v_p_210_ = lean_ctor_get(v_p_193_, 2);
v___x_211_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_195_, v___y_196_, v___y_197_, v___y_198_, v___y_199_, v___y_200_, v___y_201_, v___y_202_, v___y_203_, v___y_204_, v___y_205_);
if (lean_obj_tag(v___x_211_) == 0)
{
lean_object* v_a_212_; lean_object* v___x_213_; 
v_a_212_ = lean_ctor_get(v___x_211_, 0);
lean_inc(v_a_212_);
lean_dec_ref(v___x_211_);
v___x_213_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5(v_k_208_, v_v_209_, v___y_195_, v___y_196_, v___y_197_, v___y_198_, v___y_199_, v___y_200_, v___y_201_, v___y_202_, v___y_203_, v___y_204_, v___y_205_);
if (lean_obj_tag(v___x_213_) == 0)
{
lean_object* v_a_214_; lean_object* v_addFn_215_; lean_object* v___x_216_; 
v_a_214_ = lean_ctor_get(v___x_213_, 0);
lean_inc(v_a_214_);
lean_dec_ref(v___x_213_);
v_addFn_215_ = lean_ctor_get(v_a_212_, 22);
lean_inc_ref(v_addFn_215_);
lean_dec(v_a_212_);
v___x_216_ = l_Lean_mkAppB(v_addFn_215_, v_acc_194_, v_a_214_);
v_p_193_ = v_p_210_;
v_acc_194_ = v___x_216_;
goto _start;
}
else
{
lean_dec(v_a_212_);
lean_dec_ref(v_acc_194_);
return v___x_213_;
}
}
else
{
lean_object* v_a_218_; lean_object* v___x_220_; uint8_t v_isShared_221_; uint8_t v_isSharedCheck_225_; 
lean_dec_ref(v_acc_194_);
v_a_218_ = lean_ctor_get(v___x_211_, 0);
v_isSharedCheck_225_ = !lean_is_exclusive(v___x_211_);
if (v_isSharedCheck_225_ == 0)
{
v___x_220_ = v___x_211_;
v_isShared_221_ = v_isSharedCheck_225_;
goto v_resetjp_219_;
}
else
{
lean_inc(v_a_218_);
lean_dec(v___x_211_);
v___x_220_ = lean_box(0);
v_isShared_221_ = v_isSharedCheck_225_;
goto v_resetjp_219_;
}
v_resetjp_219_:
{
lean_object* v___x_223_; 
if (v_isShared_221_ == 0)
{
v___x_223_ = v___x_220_;
goto v_reusejp_222_;
}
else
{
lean_object* v_reuseFailAlloc_224_; 
v_reuseFailAlloc_224_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_224_, 0, v_a_218_);
v___x_223_ = v_reuseFailAlloc_224_;
goto v_reusejp_222_;
}
v_reusejp_222_:
{
return v___x_223_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__6___boxed(lean_object* v_p_226_, lean_object* v_acc_227_, lean_object* v___y_228_, lean_object* v___y_229_, lean_object* v___y_230_, lean_object* v___y_231_, lean_object* v___y_232_, lean_object* v___y_233_, lean_object* v___y_234_, lean_object* v___y_235_, lean_object* v___y_236_, lean_object* v___y_237_, lean_object* v___y_238_, lean_object* v___y_239_){
_start:
{
lean_object* v_res_240_; 
v_res_240_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__6(v_p_226_, v_acc_227_, v___y_228_, v___y_229_, v___y_230_, v___y_231_, v___y_232_, v___y_233_, v___y_234_, v___y_235_, v___y_236_, v___y_237_, v___y_238_);
lean_dec(v___y_238_);
lean_dec_ref(v___y_237_);
lean_dec(v___y_236_);
lean_dec_ref(v___y_235_);
lean_dec(v___y_234_);
lean_dec_ref(v___y_233_);
lean_dec(v___y_232_);
lean_dec_ref(v___y_231_);
lean_dec(v___y_230_);
lean_dec(v___y_229_);
lean_dec(v___y_228_);
lean_dec(v_p_226_);
return v_res_240_;
}
}
LEAN_EXPORT lean_object* l_Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2(lean_object* v_p_241_, lean_object* v___y_242_, lean_object* v___y_243_, lean_object* v___y_244_, lean_object* v___y_245_, lean_object* v___y_246_, lean_object* v___y_247_, lean_object* v___y_248_, lean_object* v___y_249_, lean_object* v___y_250_, lean_object* v___y_251_, lean_object* v___y_252_){
_start:
{
if (lean_obj_tag(v_p_241_) == 0)
{
lean_object* v___x_254_; 
v___x_254_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_242_, v___y_243_, v___y_244_, v___y_245_, v___y_246_, v___y_247_, v___y_248_, v___y_249_, v___y_250_, v___y_251_, v___y_252_);
if (lean_obj_tag(v___x_254_) == 0)
{
lean_object* v_a_255_; lean_object* v___x_257_; uint8_t v_isShared_258_; uint8_t v_isSharedCheck_263_; 
v_a_255_ = lean_ctor_get(v___x_254_, 0);
v_isSharedCheck_263_ = !lean_is_exclusive(v___x_254_);
if (v_isSharedCheck_263_ == 0)
{
v___x_257_ = v___x_254_;
v_isShared_258_ = v_isSharedCheck_263_;
goto v_resetjp_256_;
}
else
{
lean_inc(v_a_255_);
lean_dec(v___x_254_);
v___x_257_ = lean_box(0);
v_isShared_258_ = v_isSharedCheck_263_;
goto v_resetjp_256_;
}
v_resetjp_256_:
{
lean_object* v_zero_259_; lean_object* v___x_261_; 
v_zero_259_ = lean_ctor_get(v_a_255_, 17);
lean_inc_ref(v_zero_259_);
lean_dec(v_a_255_);
if (v_isShared_258_ == 0)
{
lean_ctor_set(v___x_257_, 0, v_zero_259_);
v___x_261_ = v___x_257_;
goto v_reusejp_260_;
}
else
{
lean_object* v_reuseFailAlloc_262_; 
v_reuseFailAlloc_262_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_262_, 0, v_zero_259_);
v___x_261_ = v_reuseFailAlloc_262_;
goto v_reusejp_260_;
}
v_reusejp_260_:
{
return v___x_261_;
}
}
}
else
{
lean_object* v_a_264_; lean_object* v___x_266_; uint8_t v_isShared_267_; uint8_t v_isSharedCheck_271_; 
v_a_264_ = lean_ctor_get(v___x_254_, 0);
v_isSharedCheck_271_ = !lean_is_exclusive(v___x_254_);
if (v_isSharedCheck_271_ == 0)
{
v___x_266_ = v___x_254_;
v_isShared_267_ = v_isSharedCheck_271_;
goto v_resetjp_265_;
}
else
{
lean_inc(v_a_264_);
lean_dec(v___x_254_);
v___x_266_ = lean_box(0);
v_isShared_267_ = v_isSharedCheck_271_;
goto v_resetjp_265_;
}
v_resetjp_265_:
{
lean_object* v___x_269_; 
if (v_isShared_267_ == 0)
{
v___x_269_ = v___x_266_;
goto v_reusejp_268_;
}
else
{
lean_object* v_reuseFailAlloc_270_; 
v_reuseFailAlloc_270_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_270_, 0, v_a_264_);
v___x_269_ = v_reuseFailAlloc_270_;
goto v_reusejp_268_;
}
v_reusejp_268_:
{
return v___x_269_;
}
}
}
}
else
{
lean_object* v_k_272_; lean_object* v_v_273_; lean_object* v_p_274_; lean_object* v___x_275_; 
v_k_272_ = lean_ctor_get(v_p_241_, 0);
v_v_273_ = lean_ctor_get(v_p_241_, 1);
v_p_274_ = lean_ctor_get(v_p_241_, 2);
v___x_275_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5(v_k_272_, v_v_273_, v___y_242_, v___y_243_, v___y_244_, v___y_245_, v___y_246_, v___y_247_, v___y_248_, v___y_249_, v___y_250_, v___y_251_, v___y_252_);
if (lean_obj_tag(v___x_275_) == 0)
{
lean_object* v_a_276_; lean_object* v___x_277_; 
v_a_276_ = lean_ctor_get(v___x_275_, 0);
lean_inc(v_a_276_);
lean_dec_ref(v___x_275_);
v___x_277_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__6(v_p_274_, v_a_276_, v___y_242_, v___y_243_, v___y_244_, v___y_245_, v___y_246_, v___y_247_, v___y_248_, v___y_249_, v___y_250_, v___y_251_, v___y_252_);
return v___x_277_;
}
else
{
return v___x_275_;
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2___boxed(lean_object* v_p_278_, lean_object* v___y_279_, lean_object* v___y_280_, lean_object* v___y_281_, lean_object* v___y_282_, lean_object* v___y_283_, lean_object* v___y_284_, lean_object* v___y_285_, lean_object* v___y_286_, lean_object* v___y_287_, lean_object* v___y_288_, lean_object* v___y_289_, lean_object* v___y_290_){
_start:
{
lean_object* v_res_291_; 
v_res_291_ = l_Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2(v_p_278_, v___y_279_, v___y_280_, v___y_281_, v___y_282_, v___y_283_, v___y_284_, v___y_285_, v___y_286_, v___y_287_, v___y_288_, v___y_289_);
lean_dec(v___y_289_);
lean_dec_ref(v___y_288_);
lean_dec(v___y_287_);
lean_dec_ref(v___y_286_);
lean_dec(v___y_285_);
lean_dec_ref(v___y_284_);
lean_dec(v___y_283_);
lean_dec_ref(v___y_282_);
lean_dec(v___y_281_);
lean_dec(v___y_280_);
lean_dec(v___y_279_);
lean_dec(v_p_278_);
return v_res_291_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__1(void){
_start:
{
lean_object* v___x_293_; lean_object* v___x_294_; 
v___x_293_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__0));
v___x_294_ = l_Lean_stringToMessageData(v___x_293_);
return v___x_294_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1(lean_object* v___y_295_, lean_object* v___y_296_, lean_object* v___y_297_, lean_object* v___y_298_, lean_object* v___y_299_, lean_object* v___y_300_, lean_object* v___y_301_, lean_object* v___y_302_, lean_object* v___y_303_, lean_object* v___y_304_, lean_object* v___y_305_){
_start:
{
lean_object* v___x_307_; 
v___x_307_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_295_, v___y_296_, v___y_297_, v___y_298_, v___y_299_, v___y_300_, v___y_301_, v___y_302_, v___y_303_, v___y_304_, v___y_305_);
if (lean_obj_tag(v___x_307_) == 0)
{
lean_object* v_a_308_; lean_object* v___x_310_; uint8_t v_isShared_311_; uint8_t v_isSharedCheck_319_; 
v_a_308_ = lean_ctor_get(v___x_307_, 0);
v_isSharedCheck_319_ = !lean_is_exclusive(v___x_307_);
if (v_isSharedCheck_319_ == 0)
{
v___x_310_ = v___x_307_;
v_isShared_311_ = v_isSharedCheck_319_;
goto v_resetjp_309_;
}
else
{
lean_inc(v_a_308_);
lean_dec(v___x_307_);
v___x_310_ = lean_box(0);
v_isShared_311_ = v_isSharedCheck_319_;
goto v_resetjp_309_;
}
v_resetjp_309_:
{
lean_object* v_leFn_x3f_312_; 
v_leFn_x3f_312_ = lean_ctor_get(v_a_308_, 20);
lean_inc(v_leFn_x3f_312_);
lean_dec(v_a_308_);
if (lean_obj_tag(v_leFn_x3f_312_) == 1)
{
lean_object* v_val_313_; lean_object* v___x_315_; 
v_val_313_ = lean_ctor_get(v_leFn_x3f_312_, 0);
lean_inc(v_val_313_);
lean_dec_ref(v_leFn_x3f_312_);
if (v_isShared_311_ == 0)
{
lean_ctor_set(v___x_310_, 0, v_val_313_);
v___x_315_ = v___x_310_;
goto v_reusejp_314_;
}
else
{
lean_object* v_reuseFailAlloc_316_; 
v_reuseFailAlloc_316_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_316_, 0, v_val_313_);
v___x_315_ = v_reuseFailAlloc_316_;
goto v_reusejp_314_;
}
v_reusejp_314_:
{
return v___x_315_;
}
}
else
{
lean_object* v___x_317_; lean_object* v___x_318_; 
lean_dec(v_leFn_x3f_312_);
lean_del_object(v___x_310_);
v___x_317_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__1, &l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__1);
v___x_318_ = l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(v___x_317_, v___y_302_, v___y_303_, v___y_304_, v___y_305_);
return v___x_318_;
}
}
}
else
{
lean_object* v_a_320_; lean_object* v___x_322_; uint8_t v_isShared_323_; uint8_t v_isSharedCheck_327_; 
v_a_320_ = lean_ctor_get(v___x_307_, 0);
v_isSharedCheck_327_ = !lean_is_exclusive(v___x_307_);
if (v_isSharedCheck_327_ == 0)
{
v___x_322_ = v___x_307_;
v_isShared_323_ = v_isSharedCheck_327_;
goto v_resetjp_321_;
}
else
{
lean_inc(v_a_320_);
lean_dec(v___x_307_);
v___x_322_ = lean_box(0);
v_isShared_323_ = v_isSharedCheck_327_;
goto v_resetjp_321_;
}
v_resetjp_321_:
{
lean_object* v___x_325_; 
if (v_isShared_323_ == 0)
{
v___x_325_ = v___x_322_;
goto v_reusejp_324_;
}
else
{
lean_object* v_reuseFailAlloc_326_; 
v_reuseFailAlloc_326_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_326_, 0, v_a_320_);
v___x_325_ = v_reuseFailAlloc_326_;
goto v_reusejp_324_;
}
v_reusejp_324_:
{
return v___x_325_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___boxed(lean_object* v___y_328_, lean_object* v___y_329_, lean_object* v___y_330_, lean_object* v___y_331_, lean_object* v___y_332_, lean_object* v___y_333_, lean_object* v___y_334_, lean_object* v___y_335_, lean_object* v___y_336_, lean_object* v___y_337_, lean_object* v___y_338_, lean_object* v___y_339_){
_start:
{
lean_object* v_res_340_; 
v_res_340_ = l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1(v___y_328_, v___y_329_, v___y_330_, v___y_331_, v___y_332_, v___y_333_, v___y_334_, v___y_335_, v___y_336_, v___y_337_, v___y_338_);
lean_dec(v___y_338_);
lean_dec_ref(v___y_337_);
lean_dec(v___y_336_);
lean_dec_ref(v___y_335_);
lean_dec(v___y_334_);
lean_dec_ref(v___y_333_);
lean_dec(v___y_332_);
lean_dec_ref(v___y_331_);
lean_dec(v___y_330_);
lean_dec(v___y_329_);
lean_dec(v___y_328_);
return v_res_340_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0(lean_object* v_p_341_, uint8_t v_strict_342_, lean_object* v___y_343_, lean_object* v___y_344_, lean_object* v___y_345_, lean_object* v___y_346_, lean_object* v___y_347_, lean_object* v___y_348_, lean_object* v___y_349_, lean_object* v___y_350_, lean_object* v___y_351_, lean_object* v___y_352_, lean_object* v___y_353_){
_start:
{
if (v_strict_342_ == 0)
{
lean_object* v___x_355_; 
v___x_355_ = l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1(v___y_343_, v___y_344_, v___y_345_, v___y_346_, v___y_347_, v___y_348_, v___y_349_, v___y_350_, v___y_351_, v___y_352_, v___y_353_);
if (lean_obj_tag(v___x_355_) == 0)
{
lean_object* v_a_356_; lean_object* v___x_357_; 
v_a_356_ = lean_ctor_get(v___x_355_, 0);
lean_inc(v_a_356_);
lean_dec_ref(v___x_355_);
v___x_357_ = l_Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2(v_p_341_, v___y_343_, v___y_344_, v___y_345_, v___y_346_, v___y_347_, v___y_348_, v___y_349_, v___y_350_, v___y_351_, v___y_352_, v___y_353_);
if (lean_obj_tag(v___x_357_) == 0)
{
lean_object* v_a_358_; lean_object* v___x_359_; 
v_a_358_ = lean_ctor_get(v___x_357_, 0);
lean_inc(v_a_358_);
lean_dec_ref(v___x_357_);
v___x_359_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_343_, v___y_344_, v___y_345_, v___y_346_, v___y_347_, v___y_348_, v___y_349_, v___y_350_, v___y_351_, v___y_352_, v___y_353_);
if (lean_obj_tag(v___x_359_) == 0)
{
lean_object* v_a_360_; lean_object* v___x_362_; uint8_t v_isShared_363_; uint8_t v_isSharedCheck_369_; 
v_a_360_ = lean_ctor_get(v___x_359_, 0);
v_isSharedCheck_369_ = !lean_is_exclusive(v___x_359_);
if (v_isSharedCheck_369_ == 0)
{
v___x_362_ = v___x_359_;
v_isShared_363_ = v_isSharedCheck_369_;
goto v_resetjp_361_;
}
else
{
lean_inc(v_a_360_);
lean_dec(v___x_359_);
v___x_362_ = lean_box(0);
v_isShared_363_ = v_isSharedCheck_369_;
goto v_resetjp_361_;
}
v_resetjp_361_:
{
lean_object* v_ofNatZero_364_; lean_object* v___x_365_; lean_object* v___x_367_; 
v_ofNatZero_364_ = lean_ctor_get(v_a_360_, 18);
lean_inc_ref(v_ofNatZero_364_);
lean_dec(v_a_360_);
v___x_365_ = l_Lean_mkAppB(v_a_356_, v_a_358_, v_ofNatZero_364_);
if (v_isShared_363_ == 0)
{
lean_ctor_set(v___x_362_, 0, v___x_365_);
v___x_367_ = v___x_362_;
goto v_reusejp_366_;
}
else
{
lean_object* v_reuseFailAlloc_368_; 
v_reuseFailAlloc_368_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_368_, 0, v___x_365_);
v___x_367_ = v_reuseFailAlloc_368_;
goto v_reusejp_366_;
}
v_reusejp_366_:
{
return v___x_367_;
}
}
}
else
{
lean_object* v_a_370_; lean_object* v___x_372_; uint8_t v_isShared_373_; uint8_t v_isSharedCheck_377_; 
lean_dec(v_a_358_);
lean_dec(v_a_356_);
v_a_370_ = lean_ctor_get(v___x_359_, 0);
v_isSharedCheck_377_ = !lean_is_exclusive(v___x_359_);
if (v_isSharedCheck_377_ == 0)
{
v___x_372_ = v___x_359_;
v_isShared_373_ = v_isSharedCheck_377_;
goto v_resetjp_371_;
}
else
{
lean_inc(v_a_370_);
lean_dec(v___x_359_);
v___x_372_ = lean_box(0);
v_isShared_373_ = v_isSharedCheck_377_;
goto v_resetjp_371_;
}
v_resetjp_371_:
{
lean_object* v___x_375_; 
if (v_isShared_373_ == 0)
{
v___x_375_ = v___x_372_;
goto v_reusejp_374_;
}
else
{
lean_object* v_reuseFailAlloc_376_; 
v_reuseFailAlloc_376_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_376_, 0, v_a_370_);
v___x_375_ = v_reuseFailAlloc_376_;
goto v_reusejp_374_;
}
v_reusejp_374_:
{
return v___x_375_;
}
}
}
}
else
{
lean_dec(v_a_356_);
return v___x_357_;
}
}
else
{
return v___x_355_;
}
}
else
{
lean_object* v___x_378_; 
v___x_378_ = l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3(v___y_343_, v___y_344_, v___y_345_, v___y_346_, v___y_347_, v___y_348_, v___y_349_, v___y_350_, v___y_351_, v___y_352_, v___y_353_);
if (lean_obj_tag(v___x_378_) == 0)
{
lean_object* v_a_379_; lean_object* v___x_380_; 
v_a_379_ = lean_ctor_get(v___x_378_, 0);
lean_inc(v_a_379_);
lean_dec_ref(v___x_378_);
v___x_380_ = l_Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2(v_p_341_, v___y_343_, v___y_344_, v___y_345_, v___y_346_, v___y_347_, v___y_348_, v___y_349_, v___y_350_, v___y_351_, v___y_352_, v___y_353_);
if (lean_obj_tag(v___x_380_) == 0)
{
lean_object* v_a_381_; lean_object* v___x_382_; 
v_a_381_ = lean_ctor_get(v___x_380_, 0);
lean_inc(v_a_381_);
lean_dec_ref(v___x_380_);
v___x_382_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_343_, v___y_344_, v___y_345_, v___y_346_, v___y_347_, v___y_348_, v___y_349_, v___y_350_, v___y_351_, v___y_352_, v___y_353_);
if (lean_obj_tag(v___x_382_) == 0)
{
lean_object* v_a_383_; lean_object* v___x_385_; uint8_t v_isShared_386_; uint8_t v_isSharedCheck_392_; 
v_a_383_ = lean_ctor_get(v___x_382_, 0);
v_isSharedCheck_392_ = !lean_is_exclusive(v___x_382_);
if (v_isSharedCheck_392_ == 0)
{
v___x_385_ = v___x_382_;
v_isShared_386_ = v_isSharedCheck_392_;
goto v_resetjp_384_;
}
else
{
lean_inc(v_a_383_);
lean_dec(v___x_382_);
v___x_385_ = lean_box(0);
v_isShared_386_ = v_isSharedCheck_392_;
goto v_resetjp_384_;
}
v_resetjp_384_:
{
lean_object* v_ofNatZero_387_; lean_object* v___x_388_; lean_object* v___x_390_; 
v_ofNatZero_387_ = lean_ctor_get(v_a_383_, 18);
lean_inc_ref(v_ofNatZero_387_);
lean_dec(v_a_383_);
v___x_388_ = l_Lean_mkAppB(v_a_379_, v_a_381_, v_ofNatZero_387_);
if (v_isShared_386_ == 0)
{
lean_ctor_set(v___x_385_, 0, v___x_388_);
v___x_390_ = v___x_385_;
goto v_reusejp_389_;
}
else
{
lean_object* v_reuseFailAlloc_391_; 
v_reuseFailAlloc_391_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_391_, 0, v___x_388_);
v___x_390_ = v_reuseFailAlloc_391_;
goto v_reusejp_389_;
}
v_reusejp_389_:
{
return v___x_390_;
}
}
}
else
{
lean_object* v_a_393_; lean_object* v___x_395_; uint8_t v_isShared_396_; uint8_t v_isSharedCheck_400_; 
lean_dec(v_a_381_);
lean_dec(v_a_379_);
v_a_393_ = lean_ctor_get(v___x_382_, 0);
v_isSharedCheck_400_ = !lean_is_exclusive(v___x_382_);
if (v_isSharedCheck_400_ == 0)
{
v___x_395_ = v___x_382_;
v_isShared_396_ = v_isSharedCheck_400_;
goto v_resetjp_394_;
}
else
{
lean_inc(v_a_393_);
lean_dec(v___x_382_);
v___x_395_ = lean_box(0);
v_isShared_396_ = v_isSharedCheck_400_;
goto v_resetjp_394_;
}
v_resetjp_394_:
{
lean_object* v___x_398_; 
if (v_isShared_396_ == 0)
{
v___x_398_ = v___x_395_;
goto v_reusejp_397_;
}
else
{
lean_object* v_reuseFailAlloc_399_; 
v_reuseFailAlloc_399_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_399_, 0, v_a_393_);
v___x_398_ = v_reuseFailAlloc_399_;
goto v_reusejp_397_;
}
v_reusejp_397_:
{
return v___x_398_;
}
}
}
}
else
{
lean_dec(v_a_379_);
return v___x_380_;
}
}
else
{
return v___x_378_;
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0___boxed(lean_object* v_p_401_, lean_object* v_strict_402_, lean_object* v___y_403_, lean_object* v___y_404_, lean_object* v___y_405_, lean_object* v___y_406_, lean_object* v___y_407_, lean_object* v___y_408_, lean_object* v___y_409_, lean_object* v___y_410_, lean_object* v___y_411_, lean_object* v___y_412_, lean_object* v___y_413_, lean_object* v___y_414_){
_start:
{
uint8_t v_strict_boxed_415_; lean_object* v_res_416_; 
v_strict_boxed_415_ = lean_unbox(v_strict_402_);
v_res_416_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0(v_p_401_, v_strict_boxed_415_, v___y_403_, v___y_404_, v___y_405_, v___y_406_, v___y_407_, v___y_408_, v___y_409_, v___y_410_, v___y_411_, v___y_412_, v___y_413_);
lean_dec(v___y_413_);
lean_dec_ref(v___y_412_);
lean_dec(v___y_411_);
lean_dec_ref(v___y_410_);
lean_dec(v___y_409_);
lean_dec_ref(v___y_408_);
lean_dec(v___y_407_);
lean_dec_ref(v___y_406_);
lean_dec(v___y_405_);
lean_dec(v___y_404_);
lean_dec(v___y_403_);
lean_dec(v_p_401_);
return v_res_416_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0(lean_object* v_c_417_, lean_object* v___y_418_, lean_object* v___y_419_, lean_object* v___y_420_, lean_object* v___y_421_, lean_object* v___y_422_, lean_object* v___y_423_, lean_object* v___y_424_, lean_object* v___y_425_, lean_object* v___y_426_, lean_object* v___y_427_, lean_object* v___y_428_){
_start:
{
lean_object* v_p_430_; uint8_t v_strict_431_; lean_object* v___x_432_; 
v_p_430_ = lean_ctor_get(v_c_417_, 0);
v_strict_431_ = lean_ctor_get_uint8(v_c_417_, sizeof(void*)*2);
v___x_432_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0(v_p_430_, v_strict_431_, v___y_418_, v___y_419_, v___y_420_, v___y_421_, v___y_422_, v___y_423_, v___y_424_, v___y_425_, v___y_426_, v___y_427_, v___y_428_);
return v___x_432_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0___boxed(lean_object* v_c_433_, lean_object* v___y_434_, lean_object* v___y_435_, lean_object* v___y_436_, lean_object* v___y_437_, lean_object* v___y_438_, lean_object* v___y_439_, lean_object* v___y_440_, lean_object* v___y_441_, lean_object* v___y_442_, lean_object* v___y_443_, lean_object* v___y_444_, lean_object* v___y_445_){
_start:
{
lean_object* v_res_446_; 
v_res_446_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0(v_c_433_, v___y_434_, v___y_435_, v___y_436_, v___y_437_, v___y_438_, v___y_439_, v___y_440_, v___y_441_, v___y_442_, v___y_443_, v___y_444_);
lean_dec(v___y_444_);
lean_dec_ref(v___y_443_);
lean_dec(v___y_442_);
lean_dec_ref(v___y_441_);
lean_dec(v___y_440_);
lean_dec_ref(v___y_439_);
lean_dec(v___y_438_);
lean_dec_ref(v___y_437_);
lean_dec(v___y_436_);
lean_dec(v___y_435_);
lean_dec(v___y_434_);
lean_dec_ref(v_c_433_);
return v_res_446_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1(void){
_start:
{
lean_object* v___x_448_; lean_object* v___x_449_; 
v___x_448_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__0));
v___x_449_ = l_Lean_stringToMessageData(v___x_448_);
return v___x_449_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(lean_object* v_c_450_, lean_object* v_a_451_, lean_object* v_a_452_, lean_object* v_a_453_, lean_object* v_a_454_, lean_object* v_a_455_, lean_object* v_a_456_, lean_object* v_a_457_, lean_object* v_a_458_, lean_object* v_a_459_, lean_object* v_a_460_, lean_object* v_a_461_){
_start:
{
lean_object* v___x_463_; 
v___x_463_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0(v_c_450_, v_a_451_, v_a_452_, v_a_453_, v_a_454_, v_a_455_, v_a_456_, v_a_457_, v_a_458_, v_a_459_, v_a_460_, v_a_461_);
if (lean_obj_tag(v___x_463_) == 0)
{
lean_object* v_a_464_; lean_object* v___x_465_; lean_object* v___x_466_; lean_object* v___x_467_; lean_object* v___x_468_; lean_object* v___x_469_; 
v_a_464_ = lean_ctor_get(v___x_463_, 0);
lean_inc(v_a_464_);
lean_dec_ref(v___x_463_);
v___x_465_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1, &l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1);
v___x_466_ = l_Lean_MessageData_ofExpr(v_a_464_);
v___x_467_ = l_Lean_indentD(v___x_466_);
v___x_468_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_468_, 0, v___x_465_);
lean_ctor_set(v___x_468_, 1, v___x_467_);
v___x_469_ = l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(v___x_468_, v_a_458_, v_a_459_, v_a_460_, v_a_461_);
return v___x_469_;
}
else
{
lean_object* v_a_470_; lean_object* v___x_472_; uint8_t v_isShared_473_; uint8_t v_isSharedCheck_477_; 
v_a_470_ = lean_ctor_get(v___x_463_, 0);
v_isSharedCheck_477_ = !lean_is_exclusive(v___x_463_);
if (v_isSharedCheck_477_ == 0)
{
v___x_472_ = v___x_463_;
v_isShared_473_ = v_isSharedCheck_477_;
goto v_resetjp_471_;
}
else
{
lean_inc(v_a_470_);
lean_dec(v___x_463_);
v___x_472_ = lean_box(0);
v_isShared_473_ = v_isSharedCheck_477_;
goto v_resetjp_471_;
}
v_resetjp_471_:
{
lean_object* v___x_475_; 
if (v_isShared_473_ == 0)
{
v___x_475_ = v___x_472_;
goto v_reusejp_474_;
}
else
{
lean_object* v_reuseFailAlloc_476_; 
v_reuseFailAlloc_476_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_476_, 0, v_a_470_);
v___x_475_ = v_reuseFailAlloc_476_;
goto v_reusejp_474_;
}
v_reusejp_474_:
{
return v___x_475_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___boxed(lean_object* v_c_478_, lean_object* v_a_479_, lean_object* v_a_480_, lean_object* v_a_481_, lean_object* v_a_482_, lean_object* v_a_483_, lean_object* v_a_484_, lean_object* v_a_485_, lean_object* v_a_486_, lean_object* v_a_487_, lean_object* v_a_488_, lean_object* v_a_489_, lean_object* v_a_490_){
_start:
{
lean_object* v_res_491_; 
v_res_491_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_c_478_, v_a_479_, v_a_480_, v_a_481_, v_a_482_, v_a_483_, v_a_484_, v_a_485_, v_a_486_, v_a_487_, v_a_488_, v_a_489_);
lean_dec(v_a_489_);
lean_dec_ref(v_a_488_);
lean_dec(v_a_487_);
lean_dec_ref(v_a_486_);
lean_dec(v_a_485_);
lean_dec_ref(v_a_484_);
lean_dec(v_a_483_);
lean_dec_ref(v_a_482_);
lean_dec(v_a_481_);
lean_dec(v_a_480_);
lean_dec(v_a_479_);
lean_dec_ref(v_c_478_);
return v_res_491_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected(lean_object* v_00_u03b1_492_, lean_object* v_c_493_, lean_object* v_a_494_, lean_object* v_a_495_, lean_object* v_a_496_, lean_object* v_a_497_, lean_object* v_a_498_, lean_object* v_a_499_, lean_object* v_a_500_, lean_object* v_a_501_, lean_object* v_a_502_, lean_object* v_a_503_, lean_object* v_a_504_){
_start:
{
lean_object* v___x_506_; 
v___x_506_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_c_493_, v_a_494_, v_a_495_, v_a_496_, v_a_497_, v_a_498_, v_a_499_, v_a_500_, v_a_501_, v_a_502_, v_a_503_, v_a_504_);
return v___x_506_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___boxed(lean_object* v_00_u03b1_507_, lean_object* v_c_508_, lean_object* v_a_509_, lean_object* v_a_510_, lean_object* v_a_511_, lean_object* v_a_512_, lean_object* v_a_513_, lean_object* v_a_514_, lean_object* v_a_515_, lean_object* v_a_516_, lean_object* v_a_517_, lean_object* v_a_518_, lean_object* v_a_519_, lean_object* v_a_520_){
_start:
{
lean_object* v_res_521_; 
v_res_521_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected(v_00_u03b1_507_, v_c_508_, v_a_509_, v_a_510_, v_a_511_, v_a_512_, v_a_513_, v_a_514_, v_a_515_, v_a_516_, v_a_517_, v_a_518_, v_a_519_);
lean_dec(v_a_519_);
lean_dec_ref(v_a_518_);
lean_dec(v_a_517_);
lean_dec_ref(v_a_516_);
lean_dec(v_a_515_);
lean_dec_ref(v_a_514_);
lean_dec(v_a_513_);
lean_dec_ref(v_a_512_);
lean_dec(v_a_511_);
lean_dec(v_a_510_);
lean_dec(v_a_509_);
lean_dec_ref(v_c_508_);
return v_res_521_;
}
}
LEAN_EXPORT lean_object* l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1(lean_object* v_00_u03b1_522_, lean_object* v_msg_523_, lean_object* v___y_524_, lean_object* v___y_525_, lean_object* v___y_526_, lean_object* v___y_527_, lean_object* v___y_528_, lean_object* v___y_529_, lean_object* v___y_530_, lean_object* v___y_531_, lean_object* v___y_532_, lean_object* v___y_533_, lean_object* v___y_534_){
_start:
{
lean_object* v___x_536_; 
v___x_536_ = l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(v_msg_523_, v___y_531_, v___y_532_, v___y_533_, v___y_534_);
return v___x_536_;
}
}
LEAN_EXPORT lean_object* l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___boxed(lean_object* v_00_u03b1_537_, lean_object* v_msg_538_, lean_object* v___y_539_, lean_object* v___y_540_, lean_object* v___y_541_, lean_object* v___y_542_, lean_object* v___y_543_, lean_object* v___y_544_, lean_object* v___y_545_, lean_object* v___y_546_, lean_object* v___y_547_, lean_object* v___y_548_, lean_object* v___y_549_, lean_object* v___y_550_){
_start:
{
lean_object* v_res_551_; 
v_res_551_ = l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1(v_00_u03b1_537_, v_msg_538_, v___y_539_, v___y_540_, v___y_541_, v___y_542_, v___y_543_, v___y_544_, v___y_545_, v___y_546_, v___y_547_, v___y_548_, v___y_549_);
lean_dec(v___y_549_);
lean_dec_ref(v___y_548_);
lean_dec(v___y_547_);
lean_dec_ref(v___y_546_);
lean_dec(v___y_545_);
lean_dec_ref(v___y_544_);
lean_dec(v___y_543_);
lean_dec_ref(v___y_542_);
lean_dec(v___y_541_);
lean_dec(v___y_540_);
lean_dec(v___y_539_);
return v_res_551_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0(lean_object* v_a_555_, lean_object* v_b_556_, lean_object* v___y_557_, lean_object* v___y_558_, lean_object* v___y_559_, lean_object* v___y_560_, lean_object* v___y_561_, lean_object* v___y_562_, lean_object* v___y_563_, lean_object* v___y_564_, lean_object* v___y_565_, lean_object* v___y_566_, lean_object* v___y_567_){
_start:
{
lean_object* v___x_569_; 
v___x_569_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_557_, v___y_558_, v___y_559_, v___y_560_, v___y_561_, v___y_562_, v___y_563_, v___y_564_, v___y_565_, v___y_566_, v___y_567_);
if (lean_obj_tag(v___x_569_) == 0)
{
lean_object* v_a_570_; lean_object* v___x_572_; uint8_t v_isShared_573_; uint8_t v_isSharedCheck_585_; 
v_a_570_ = lean_ctor_get(v___x_569_, 0);
v_isSharedCheck_585_ = !lean_is_exclusive(v___x_569_);
if (v_isSharedCheck_585_ == 0)
{
v___x_572_ = v___x_569_;
v_isShared_573_ = v_isSharedCheck_585_;
goto v_resetjp_571_;
}
else
{
lean_inc(v_a_570_);
lean_dec(v___x_569_);
v___x_572_ = lean_box(0);
v_isShared_573_ = v_isSharedCheck_585_;
goto v_resetjp_571_;
}
v_resetjp_571_:
{
lean_object* v_type_574_; lean_object* v_u_575_; lean_object* v___x_576_; lean_object* v___x_577_; lean_object* v___x_578_; lean_object* v___x_579_; lean_object* v___x_580_; lean_object* v___x_581_; lean_object* v___x_583_; 
v_type_574_ = lean_ctor_get(v_a_570_, 2);
lean_inc_ref(v_type_574_);
v_u_575_ = lean_ctor_get(v_a_570_, 3);
lean_inc(v_u_575_);
lean_dec(v_a_570_);
v___x_576_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___closed__1));
v___x_577_ = l_Lean_Level_succ___override(v_u_575_);
v___x_578_ = lean_box(0);
v___x_579_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v___x_579_, 0, v___x_577_);
lean_ctor_set(v___x_579_, 1, v___x_578_);
v___x_580_ = l_Lean_mkConst(v___x_576_, v___x_579_);
v___x_581_ = l_Lean_mkApp3(v___x_580_, v_type_574_, v_a_555_, v_b_556_);
if (v_isShared_573_ == 0)
{
lean_ctor_set(v___x_572_, 0, v___x_581_);
v___x_583_ = v___x_572_;
goto v_reusejp_582_;
}
else
{
lean_object* v_reuseFailAlloc_584_; 
v_reuseFailAlloc_584_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_584_, 0, v___x_581_);
v___x_583_ = v_reuseFailAlloc_584_;
goto v_reusejp_582_;
}
v_reusejp_582_:
{
return v___x_583_;
}
}
}
else
{
lean_object* v_a_586_; lean_object* v___x_588_; uint8_t v_isShared_589_; uint8_t v_isSharedCheck_593_; 
lean_dec_ref(v_b_556_);
lean_dec_ref(v_a_555_);
v_a_586_ = lean_ctor_get(v___x_569_, 0);
v_isSharedCheck_593_ = !lean_is_exclusive(v___x_569_);
if (v_isSharedCheck_593_ == 0)
{
v___x_588_ = v___x_569_;
v_isShared_589_ = v_isSharedCheck_593_;
goto v_resetjp_587_;
}
else
{
lean_inc(v_a_586_);
lean_dec(v___x_569_);
v___x_588_ = lean_box(0);
v_isShared_589_ = v_isSharedCheck_593_;
goto v_resetjp_587_;
}
v_resetjp_587_:
{
lean_object* v___x_591_; 
if (v_isShared_589_ == 0)
{
v___x_591_ = v___x_588_;
goto v_reusejp_590_;
}
else
{
lean_object* v_reuseFailAlloc_592_; 
v_reuseFailAlloc_592_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_592_, 0, v_a_586_);
v___x_591_ = v_reuseFailAlloc_592_;
goto v_reusejp_590_;
}
v_reusejp_590_:
{
return v___x_591_;
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___boxed(lean_object* v_a_594_, lean_object* v_b_595_, lean_object* v___y_596_, lean_object* v___y_597_, lean_object* v___y_598_, lean_object* v___y_599_, lean_object* v___y_600_, lean_object* v___y_601_, lean_object* v___y_602_, lean_object* v___y_603_, lean_object* v___y_604_, lean_object* v___y_605_, lean_object* v___y_606_, lean_object* v___y_607_){
_start:
{
lean_object* v_res_608_; 
v_res_608_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0(v_a_594_, v_b_595_, v___y_596_, v___y_597_, v___y_598_, v___y_599_, v___y_600_, v___y_601_, v___y_602_, v___y_603_, v___y_604_, v___y_605_, v___y_606_);
lean_dec(v___y_606_);
lean_dec_ref(v___y_605_);
lean_dec(v___y_604_);
lean_dec_ref(v___y_603_);
lean_dec(v___y_602_);
lean_dec_ref(v___y_601_);
lean_dec(v___y_600_);
lean_dec_ref(v___y_599_);
lean_dec(v___y_598_);
lean_dec(v___y_597_);
lean_dec(v___y_596_);
return v_res_608_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0(lean_object* v_c_609_, lean_object* v___y_610_, lean_object* v___y_611_, lean_object* v___y_612_, lean_object* v___y_613_, lean_object* v___y_614_, lean_object* v___y_615_, lean_object* v___y_616_, lean_object* v___y_617_, lean_object* v___y_618_, lean_object* v___y_619_, lean_object* v___y_620_){
_start:
{
lean_object* v_p_622_; lean_object* v___x_623_; 
v_p_622_ = lean_ctor_get(v_c_609_, 0);
v___x_623_ = l_Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2(v_p_622_, v___y_610_, v___y_611_, v___y_612_, v___y_613_, v___y_614_, v___y_615_, v___y_616_, v___y_617_, v___y_618_, v___y_619_, v___y_620_);
if (lean_obj_tag(v___x_623_) == 0)
{
lean_object* v_a_624_; lean_object* v___x_625_; 
v_a_624_ = lean_ctor_get(v___x_623_, 0);
lean_inc(v_a_624_);
lean_dec_ref(v___x_623_);
v___x_625_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_610_, v___y_611_, v___y_612_, v___y_613_, v___y_614_, v___y_615_, v___y_616_, v___y_617_, v___y_618_, v___y_619_, v___y_620_);
if (lean_obj_tag(v___x_625_) == 0)
{
lean_object* v_a_626_; lean_object* v_ofNatZero_627_; lean_object* v___x_628_; 
v_a_626_ = lean_ctor_get(v___x_625_, 0);
lean_inc(v_a_626_);
lean_dec_ref(v___x_625_);
v_ofNatZero_627_ = lean_ctor_get(v_a_626_, 18);
lean_inc_ref(v_ofNatZero_627_);
lean_dec(v_a_626_);
v___x_628_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0(v_a_624_, v_ofNatZero_627_, v___y_610_, v___y_611_, v___y_612_, v___y_613_, v___y_614_, v___y_615_, v___y_616_, v___y_617_, v___y_618_, v___y_619_, v___y_620_);
if (lean_obj_tag(v___x_628_) == 0)
{
lean_object* v_a_629_; lean_object* v___x_631_; uint8_t v_isShared_632_; uint8_t v_isSharedCheck_637_; 
v_a_629_ = lean_ctor_get(v___x_628_, 0);
v_isSharedCheck_637_ = !lean_is_exclusive(v___x_628_);
if (v_isSharedCheck_637_ == 0)
{
v___x_631_ = v___x_628_;
v_isShared_632_ = v_isSharedCheck_637_;
goto v_resetjp_630_;
}
else
{
lean_inc(v_a_629_);
lean_dec(v___x_628_);
v___x_631_ = lean_box(0);
v_isShared_632_ = v_isSharedCheck_637_;
goto v_resetjp_630_;
}
v_resetjp_630_:
{
lean_object* v___x_633_; lean_object* v___x_635_; 
v___x_633_ = l_Lean_mkNot(v_a_629_);
if (v_isShared_632_ == 0)
{
lean_ctor_set(v___x_631_, 0, v___x_633_);
v___x_635_ = v___x_631_;
goto v_reusejp_634_;
}
else
{
lean_object* v_reuseFailAlloc_636_; 
v_reuseFailAlloc_636_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_636_, 0, v___x_633_);
v___x_635_ = v_reuseFailAlloc_636_;
goto v_reusejp_634_;
}
v_reusejp_634_:
{
return v___x_635_;
}
}
}
else
{
return v___x_628_;
}
}
else
{
lean_object* v_a_638_; lean_object* v___x_640_; uint8_t v_isShared_641_; uint8_t v_isSharedCheck_645_; 
lean_dec(v_a_624_);
v_a_638_ = lean_ctor_get(v___x_625_, 0);
v_isSharedCheck_645_ = !lean_is_exclusive(v___x_625_);
if (v_isSharedCheck_645_ == 0)
{
v___x_640_ = v___x_625_;
v_isShared_641_ = v_isSharedCheck_645_;
goto v_resetjp_639_;
}
else
{
lean_inc(v_a_638_);
lean_dec(v___x_625_);
v___x_640_ = lean_box(0);
v_isShared_641_ = v_isSharedCheck_645_;
goto v_resetjp_639_;
}
v_resetjp_639_:
{
lean_object* v___x_643_; 
if (v_isShared_641_ == 0)
{
v___x_643_ = v___x_640_;
goto v_reusejp_642_;
}
else
{
lean_object* v_reuseFailAlloc_644_; 
v_reuseFailAlloc_644_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_644_, 0, v_a_638_);
v___x_643_ = v_reuseFailAlloc_644_;
goto v_reusejp_642_;
}
v_reusejp_642_:
{
return v___x_643_;
}
}
}
}
else
{
return v___x_623_;
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0___boxed(lean_object* v_c_646_, lean_object* v___y_647_, lean_object* v___y_648_, lean_object* v___y_649_, lean_object* v___y_650_, lean_object* v___y_651_, lean_object* v___y_652_, lean_object* v___y_653_, lean_object* v___y_654_, lean_object* v___y_655_, lean_object* v___y_656_, lean_object* v___y_657_, lean_object* v___y_658_){
_start:
{
lean_object* v_res_659_; 
v_res_659_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0(v_c_646_, v___y_647_, v___y_648_, v___y_649_, v___y_650_, v___y_651_, v___y_652_, v___y_653_, v___y_654_, v___y_655_, v___y_656_, v___y_657_);
lean_dec(v___y_657_);
lean_dec_ref(v___y_656_);
lean_dec(v___y_655_);
lean_dec_ref(v___y_654_);
lean_dec(v___y_653_);
lean_dec_ref(v___y_652_);
lean_dec(v___y_651_);
lean_dec_ref(v___y_650_);
lean_dec(v___y_649_);
lean_dec(v___y_648_);
lean_dec(v___y_647_);
lean_dec_ref(v_c_646_);
return v_res_659_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(lean_object* v_c_660_, lean_object* v_a_661_, lean_object* v_a_662_, lean_object* v_a_663_, lean_object* v_a_664_, lean_object* v_a_665_, lean_object* v_a_666_, lean_object* v_a_667_, lean_object* v_a_668_, lean_object* v_a_669_, lean_object* v_a_670_, lean_object* v_a_671_){
_start:
{
lean_object* v___x_673_; 
v___x_673_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0(v_c_660_, v_a_661_, v_a_662_, v_a_663_, v_a_664_, v_a_665_, v_a_666_, v_a_667_, v_a_668_, v_a_669_, v_a_670_, v_a_671_);
if (lean_obj_tag(v___x_673_) == 0)
{
lean_object* v_a_674_; lean_object* v___x_675_; lean_object* v___x_676_; lean_object* v___x_677_; lean_object* v___x_678_; lean_object* v___x_679_; 
v_a_674_ = lean_ctor_get(v___x_673_, 0);
lean_inc(v_a_674_);
lean_dec_ref(v___x_673_);
v___x_675_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1, &l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1);
v___x_676_ = l_Lean_MessageData_ofExpr(v_a_674_);
v___x_677_ = l_Lean_indentD(v___x_676_);
v___x_678_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_678_, 0, v___x_675_);
lean_ctor_set(v___x_678_, 1, v___x_677_);
v___x_679_ = l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(v___x_678_, v_a_668_, v_a_669_, v_a_670_, v_a_671_);
return v___x_679_;
}
else
{
lean_object* v_a_680_; lean_object* v___x_682_; uint8_t v_isShared_683_; uint8_t v_isSharedCheck_687_; 
v_a_680_ = lean_ctor_get(v___x_673_, 0);
v_isSharedCheck_687_ = !lean_is_exclusive(v___x_673_);
if (v_isSharedCheck_687_ == 0)
{
v___x_682_ = v___x_673_;
v_isShared_683_ = v_isSharedCheck_687_;
goto v_resetjp_681_;
}
else
{
lean_inc(v_a_680_);
lean_dec(v___x_673_);
v___x_682_ = lean_box(0);
v_isShared_683_ = v_isSharedCheck_687_;
goto v_resetjp_681_;
}
v_resetjp_681_:
{
lean_object* v___x_685_; 
if (v_isShared_683_ == 0)
{
v___x_685_ = v___x_682_;
goto v_reusejp_684_;
}
else
{
lean_object* v_reuseFailAlloc_686_; 
v_reuseFailAlloc_686_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_686_, 0, v_a_680_);
v___x_685_ = v_reuseFailAlloc_686_;
goto v_reusejp_684_;
}
v_reusejp_684_:
{
return v___x_685_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg___boxed(lean_object* v_c_688_, lean_object* v_a_689_, lean_object* v_a_690_, lean_object* v_a_691_, lean_object* v_a_692_, lean_object* v_a_693_, lean_object* v_a_694_, lean_object* v_a_695_, lean_object* v_a_696_, lean_object* v_a_697_, lean_object* v_a_698_, lean_object* v_a_699_, lean_object* v_a_700_){
_start:
{
lean_object* v_res_701_; 
v_res_701_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_c_688_, v_a_689_, v_a_690_, v_a_691_, v_a_692_, v_a_693_, v_a_694_, v_a_695_, v_a_696_, v_a_697_, v_a_698_, v_a_699_);
lean_dec(v_a_699_);
lean_dec_ref(v_a_698_);
lean_dec(v_a_697_);
lean_dec_ref(v_a_696_);
lean_dec(v_a_695_);
lean_dec_ref(v_a_694_);
lean_dec(v_a_693_);
lean_dec_ref(v_a_692_);
lean_dec(v_a_691_);
lean_dec(v_a_690_);
lean_dec(v_a_689_);
lean_dec_ref(v_c_688_);
return v_res_701_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected(lean_object* v_00_u03b1_702_, lean_object* v_c_703_, lean_object* v_a_704_, lean_object* v_a_705_, lean_object* v_a_706_, lean_object* v_a_707_, lean_object* v_a_708_, lean_object* v_a_709_, lean_object* v_a_710_, lean_object* v_a_711_, lean_object* v_a_712_, lean_object* v_a_713_, lean_object* v_a_714_){
_start:
{
lean_object* v___x_716_; 
v___x_716_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_c_703_, v_a_704_, v_a_705_, v_a_706_, v_a_707_, v_a_708_, v_a_709_, v_a_710_, v_a_711_, v_a_712_, v_a_713_, v_a_714_);
return v___x_716_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___boxed(lean_object* v_00_u03b1_717_, lean_object* v_c_718_, lean_object* v_a_719_, lean_object* v_a_720_, lean_object* v_a_721_, lean_object* v_a_722_, lean_object* v_a_723_, lean_object* v_a_724_, lean_object* v_a_725_, lean_object* v_a_726_, lean_object* v_a_727_, lean_object* v_a_728_, lean_object* v_a_729_, lean_object* v_a_730_){
_start:
{
lean_object* v_res_731_; 
v_res_731_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected(v_00_u03b1_717_, v_c_718_, v_a_719_, v_a_720_, v_a_721_, v_a_722_, v_a_723_, v_a_724_, v_a_725_, v_a_726_, v_a_727_, v_a_728_, v_a_729_);
lean_dec(v_a_729_);
lean_dec_ref(v_a_728_);
lean_dec(v_a_727_);
lean_dec_ref(v_a_726_);
lean_dec(v_a_725_);
lean_dec_ref(v_a_724_);
lean_dec(v_a_723_);
lean_dec_ref(v_a_722_);
lean_dec(v_a_721_);
lean_dec(v_a_720_);
lean_dec(v_a_719_);
lean_dec_ref(v_c_718_);
return v_res_731_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected_spec__0(lean_object* v_c_732_, lean_object* v___y_733_, lean_object* v___y_734_, lean_object* v___y_735_, lean_object* v___y_736_, lean_object* v___y_737_, lean_object* v___y_738_, lean_object* v___y_739_, lean_object* v___y_740_, lean_object* v___y_741_, lean_object* v___y_742_, lean_object* v___y_743_){
_start:
{
lean_object* v_p_745_; lean_object* v___x_746_; 
v_p_745_ = lean_ctor_get(v_c_732_, 0);
v___x_746_ = l_Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2(v_p_745_, v___y_733_, v___y_734_, v___y_735_, v___y_736_, v___y_737_, v___y_738_, v___y_739_, v___y_740_, v___y_741_, v___y_742_, v___y_743_);
if (lean_obj_tag(v___x_746_) == 0)
{
lean_object* v_a_747_; lean_object* v___x_748_; 
v_a_747_ = lean_ctor_get(v___x_746_, 0);
lean_inc(v_a_747_);
lean_dec_ref(v___x_746_);
v___x_748_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_733_, v___y_734_, v___y_735_, v___y_736_, v___y_737_, v___y_738_, v___y_739_, v___y_740_, v___y_741_, v___y_742_, v___y_743_);
if (lean_obj_tag(v___x_748_) == 0)
{
lean_object* v_a_749_; lean_object* v_ofNatZero_750_; lean_object* v___x_751_; 
v_a_749_ = lean_ctor_get(v___x_748_, 0);
lean_inc(v_a_749_);
lean_dec_ref(v___x_748_);
v_ofNatZero_750_ = lean_ctor_get(v_a_749_, 18);
lean_inc_ref(v_ofNatZero_750_);
lean_dec(v_a_749_);
v___x_751_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0(v_a_747_, v_ofNatZero_750_, v___y_733_, v___y_734_, v___y_735_, v___y_736_, v___y_737_, v___y_738_, v___y_739_, v___y_740_, v___y_741_, v___y_742_, v___y_743_);
return v___x_751_;
}
else
{
lean_object* v_a_752_; lean_object* v___x_754_; uint8_t v_isShared_755_; uint8_t v_isSharedCheck_759_; 
lean_dec(v_a_747_);
v_a_752_ = lean_ctor_get(v___x_748_, 0);
v_isSharedCheck_759_ = !lean_is_exclusive(v___x_748_);
if (v_isSharedCheck_759_ == 0)
{
v___x_754_ = v___x_748_;
v_isShared_755_ = v_isSharedCheck_759_;
goto v_resetjp_753_;
}
else
{
lean_inc(v_a_752_);
lean_dec(v___x_748_);
v___x_754_ = lean_box(0);
v_isShared_755_ = v_isSharedCheck_759_;
goto v_resetjp_753_;
}
v_resetjp_753_:
{
lean_object* v___x_757_; 
if (v_isShared_755_ == 0)
{
v___x_757_ = v___x_754_;
goto v_reusejp_756_;
}
else
{
lean_object* v_reuseFailAlloc_758_; 
v_reuseFailAlloc_758_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_758_, 0, v_a_752_);
v___x_757_ = v_reuseFailAlloc_758_;
goto v_reusejp_756_;
}
v_reusejp_756_:
{
return v___x_757_;
}
}
}
}
else
{
return v___x_746_;
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected_spec__0___boxed(lean_object* v_c_760_, lean_object* v___y_761_, lean_object* v___y_762_, lean_object* v___y_763_, lean_object* v___y_764_, lean_object* v___y_765_, lean_object* v___y_766_, lean_object* v___y_767_, lean_object* v___y_768_, lean_object* v___y_769_, lean_object* v___y_770_, lean_object* v___y_771_, lean_object* v___y_772_){
_start:
{
lean_object* v_res_773_; 
v_res_773_ = l_Lean_Meta_Grind_Arith_Linear_EqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected_spec__0(v_c_760_, v___y_761_, v___y_762_, v___y_763_, v___y_764_, v___y_765_, v___y_766_, v___y_767_, v___y_768_, v___y_769_, v___y_770_, v___y_771_);
lean_dec(v___y_771_);
lean_dec_ref(v___y_770_);
lean_dec(v___y_769_);
lean_dec_ref(v___y_768_);
lean_dec(v___y_767_);
lean_dec_ref(v___y_766_);
lean_dec(v___y_765_);
lean_dec_ref(v___y_764_);
lean_dec(v___y_763_);
lean_dec(v___y_762_);
lean_dec(v___y_761_);
lean_dec_ref(v_c_760_);
return v_res_773_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___redArg(lean_object* v_c_774_, lean_object* v_a_775_, lean_object* v_a_776_, lean_object* v_a_777_, lean_object* v_a_778_, lean_object* v_a_779_, lean_object* v_a_780_, lean_object* v_a_781_, lean_object* v_a_782_, lean_object* v_a_783_, lean_object* v_a_784_, lean_object* v_a_785_){
_start:
{
lean_object* v___x_787_; 
v___x_787_ = l_Lean_Meta_Grind_Arith_Linear_EqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected_spec__0(v_c_774_, v_a_775_, v_a_776_, v_a_777_, v_a_778_, v_a_779_, v_a_780_, v_a_781_, v_a_782_, v_a_783_, v_a_784_, v_a_785_);
if (lean_obj_tag(v___x_787_) == 0)
{
lean_object* v_a_788_; lean_object* v___x_789_; lean_object* v___x_790_; lean_object* v___x_791_; lean_object* v___x_792_; lean_object* v___x_793_; 
v_a_788_ = lean_ctor_get(v___x_787_, 0);
lean_inc(v_a_788_);
lean_dec_ref(v___x_787_);
v___x_789_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1, &l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg___closed__1);
v___x_790_ = l_Lean_MessageData_ofExpr(v_a_788_);
v___x_791_ = l_Lean_indentD(v___x_790_);
v___x_792_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_792_, 0, v___x_789_);
lean_ctor_set(v___x_792_, 1, v___x_791_);
v___x_793_ = l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(v___x_792_, v_a_782_, v_a_783_, v_a_784_, v_a_785_);
return v___x_793_;
}
else
{
lean_object* v_a_794_; lean_object* v___x_796_; uint8_t v_isShared_797_; uint8_t v_isSharedCheck_801_; 
v_a_794_ = lean_ctor_get(v___x_787_, 0);
v_isSharedCheck_801_ = !lean_is_exclusive(v___x_787_);
if (v_isSharedCheck_801_ == 0)
{
v___x_796_ = v___x_787_;
v_isShared_797_ = v_isSharedCheck_801_;
goto v_resetjp_795_;
}
else
{
lean_inc(v_a_794_);
lean_dec(v___x_787_);
v___x_796_ = lean_box(0);
v_isShared_797_ = v_isSharedCheck_801_;
goto v_resetjp_795_;
}
v_resetjp_795_:
{
lean_object* v___x_799_; 
if (v_isShared_797_ == 0)
{
v___x_799_ = v___x_796_;
goto v_reusejp_798_;
}
else
{
lean_object* v_reuseFailAlloc_800_; 
v_reuseFailAlloc_800_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_800_, 0, v_a_794_);
v___x_799_ = v_reuseFailAlloc_800_;
goto v_reusejp_798_;
}
v_reusejp_798_:
{
return v___x_799_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___redArg___boxed(lean_object* v_c_802_, lean_object* v_a_803_, lean_object* v_a_804_, lean_object* v_a_805_, lean_object* v_a_806_, lean_object* v_a_807_, lean_object* v_a_808_, lean_object* v_a_809_, lean_object* v_a_810_, lean_object* v_a_811_, lean_object* v_a_812_, lean_object* v_a_813_, lean_object* v_a_814_){
_start:
{
lean_object* v_res_815_; 
v_res_815_ = l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___redArg(v_c_802_, v_a_803_, v_a_804_, v_a_805_, v_a_806_, v_a_807_, v_a_808_, v_a_809_, v_a_810_, v_a_811_, v_a_812_, v_a_813_);
lean_dec(v_a_813_);
lean_dec_ref(v_a_812_);
lean_dec(v_a_811_);
lean_dec_ref(v_a_810_);
lean_dec(v_a_809_);
lean_dec_ref(v_a_808_);
lean_dec(v_a_807_);
lean_dec_ref(v_a_806_);
lean_dec(v_a_805_);
lean_dec(v_a_804_);
lean_dec(v_a_803_);
lean_dec_ref(v_c_802_);
return v_res_815_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected(lean_object* v_00_u03b1_816_, lean_object* v_c_817_, lean_object* v_a_818_, lean_object* v_a_819_, lean_object* v_a_820_, lean_object* v_a_821_, lean_object* v_a_822_, lean_object* v_a_823_, lean_object* v_a_824_, lean_object* v_a_825_, lean_object* v_a_826_, lean_object* v_a_827_, lean_object* v_a_828_){
_start:
{
lean_object* v___x_830_; 
v___x_830_ = l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___redArg(v_c_817_, v_a_818_, v_a_819_, v_a_820_, v_a_821_, v_a_822_, v_a_823_, v_a_824_, v_a_825_, v_a_826_, v_a_827_, v_a_828_);
return v___x_830_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___boxed(lean_object* v_00_u03b1_831_, lean_object* v_c_832_, lean_object* v_a_833_, lean_object* v_a_834_, lean_object* v_a_835_, lean_object* v_a_836_, lean_object* v_a_837_, lean_object* v_a_838_, lean_object* v_a_839_, lean_object* v_a_840_, lean_object* v_a_841_, lean_object* v_a_842_, lean_object* v_a_843_, lean_object* v_a_844_){
_start:
{
lean_object* v_res_845_; 
v_res_845_ = l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected(v_00_u03b1_831_, v_c_832_, v_a_833_, v_a_834_, v_a_835_, v_a_836_, v_a_837_, v_a_838_, v_a_839_, v_a_840_, v_a_841_, v_a_842_, v_a_843_);
lean_dec(v_a_843_);
lean_dec_ref(v_a_842_);
lean_dec(v_a_841_);
lean_dec_ref(v_a_840_);
lean_dec(v_a_839_);
lean_dec_ref(v_a_838_);
lean_dec(v_a_837_);
lean_dec_ref(v_a_836_);
lean_dec(v_a_835_);
lean_dec(v_a_834_);
lean_dec(v_a_833_);
lean_dec_ref(v_c_832_);
return v_res_845_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__1(void){
_start:
{
lean_object* v___x_847_; lean_object* v___x_848_; 
v___x_847_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__0));
v___x_848_ = l_Lean_stringToMessageData(v___x_847_);
return v___x_848_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar(lean_object* v_x_849_, lean_object* v_a_850_, lean_object* v_a_851_, lean_object* v_a_852_, lean_object* v_a_853_, lean_object* v_a_854_, lean_object* v_a_855_, lean_object* v_a_856_, lean_object* v_a_857_, lean_object* v_a_858_, lean_object* v_a_859_, lean_object* v_a_860_){
_start:
{
lean_object* v___x_862_; 
v___x_862_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v_a_850_, v_a_851_, v_a_852_, v_a_853_, v_a_854_, v_a_855_, v_a_856_, v_a_857_, v_a_858_, v_a_859_, v_a_860_);
if (lean_obj_tag(v___x_862_) == 0)
{
lean_object* v_a_863_; lean_object* v___x_865_; uint8_t v_isShared_866_; uint8_t v_isSharedCheck_876_; 
v_a_863_ = lean_ctor_get(v___x_862_, 0);
v_isSharedCheck_876_ = !lean_is_exclusive(v___x_862_);
if (v_isSharedCheck_876_ == 0)
{
v___x_865_ = v___x_862_;
v_isShared_866_ = v_isSharedCheck_876_;
goto v_resetjp_864_;
}
else
{
lean_inc(v_a_863_);
lean_dec(v___x_862_);
v___x_865_ = lean_box(0);
v_isShared_866_ = v_isSharedCheck_876_;
goto v_resetjp_864_;
}
v_resetjp_864_:
{
lean_object* v_assignment_867_; lean_object* v_size_868_; uint8_t v___x_869_; 
v_assignment_867_ = lean_ctor_get(v_a_863_, 35);
lean_inc_ref(v_assignment_867_);
lean_dec(v_a_863_);
v_size_868_ = lean_ctor_get(v_assignment_867_, 2);
lean_inc(v_size_868_);
lean_dec_ref(v_assignment_867_);
v___x_869_ = lean_nat_dec_eq(v_x_849_, v_size_868_);
lean_dec(v_size_868_);
if (v___x_869_ == 0)
{
lean_object* v___x_870_; lean_object* v___x_871_; 
lean_del_object(v___x_865_);
v___x_870_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__1, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__1_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___closed__1);
v___x_871_ = l_Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1___redArg(v___x_870_, v_a_857_, v_a_858_, v_a_859_, v_a_860_);
return v___x_871_;
}
else
{
lean_object* v___x_872_; lean_object* v___x_874_; 
v___x_872_ = lean_box(0);
if (v_isShared_866_ == 0)
{
lean_ctor_set(v___x_865_, 0, v___x_872_);
v___x_874_ = v___x_865_;
goto v_reusejp_873_;
}
else
{
lean_object* v_reuseFailAlloc_875_; 
v_reuseFailAlloc_875_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_875_, 0, v___x_872_);
v___x_874_ = v_reuseFailAlloc_875_;
goto v_reusejp_873_;
}
v_reusejp_873_:
{
return v___x_874_;
}
}
}
}
else
{
lean_object* v_a_877_; lean_object* v___x_879_; uint8_t v_isShared_880_; uint8_t v_isSharedCheck_884_; 
v_a_877_ = lean_ctor_get(v___x_862_, 0);
v_isSharedCheck_884_ = !lean_is_exclusive(v___x_862_);
if (v_isSharedCheck_884_ == 0)
{
v___x_879_ = v___x_862_;
v_isShared_880_ = v_isSharedCheck_884_;
goto v_resetjp_878_;
}
else
{
lean_inc(v_a_877_);
lean_dec(v___x_862_);
v___x_879_ = lean_box(0);
v_isShared_880_ = v_isSharedCheck_884_;
goto v_resetjp_878_;
}
v_resetjp_878_:
{
lean_object* v___x_882_; 
if (v_isShared_880_ == 0)
{
v___x_882_ = v___x_879_;
goto v_reusejp_881_;
}
else
{
lean_object* v_reuseFailAlloc_883_; 
v_reuseFailAlloc_883_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_883_, 0, v_a_877_);
v___x_882_ = v_reuseFailAlloc_883_;
goto v_reusejp_881_;
}
v_reusejp_881_:
{
return v___x_882_;
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar___boxed(lean_object* v_x_885_, lean_object* v_a_886_, lean_object* v_a_887_, lean_object* v_a_888_, lean_object* v_a_889_, lean_object* v_a_890_, lean_object* v_a_891_, lean_object* v_a_892_, lean_object* v_a_893_, lean_object* v_a_894_, lean_object* v_a_895_, lean_object* v_a_896_, lean_object* v_a_897_){
_start:
{
lean_object* v_res_898_; 
v_res_898_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar(v_x_885_, v_a_886_, v_a_887_, v_a_888_, v_a_889_, v_a_890_, v_a_891_, v_a_892_, v_a_893_, v_a_894_, v_a_895_, v_a_896_);
lean_dec(v_a_896_);
lean_dec_ref(v_a_895_);
lean_dec(v_a_894_);
lean_dec_ref(v_a_893_);
lean_dec(v_a_892_);
lean_dec_ref(v_a_891_);
lean_dec(v_a_890_);
lean_dec_ref(v_a_889_);
lean_dec(v_a_888_);
lean_dec(v_a_887_);
lean_dec(v_a_886_);
lean_dec(v_x_885_);
return v_res_898_;
}
}
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg(lean_object* v_cls_902_, lean_object* v___y_903_){
_start:
{
lean_object* v_options_905_; uint8_t v_hasTrace_906_; 
v_options_905_ = lean_ctor_get(v___y_903_, 2);
v_hasTrace_906_ = lean_ctor_get_uint8(v_options_905_, sizeof(void*)*1);
if (v_hasTrace_906_ == 0)
{
lean_object* v___x_907_; lean_object* v___x_908_; 
lean_dec(v_cls_902_);
v___x_907_ = lean_box(v_hasTrace_906_);
v___x_908_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_908_, 0, v___x_907_);
return v___x_908_;
}
else
{
lean_object* v_inheritedTraceOptions_909_; lean_object* v___x_910_; lean_object* v___x_911_; uint8_t v___x_912_; lean_object* v___x_913_; lean_object* v___x_914_; 
v_inheritedTraceOptions_909_ = lean_ctor_get(v___y_903_, 13);
v___x_910_ = ((lean_object*)(l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___closed__1));
v___x_911_ = l_Lean_Name_append(v___x_910_, v_cls_902_);
v___x_912_ = l___private_Lean_Util_Trace_0__Lean_checkTraceOption_go(v_inheritedTraceOptions_909_, v_options_905_, v___x_911_);
lean_dec(v___x_911_);
v___x_913_ = lean_box(v___x_912_);
v___x_914_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_914_, 0, v___x_913_);
return v___x_914_;
}
}
}
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___boxed(lean_object* v_cls_915_, lean_object* v___y_916_, lean_object* v___y_917_){
_start:
{
lean_object* v_res_918_; 
v_res_918_ = l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg(v_cls_915_, v___y_916_);
lean_dec_ref(v___y_916_);
return v_res_918_;
}
}
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0(lean_object* v_cls_919_, lean_object* v___y_920_, lean_object* v___y_921_, lean_object* v___y_922_, lean_object* v___y_923_, lean_object* v___y_924_, lean_object* v___y_925_, lean_object* v___y_926_, lean_object* v___y_927_, lean_object* v___y_928_, lean_object* v___y_929_, lean_object* v___y_930_){
_start:
{
lean_object* v___x_932_; 
v___x_932_ = l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg(v_cls_919_, v___y_929_);
return v___x_932_;
}
}
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___boxed(lean_object* v_cls_933_, lean_object* v___y_934_, lean_object* v___y_935_, lean_object* v___y_936_, lean_object* v___y_937_, lean_object* v___y_938_, lean_object* v___y_939_, lean_object* v___y_940_, lean_object* v___y_941_, lean_object* v___y_942_, lean_object* v___y_943_, lean_object* v___y_944_, lean_object* v___y_945_){
_start:
{
lean_object* v_res_946_; 
v_res_946_ = l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0(v_cls_933_, v___y_934_, v___y_935_, v___y_936_, v___y_937_, v___y_938_, v___y_939_, v___y_940_, v___y_941_, v___y_942_, v___y_943_, v___y_944_);
lean_dec(v___y_944_);
lean_dec_ref(v___y_943_);
lean_dec(v___y_942_);
lean_dec_ref(v___y_941_);
lean_dec(v___y_940_);
lean_dec_ref(v___y_939_);
lean_dec(v___y_938_);
lean_dec_ref(v___y_937_);
lean_dec(v___y_936_);
lean_dec(v___y_935_);
lean_dec(v___y_934_);
return v_res_946_;
}
}
static double _init_l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__0(void){
_start:
{
lean_object* v___x_947_; double v___x_948_; 
v___x_947_ = lean_unsigned_to_nat(0u);
v___x_948_ = lean_float_of_nat(v___x_947_);
return v___x_948_;
}
}
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg(lean_object* v_cls_952_, lean_object* v_msg_953_, lean_object* v___y_954_, lean_object* v___y_955_, lean_object* v___y_956_, lean_object* v___y_957_){
_start:
{
lean_object* v_ref_959_; lean_object* v___x_960_; lean_object* v_a_961_; lean_object* v___x_963_; uint8_t v_isShared_964_; uint8_t v_isSharedCheck_1005_; 
v_ref_959_ = lean_ctor_get(v___y_956_, 5);
v___x_960_ = l_Lean_addMessageContextFull___at___00Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1_spec__2(v_msg_953_, v___y_954_, v___y_955_, v___y_956_, v___y_957_);
v_a_961_ = lean_ctor_get(v___x_960_, 0);
v_isSharedCheck_1005_ = !lean_is_exclusive(v___x_960_);
if (v_isSharedCheck_1005_ == 0)
{
v___x_963_ = v___x_960_;
v_isShared_964_ = v_isSharedCheck_1005_;
goto v_resetjp_962_;
}
else
{
lean_inc(v_a_961_);
lean_dec(v___x_960_);
v___x_963_ = lean_box(0);
v_isShared_964_ = v_isSharedCheck_1005_;
goto v_resetjp_962_;
}
v_resetjp_962_:
{
lean_object* v___x_965_; lean_object* v_traceState_966_; lean_object* v_env_967_; lean_object* v_nextMacroScope_968_; lean_object* v_ngen_969_; lean_object* v_auxDeclNGen_970_; lean_object* v_cache_971_; lean_object* v_messages_972_; lean_object* v_infoState_973_; lean_object* v_snapshotTasks_974_; lean_object* v___x_976_; uint8_t v_isShared_977_; uint8_t v_isSharedCheck_1004_; 
v___x_965_ = lean_st_ref_take(v___y_957_);
v_traceState_966_ = lean_ctor_get(v___x_965_, 4);
v_env_967_ = lean_ctor_get(v___x_965_, 0);
v_nextMacroScope_968_ = lean_ctor_get(v___x_965_, 1);
v_ngen_969_ = lean_ctor_get(v___x_965_, 2);
v_auxDeclNGen_970_ = lean_ctor_get(v___x_965_, 3);
v_cache_971_ = lean_ctor_get(v___x_965_, 5);
v_messages_972_ = lean_ctor_get(v___x_965_, 6);
v_infoState_973_ = lean_ctor_get(v___x_965_, 7);
v_snapshotTasks_974_ = lean_ctor_get(v___x_965_, 8);
v_isSharedCheck_1004_ = !lean_is_exclusive(v___x_965_);
if (v_isSharedCheck_1004_ == 0)
{
v___x_976_ = v___x_965_;
v_isShared_977_ = v_isSharedCheck_1004_;
goto v_resetjp_975_;
}
else
{
lean_inc(v_snapshotTasks_974_);
lean_inc(v_infoState_973_);
lean_inc(v_messages_972_);
lean_inc(v_cache_971_);
lean_inc(v_traceState_966_);
lean_inc(v_auxDeclNGen_970_);
lean_inc(v_ngen_969_);
lean_inc(v_nextMacroScope_968_);
lean_inc(v_env_967_);
lean_dec(v___x_965_);
v___x_976_ = lean_box(0);
v_isShared_977_ = v_isSharedCheck_1004_;
goto v_resetjp_975_;
}
v_resetjp_975_:
{
uint64_t v_tid_978_; lean_object* v_traces_979_; lean_object* v___x_981_; uint8_t v_isShared_982_; uint8_t v_isSharedCheck_1003_; 
v_tid_978_ = lean_ctor_get_uint64(v_traceState_966_, sizeof(void*)*1);
v_traces_979_ = lean_ctor_get(v_traceState_966_, 0);
v_isSharedCheck_1003_ = !lean_is_exclusive(v_traceState_966_);
if (v_isSharedCheck_1003_ == 0)
{
v___x_981_ = v_traceState_966_;
v_isShared_982_ = v_isSharedCheck_1003_;
goto v_resetjp_980_;
}
else
{
lean_inc(v_traces_979_);
lean_dec(v_traceState_966_);
v___x_981_ = lean_box(0);
v_isShared_982_ = v_isSharedCheck_1003_;
goto v_resetjp_980_;
}
v_resetjp_980_:
{
lean_object* v___x_983_; double v___x_984_; uint8_t v___x_985_; lean_object* v___x_986_; lean_object* v___x_987_; lean_object* v___x_988_; lean_object* v___x_989_; lean_object* v___x_990_; lean_object* v___x_991_; lean_object* v___x_993_; 
v___x_983_ = lean_box(0);
v___x_984_ = lean_float_once(&l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__0, &l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__0_once, _init_l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__0);
v___x_985_ = 0;
v___x_986_ = ((lean_object*)(l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__1));
v___x_987_ = lean_alloc_ctor(0, 3, 17);
lean_ctor_set(v___x_987_, 0, v_cls_952_);
lean_ctor_set(v___x_987_, 1, v___x_983_);
lean_ctor_set(v___x_987_, 2, v___x_986_);
lean_ctor_set_float(v___x_987_, sizeof(void*)*3, v___x_984_);
lean_ctor_set_float(v___x_987_, sizeof(void*)*3 + 8, v___x_984_);
lean_ctor_set_uint8(v___x_987_, sizeof(void*)*3 + 16, v___x_985_);
v___x_988_ = ((lean_object*)(l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__2));
v___x_989_ = lean_alloc_ctor(9, 3, 0);
lean_ctor_set(v___x_989_, 0, v___x_987_);
lean_ctor_set(v___x_989_, 1, v_a_961_);
lean_ctor_set(v___x_989_, 2, v___x_988_);
lean_inc(v_ref_959_);
v___x_990_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_990_, 0, v_ref_959_);
lean_ctor_set(v___x_990_, 1, v___x_989_);
v___x_991_ = l_Lean_PersistentArray_push___redArg(v_traces_979_, v___x_990_);
if (v_isShared_982_ == 0)
{
lean_ctor_set(v___x_981_, 0, v___x_991_);
v___x_993_ = v___x_981_;
goto v_reusejp_992_;
}
else
{
lean_object* v_reuseFailAlloc_1002_; 
v_reuseFailAlloc_1002_ = lean_alloc_ctor(0, 1, 8);
lean_ctor_set(v_reuseFailAlloc_1002_, 0, v___x_991_);
lean_ctor_set_uint64(v_reuseFailAlloc_1002_, sizeof(void*)*1, v_tid_978_);
v___x_993_ = v_reuseFailAlloc_1002_;
goto v_reusejp_992_;
}
v_reusejp_992_:
{
lean_object* v___x_995_; 
if (v_isShared_977_ == 0)
{
lean_ctor_set(v___x_976_, 4, v___x_993_);
v___x_995_ = v___x_976_;
goto v_reusejp_994_;
}
else
{
lean_object* v_reuseFailAlloc_1001_; 
v_reuseFailAlloc_1001_ = lean_alloc_ctor(0, 9, 0);
lean_ctor_set(v_reuseFailAlloc_1001_, 0, v_env_967_);
lean_ctor_set(v_reuseFailAlloc_1001_, 1, v_nextMacroScope_968_);
lean_ctor_set(v_reuseFailAlloc_1001_, 2, v_ngen_969_);
lean_ctor_set(v_reuseFailAlloc_1001_, 3, v_auxDeclNGen_970_);
lean_ctor_set(v_reuseFailAlloc_1001_, 4, v___x_993_);
lean_ctor_set(v_reuseFailAlloc_1001_, 5, v_cache_971_);
lean_ctor_set(v_reuseFailAlloc_1001_, 6, v_messages_972_);
lean_ctor_set(v_reuseFailAlloc_1001_, 7, v_infoState_973_);
lean_ctor_set(v_reuseFailAlloc_1001_, 8, v_snapshotTasks_974_);
v___x_995_ = v_reuseFailAlloc_1001_;
goto v_reusejp_994_;
}
v_reusejp_994_:
{
lean_object* v___x_996_; lean_object* v___x_997_; lean_object* v___x_999_; 
v___x_996_ = lean_st_ref_set(v___y_957_, v___x_995_);
v___x_997_ = lean_box(0);
if (v_isShared_964_ == 0)
{
lean_ctor_set(v___x_963_, 0, v___x_997_);
v___x_999_ = v___x_963_;
goto v_reusejp_998_;
}
else
{
lean_object* v_reuseFailAlloc_1000_; 
v_reuseFailAlloc_1000_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1000_, 0, v___x_997_);
v___x_999_ = v_reuseFailAlloc_1000_;
goto v_reusejp_998_;
}
v_reusejp_998_:
{
return v___x_999_;
}
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___boxed(lean_object* v_cls_1006_, lean_object* v_msg_1007_, lean_object* v___y_1008_, lean_object* v___y_1009_, lean_object* v___y_1010_, lean_object* v___y_1011_, lean_object* v___y_1012_){
_start:
{
lean_object* v_res_1013_; 
v_res_1013_ = l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg(v_cls_1006_, v_msg_1007_, v___y_1008_, v___y_1009_, v___y_1010_, v___y_1011_);
lean_dec(v___y_1011_);
lean_dec_ref(v___y_1010_);
lean_dec(v___y_1009_);
lean_dec_ref(v___y_1008_);
return v_res_1013_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__7(void){
_start:
{
lean_object* v___x_1026_; lean_object* v___x_1027_; 
v___x_1026_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__6));
v___x_1027_ = l_Lean_stringToMessageData(v___x_1026_);
return v___x_1027_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9(void){
_start:
{
lean_object* v_natZero_1029_; lean_object* v_intZero_1030_; 
v_natZero_1029_ = lean_unsigned_to_nat(0u);
v_intZero_1030_ = lean_nat_to_int(v_natZero_1029_);
return v_intZero_1030_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment(lean_object* v_x_1032_, lean_object* v_v_1033_, lean_object* v_a_1034_, lean_object* v_a_1035_, lean_object* v_a_1036_, lean_object* v_a_1037_, lean_object* v_a_1038_, lean_object* v_a_1039_, lean_object* v_a_1040_, lean_object* v_a_1041_, lean_object* v_a_1042_, lean_object* v_a_1043_, lean_object* v_a_1044_){
_start:
{
lean_object* v_cls_1046_; lean_object* v___x_1047_; lean_object* v_a_1048_; lean_object* v___x_1050_; uint8_t v_isShared_1051_; uint8_t v_isSharedCheck_1112_; 
v_cls_1046_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__5));
v___x_1047_ = l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg(v_cls_1046_, v_a_1043_);
v_a_1048_ = lean_ctor_get(v___x_1047_, 0);
v_isSharedCheck_1112_ = !lean_is_exclusive(v___x_1047_);
if (v_isSharedCheck_1112_ == 0)
{
v___x_1050_ = v___x_1047_;
v_isShared_1051_ = v_isSharedCheck_1112_;
goto v_resetjp_1049_;
}
else
{
lean_inc(v_a_1048_);
lean_dec(v___x_1047_);
v___x_1050_ = lean_box(0);
v_isShared_1051_ = v_isSharedCheck_1112_;
goto v_resetjp_1049_;
}
v_resetjp_1049_:
{
uint8_t v___x_1052_; 
v___x_1052_ = lean_unbox(v_a_1048_);
lean_dec(v_a_1048_);
if (v___x_1052_ == 0)
{
lean_object* v___x_1053_; lean_object* v___x_1055_; 
lean_dec_ref(v_v_1033_);
v___x_1053_ = lean_box(0);
if (v_isShared_1051_ == 0)
{
lean_ctor_set(v___x_1050_, 0, v___x_1053_);
v___x_1055_ = v___x_1050_;
goto v_reusejp_1054_;
}
else
{
lean_object* v_reuseFailAlloc_1056_; 
v_reuseFailAlloc_1056_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1056_, 0, v___x_1053_);
v___x_1055_ = v_reuseFailAlloc_1056_;
goto v_reusejp_1054_;
}
v_reusejp_1054_:
{
return v___x_1055_;
}
}
else
{
lean_object* v___x_1057_; 
lean_del_object(v___x_1050_);
v___x_1057_ = l_Lean_Meta_Grind_Arith_Linear_getVar(v_x_1032_, v_a_1034_, v_a_1035_, v_a_1036_, v_a_1037_, v_a_1038_, v_a_1039_, v_a_1040_, v_a_1041_, v_a_1042_, v_a_1043_, v_a_1044_);
if (lean_obj_tag(v___x_1057_) == 0)
{
lean_object* v_a_1058_; lean_object* v_num_1059_; lean_object* v_den_1060_; lean_object* v___x_1062_; uint8_t v_isShared_1063_; uint8_t v_isSharedCheck_1103_; 
v_a_1058_ = lean_ctor_get(v___x_1057_, 0);
lean_inc(v_a_1058_);
lean_dec_ref(v___x_1057_);
v_num_1059_ = lean_ctor_get(v_v_1033_, 0);
v_den_1060_ = lean_ctor_get(v_v_1033_, 1);
v_isSharedCheck_1103_ = !lean_is_exclusive(v_v_1033_);
if (v_isSharedCheck_1103_ == 0)
{
v___x_1062_ = v_v_1033_;
v_isShared_1063_ = v_isSharedCheck_1103_;
goto v_resetjp_1061_;
}
else
{
lean_inc(v_den_1060_);
lean_inc(v_num_1059_);
lean_dec(v_v_1033_);
v___x_1062_ = lean_box(0);
v_isShared_1063_ = v_isSharedCheck_1103_;
goto v_resetjp_1061_;
}
v_resetjp_1061_:
{
lean_object* v___x_1064_; lean_object* v___x_1065_; lean_object* v___x_1067_; 
v___x_1064_ = l_Lean_Meta_Grind_Arith_quoteIfArithTerm(v_a_1058_);
v___x_1065_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__7, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__7_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__7);
if (v_isShared_1063_ == 0)
{
lean_ctor_set_tag(v___x_1062_, 7);
lean_ctor_set(v___x_1062_, 1, v___x_1065_);
lean_ctor_set(v___x_1062_, 0, v___x_1064_);
v___x_1067_ = v___x_1062_;
goto v_reusejp_1066_;
}
else
{
lean_object* v_reuseFailAlloc_1102_; 
v_reuseFailAlloc_1102_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_1102_, 0, v___x_1064_);
lean_ctor_set(v_reuseFailAlloc_1102_, 1, v___x_1065_);
v___x_1067_ = v_reuseFailAlloc_1102_;
goto v_reusejp_1066_;
}
v_reusejp_1066_:
{
lean_object* v___y_1069_; lean_object* v___y_1075_; lean_object* v___x_1080_; uint8_t v___x_1081_; 
v___x_1080_ = lean_unsigned_to_nat(1u);
v___x_1081_ = lean_nat_dec_eq(v_den_1060_, v___x_1080_);
if (v___x_1081_ == 0)
{
lean_object* v_intZero_1082_; uint8_t v_isNeg_1083_; 
v_intZero_1082_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_1083_ = lean_int_dec_lt(v_num_1059_, v_intZero_1082_);
if (v_isNeg_1083_ == 0)
{
lean_object* v_a_1084_; lean_object* v___x_1085_; 
v_a_1084_ = lean_nat_abs(v_num_1059_);
lean_dec(v_num_1059_);
v___x_1085_ = l_Nat_reprFast(v_a_1084_);
v___y_1075_ = v___x_1085_;
goto v___jp_1074_;
}
else
{
lean_object* v_abs_1086_; lean_object* v_a_1087_; lean_object* v___x_1088_; lean_object* v___x_1089_; lean_object* v___x_1090_; lean_object* v___x_1091_; 
v_abs_1086_ = lean_nat_abs(v_num_1059_);
lean_dec(v_num_1059_);
v_a_1087_ = lean_nat_sub(v_abs_1086_, v___x_1080_);
lean_dec(v_abs_1086_);
v___x_1088_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_1089_ = lean_nat_add(v_a_1087_, v___x_1080_);
lean_dec(v_a_1087_);
v___x_1090_ = l_Nat_reprFast(v___x_1089_);
v___x_1091_ = lean_string_append(v___x_1088_, v___x_1090_);
lean_dec_ref(v___x_1090_);
v___y_1075_ = v___x_1091_;
goto v___jp_1074_;
}
}
else
{
lean_object* v_intZero_1092_; uint8_t v_isNeg_1093_; 
lean_dec(v_den_1060_);
v_intZero_1092_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_1093_ = lean_int_dec_lt(v_num_1059_, v_intZero_1092_);
if (v_isNeg_1093_ == 0)
{
lean_object* v_a_1094_; lean_object* v___x_1095_; 
v_a_1094_ = lean_nat_abs(v_num_1059_);
lean_dec(v_num_1059_);
v___x_1095_ = l_Nat_reprFast(v_a_1094_);
v___y_1069_ = v___x_1095_;
goto v___jp_1068_;
}
else
{
lean_object* v_abs_1096_; lean_object* v_a_1097_; lean_object* v___x_1098_; lean_object* v___x_1099_; lean_object* v___x_1100_; lean_object* v___x_1101_; 
v_abs_1096_ = lean_nat_abs(v_num_1059_);
lean_dec(v_num_1059_);
v_a_1097_ = lean_nat_sub(v_abs_1096_, v___x_1080_);
lean_dec(v_abs_1096_);
v___x_1098_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_1099_ = lean_nat_add(v_a_1097_, v___x_1080_);
lean_dec(v_a_1097_);
v___x_1100_ = l_Nat_reprFast(v___x_1099_);
v___x_1101_ = lean_string_append(v___x_1098_, v___x_1100_);
lean_dec_ref(v___x_1100_);
v___y_1069_ = v___x_1101_;
goto v___jp_1068_;
}
}
v___jp_1068_:
{
lean_object* v___x_1070_; lean_object* v___x_1071_; lean_object* v___x_1072_; lean_object* v___x_1073_; 
v___x_1070_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v___x_1070_, 0, v___y_1069_);
v___x_1071_ = l_Lean_MessageData_ofFormat(v___x_1070_);
v___x_1072_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_1072_, 0, v___x_1067_);
lean_ctor_set(v___x_1072_, 1, v___x_1071_);
v___x_1073_ = l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg(v_cls_1046_, v___x_1072_, v_a_1041_, v_a_1042_, v_a_1043_, v_a_1044_);
return v___x_1073_;
}
v___jp_1074_:
{
lean_object* v___x_1076_; lean_object* v___x_1077_; lean_object* v___x_1078_; lean_object* v___x_1079_; 
v___x_1076_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_1077_ = lean_string_append(v___y_1075_, v___x_1076_);
v___x_1078_ = l_Nat_reprFast(v_den_1060_);
v___x_1079_ = lean_string_append(v___x_1077_, v___x_1078_);
lean_dec_ref(v___x_1078_);
v___y_1069_ = v___x_1079_;
goto v___jp_1068_;
}
}
}
}
else
{
lean_object* v_a_1104_; lean_object* v___x_1106_; uint8_t v_isShared_1107_; uint8_t v_isSharedCheck_1111_; 
lean_dec_ref(v_v_1033_);
v_a_1104_ = lean_ctor_get(v___x_1057_, 0);
v_isSharedCheck_1111_ = !lean_is_exclusive(v___x_1057_);
if (v_isSharedCheck_1111_ == 0)
{
v___x_1106_ = v___x_1057_;
v_isShared_1107_ = v_isSharedCheck_1111_;
goto v_resetjp_1105_;
}
else
{
lean_inc(v_a_1104_);
lean_dec(v___x_1057_);
v___x_1106_ = lean_box(0);
v_isShared_1107_ = v_isSharedCheck_1111_;
goto v_resetjp_1105_;
}
v_resetjp_1105_:
{
lean_object* v___x_1109_; 
if (v_isShared_1107_ == 0)
{
v___x_1109_ = v___x_1106_;
goto v_reusejp_1108_;
}
else
{
lean_object* v_reuseFailAlloc_1110_; 
v_reuseFailAlloc_1110_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1110_, 0, v_a_1104_);
v___x_1109_ = v_reuseFailAlloc_1110_;
goto v_reusejp_1108_;
}
v_reusejp_1108_:
{
return v___x_1109_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___boxed(lean_object* v_x_1113_, lean_object* v_v_1114_, lean_object* v_a_1115_, lean_object* v_a_1116_, lean_object* v_a_1117_, lean_object* v_a_1118_, lean_object* v_a_1119_, lean_object* v_a_1120_, lean_object* v_a_1121_, lean_object* v_a_1122_, lean_object* v_a_1123_, lean_object* v_a_1124_, lean_object* v_a_1125_, lean_object* v_a_1126_){
_start:
{
lean_object* v_res_1127_; 
v_res_1127_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment(v_x_1113_, v_v_1114_, v_a_1115_, v_a_1116_, v_a_1117_, v_a_1118_, v_a_1119_, v_a_1120_, v_a_1121_, v_a_1122_, v_a_1123_, v_a_1124_, v_a_1125_);
lean_dec(v_a_1125_);
lean_dec_ref(v_a_1124_);
lean_dec(v_a_1123_);
lean_dec_ref(v_a_1122_);
lean_dec(v_a_1121_);
lean_dec_ref(v_a_1120_);
lean_dec(v_a_1119_);
lean_dec_ref(v_a_1118_);
lean_dec(v_a_1117_);
lean_dec(v_a_1116_);
lean_dec(v_a_1115_);
lean_dec(v_x_1113_);
return v_res_1127_;
}
}
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1(lean_object* v_cls_1128_, lean_object* v_msg_1129_, lean_object* v___y_1130_, lean_object* v___y_1131_, lean_object* v___y_1132_, lean_object* v___y_1133_, lean_object* v___y_1134_, lean_object* v___y_1135_, lean_object* v___y_1136_, lean_object* v___y_1137_, lean_object* v___y_1138_, lean_object* v___y_1139_, lean_object* v___y_1140_){
_start:
{
lean_object* v___x_1142_; 
v___x_1142_ = l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg(v_cls_1128_, v_msg_1129_, v___y_1137_, v___y_1138_, v___y_1139_, v___y_1140_);
return v___x_1142_;
}
}
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___boxed(lean_object* v_cls_1143_, lean_object* v_msg_1144_, lean_object* v___y_1145_, lean_object* v___y_1146_, lean_object* v___y_1147_, lean_object* v___y_1148_, lean_object* v___y_1149_, lean_object* v___y_1150_, lean_object* v___y_1151_, lean_object* v___y_1152_, lean_object* v___y_1153_, lean_object* v___y_1154_, lean_object* v___y_1155_, lean_object* v___y_1156_){
_start:
{
lean_object* v_res_1157_; 
v_res_1157_ = l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1(v_cls_1143_, v_msg_1144_, v___y_1145_, v___y_1146_, v___y_1147_, v___y_1148_, v___y_1149_, v___y_1150_, v___y_1151_, v___y_1152_, v___y_1153_, v___y_1154_, v___y_1155_);
lean_dec(v___y_1155_);
lean_dec_ref(v___y_1154_);
lean_dec(v___y_1153_);
lean_dec_ref(v___y_1152_);
lean_dec(v___y_1151_);
lean_dec_ref(v___y_1150_);
lean_dec(v___y_1149_);
lean_dec_ref(v___y_1148_);
lean_dec(v___y_1147_);
lean_dec(v___y_1146_);
lean_dec(v___y_1145_);
return v_res_1157_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment___lam__0(lean_object* v_a_1158_, lean_object* v_v_1159_, lean_object* v_s_1160_){
_start:
{
lean_object* v_structs_1161_; lean_object* v_typeIdOf_1162_; lean_object* v_exprToStructId_1163_; lean_object* v_exprToStructIdEntries_1164_; lean_object* v_forbiddenNatModules_1165_; lean_object* v_natStructs_1166_; lean_object* v_natTypeIdOf_1167_; lean_object* v_exprToNatStructId_1168_; lean_object* v___x_1169_; uint8_t v___x_1170_; 
v_structs_1161_ = lean_ctor_get(v_s_1160_, 0);
v_typeIdOf_1162_ = lean_ctor_get(v_s_1160_, 1);
v_exprToStructId_1163_ = lean_ctor_get(v_s_1160_, 2);
v_exprToStructIdEntries_1164_ = lean_ctor_get(v_s_1160_, 3);
v_forbiddenNatModules_1165_ = lean_ctor_get(v_s_1160_, 4);
v_natStructs_1166_ = lean_ctor_get(v_s_1160_, 5);
v_natTypeIdOf_1167_ = lean_ctor_get(v_s_1160_, 6);
v_exprToNatStructId_1168_ = lean_ctor_get(v_s_1160_, 7);
v___x_1169_ = lean_array_get_size(v_structs_1161_);
v___x_1170_ = lean_nat_dec_lt(v_a_1158_, v___x_1169_);
if (v___x_1170_ == 0)
{
lean_dec_ref(v_v_1159_);
return v_s_1160_;
}
else
{
lean_object* v___x_1172_; uint8_t v_isShared_1173_; uint8_t v_isSharedCheck_1232_; 
lean_inc_ref(v_exprToNatStructId_1168_);
lean_inc_ref(v_natTypeIdOf_1167_);
lean_inc_ref(v_natStructs_1166_);
lean_inc_ref(v_forbiddenNatModules_1165_);
lean_inc_ref(v_exprToStructIdEntries_1164_);
lean_inc_ref(v_exprToStructId_1163_);
lean_inc_ref(v_typeIdOf_1162_);
lean_inc_ref(v_structs_1161_);
v_isSharedCheck_1232_ = !lean_is_exclusive(v_s_1160_);
if (v_isSharedCheck_1232_ == 0)
{
lean_object* v_unused_1233_; lean_object* v_unused_1234_; lean_object* v_unused_1235_; lean_object* v_unused_1236_; lean_object* v_unused_1237_; lean_object* v_unused_1238_; lean_object* v_unused_1239_; lean_object* v_unused_1240_; 
v_unused_1233_ = lean_ctor_get(v_s_1160_, 7);
lean_dec(v_unused_1233_);
v_unused_1234_ = lean_ctor_get(v_s_1160_, 6);
lean_dec(v_unused_1234_);
v_unused_1235_ = lean_ctor_get(v_s_1160_, 5);
lean_dec(v_unused_1235_);
v_unused_1236_ = lean_ctor_get(v_s_1160_, 4);
lean_dec(v_unused_1236_);
v_unused_1237_ = lean_ctor_get(v_s_1160_, 3);
lean_dec(v_unused_1237_);
v_unused_1238_ = lean_ctor_get(v_s_1160_, 2);
lean_dec(v_unused_1238_);
v_unused_1239_ = lean_ctor_get(v_s_1160_, 1);
lean_dec(v_unused_1239_);
v_unused_1240_ = lean_ctor_get(v_s_1160_, 0);
lean_dec(v_unused_1240_);
v___x_1172_ = v_s_1160_;
v_isShared_1173_ = v_isSharedCheck_1232_;
goto v_resetjp_1171_;
}
else
{
lean_dec(v_s_1160_);
v___x_1172_ = lean_box(0);
v_isShared_1173_ = v_isSharedCheck_1232_;
goto v_resetjp_1171_;
}
v_resetjp_1171_:
{
lean_object* v_v_1174_; lean_object* v_id_1175_; lean_object* v_ringId_x3f_1176_; lean_object* v_type_1177_; lean_object* v_u_1178_; lean_object* v_intModuleInst_1179_; lean_object* v_leInst_x3f_1180_; lean_object* v_ltInst_x3f_1181_; lean_object* v_lawfulOrderLTInst_x3f_1182_; lean_object* v_isPreorderInst_x3f_1183_; lean_object* v_orderedAddInst_x3f_1184_; lean_object* v_isLinearInst_x3f_1185_; lean_object* v_noNatDivInst_x3f_1186_; lean_object* v_ringInst_x3f_1187_; lean_object* v_commRingInst_x3f_1188_; lean_object* v_orderedRingInst_x3f_1189_; lean_object* v_fieldInst_x3f_1190_; lean_object* v_charInst_x3f_1191_; lean_object* v_zero_1192_; lean_object* v_ofNatZero_1193_; lean_object* v_one_x3f_1194_; lean_object* v_leFn_x3f_1195_; lean_object* v_ltFn_x3f_1196_; lean_object* v_addFn_1197_; lean_object* v_zsmulFn_1198_; lean_object* v_nsmulFn_1199_; lean_object* v_zsmulFn_x3f_1200_; lean_object* v_nsmulFn_x3f_1201_; lean_object* v_homomulFn_x3f_1202_; lean_object* v_subFn_1203_; lean_object* v_negFn_1204_; lean_object* v_vars_1205_; lean_object* v_varMap_1206_; lean_object* v_lowers_1207_; lean_object* v_uppers_1208_; lean_object* v_diseqs_1209_; lean_object* v_assignment_1210_; uint8_t v_caseSplits_1211_; lean_object* v_conflict_x3f_1212_; lean_object* v_diseqSplits_1213_; lean_object* v_elimEqs_1214_; lean_object* v_elimStack_1215_; lean_object* v_occurs_1216_; lean_object* v_ignored_1217_; lean_object* v___x_1219_; uint8_t v_isShared_1220_; uint8_t v_isSharedCheck_1231_; 
v_v_1174_ = lean_array_fget(v_structs_1161_, v_a_1158_);
v_id_1175_ = lean_ctor_get(v_v_1174_, 0);
v_ringId_x3f_1176_ = lean_ctor_get(v_v_1174_, 1);
v_type_1177_ = lean_ctor_get(v_v_1174_, 2);
v_u_1178_ = lean_ctor_get(v_v_1174_, 3);
v_intModuleInst_1179_ = lean_ctor_get(v_v_1174_, 4);
v_leInst_x3f_1180_ = lean_ctor_get(v_v_1174_, 5);
v_ltInst_x3f_1181_ = lean_ctor_get(v_v_1174_, 6);
v_lawfulOrderLTInst_x3f_1182_ = lean_ctor_get(v_v_1174_, 7);
v_isPreorderInst_x3f_1183_ = lean_ctor_get(v_v_1174_, 8);
v_orderedAddInst_x3f_1184_ = lean_ctor_get(v_v_1174_, 9);
v_isLinearInst_x3f_1185_ = lean_ctor_get(v_v_1174_, 10);
v_noNatDivInst_x3f_1186_ = lean_ctor_get(v_v_1174_, 11);
v_ringInst_x3f_1187_ = lean_ctor_get(v_v_1174_, 12);
v_commRingInst_x3f_1188_ = lean_ctor_get(v_v_1174_, 13);
v_orderedRingInst_x3f_1189_ = lean_ctor_get(v_v_1174_, 14);
v_fieldInst_x3f_1190_ = lean_ctor_get(v_v_1174_, 15);
v_charInst_x3f_1191_ = lean_ctor_get(v_v_1174_, 16);
v_zero_1192_ = lean_ctor_get(v_v_1174_, 17);
v_ofNatZero_1193_ = lean_ctor_get(v_v_1174_, 18);
v_one_x3f_1194_ = lean_ctor_get(v_v_1174_, 19);
v_leFn_x3f_1195_ = lean_ctor_get(v_v_1174_, 20);
v_ltFn_x3f_1196_ = lean_ctor_get(v_v_1174_, 21);
v_addFn_1197_ = lean_ctor_get(v_v_1174_, 22);
v_zsmulFn_1198_ = lean_ctor_get(v_v_1174_, 23);
v_nsmulFn_1199_ = lean_ctor_get(v_v_1174_, 24);
v_zsmulFn_x3f_1200_ = lean_ctor_get(v_v_1174_, 25);
v_nsmulFn_x3f_1201_ = lean_ctor_get(v_v_1174_, 26);
v_homomulFn_x3f_1202_ = lean_ctor_get(v_v_1174_, 27);
v_subFn_1203_ = lean_ctor_get(v_v_1174_, 28);
v_negFn_1204_ = lean_ctor_get(v_v_1174_, 29);
v_vars_1205_ = lean_ctor_get(v_v_1174_, 30);
v_varMap_1206_ = lean_ctor_get(v_v_1174_, 31);
v_lowers_1207_ = lean_ctor_get(v_v_1174_, 32);
v_uppers_1208_ = lean_ctor_get(v_v_1174_, 33);
v_diseqs_1209_ = lean_ctor_get(v_v_1174_, 34);
v_assignment_1210_ = lean_ctor_get(v_v_1174_, 35);
v_caseSplits_1211_ = lean_ctor_get_uint8(v_v_1174_, sizeof(void*)*42);
v_conflict_x3f_1212_ = lean_ctor_get(v_v_1174_, 36);
v_diseqSplits_1213_ = lean_ctor_get(v_v_1174_, 37);
v_elimEqs_1214_ = lean_ctor_get(v_v_1174_, 38);
v_elimStack_1215_ = lean_ctor_get(v_v_1174_, 39);
v_occurs_1216_ = lean_ctor_get(v_v_1174_, 40);
v_ignored_1217_ = lean_ctor_get(v_v_1174_, 41);
v_isSharedCheck_1231_ = !lean_is_exclusive(v_v_1174_);
if (v_isSharedCheck_1231_ == 0)
{
v___x_1219_ = v_v_1174_;
v_isShared_1220_ = v_isSharedCheck_1231_;
goto v_resetjp_1218_;
}
else
{
lean_inc(v_ignored_1217_);
lean_inc(v_occurs_1216_);
lean_inc(v_elimStack_1215_);
lean_inc(v_elimEqs_1214_);
lean_inc(v_diseqSplits_1213_);
lean_inc(v_conflict_x3f_1212_);
lean_inc(v_assignment_1210_);
lean_inc(v_diseqs_1209_);
lean_inc(v_uppers_1208_);
lean_inc(v_lowers_1207_);
lean_inc(v_varMap_1206_);
lean_inc(v_vars_1205_);
lean_inc(v_negFn_1204_);
lean_inc(v_subFn_1203_);
lean_inc(v_homomulFn_x3f_1202_);
lean_inc(v_nsmulFn_x3f_1201_);
lean_inc(v_zsmulFn_x3f_1200_);
lean_inc(v_nsmulFn_1199_);
lean_inc(v_zsmulFn_1198_);
lean_inc(v_addFn_1197_);
lean_inc(v_ltFn_x3f_1196_);
lean_inc(v_leFn_x3f_1195_);
lean_inc(v_one_x3f_1194_);
lean_inc(v_ofNatZero_1193_);
lean_inc(v_zero_1192_);
lean_inc(v_charInst_x3f_1191_);
lean_inc(v_fieldInst_x3f_1190_);
lean_inc(v_orderedRingInst_x3f_1189_);
lean_inc(v_commRingInst_x3f_1188_);
lean_inc(v_ringInst_x3f_1187_);
lean_inc(v_noNatDivInst_x3f_1186_);
lean_inc(v_isLinearInst_x3f_1185_);
lean_inc(v_orderedAddInst_x3f_1184_);
lean_inc(v_isPreorderInst_x3f_1183_);
lean_inc(v_lawfulOrderLTInst_x3f_1182_);
lean_inc(v_ltInst_x3f_1181_);
lean_inc(v_leInst_x3f_1180_);
lean_inc(v_intModuleInst_1179_);
lean_inc(v_u_1178_);
lean_inc(v_type_1177_);
lean_inc(v_ringId_x3f_1176_);
lean_inc(v_id_1175_);
lean_dec(v_v_1174_);
v___x_1219_ = lean_box(0);
v_isShared_1220_ = v_isSharedCheck_1231_;
goto v_resetjp_1218_;
}
v_resetjp_1218_:
{
lean_object* v___x_1221_; lean_object* v_xs_x27_1222_; lean_object* v___x_1223_; lean_object* v___x_1225_; 
v___x_1221_ = lean_box(0);
v_xs_x27_1222_ = lean_array_fset(v_structs_1161_, v_a_1158_, v___x_1221_);
v___x_1223_ = l_Lean_PersistentArray_push___redArg(v_assignment_1210_, v_v_1159_);
if (v_isShared_1220_ == 0)
{
lean_ctor_set(v___x_1219_, 35, v___x_1223_);
v___x_1225_ = v___x_1219_;
goto v_reusejp_1224_;
}
else
{
lean_object* v_reuseFailAlloc_1230_; 
v_reuseFailAlloc_1230_ = lean_alloc_ctor(0, 42, 1);
lean_ctor_set(v_reuseFailAlloc_1230_, 0, v_id_1175_);
lean_ctor_set(v_reuseFailAlloc_1230_, 1, v_ringId_x3f_1176_);
lean_ctor_set(v_reuseFailAlloc_1230_, 2, v_type_1177_);
lean_ctor_set(v_reuseFailAlloc_1230_, 3, v_u_1178_);
lean_ctor_set(v_reuseFailAlloc_1230_, 4, v_intModuleInst_1179_);
lean_ctor_set(v_reuseFailAlloc_1230_, 5, v_leInst_x3f_1180_);
lean_ctor_set(v_reuseFailAlloc_1230_, 6, v_ltInst_x3f_1181_);
lean_ctor_set(v_reuseFailAlloc_1230_, 7, v_lawfulOrderLTInst_x3f_1182_);
lean_ctor_set(v_reuseFailAlloc_1230_, 8, v_isPreorderInst_x3f_1183_);
lean_ctor_set(v_reuseFailAlloc_1230_, 9, v_orderedAddInst_x3f_1184_);
lean_ctor_set(v_reuseFailAlloc_1230_, 10, v_isLinearInst_x3f_1185_);
lean_ctor_set(v_reuseFailAlloc_1230_, 11, v_noNatDivInst_x3f_1186_);
lean_ctor_set(v_reuseFailAlloc_1230_, 12, v_ringInst_x3f_1187_);
lean_ctor_set(v_reuseFailAlloc_1230_, 13, v_commRingInst_x3f_1188_);
lean_ctor_set(v_reuseFailAlloc_1230_, 14, v_orderedRingInst_x3f_1189_);
lean_ctor_set(v_reuseFailAlloc_1230_, 15, v_fieldInst_x3f_1190_);
lean_ctor_set(v_reuseFailAlloc_1230_, 16, v_charInst_x3f_1191_);
lean_ctor_set(v_reuseFailAlloc_1230_, 17, v_zero_1192_);
lean_ctor_set(v_reuseFailAlloc_1230_, 18, v_ofNatZero_1193_);
lean_ctor_set(v_reuseFailAlloc_1230_, 19, v_one_x3f_1194_);
lean_ctor_set(v_reuseFailAlloc_1230_, 20, v_leFn_x3f_1195_);
lean_ctor_set(v_reuseFailAlloc_1230_, 21, v_ltFn_x3f_1196_);
lean_ctor_set(v_reuseFailAlloc_1230_, 22, v_addFn_1197_);
lean_ctor_set(v_reuseFailAlloc_1230_, 23, v_zsmulFn_1198_);
lean_ctor_set(v_reuseFailAlloc_1230_, 24, v_nsmulFn_1199_);
lean_ctor_set(v_reuseFailAlloc_1230_, 25, v_zsmulFn_x3f_1200_);
lean_ctor_set(v_reuseFailAlloc_1230_, 26, v_nsmulFn_x3f_1201_);
lean_ctor_set(v_reuseFailAlloc_1230_, 27, v_homomulFn_x3f_1202_);
lean_ctor_set(v_reuseFailAlloc_1230_, 28, v_subFn_1203_);
lean_ctor_set(v_reuseFailAlloc_1230_, 29, v_negFn_1204_);
lean_ctor_set(v_reuseFailAlloc_1230_, 30, v_vars_1205_);
lean_ctor_set(v_reuseFailAlloc_1230_, 31, v_varMap_1206_);
lean_ctor_set(v_reuseFailAlloc_1230_, 32, v_lowers_1207_);
lean_ctor_set(v_reuseFailAlloc_1230_, 33, v_uppers_1208_);
lean_ctor_set(v_reuseFailAlloc_1230_, 34, v_diseqs_1209_);
lean_ctor_set(v_reuseFailAlloc_1230_, 35, v___x_1223_);
lean_ctor_set(v_reuseFailAlloc_1230_, 36, v_conflict_x3f_1212_);
lean_ctor_set(v_reuseFailAlloc_1230_, 37, v_diseqSplits_1213_);
lean_ctor_set(v_reuseFailAlloc_1230_, 38, v_elimEqs_1214_);
lean_ctor_set(v_reuseFailAlloc_1230_, 39, v_elimStack_1215_);
lean_ctor_set(v_reuseFailAlloc_1230_, 40, v_occurs_1216_);
lean_ctor_set(v_reuseFailAlloc_1230_, 41, v_ignored_1217_);
lean_ctor_set_uint8(v_reuseFailAlloc_1230_, sizeof(void*)*42, v_caseSplits_1211_);
v___x_1225_ = v_reuseFailAlloc_1230_;
goto v_reusejp_1224_;
}
v_reusejp_1224_:
{
lean_object* v___x_1226_; lean_object* v___x_1228_; 
v___x_1226_ = lean_array_fset(v_xs_x27_1222_, v_a_1158_, v___x_1225_);
if (v_isShared_1173_ == 0)
{
lean_ctor_set(v___x_1172_, 0, v___x_1226_);
v___x_1228_ = v___x_1172_;
goto v_reusejp_1227_;
}
else
{
lean_object* v_reuseFailAlloc_1229_; 
v_reuseFailAlloc_1229_ = lean_alloc_ctor(0, 8, 0);
lean_ctor_set(v_reuseFailAlloc_1229_, 0, v___x_1226_);
lean_ctor_set(v_reuseFailAlloc_1229_, 1, v_typeIdOf_1162_);
lean_ctor_set(v_reuseFailAlloc_1229_, 2, v_exprToStructId_1163_);
lean_ctor_set(v_reuseFailAlloc_1229_, 3, v_exprToStructIdEntries_1164_);
lean_ctor_set(v_reuseFailAlloc_1229_, 4, v_forbiddenNatModules_1165_);
lean_ctor_set(v_reuseFailAlloc_1229_, 5, v_natStructs_1166_);
lean_ctor_set(v_reuseFailAlloc_1229_, 6, v_natTypeIdOf_1167_);
lean_ctor_set(v_reuseFailAlloc_1229_, 7, v_exprToNatStructId_1168_);
v___x_1228_ = v_reuseFailAlloc_1229_;
goto v_reusejp_1227_;
}
v_reusejp_1227_:
{
return v___x_1228_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment___lam__0___boxed(lean_object* v_a_1241_, lean_object* v_v_1242_, lean_object* v_s_1243_){
_start:
{
lean_object* v_res_1244_; 
v_res_1244_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment___lam__0(v_a_1241_, v_v_1242_, v_s_1243_);
lean_dec(v_a_1241_);
return v_res_1244_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(lean_object* v_x_1245_, lean_object* v_v_1246_, lean_object* v_a_1247_, lean_object* v_a_1248_, lean_object* v_a_1249_, lean_object* v_a_1250_, lean_object* v_a_1251_, lean_object* v_a_1252_, lean_object* v_a_1253_, lean_object* v_a_1254_, lean_object* v_a_1255_, lean_object* v_a_1256_, lean_object* v_a_1257_){
_start:
{
lean_object* v___x_1259_; 
v___x_1259_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_checkIsNextVar(v_x_1245_, v_a_1247_, v_a_1248_, v_a_1249_, v_a_1250_, v_a_1251_, v_a_1252_, v_a_1253_, v_a_1254_, v_a_1255_, v_a_1256_, v_a_1257_);
if (lean_obj_tag(v___x_1259_) == 0)
{
lean_object* v___x_1260_; 
lean_dec_ref(v___x_1259_);
lean_inc_ref(v_v_1246_);
v___x_1260_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment(v_x_1245_, v_v_1246_, v_a_1247_, v_a_1248_, v_a_1249_, v_a_1250_, v_a_1251_, v_a_1252_, v_a_1253_, v_a_1254_, v_a_1255_, v_a_1256_, v_a_1257_);
if (lean_obj_tag(v___x_1260_) == 0)
{
lean_object* v___f_1261_; lean_object* v___x_1262_; lean_object* v___x_1263_; 
lean_dec_ref(v___x_1260_);
v___f_1261_ = lean_alloc_closure((void*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment___lam__0___boxed), 3, 2);
lean_closure_set(v___f_1261_, 0, v_a_1247_);
lean_closure_set(v___f_1261_, 1, v_v_1246_);
v___x_1262_ = l_Lean_Meta_Grind_Arith_Linear_linearExt;
v___x_1263_ = l___private_Lean_Meta_Tactic_Grind_Types_0__Lean_Meta_Grind_SolverExtension_modifyStateImpl___redArg(v___x_1262_, v___f_1261_, v_a_1248_);
return v___x_1263_;
}
else
{
lean_dec(v_a_1247_);
lean_dec_ref(v_v_1246_);
return v___x_1260_;
}
}
else
{
lean_dec(v_a_1247_);
lean_dec_ref(v_v_1246_);
return v___x_1259_;
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment___boxed(lean_object* v_x_1264_, lean_object* v_v_1265_, lean_object* v_a_1266_, lean_object* v_a_1267_, lean_object* v_a_1268_, lean_object* v_a_1269_, lean_object* v_a_1270_, lean_object* v_a_1271_, lean_object* v_a_1272_, lean_object* v_a_1273_, lean_object* v_a_1274_, lean_object* v_a_1275_, lean_object* v_a_1276_, lean_object* v_a_1277_){
_start:
{
lean_object* v_res_1278_; 
v_res_1278_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_1264_, v_v_1265_, v_a_1266_, v_a_1267_, v_a_1268_, v_a_1269_, v_a_1270_, v_a_1271_, v_a_1272_, v_a_1273_, v_a_1274_, v_a_1275_, v_a_1276_);
lean_dec(v_a_1276_);
lean_dec_ref(v_a_1275_);
lean_dec(v_a_1274_);
lean_dec_ref(v_a_1273_);
lean_dec(v_a_1272_);
lean_dec_ref(v_a_1271_);
lean_dec(v_a_1270_);
lean_dec_ref(v_a_1269_);
lean_dec(v_a_1268_);
lean_dec(v_a_1267_);
lean_dec(v_x_1264_);
return v_res_1278_;
}
}
LEAN_EXPORT lean_object* l_Int_cast___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__0(lean_object* v_a_1279_){
_start:
{
lean_object* v___x_1280_; 
v___x_1280_ = l_Rat_ofInt(v_a_1279_);
return v___x_1280_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2_spec__5(lean_object* v_as_1281_, size_t v_sz_1282_, size_t v_i_1283_, lean_object* v_b_1284_, lean_object* v___y_1285_, lean_object* v___y_1286_, lean_object* v___y_1287_, lean_object* v___y_1288_, lean_object* v___y_1289_, lean_object* v___y_1290_, lean_object* v___y_1291_, lean_object* v___y_1292_, lean_object* v___y_1293_, lean_object* v___y_1294_, lean_object* v___y_1295_){
_start:
{
uint8_t v___x_1297_; 
v___x_1297_ = lean_usize_dec_lt(v_i_1283_, v_sz_1282_);
if (v___x_1297_ == 0)
{
lean_object* v___x_1298_; 
v___x_1298_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1298_, 0, v_b_1284_);
return v___x_1298_;
}
else
{
lean_object* v_snd_1299_; lean_object* v___x_1301_; uint8_t v_isShared_1302_; uint8_t v_isSharedCheck_1370_; 
v_snd_1299_ = lean_ctor_get(v_b_1284_, 1);
v_isSharedCheck_1370_ = !lean_is_exclusive(v_b_1284_);
if (v_isSharedCheck_1370_ == 0)
{
lean_object* v_unused_1371_; 
v_unused_1371_ = lean_ctor_get(v_b_1284_, 0);
lean_dec(v_unused_1371_);
v___x_1301_ = v_b_1284_;
v_isShared_1302_ = v_isSharedCheck_1370_;
goto v_resetjp_1300_;
}
else
{
lean_inc(v_snd_1299_);
lean_dec(v_b_1284_);
v___x_1301_ = lean_box(0);
v_isShared_1302_ = v_isSharedCheck_1370_;
goto v_resetjp_1300_;
}
v_resetjp_1300_:
{
lean_object* v_a_1303_; lean_object* v_p_1304_; uint8_t v_strict_1305_; lean_object* v___x_1306_; lean_object* v_a_1308_; 
v_a_1303_ = lean_array_uget_borrowed(v_as_1281_, v_i_1283_);
v_p_1304_ = lean_ctor_get(v_a_1303_, 0);
v_strict_1305_ = lean_ctor_get_uint8(v_a_1303_, sizeof(void*)*2);
v___x_1306_ = lean_box(0);
if (lean_obj_tag(v_p_1304_) == 1)
{
lean_object* v_k_1315_; lean_object* v_p_1316_; lean_object* v___x_1317_; 
v_k_1315_ = lean_ctor_get(v_p_1304_, 0);
v_p_1316_ = lean_ctor_get(v_p_1304_, 2);
lean_inc(v_p_1316_);
v___x_1317_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_1316_, v___y_1285_, v___y_1286_, v___y_1287_, v___y_1288_, v___y_1289_, v___y_1290_, v___y_1291_, v___y_1292_, v___y_1293_, v___y_1294_, v___y_1295_);
if (lean_obj_tag(v___x_1317_) == 0)
{
lean_object* v_a_1318_; 
v_a_1318_ = lean_ctor_get(v___x_1317_, 0);
lean_inc(v_a_1318_);
lean_dec_ref(v___x_1317_);
if (lean_obj_tag(v_a_1318_) == 1)
{
lean_object* v_val_1319_; lean_object* v___x_1321_; uint8_t v_isShared_1322_; uint8_t v_isSharedCheck_1343_; 
v_val_1319_ = lean_ctor_get(v_a_1318_, 0);
v_isSharedCheck_1343_ = !lean_is_exclusive(v_a_1318_);
if (v_isSharedCheck_1343_ == 0)
{
v___x_1321_ = v_a_1318_;
v_isShared_1322_ = v_isSharedCheck_1343_;
goto v_resetjp_1320_;
}
else
{
lean_inc(v_val_1319_);
lean_dec(v_a_1318_);
v___x_1321_ = lean_box(0);
v_isShared_1322_ = v_isSharedCheck_1343_;
goto v_resetjp_1320_;
}
v_resetjp_1320_:
{
lean_object* v___x_1323_; lean_object* v___x_1324_; lean_object* v___x_1325_; uint8_t v___y_1332_; 
lean_inc(v_k_1315_);
v___x_1323_ = l_Rat_ofInt(v_k_1315_);
v___x_1324_ = l_Rat_neg(v___x_1323_);
v___x_1325_ = l_Rat_div(v_val_1319_, v___x_1324_);
lean_dec(v_val_1319_);
if (lean_obj_tag(v_snd_1299_) == 1)
{
lean_object* v_val_1333_; lean_object* v_fst_1334_; lean_object* v_snd_1335_; uint8_t v___x_1336_; uint8_t v___y_1338_; 
v_val_1333_ = lean_ctor_get(v_snd_1299_, 0);
v_fst_1334_ = lean_ctor_get(v_val_1333_, 0);
v_snd_1335_ = lean_ctor_get(v_val_1333_, 1);
lean_inc_ref(v___x_1325_);
lean_inc(v_fst_1334_);
v___x_1336_ = l_Rat_blt(v_fst_1334_, v___x_1325_);
if (v___x_1336_ == 0)
{
uint8_t v___x_1340_; 
v___x_1340_ = l_instDecidableEqRat_decEq(v___x_1325_, v_fst_1334_);
if (v___x_1340_ == 0)
{
v___y_1338_ = v___x_1340_;
goto v___jp_1337_;
}
else
{
v___y_1338_ = v_strict_1305_;
goto v___jp_1337_;
}
}
else
{
v___y_1332_ = v___x_1336_;
goto v___jp_1331_;
}
v___jp_1337_:
{
if (v___y_1338_ == 0)
{
lean_dec_ref(v___x_1325_);
lean_del_object(v___x_1321_);
v_a_1308_ = v_snd_1299_;
goto v___jp_1307_;
}
else
{
uint8_t v_strict_1339_; 
v_strict_1339_ = lean_ctor_get_uint8(v_snd_1335_, sizeof(void*)*2);
if (v_strict_1339_ == 0)
{
lean_dec_ref(v_snd_1299_);
goto v___jp_1326_;
}
else
{
v___y_1332_ = v___x_1336_;
goto v___jp_1331_;
}
}
}
}
else
{
lean_object* v___x_1341_; lean_object* v___x_1342_; 
lean_del_object(v___x_1321_);
lean_dec(v_snd_1299_);
lean_inc(v_a_1303_);
v___x_1341_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1341_, 0, v___x_1325_);
lean_ctor_set(v___x_1341_, 1, v_a_1303_);
v___x_1342_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_1342_, 0, v___x_1341_);
v_a_1308_ = v___x_1342_;
goto v___jp_1307_;
}
v___jp_1326_:
{
lean_object* v___x_1327_; lean_object* v___x_1329_; 
lean_inc(v_a_1303_);
v___x_1327_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1327_, 0, v___x_1325_);
lean_ctor_set(v___x_1327_, 1, v_a_1303_);
if (v_isShared_1322_ == 0)
{
lean_ctor_set(v___x_1321_, 0, v___x_1327_);
v___x_1329_ = v___x_1321_;
goto v_reusejp_1328_;
}
else
{
lean_object* v_reuseFailAlloc_1330_; 
v_reuseFailAlloc_1330_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1330_, 0, v___x_1327_);
v___x_1329_ = v_reuseFailAlloc_1330_;
goto v_reusejp_1328_;
}
v_reusejp_1328_:
{
v_a_1308_ = v___x_1329_;
goto v___jp_1307_;
}
}
v___jp_1331_:
{
if (v___y_1332_ == 0)
{
lean_dec_ref(v___x_1325_);
lean_del_object(v___x_1321_);
v_a_1308_ = v_snd_1299_;
goto v___jp_1307_;
}
else
{
lean_dec(v_snd_1299_);
goto v___jp_1326_;
}
}
}
}
else
{
lean_object* v___x_1344_; 
lean_dec(v_a_1318_);
v___x_1344_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_1303_, v___y_1285_, v___y_1286_, v___y_1287_, v___y_1288_, v___y_1289_, v___y_1290_, v___y_1291_, v___y_1292_, v___y_1293_, v___y_1294_, v___y_1295_);
if (lean_obj_tag(v___x_1344_) == 0)
{
lean_dec_ref(v___x_1344_);
v_a_1308_ = v_snd_1299_;
goto v___jp_1307_;
}
else
{
lean_object* v_a_1345_; lean_object* v___x_1347_; uint8_t v_isShared_1348_; uint8_t v_isSharedCheck_1352_; 
lean_del_object(v___x_1301_);
lean_dec(v_snd_1299_);
v_a_1345_ = lean_ctor_get(v___x_1344_, 0);
v_isSharedCheck_1352_ = !lean_is_exclusive(v___x_1344_);
if (v_isSharedCheck_1352_ == 0)
{
v___x_1347_ = v___x_1344_;
v_isShared_1348_ = v_isSharedCheck_1352_;
goto v_resetjp_1346_;
}
else
{
lean_inc(v_a_1345_);
lean_dec(v___x_1344_);
v___x_1347_ = lean_box(0);
v_isShared_1348_ = v_isSharedCheck_1352_;
goto v_resetjp_1346_;
}
v_resetjp_1346_:
{
lean_object* v___x_1350_; 
if (v_isShared_1348_ == 0)
{
v___x_1350_ = v___x_1347_;
goto v_reusejp_1349_;
}
else
{
lean_object* v_reuseFailAlloc_1351_; 
v_reuseFailAlloc_1351_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1351_, 0, v_a_1345_);
v___x_1350_ = v_reuseFailAlloc_1351_;
goto v_reusejp_1349_;
}
v_reusejp_1349_:
{
return v___x_1350_;
}
}
}
}
}
else
{
lean_object* v_a_1353_; lean_object* v___x_1355_; uint8_t v_isShared_1356_; uint8_t v_isSharedCheck_1360_; 
lean_del_object(v___x_1301_);
lean_dec(v_snd_1299_);
v_a_1353_ = lean_ctor_get(v___x_1317_, 0);
v_isSharedCheck_1360_ = !lean_is_exclusive(v___x_1317_);
if (v_isSharedCheck_1360_ == 0)
{
v___x_1355_ = v___x_1317_;
v_isShared_1356_ = v_isSharedCheck_1360_;
goto v_resetjp_1354_;
}
else
{
lean_inc(v_a_1353_);
lean_dec(v___x_1317_);
v___x_1355_ = lean_box(0);
v_isShared_1356_ = v_isSharedCheck_1360_;
goto v_resetjp_1354_;
}
v_resetjp_1354_:
{
lean_object* v___x_1358_; 
if (v_isShared_1356_ == 0)
{
v___x_1358_ = v___x_1355_;
goto v_reusejp_1357_;
}
else
{
lean_object* v_reuseFailAlloc_1359_; 
v_reuseFailAlloc_1359_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1359_, 0, v_a_1353_);
v___x_1358_ = v_reuseFailAlloc_1359_;
goto v_reusejp_1357_;
}
v_reusejp_1357_:
{
return v___x_1358_;
}
}
}
}
else
{
lean_object* v___x_1361_; 
v___x_1361_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_1303_, v___y_1285_, v___y_1286_, v___y_1287_, v___y_1288_, v___y_1289_, v___y_1290_, v___y_1291_, v___y_1292_, v___y_1293_, v___y_1294_, v___y_1295_);
if (lean_obj_tag(v___x_1361_) == 0)
{
lean_dec_ref(v___x_1361_);
v_a_1308_ = v_snd_1299_;
goto v___jp_1307_;
}
else
{
lean_object* v_a_1362_; lean_object* v___x_1364_; uint8_t v_isShared_1365_; uint8_t v_isSharedCheck_1369_; 
lean_del_object(v___x_1301_);
lean_dec(v_snd_1299_);
v_a_1362_ = lean_ctor_get(v___x_1361_, 0);
v_isSharedCheck_1369_ = !lean_is_exclusive(v___x_1361_);
if (v_isSharedCheck_1369_ == 0)
{
v___x_1364_ = v___x_1361_;
v_isShared_1365_ = v_isSharedCheck_1369_;
goto v_resetjp_1363_;
}
else
{
lean_inc(v_a_1362_);
lean_dec(v___x_1361_);
v___x_1364_ = lean_box(0);
v_isShared_1365_ = v_isSharedCheck_1369_;
goto v_resetjp_1363_;
}
v_resetjp_1363_:
{
lean_object* v___x_1367_; 
if (v_isShared_1365_ == 0)
{
v___x_1367_ = v___x_1364_;
goto v_reusejp_1366_;
}
else
{
lean_object* v_reuseFailAlloc_1368_; 
v_reuseFailAlloc_1368_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1368_, 0, v_a_1362_);
v___x_1367_ = v_reuseFailAlloc_1368_;
goto v_reusejp_1366_;
}
v_reusejp_1366_:
{
return v___x_1367_;
}
}
}
}
v___jp_1307_:
{
lean_object* v___x_1310_; 
if (v_isShared_1302_ == 0)
{
lean_ctor_set(v___x_1301_, 1, v_a_1308_);
lean_ctor_set(v___x_1301_, 0, v___x_1306_);
v___x_1310_ = v___x_1301_;
goto v_reusejp_1309_;
}
else
{
lean_object* v_reuseFailAlloc_1314_; 
v_reuseFailAlloc_1314_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_1314_, 0, v___x_1306_);
lean_ctor_set(v_reuseFailAlloc_1314_, 1, v_a_1308_);
v___x_1310_ = v_reuseFailAlloc_1314_;
goto v_reusejp_1309_;
}
v_reusejp_1309_:
{
size_t v___x_1311_; size_t v___x_1312_; 
v___x_1311_ = ((size_t)1ULL);
v___x_1312_ = lean_usize_add(v_i_1283_, v___x_1311_);
v_i_1283_ = v___x_1312_;
v_b_1284_ = v___x_1310_;
goto _start;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2_spec__5___boxed(lean_object* v_as_1372_, lean_object* v_sz_1373_, lean_object* v_i_1374_, lean_object* v_b_1375_, lean_object* v___y_1376_, lean_object* v___y_1377_, lean_object* v___y_1378_, lean_object* v___y_1379_, lean_object* v___y_1380_, lean_object* v___y_1381_, lean_object* v___y_1382_, lean_object* v___y_1383_, lean_object* v___y_1384_, lean_object* v___y_1385_, lean_object* v___y_1386_, lean_object* v___y_1387_){
_start:
{
size_t v_sz_boxed_1388_; size_t v_i_boxed_1389_; lean_object* v_res_1390_; 
v_sz_boxed_1388_ = lean_unbox_usize(v_sz_1373_);
lean_dec(v_sz_1373_);
v_i_boxed_1389_ = lean_unbox_usize(v_i_1374_);
lean_dec(v_i_1374_);
v_res_1390_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2_spec__5(v_as_1372_, v_sz_boxed_1388_, v_i_boxed_1389_, v_b_1375_, v___y_1376_, v___y_1377_, v___y_1378_, v___y_1379_, v___y_1380_, v___y_1381_, v___y_1382_, v___y_1383_, v___y_1384_, v___y_1385_, v___y_1386_);
lean_dec(v___y_1386_);
lean_dec_ref(v___y_1385_);
lean_dec(v___y_1384_);
lean_dec_ref(v___y_1383_);
lean_dec(v___y_1382_);
lean_dec_ref(v___y_1381_);
lean_dec(v___y_1380_);
lean_dec_ref(v___y_1379_);
lean_dec(v___y_1378_);
lean_dec(v___y_1377_);
lean_dec(v___y_1376_);
lean_dec_ref(v_as_1372_);
return v_res_1390_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2(lean_object* v_as_1391_, size_t v_sz_1392_, size_t v_i_1393_, lean_object* v_b_1394_, lean_object* v___y_1395_, lean_object* v___y_1396_, lean_object* v___y_1397_, lean_object* v___y_1398_, lean_object* v___y_1399_, lean_object* v___y_1400_, lean_object* v___y_1401_, lean_object* v___y_1402_, lean_object* v___y_1403_, lean_object* v___y_1404_, lean_object* v___y_1405_){
_start:
{
uint8_t v___x_1407_; 
v___x_1407_ = lean_usize_dec_lt(v_i_1393_, v_sz_1392_);
if (v___x_1407_ == 0)
{
lean_object* v___x_1408_; 
v___x_1408_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1408_, 0, v_b_1394_);
return v___x_1408_;
}
else
{
lean_object* v_snd_1409_; lean_object* v___x_1411_; uint8_t v_isShared_1412_; uint8_t v_isSharedCheck_1480_; 
v_snd_1409_ = lean_ctor_get(v_b_1394_, 1);
v_isSharedCheck_1480_ = !lean_is_exclusive(v_b_1394_);
if (v_isSharedCheck_1480_ == 0)
{
lean_object* v_unused_1481_; 
v_unused_1481_ = lean_ctor_get(v_b_1394_, 0);
lean_dec(v_unused_1481_);
v___x_1411_ = v_b_1394_;
v_isShared_1412_ = v_isSharedCheck_1480_;
goto v_resetjp_1410_;
}
else
{
lean_inc(v_snd_1409_);
lean_dec(v_b_1394_);
v___x_1411_ = lean_box(0);
v_isShared_1412_ = v_isSharedCheck_1480_;
goto v_resetjp_1410_;
}
v_resetjp_1410_:
{
lean_object* v_a_1413_; lean_object* v_p_1414_; uint8_t v_strict_1415_; lean_object* v___x_1416_; lean_object* v_a_1418_; 
v_a_1413_ = lean_array_uget_borrowed(v_as_1391_, v_i_1393_);
v_p_1414_ = lean_ctor_get(v_a_1413_, 0);
v_strict_1415_ = lean_ctor_get_uint8(v_a_1413_, sizeof(void*)*2);
v___x_1416_ = lean_box(0);
if (lean_obj_tag(v_p_1414_) == 1)
{
lean_object* v_k_1425_; lean_object* v_p_1426_; lean_object* v___x_1427_; 
v_k_1425_ = lean_ctor_get(v_p_1414_, 0);
v_p_1426_ = lean_ctor_get(v_p_1414_, 2);
lean_inc(v_p_1426_);
v___x_1427_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_1426_, v___y_1395_, v___y_1396_, v___y_1397_, v___y_1398_, v___y_1399_, v___y_1400_, v___y_1401_, v___y_1402_, v___y_1403_, v___y_1404_, v___y_1405_);
if (lean_obj_tag(v___x_1427_) == 0)
{
lean_object* v_a_1428_; 
v_a_1428_ = lean_ctor_get(v___x_1427_, 0);
lean_inc(v_a_1428_);
lean_dec_ref(v___x_1427_);
if (lean_obj_tag(v_a_1428_) == 1)
{
lean_object* v_val_1429_; lean_object* v___x_1431_; uint8_t v_isShared_1432_; uint8_t v_isSharedCheck_1453_; 
v_val_1429_ = lean_ctor_get(v_a_1428_, 0);
v_isSharedCheck_1453_ = !lean_is_exclusive(v_a_1428_);
if (v_isSharedCheck_1453_ == 0)
{
v___x_1431_ = v_a_1428_;
v_isShared_1432_ = v_isSharedCheck_1453_;
goto v_resetjp_1430_;
}
else
{
lean_inc(v_val_1429_);
lean_dec(v_a_1428_);
v___x_1431_ = lean_box(0);
v_isShared_1432_ = v_isSharedCheck_1453_;
goto v_resetjp_1430_;
}
v_resetjp_1430_:
{
lean_object* v___x_1433_; lean_object* v___x_1434_; lean_object* v___x_1435_; uint8_t v___y_1442_; 
lean_inc(v_k_1425_);
v___x_1433_ = l_Rat_ofInt(v_k_1425_);
v___x_1434_ = l_Rat_neg(v___x_1433_);
v___x_1435_ = l_Rat_div(v_val_1429_, v___x_1434_);
lean_dec(v_val_1429_);
if (lean_obj_tag(v_snd_1409_) == 1)
{
lean_object* v_val_1443_; lean_object* v_fst_1444_; lean_object* v_snd_1445_; uint8_t v___x_1446_; uint8_t v___y_1448_; 
v_val_1443_ = lean_ctor_get(v_snd_1409_, 0);
v_fst_1444_ = lean_ctor_get(v_val_1443_, 0);
v_snd_1445_ = lean_ctor_get(v_val_1443_, 1);
lean_inc_ref(v___x_1435_);
lean_inc(v_fst_1444_);
v___x_1446_ = l_Rat_blt(v_fst_1444_, v___x_1435_);
if (v___x_1446_ == 0)
{
uint8_t v___x_1450_; 
v___x_1450_ = l_instDecidableEqRat_decEq(v___x_1435_, v_fst_1444_);
if (v___x_1450_ == 0)
{
v___y_1448_ = v___x_1450_;
goto v___jp_1447_;
}
else
{
v___y_1448_ = v_strict_1415_;
goto v___jp_1447_;
}
}
else
{
v___y_1442_ = v___x_1446_;
goto v___jp_1441_;
}
v___jp_1447_:
{
if (v___y_1448_ == 0)
{
lean_dec_ref(v___x_1435_);
lean_del_object(v___x_1431_);
v_a_1418_ = v_snd_1409_;
goto v___jp_1417_;
}
else
{
uint8_t v_strict_1449_; 
v_strict_1449_ = lean_ctor_get_uint8(v_snd_1445_, sizeof(void*)*2);
if (v_strict_1449_ == 0)
{
lean_dec_ref(v_snd_1409_);
goto v___jp_1436_;
}
else
{
v___y_1442_ = v___x_1446_;
goto v___jp_1441_;
}
}
}
}
else
{
lean_object* v___x_1451_; lean_object* v___x_1452_; 
lean_del_object(v___x_1431_);
lean_dec(v_snd_1409_);
lean_inc(v_a_1413_);
v___x_1451_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1451_, 0, v___x_1435_);
lean_ctor_set(v___x_1451_, 1, v_a_1413_);
v___x_1452_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_1452_, 0, v___x_1451_);
v_a_1418_ = v___x_1452_;
goto v___jp_1417_;
}
v___jp_1436_:
{
lean_object* v___x_1437_; lean_object* v___x_1439_; 
lean_inc(v_a_1413_);
v___x_1437_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1437_, 0, v___x_1435_);
lean_ctor_set(v___x_1437_, 1, v_a_1413_);
if (v_isShared_1432_ == 0)
{
lean_ctor_set(v___x_1431_, 0, v___x_1437_);
v___x_1439_ = v___x_1431_;
goto v_reusejp_1438_;
}
else
{
lean_object* v_reuseFailAlloc_1440_; 
v_reuseFailAlloc_1440_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1440_, 0, v___x_1437_);
v___x_1439_ = v_reuseFailAlloc_1440_;
goto v_reusejp_1438_;
}
v_reusejp_1438_:
{
v_a_1418_ = v___x_1439_;
goto v___jp_1417_;
}
}
v___jp_1441_:
{
if (v___y_1442_ == 0)
{
lean_dec_ref(v___x_1435_);
lean_del_object(v___x_1431_);
v_a_1418_ = v_snd_1409_;
goto v___jp_1417_;
}
else
{
lean_dec(v_snd_1409_);
goto v___jp_1436_;
}
}
}
}
else
{
lean_object* v___x_1454_; 
lean_dec(v_a_1428_);
v___x_1454_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_1413_, v___y_1395_, v___y_1396_, v___y_1397_, v___y_1398_, v___y_1399_, v___y_1400_, v___y_1401_, v___y_1402_, v___y_1403_, v___y_1404_, v___y_1405_);
if (lean_obj_tag(v___x_1454_) == 0)
{
lean_dec_ref(v___x_1454_);
v_a_1418_ = v_snd_1409_;
goto v___jp_1417_;
}
else
{
lean_object* v_a_1455_; lean_object* v___x_1457_; uint8_t v_isShared_1458_; uint8_t v_isSharedCheck_1462_; 
lean_del_object(v___x_1411_);
lean_dec(v_snd_1409_);
v_a_1455_ = lean_ctor_get(v___x_1454_, 0);
v_isSharedCheck_1462_ = !lean_is_exclusive(v___x_1454_);
if (v_isSharedCheck_1462_ == 0)
{
v___x_1457_ = v___x_1454_;
v_isShared_1458_ = v_isSharedCheck_1462_;
goto v_resetjp_1456_;
}
else
{
lean_inc(v_a_1455_);
lean_dec(v___x_1454_);
v___x_1457_ = lean_box(0);
v_isShared_1458_ = v_isSharedCheck_1462_;
goto v_resetjp_1456_;
}
v_resetjp_1456_:
{
lean_object* v___x_1460_; 
if (v_isShared_1458_ == 0)
{
v___x_1460_ = v___x_1457_;
goto v_reusejp_1459_;
}
else
{
lean_object* v_reuseFailAlloc_1461_; 
v_reuseFailAlloc_1461_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1461_, 0, v_a_1455_);
v___x_1460_ = v_reuseFailAlloc_1461_;
goto v_reusejp_1459_;
}
v_reusejp_1459_:
{
return v___x_1460_;
}
}
}
}
}
else
{
lean_object* v_a_1463_; lean_object* v___x_1465_; uint8_t v_isShared_1466_; uint8_t v_isSharedCheck_1470_; 
lean_del_object(v___x_1411_);
lean_dec(v_snd_1409_);
v_a_1463_ = lean_ctor_get(v___x_1427_, 0);
v_isSharedCheck_1470_ = !lean_is_exclusive(v___x_1427_);
if (v_isSharedCheck_1470_ == 0)
{
v___x_1465_ = v___x_1427_;
v_isShared_1466_ = v_isSharedCheck_1470_;
goto v_resetjp_1464_;
}
else
{
lean_inc(v_a_1463_);
lean_dec(v___x_1427_);
v___x_1465_ = lean_box(0);
v_isShared_1466_ = v_isSharedCheck_1470_;
goto v_resetjp_1464_;
}
v_resetjp_1464_:
{
lean_object* v___x_1468_; 
if (v_isShared_1466_ == 0)
{
v___x_1468_ = v___x_1465_;
goto v_reusejp_1467_;
}
else
{
lean_object* v_reuseFailAlloc_1469_; 
v_reuseFailAlloc_1469_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1469_, 0, v_a_1463_);
v___x_1468_ = v_reuseFailAlloc_1469_;
goto v_reusejp_1467_;
}
v_reusejp_1467_:
{
return v___x_1468_;
}
}
}
}
else
{
lean_object* v___x_1471_; 
v___x_1471_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_1413_, v___y_1395_, v___y_1396_, v___y_1397_, v___y_1398_, v___y_1399_, v___y_1400_, v___y_1401_, v___y_1402_, v___y_1403_, v___y_1404_, v___y_1405_);
if (lean_obj_tag(v___x_1471_) == 0)
{
lean_dec_ref(v___x_1471_);
v_a_1418_ = v_snd_1409_;
goto v___jp_1417_;
}
else
{
lean_object* v_a_1472_; lean_object* v___x_1474_; uint8_t v_isShared_1475_; uint8_t v_isSharedCheck_1479_; 
lean_del_object(v___x_1411_);
lean_dec(v_snd_1409_);
v_a_1472_ = lean_ctor_get(v___x_1471_, 0);
v_isSharedCheck_1479_ = !lean_is_exclusive(v___x_1471_);
if (v_isSharedCheck_1479_ == 0)
{
v___x_1474_ = v___x_1471_;
v_isShared_1475_ = v_isSharedCheck_1479_;
goto v_resetjp_1473_;
}
else
{
lean_inc(v_a_1472_);
lean_dec(v___x_1471_);
v___x_1474_ = lean_box(0);
v_isShared_1475_ = v_isSharedCheck_1479_;
goto v_resetjp_1473_;
}
v_resetjp_1473_:
{
lean_object* v___x_1477_; 
if (v_isShared_1475_ == 0)
{
v___x_1477_ = v___x_1474_;
goto v_reusejp_1476_;
}
else
{
lean_object* v_reuseFailAlloc_1478_; 
v_reuseFailAlloc_1478_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1478_, 0, v_a_1472_);
v___x_1477_ = v_reuseFailAlloc_1478_;
goto v_reusejp_1476_;
}
v_reusejp_1476_:
{
return v___x_1477_;
}
}
}
}
v___jp_1417_:
{
lean_object* v___x_1420_; 
if (v_isShared_1412_ == 0)
{
lean_ctor_set(v___x_1411_, 1, v_a_1418_);
lean_ctor_set(v___x_1411_, 0, v___x_1416_);
v___x_1420_ = v___x_1411_;
goto v_reusejp_1419_;
}
else
{
lean_object* v_reuseFailAlloc_1424_; 
v_reuseFailAlloc_1424_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_1424_, 0, v___x_1416_);
lean_ctor_set(v_reuseFailAlloc_1424_, 1, v_a_1418_);
v___x_1420_ = v_reuseFailAlloc_1424_;
goto v_reusejp_1419_;
}
v_reusejp_1419_:
{
size_t v___x_1421_; size_t v___x_1422_; lean_object* v___x_1423_; 
v___x_1421_ = ((size_t)1ULL);
v___x_1422_ = lean_usize_add(v_i_1393_, v___x_1421_);
v___x_1423_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2_spec__5(v_as_1391_, v_sz_1392_, v___x_1422_, v___x_1420_, v___y_1395_, v___y_1396_, v___y_1397_, v___y_1398_, v___y_1399_, v___y_1400_, v___y_1401_, v___y_1402_, v___y_1403_, v___y_1404_, v___y_1405_);
return v___x_1423_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2___boxed(lean_object* v_as_1482_, lean_object* v_sz_1483_, lean_object* v_i_1484_, lean_object* v_b_1485_, lean_object* v___y_1486_, lean_object* v___y_1487_, lean_object* v___y_1488_, lean_object* v___y_1489_, lean_object* v___y_1490_, lean_object* v___y_1491_, lean_object* v___y_1492_, lean_object* v___y_1493_, lean_object* v___y_1494_, lean_object* v___y_1495_, lean_object* v___y_1496_, lean_object* v___y_1497_){
_start:
{
size_t v_sz_boxed_1498_; size_t v_i_boxed_1499_; lean_object* v_res_1500_; 
v_sz_boxed_1498_ = lean_unbox_usize(v_sz_1483_);
lean_dec(v_sz_1483_);
v_i_boxed_1499_ = lean_unbox_usize(v_i_1484_);
lean_dec(v_i_1484_);
v_res_1500_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2(v_as_1482_, v_sz_boxed_1498_, v_i_boxed_1499_, v_b_1485_, v___y_1486_, v___y_1487_, v___y_1488_, v___y_1489_, v___y_1490_, v___y_1491_, v___y_1492_, v___y_1493_, v___y_1494_, v___y_1495_, v___y_1496_);
lean_dec(v___y_1496_);
lean_dec_ref(v___y_1495_);
lean_dec(v___y_1494_);
lean_dec_ref(v___y_1493_);
lean_dec(v___y_1492_);
lean_dec_ref(v___y_1491_);
lean_dec(v___y_1490_);
lean_dec_ref(v___y_1489_);
lean_dec(v___y_1488_);
lean_dec(v___y_1487_);
lean_dec(v___y_1486_);
lean_dec_ref(v_as_1482_);
return v_res_1500_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3_spec__4(lean_object* v_as_1501_, size_t v_sz_1502_, size_t v_i_1503_, lean_object* v_b_1504_, lean_object* v___y_1505_, lean_object* v___y_1506_, lean_object* v___y_1507_, lean_object* v___y_1508_, lean_object* v___y_1509_, lean_object* v___y_1510_, lean_object* v___y_1511_, lean_object* v___y_1512_, lean_object* v___y_1513_, lean_object* v___y_1514_, lean_object* v___y_1515_){
_start:
{
uint8_t v___x_1517_; 
v___x_1517_ = lean_usize_dec_lt(v_i_1503_, v_sz_1502_);
if (v___x_1517_ == 0)
{
lean_object* v___x_1518_; 
v___x_1518_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1518_, 0, v_b_1504_);
return v___x_1518_;
}
else
{
lean_object* v_snd_1519_; lean_object* v___x_1521_; uint8_t v_isShared_1522_; uint8_t v_isSharedCheck_1590_; 
v_snd_1519_ = lean_ctor_get(v_b_1504_, 1);
v_isSharedCheck_1590_ = !lean_is_exclusive(v_b_1504_);
if (v_isSharedCheck_1590_ == 0)
{
lean_object* v_unused_1591_; 
v_unused_1591_ = lean_ctor_get(v_b_1504_, 0);
lean_dec(v_unused_1591_);
v___x_1521_ = v_b_1504_;
v_isShared_1522_ = v_isSharedCheck_1590_;
goto v_resetjp_1520_;
}
else
{
lean_inc(v_snd_1519_);
lean_dec(v_b_1504_);
v___x_1521_ = lean_box(0);
v_isShared_1522_ = v_isSharedCheck_1590_;
goto v_resetjp_1520_;
}
v_resetjp_1520_:
{
lean_object* v_a_1523_; lean_object* v_p_1524_; uint8_t v_strict_1525_; lean_object* v___x_1526_; lean_object* v_a_1528_; 
v_a_1523_ = lean_array_uget_borrowed(v_as_1501_, v_i_1503_);
v_p_1524_ = lean_ctor_get(v_a_1523_, 0);
v_strict_1525_ = lean_ctor_get_uint8(v_a_1523_, sizeof(void*)*2);
v___x_1526_ = lean_box(0);
if (lean_obj_tag(v_p_1524_) == 1)
{
lean_object* v_k_1535_; lean_object* v_p_1536_; lean_object* v___x_1537_; 
v_k_1535_ = lean_ctor_get(v_p_1524_, 0);
v_p_1536_ = lean_ctor_get(v_p_1524_, 2);
lean_inc(v_p_1536_);
v___x_1537_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_1536_, v___y_1505_, v___y_1506_, v___y_1507_, v___y_1508_, v___y_1509_, v___y_1510_, v___y_1511_, v___y_1512_, v___y_1513_, v___y_1514_, v___y_1515_);
if (lean_obj_tag(v___x_1537_) == 0)
{
lean_object* v_a_1538_; 
v_a_1538_ = lean_ctor_get(v___x_1537_, 0);
lean_inc(v_a_1538_);
lean_dec_ref(v___x_1537_);
if (lean_obj_tag(v_a_1538_) == 1)
{
lean_object* v_val_1539_; lean_object* v___x_1541_; uint8_t v_isShared_1542_; uint8_t v_isSharedCheck_1563_; 
v_val_1539_ = lean_ctor_get(v_a_1538_, 0);
v_isSharedCheck_1563_ = !lean_is_exclusive(v_a_1538_);
if (v_isSharedCheck_1563_ == 0)
{
v___x_1541_ = v_a_1538_;
v_isShared_1542_ = v_isSharedCheck_1563_;
goto v_resetjp_1540_;
}
else
{
lean_inc(v_val_1539_);
lean_dec(v_a_1538_);
v___x_1541_ = lean_box(0);
v_isShared_1542_ = v_isSharedCheck_1563_;
goto v_resetjp_1540_;
}
v_resetjp_1540_:
{
lean_object* v___x_1543_; lean_object* v___x_1544_; lean_object* v___x_1545_; uint8_t v___y_1552_; 
lean_inc(v_k_1535_);
v___x_1543_ = l_Rat_ofInt(v_k_1535_);
v___x_1544_ = l_Rat_neg(v___x_1543_);
v___x_1545_ = l_Rat_div(v_val_1539_, v___x_1544_);
lean_dec(v_val_1539_);
if (lean_obj_tag(v_snd_1519_) == 1)
{
lean_object* v_val_1553_; lean_object* v_fst_1554_; lean_object* v_snd_1555_; uint8_t v___x_1556_; uint8_t v___y_1558_; 
v_val_1553_ = lean_ctor_get(v_snd_1519_, 0);
v_fst_1554_ = lean_ctor_get(v_val_1553_, 0);
v_snd_1555_ = lean_ctor_get(v_val_1553_, 1);
lean_inc_ref(v___x_1545_);
lean_inc(v_fst_1554_);
v___x_1556_ = l_Rat_blt(v_fst_1554_, v___x_1545_);
if (v___x_1556_ == 0)
{
uint8_t v___x_1560_; 
v___x_1560_ = l_instDecidableEqRat_decEq(v___x_1545_, v_fst_1554_);
if (v___x_1560_ == 0)
{
v___y_1558_ = v___x_1560_;
goto v___jp_1557_;
}
else
{
v___y_1558_ = v_strict_1525_;
goto v___jp_1557_;
}
}
else
{
v___y_1552_ = v___x_1556_;
goto v___jp_1551_;
}
v___jp_1557_:
{
if (v___y_1558_ == 0)
{
lean_dec_ref(v___x_1545_);
lean_del_object(v___x_1541_);
v_a_1528_ = v_snd_1519_;
goto v___jp_1527_;
}
else
{
uint8_t v_strict_1559_; 
v_strict_1559_ = lean_ctor_get_uint8(v_snd_1555_, sizeof(void*)*2);
if (v_strict_1559_ == 0)
{
lean_dec_ref(v_snd_1519_);
goto v___jp_1546_;
}
else
{
v___y_1552_ = v___x_1556_;
goto v___jp_1551_;
}
}
}
}
else
{
lean_object* v___x_1561_; lean_object* v___x_1562_; 
lean_del_object(v___x_1541_);
lean_dec(v_snd_1519_);
lean_inc(v_a_1523_);
v___x_1561_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1561_, 0, v___x_1545_);
lean_ctor_set(v___x_1561_, 1, v_a_1523_);
v___x_1562_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_1562_, 0, v___x_1561_);
v_a_1528_ = v___x_1562_;
goto v___jp_1527_;
}
v___jp_1546_:
{
lean_object* v___x_1547_; lean_object* v___x_1549_; 
lean_inc(v_a_1523_);
v___x_1547_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1547_, 0, v___x_1545_);
lean_ctor_set(v___x_1547_, 1, v_a_1523_);
if (v_isShared_1542_ == 0)
{
lean_ctor_set(v___x_1541_, 0, v___x_1547_);
v___x_1549_ = v___x_1541_;
goto v_reusejp_1548_;
}
else
{
lean_object* v_reuseFailAlloc_1550_; 
v_reuseFailAlloc_1550_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1550_, 0, v___x_1547_);
v___x_1549_ = v_reuseFailAlloc_1550_;
goto v_reusejp_1548_;
}
v_reusejp_1548_:
{
v_a_1528_ = v___x_1549_;
goto v___jp_1527_;
}
}
v___jp_1551_:
{
if (v___y_1552_ == 0)
{
lean_dec_ref(v___x_1545_);
lean_del_object(v___x_1541_);
v_a_1528_ = v_snd_1519_;
goto v___jp_1527_;
}
else
{
lean_dec(v_snd_1519_);
goto v___jp_1546_;
}
}
}
}
else
{
lean_object* v___x_1564_; 
lean_dec(v_a_1538_);
v___x_1564_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_1523_, v___y_1505_, v___y_1506_, v___y_1507_, v___y_1508_, v___y_1509_, v___y_1510_, v___y_1511_, v___y_1512_, v___y_1513_, v___y_1514_, v___y_1515_);
if (lean_obj_tag(v___x_1564_) == 0)
{
lean_dec_ref(v___x_1564_);
v_a_1528_ = v_snd_1519_;
goto v___jp_1527_;
}
else
{
lean_object* v_a_1565_; lean_object* v___x_1567_; uint8_t v_isShared_1568_; uint8_t v_isSharedCheck_1572_; 
lean_del_object(v___x_1521_);
lean_dec(v_snd_1519_);
v_a_1565_ = lean_ctor_get(v___x_1564_, 0);
v_isSharedCheck_1572_ = !lean_is_exclusive(v___x_1564_);
if (v_isSharedCheck_1572_ == 0)
{
v___x_1567_ = v___x_1564_;
v_isShared_1568_ = v_isSharedCheck_1572_;
goto v_resetjp_1566_;
}
else
{
lean_inc(v_a_1565_);
lean_dec(v___x_1564_);
v___x_1567_ = lean_box(0);
v_isShared_1568_ = v_isSharedCheck_1572_;
goto v_resetjp_1566_;
}
v_resetjp_1566_:
{
lean_object* v___x_1570_; 
if (v_isShared_1568_ == 0)
{
v___x_1570_ = v___x_1567_;
goto v_reusejp_1569_;
}
else
{
lean_object* v_reuseFailAlloc_1571_; 
v_reuseFailAlloc_1571_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1571_, 0, v_a_1565_);
v___x_1570_ = v_reuseFailAlloc_1571_;
goto v_reusejp_1569_;
}
v_reusejp_1569_:
{
return v___x_1570_;
}
}
}
}
}
else
{
lean_object* v_a_1573_; lean_object* v___x_1575_; uint8_t v_isShared_1576_; uint8_t v_isSharedCheck_1580_; 
lean_del_object(v___x_1521_);
lean_dec(v_snd_1519_);
v_a_1573_ = lean_ctor_get(v___x_1537_, 0);
v_isSharedCheck_1580_ = !lean_is_exclusive(v___x_1537_);
if (v_isSharedCheck_1580_ == 0)
{
v___x_1575_ = v___x_1537_;
v_isShared_1576_ = v_isSharedCheck_1580_;
goto v_resetjp_1574_;
}
else
{
lean_inc(v_a_1573_);
lean_dec(v___x_1537_);
v___x_1575_ = lean_box(0);
v_isShared_1576_ = v_isSharedCheck_1580_;
goto v_resetjp_1574_;
}
v_resetjp_1574_:
{
lean_object* v___x_1578_; 
if (v_isShared_1576_ == 0)
{
v___x_1578_ = v___x_1575_;
goto v_reusejp_1577_;
}
else
{
lean_object* v_reuseFailAlloc_1579_; 
v_reuseFailAlloc_1579_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1579_, 0, v_a_1573_);
v___x_1578_ = v_reuseFailAlloc_1579_;
goto v_reusejp_1577_;
}
v_reusejp_1577_:
{
return v___x_1578_;
}
}
}
}
else
{
lean_object* v___x_1581_; 
v___x_1581_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_1523_, v___y_1505_, v___y_1506_, v___y_1507_, v___y_1508_, v___y_1509_, v___y_1510_, v___y_1511_, v___y_1512_, v___y_1513_, v___y_1514_, v___y_1515_);
if (lean_obj_tag(v___x_1581_) == 0)
{
lean_dec_ref(v___x_1581_);
v_a_1528_ = v_snd_1519_;
goto v___jp_1527_;
}
else
{
lean_object* v_a_1582_; lean_object* v___x_1584_; uint8_t v_isShared_1585_; uint8_t v_isSharedCheck_1589_; 
lean_del_object(v___x_1521_);
lean_dec(v_snd_1519_);
v_a_1582_ = lean_ctor_get(v___x_1581_, 0);
v_isSharedCheck_1589_ = !lean_is_exclusive(v___x_1581_);
if (v_isSharedCheck_1589_ == 0)
{
v___x_1584_ = v___x_1581_;
v_isShared_1585_ = v_isSharedCheck_1589_;
goto v_resetjp_1583_;
}
else
{
lean_inc(v_a_1582_);
lean_dec(v___x_1581_);
v___x_1584_ = lean_box(0);
v_isShared_1585_ = v_isSharedCheck_1589_;
goto v_resetjp_1583_;
}
v_resetjp_1583_:
{
lean_object* v___x_1587_; 
if (v_isShared_1585_ == 0)
{
v___x_1587_ = v___x_1584_;
goto v_reusejp_1586_;
}
else
{
lean_object* v_reuseFailAlloc_1588_; 
v_reuseFailAlloc_1588_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1588_, 0, v_a_1582_);
v___x_1587_ = v_reuseFailAlloc_1588_;
goto v_reusejp_1586_;
}
v_reusejp_1586_:
{
return v___x_1587_;
}
}
}
}
v___jp_1527_:
{
lean_object* v___x_1530_; 
if (v_isShared_1522_ == 0)
{
lean_ctor_set(v___x_1521_, 1, v_a_1528_);
lean_ctor_set(v___x_1521_, 0, v___x_1526_);
v___x_1530_ = v___x_1521_;
goto v_reusejp_1529_;
}
else
{
lean_object* v_reuseFailAlloc_1534_; 
v_reuseFailAlloc_1534_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_1534_, 0, v___x_1526_);
lean_ctor_set(v_reuseFailAlloc_1534_, 1, v_a_1528_);
v___x_1530_ = v_reuseFailAlloc_1534_;
goto v_reusejp_1529_;
}
v_reusejp_1529_:
{
size_t v___x_1531_; size_t v___x_1532_; 
v___x_1531_ = ((size_t)1ULL);
v___x_1532_ = lean_usize_add(v_i_1503_, v___x_1531_);
v_i_1503_ = v___x_1532_;
v_b_1504_ = v___x_1530_;
goto _start;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3_spec__4___boxed(lean_object* v_as_1592_, lean_object* v_sz_1593_, lean_object* v_i_1594_, lean_object* v_b_1595_, lean_object* v___y_1596_, lean_object* v___y_1597_, lean_object* v___y_1598_, lean_object* v___y_1599_, lean_object* v___y_1600_, lean_object* v___y_1601_, lean_object* v___y_1602_, lean_object* v___y_1603_, lean_object* v___y_1604_, lean_object* v___y_1605_, lean_object* v___y_1606_, lean_object* v___y_1607_){
_start:
{
size_t v_sz_boxed_1608_; size_t v_i_boxed_1609_; lean_object* v_res_1610_; 
v_sz_boxed_1608_ = lean_unbox_usize(v_sz_1593_);
lean_dec(v_sz_1593_);
v_i_boxed_1609_ = lean_unbox_usize(v_i_1594_);
lean_dec(v_i_1594_);
v_res_1610_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3_spec__4(v_as_1592_, v_sz_boxed_1608_, v_i_boxed_1609_, v_b_1595_, v___y_1596_, v___y_1597_, v___y_1598_, v___y_1599_, v___y_1600_, v___y_1601_, v___y_1602_, v___y_1603_, v___y_1604_, v___y_1605_, v___y_1606_);
lean_dec(v___y_1606_);
lean_dec_ref(v___y_1605_);
lean_dec(v___y_1604_);
lean_dec_ref(v___y_1603_);
lean_dec(v___y_1602_);
lean_dec_ref(v___y_1601_);
lean_dec(v___y_1600_);
lean_dec_ref(v___y_1599_);
lean_dec(v___y_1598_);
lean_dec(v___y_1597_);
lean_dec(v___y_1596_);
lean_dec_ref(v_as_1592_);
return v_res_1610_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3(lean_object* v_as_1611_, size_t v_sz_1612_, size_t v_i_1613_, lean_object* v_b_1614_, lean_object* v___y_1615_, lean_object* v___y_1616_, lean_object* v___y_1617_, lean_object* v___y_1618_, lean_object* v___y_1619_, lean_object* v___y_1620_, lean_object* v___y_1621_, lean_object* v___y_1622_, lean_object* v___y_1623_, lean_object* v___y_1624_, lean_object* v___y_1625_){
_start:
{
uint8_t v___x_1627_; 
v___x_1627_ = lean_usize_dec_lt(v_i_1613_, v_sz_1612_);
if (v___x_1627_ == 0)
{
lean_object* v___x_1628_; 
v___x_1628_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1628_, 0, v_b_1614_);
return v___x_1628_;
}
else
{
lean_object* v_snd_1629_; lean_object* v___x_1631_; uint8_t v_isShared_1632_; uint8_t v_isSharedCheck_1700_; 
v_snd_1629_ = lean_ctor_get(v_b_1614_, 1);
v_isSharedCheck_1700_ = !lean_is_exclusive(v_b_1614_);
if (v_isSharedCheck_1700_ == 0)
{
lean_object* v_unused_1701_; 
v_unused_1701_ = lean_ctor_get(v_b_1614_, 0);
lean_dec(v_unused_1701_);
v___x_1631_ = v_b_1614_;
v_isShared_1632_ = v_isSharedCheck_1700_;
goto v_resetjp_1630_;
}
else
{
lean_inc(v_snd_1629_);
lean_dec(v_b_1614_);
v___x_1631_ = lean_box(0);
v_isShared_1632_ = v_isSharedCheck_1700_;
goto v_resetjp_1630_;
}
v_resetjp_1630_:
{
lean_object* v_a_1633_; lean_object* v_p_1634_; uint8_t v_strict_1635_; lean_object* v___x_1636_; lean_object* v_a_1638_; 
v_a_1633_ = lean_array_uget_borrowed(v_as_1611_, v_i_1613_);
v_p_1634_ = lean_ctor_get(v_a_1633_, 0);
v_strict_1635_ = lean_ctor_get_uint8(v_a_1633_, sizeof(void*)*2);
v___x_1636_ = lean_box(0);
if (lean_obj_tag(v_p_1634_) == 1)
{
lean_object* v_k_1645_; lean_object* v_p_1646_; lean_object* v___x_1647_; 
v_k_1645_ = lean_ctor_get(v_p_1634_, 0);
v_p_1646_ = lean_ctor_get(v_p_1634_, 2);
lean_inc(v_p_1646_);
v___x_1647_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_1646_, v___y_1615_, v___y_1616_, v___y_1617_, v___y_1618_, v___y_1619_, v___y_1620_, v___y_1621_, v___y_1622_, v___y_1623_, v___y_1624_, v___y_1625_);
if (lean_obj_tag(v___x_1647_) == 0)
{
lean_object* v_a_1648_; 
v_a_1648_ = lean_ctor_get(v___x_1647_, 0);
lean_inc(v_a_1648_);
lean_dec_ref(v___x_1647_);
if (lean_obj_tag(v_a_1648_) == 1)
{
lean_object* v_val_1649_; lean_object* v___x_1651_; uint8_t v_isShared_1652_; uint8_t v_isSharedCheck_1673_; 
v_val_1649_ = lean_ctor_get(v_a_1648_, 0);
v_isSharedCheck_1673_ = !lean_is_exclusive(v_a_1648_);
if (v_isSharedCheck_1673_ == 0)
{
v___x_1651_ = v_a_1648_;
v_isShared_1652_ = v_isSharedCheck_1673_;
goto v_resetjp_1650_;
}
else
{
lean_inc(v_val_1649_);
lean_dec(v_a_1648_);
v___x_1651_ = lean_box(0);
v_isShared_1652_ = v_isSharedCheck_1673_;
goto v_resetjp_1650_;
}
v_resetjp_1650_:
{
lean_object* v___x_1653_; lean_object* v___x_1654_; lean_object* v___x_1655_; uint8_t v___y_1662_; 
lean_inc(v_k_1645_);
v___x_1653_ = l_Rat_ofInt(v_k_1645_);
v___x_1654_ = l_Rat_neg(v___x_1653_);
v___x_1655_ = l_Rat_div(v_val_1649_, v___x_1654_);
lean_dec(v_val_1649_);
if (lean_obj_tag(v_snd_1629_) == 1)
{
lean_object* v_val_1663_; lean_object* v_fst_1664_; lean_object* v_snd_1665_; uint8_t v___x_1666_; uint8_t v___y_1668_; 
v_val_1663_ = lean_ctor_get(v_snd_1629_, 0);
v_fst_1664_ = lean_ctor_get(v_val_1663_, 0);
v_snd_1665_ = lean_ctor_get(v_val_1663_, 1);
lean_inc_ref(v___x_1655_);
lean_inc(v_fst_1664_);
v___x_1666_ = l_Rat_blt(v_fst_1664_, v___x_1655_);
if (v___x_1666_ == 0)
{
uint8_t v___x_1670_; 
v___x_1670_ = l_instDecidableEqRat_decEq(v___x_1655_, v_fst_1664_);
if (v___x_1670_ == 0)
{
v___y_1668_ = v___x_1670_;
goto v___jp_1667_;
}
else
{
v___y_1668_ = v_strict_1635_;
goto v___jp_1667_;
}
}
else
{
v___y_1662_ = v___x_1666_;
goto v___jp_1661_;
}
v___jp_1667_:
{
if (v___y_1668_ == 0)
{
lean_dec_ref(v___x_1655_);
lean_del_object(v___x_1651_);
v_a_1638_ = v_snd_1629_;
goto v___jp_1637_;
}
else
{
uint8_t v_strict_1669_; 
v_strict_1669_ = lean_ctor_get_uint8(v_snd_1665_, sizeof(void*)*2);
if (v_strict_1669_ == 0)
{
lean_dec_ref(v_snd_1629_);
goto v___jp_1656_;
}
else
{
v___y_1662_ = v___x_1666_;
goto v___jp_1661_;
}
}
}
}
else
{
lean_object* v___x_1671_; lean_object* v___x_1672_; 
lean_del_object(v___x_1651_);
lean_dec(v_snd_1629_);
lean_inc(v_a_1633_);
v___x_1671_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1671_, 0, v___x_1655_);
lean_ctor_set(v___x_1671_, 1, v_a_1633_);
v___x_1672_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_1672_, 0, v___x_1671_);
v_a_1638_ = v___x_1672_;
goto v___jp_1637_;
}
v___jp_1656_:
{
lean_object* v___x_1657_; lean_object* v___x_1659_; 
lean_inc(v_a_1633_);
v___x_1657_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1657_, 0, v___x_1655_);
lean_ctor_set(v___x_1657_, 1, v_a_1633_);
if (v_isShared_1652_ == 0)
{
lean_ctor_set(v___x_1651_, 0, v___x_1657_);
v___x_1659_ = v___x_1651_;
goto v_reusejp_1658_;
}
else
{
lean_object* v_reuseFailAlloc_1660_; 
v_reuseFailAlloc_1660_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1660_, 0, v___x_1657_);
v___x_1659_ = v_reuseFailAlloc_1660_;
goto v_reusejp_1658_;
}
v_reusejp_1658_:
{
v_a_1638_ = v___x_1659_;
goto v___jp_1637_;
}
}
v___jp_1661_:
{
if (v___y_1662_ == 0)
{
lean_dec_ref(v___x_1655_);
lean_del_object(v___x_1651_);
v_a_1638_ = v_snd_1629_;
goto v___jp_1637_;
}
else
{
lean_dec(v_snd_1629_);
goto v___jp_1656_;
}
}
}
}
else
{
lean_object* v___x_1674_; 
lean_dec(v_a_1648_);
v___x_1674_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_1633_, v___y_1615_, v___y_1616_, v___y_1617_, v___y_1618_, v___y_1619_, v___y_1620_, v___y_1621_, v___y_1622_, v___y_1623_, v___y_1624_, v___y_1625_);
if (lean_obj_tag(v___x_1674_) == 0)
{
lean_dec_ref(v___x_1674_);
v_a_1638_ = v_snd_1629_;
goto v___jp_1637_;
}
else
{
lean_object* v_a_1675_; lean_object* v___x_1677_; uint8_t v_isShared_1678_; uint8_t v_isSharedCheck_1682_; 
lean_del_object(v___x_1631_);
lean_dec(v_snd_1629_);
v_a_1675_ = lean_ctor_get(v___x_1674_, 0);
v_isSharedCheck_1682_ = !lean_is_exclusive(v___x_1674_);
if (v_isSharedCheck_1682_ == 0)
{
v___x_1677_ = v___x_1674_;
v_isShared_1678_ = v_isSharedCheck_1682_;
goto v_resetjp_1676_;
}
else
{
lean_inc(v_a_1675_);
lean_dec(v___x_1674_);
v___x_1677_ = lean_box(0);
v_isShared_1678_ = v_isSharedCheck_1682_;
goto v_resetjp_1676_;
}
v_resetjp_1676_:
{
lean_object* v___x_1680_; 
if (v_isShared_1678_ == 0)
{
v___x_1680_ = v___x_1677_;
goto v_reusejp_1679_;
}
else
{
lean_object* v_reuseFailAlloc_1681_; 
v_reuseFailAlloc_1681_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1681_, 0, v_a_1675_);
v___x_1680_ = v_reuseFailAlloc_1681_;
goto v_reusejp_1679_;
}
v_reusejp_1679_:
{
return v___x_1680_;
}
}
}
}
}
else
{
lean_object* v_a_1683_; lean_object* v___x_1685_; uint8_t v_isShared_1686_; uint8_t v_isSharedCheck_1690_; 
lean_del_object(v___x_1631_);
lean_dec(v_snd_1629_);
v_a_1683_ = lean_ctor_get(v___x_1647_, 0);
v_isSharedCheck_1690_ = !lean_is_exclusive(v___x_1647_);
if (v_isSharedCheck_1690_ == 0)
{
v___x_1685_ = v___x_1647_;
v_isShared_1686_ = v_isSharedCheck_1690_;
goto v_resetjp_1684_;
}
else
{
lean_inc(v_a_1683_);
lean_dec(v___x_1647_);
v___x_1685_ = lean_box(0);
v_isShared_1686_ = v_isSharedCheck_1690_;
goto v_resetjp_1684_;
}
v_resetjp_1684_:
{
lean_object* v___x_1688_; 
if (v_isShared_1686_ == 0)
{
v___x_1688_ = v___x_1685_;
goto v_reusejp_1687_;
}
else
{
lean_object* v_reuseFailAlloc_1689_; 
v_reuseFailAlloc_1689_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1689_, 0, v_a_1683_);
v___x_1688_ = v_reuseFailAlloc_1689_;
goto v_reusejp_1687_;
}
v_reusejp_1687_:
{
return v___x_1688_;
}
}
}
}
else
{
lean_object* v___x_1691_; 
v___x_1691_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_1633_, v___y_1615_, v___y_1616_, v___y_1617_, v___y_1618_, v___y_1619_, v___y_1620_, v___y_1621_, v___y_1622_, v___y_1623_, v___y_1624_, v___y_1625_);
if (lean_obj_tag(v___x_1691_) == 0)
{
lean_dec_ref(v___x_1691_);
v_a_1638_ = v_snd_1629_;
goto v___jp_1637_;
}
else
{
lean_object* v_a_1692_; lean_object* v___x_1694_; uint8_t v_isShared_1695_; uint8_t v_isSharedCheck_1699_; 
lean_del_object(v___x_1631_);
lean_dec(v_snd_1629_);
v_a_1692_ = lean_ctor_get(v___x_1691_, 0);
v_isSharedCheck_1699_ = !lean_is_exclusive(v___x_1691_);
if (v_isSharedCheck_1699_ == 0)
{
v___x_1694_ = v___x_1691_;
v_isShared_1695_ = v_isSharedCheck_1699_;
goto v_resetjp_1693_;
}
else
{
lean_inc(v_a_1692_);
lean_dec(v___x_1691_);
v___x_1694_ = lean_box(0);
v_isShared_1695_ = v_isSharedCheck_1699_;
goto v_resetjp_1693_;
}
v_resetjp_1693_:
{
lean_object* v___x_1697_; 
if (v_isShared_1695_ == 0)
{
v___x_1697_ = v___x_1694_;
goto v_reusejp_1696_;
}
else
{
lean_object* v_reuseFailAlloc_1698_; 
v_reuseFailAlloc_1698_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1698_, 0, v_a_1692_);
v___x_1697_ = v_reuseFailAlloc_1698_;
goto v_reusejp_1696_;
}
v_reusejp_1696_:
{
return v___x_1697_;
}
}
}
}
v___jp_1637_:
{
lean_object* v___x_1640_; 
if (v_isShared_1632_ == 0)
{
lean_ctor_set(v___x_1631_, 1, v_a_1638_);
lean_ctor_set(v___x_1631_, 0, v___x_1636_);
v___x_1640_ = v___x_1631_;
goto v_reusejp_1639_;
}
else
{
lean_object* v_reuseFailAlloc_1644_; 
v_reuseFailAlloc_1644_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_1644_, 0, v___x_1636_);
lean_ctor_set(v_reuseFailAlloc_1644_, 1, v_a_1638_);
v___x_1640_ = v_reuseFailAlloc_1644_;
goto v_reusejp_1639_;
}
v_reusejp_1639_:
{
size_t v___x_1641_; size_t v___x_1642_; lean_object* v___x_1643_; 
v___x_1641_ = ((size_t)1ULL);
v___x_1642_ = lean_usize_add(v_i_1613_, v___x_1641_);
v___x_1643_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3_spec__4(v_as_1611_, v_sz_1612_, v___x_1642_, v___x_1640_, v___y_1615_, v___y_1616_, v___y_1617_, v___y_1618_, v___y_1619_, v___y_1620_, v___y_1621_, v___y_1622_, v___y_1623_, v___y_1624_, v___y_1625_);
return v___x_1643_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3___boxed(lean_object* v_as_1702_, lean_object* v_sz_1703_, lean_object* v_i_1704_, lean_object* v_b_1705_, lean_object* v___y_1706_, lean_object* v___y_1707_, lean_object* v___y_1708_, lean_object* v___y_1709_, lean_object* v___y_1710_, lean_object* v___y_1711_, lean_object* v___y_1712_, lean_object* v___y_1713_, lean_object* v___y_1714_, lean_object* v___y_1715_, lean_object* v___y_1716_, lean_object* v___y_1717_){
_start:
{
size_t v_sz_boxed_1718_; size_t v_i_boxed_1719_; lean_object* v_res_1720_; 
v_sz_boxed_1718_ = lean_unbox_usize(v_sz_1703_);
lean_dec(v_sz_1703_);
v_i_boxed_1719_ = lean_unbox_usize(v_i_1704_);
lean_dec(v_i_1704_);
v_res_1720_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3(v_as_1702_, v_sz_boxed_1718_, v_i_boxed_1719_, v_b_1705_, v___y_1706_, v___y_1707_, v___y_1708_, v___y_1709_, v___y_1710_, v___y_1711_, v___y_1712_, v___y_1713_, v___y_1714_, v___y_1715_, v___y_1716_);
lean_dec(v___y_1716_);
lean_dec_ref(v___y_1715_);
lean_dec(v___y_1714_);
lean_dec_ref(v___y_1713_);
lean_dec(v___y_1712_);
lean_dec_ref(v___y_1711_);
lean_dec(v___y_1710_);
lean_dec_ref(v___y_1709_);
lean_dec(v___y_1708_);
lean_dec(v___y_1707_);
lean_dec(v___y_1706_);
lean_dec_ref(v_as_1702_);
return v_res_1720_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1(lean_object* v_inh_1721_, lean_object* v_n_1722_, lean_object* v_b_1723_, lean_object* v___y_1724_, lean_object* v___y_1725_, lean_object* v___y_1726_, lean_object* v___y_1727_, lean_object* v___y_1728_, lean_object* v___y_1729_, lean_object* v___y_1730_, lean_object* v___y_1731_, lean_object* v___y_1732_, lean_object* v___y_1733_, lean_object* v___y_1734_){
_start:
{
if (lean_obj_tag(v_n_1722_) == 0)
{
lean_object* v_cs_1736_; lean_object* v___x_1738_; uint8_t v_isShared_1739_; uint8_t v_isSharedCheck_1770_; 
v_cs_1736_ = lean_ctor_get(v_n_1722_, 0);
v_isSharedCheck_1770_ = !lean_is_exclusive(v_n_1722_);
if (v_isSharedCheck_1770_ == 0)
{
v___x_1738_ = v_n_1722_;
v_isShared_1739_ = v_isSharedCheck_1770_;
goto v_resetjp_1737_;
}
else
{
lean_inc(v_cs_1736_);
lean_dec(v_n_1722_);
v___x_1738_ = lean_box(0);
v_isShared_1739_ = v_isSharedCheck_1770_;
goto v_resetjp_1737_;
}
v_resetjp_1737_:
{
lean_object* v___x_1740_; lean_object* v___x_1741_; size_t v_sz_1742_; size_t v___x_1743_; lean_object* v___x_1744_; 
v___x_1740_ = lean_box(0);
v___x_1741_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1741_, 0, v___x_1740_);
lean_ctor_set(v___x_1741_, 1, v_b_1723_);
v_sz_1742_ = lean_array_size(v_cs_1736_);
v___x_1743_ = ((size_t)0ULL);
v___x_1744_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__2(v_inh_1721_, v_cs_1736_, v_sz_1742_, v___x_1743_, v___x_1741_, v___y_1724_, v___y_1725_, v___y_1726_, v___y_1727_, v___y_1728_, v___y_1729_, v___y_1730_, v___y_1731_, v___y_1732_, v___y_1733_, v___y_1734_);
lean_dec_ref(v_cs_1736_);
if (lean_obj_tag(v___x_1744_) == 0)
{
lean_object* v_a_1745_; lean_object* v___x_1747_; uint8_t v_isShared_1748_; uint8_t v_isSharedCheck_1761_; 
v_a_1745_ = lean_ctor_get(v___x_1744_, 0);
v_isSharedCheck_1761_ = !lean_is_exclusive(v___x_1744_);
if (v_isSharedCheck_1761_ == 0)
{
v___x_1747_ = v___x_1744_;
v_isShared_1748_ = v_isSharedCheck_1761_;
goto v_resetjp_1746_;
}
else
{
lean_inc(v_a_1745_);
lean_dec(v___x_1744_);
v___x_1747_ = lean_box(0);
v_isShared_1748_ = v_isSharedCheck_1761_;
goto v_resetjp_1746_;
}
v_resetjp_1746_:
{
lean_object* v_fst_1749_; 
v_fst_1749_ = lean_ctor_get(v_a_1745_, 0);
if (lean_obj_tag(v_fst_1749_) == 0)
{
lean_object* v_snd_1750_; lean_object* v___x_1752_; 
v_snd_1750_ = lean_ctor_get(v_a_1745_, 1);
lean_inc(v_snd_1750_);
lean_dec(v_a_1745_);
if (v_isShared_1739_ == 0)
{
lean_ctor_set_tag(v___x_1738_, 1);
lean_ctor_set(v___x_1738_, 0, v_snd_1750_);
v___x_1752_ = v___x_1738_;
goto v_reusejp_1751_;
}
else
{
lean_object* v_reuseFailAlloc_1756_; 
v_reuseFailAlloc_1756_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1756_, 0, v_snd_1750_);
v___x_1752_ = v_reuseFailAlloc_1756_;
goto v_reusejp_1751_;
}
v_reusejp_1751_:
{
lean_object* v___x_1754_; 
if (v_isShared_1748_ == 0)
{
lean_ctor_set(v___x_1747_, 0, v___x_1752_);
v___x_1754_ = v___x_1747_;
goto v_reusejp_1753_;
}
else
{
lean_object* v_reuseFailAlloc_1755_; 
v_reuseFailAlloc_1755_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1755_, 0, v___x_1752_);
v___x_1754_ = v_reuseFailAlloc_1755_;
goto v_reusejp_1753_;
}
v_reusejp_1753_:
{
return v___x_1754_;
}
}
}
else
{
lean_object* v_val_1757_; lean_object* v___x_1759_; 
lean_inc_ref(v_fst_1749_);
lean_dec(v_a_1745_);
lean_del_object(v___x_1738_);
v_val_1757_ = lean_ctor_get(v_fst_1749_, 0);
lean_inc(v_val_1757_);
lean_dec_ref(v_fst_1749_);
if (v_isShared_1748_ == 0)
{
lean_ctor_set(v___x_1747_, 0, v_val_1757_);
v___x_1759_ = v___x_1747_;
goto v_reusejp_1758_;
}
else
{
lean_object* v_reuseFailAlloc_1760_; 
v_reuseFailAlloc_1760_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1760_, 0, v_val_1757_);
v___x_1759_ = v_reuseFailAlloc_1760_;
goto v_reusejp_1758_;
}
v_reusejp_1758_:
{
return v___x_1759_;
}
}
}
}
else
{
lean_object* v_a_1762_; lean_object* v___x_1764_; uint8_t v_isShared_1765_; uint8_t v_isSharedCheck_1769_; 
lean_del_object(v___x_1738_);
v_a_1762_ = lean_ctor_get(v___x_1744_, 0);
v_isSharedCheck_1769_ = !lean_is_exclusive(v___x_1744_);
if (v_isSharedCheck_1769_ == 0)
{
v___x_1764_ = v___x_1744_;
v_isShared_1765_ = v_isSharedCheck_1769_;
goto v_resetjp_1763_;
}
else
{
lean_inc(v_a_1762_);
lean_dec(v___x_1744_);
v___x_1764_ = lean_box(0);
v_isShared_1765_ = v_isSharedCheck_1769_;
goto v_resetjp_1763_;
}
v_resetjp_1763_:
{
lean_object* v___x_1767_; 
if (v_isShared_1765_ == 0)
{
v___x_1767_ = v___x_1764_;
goto v_reusejp_1766_;
}
else
{
lean_object* v_reuseFailAlloc_1768_; 
v_reuseFailAlloc_1768_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1768_, 0, v_a_1762_);
v___x_1767_ = v_reuseFailAlloc_1768_;
goto v_reusejp_1766_;
}
v_reusejp_1766_:
{
return v___x_1767_;
}
}
}
}
}
else
{
lean_object* v_vs_1771_; lean_object* v___x_1773_; uint8_t v_isShared_1774_; uint8_t v_isSharedCheck_1805_; 
v_vs_1771_ = lean_ctor_get(v_n_1722_, 0);
v_isSharedCheck_1805_ = !lean_is_exclusive(v_n_1722_);
if (v_isSharedCheck_1805_ == 0)
{
v___x_1773_ = v_n_1722_;
v_isShared_1774_ = v_isSharedCheck_1805_;
goto v_resetjp_1772_;
}
else
{
lean_inc(v_vs_1771_);
lean_dec(v_n_1722_);
v___x_1773_ = lean_box(0);
v_isShared_1774_ = v_isSharedCheck_1805_;
goto v_resetjp_1772_;
}
v_resetjp_1772_:
{
lean_object* v___x_1775_; lean_object* v___x_1776_; size_t v_sz_1777_; size_t v___x_1778_; lean_object* v___x_1779_; 
v___x_1775_ = lean_box(0);
v___x_1776_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1776_, 0, v___x_1775_);
lean_ctor_set(v___x_1776_, 1, v_b_1723_);
v_sz_1777_ = lean_array_size(v_vs_1771_);
v___x_1778_ = ((size_t)0ULL);
v___x_1779_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__3(v_vs_1771_, v_sz_1777_, v___x_1778_, v___x_1776_, v___y_1724_, v___y_1725_, v___y_1726_, v___y_1727_, v___y_1728_, v___y_1729_, v___y_1730_, v___y_1731_, v___y_1732_, v___y_1733_, v___y_1734_);
lean_dec_ref(v_vs_1771_);
if (lean_obj_tag(v___x_1779_) == 0)
{
lean_object* v_a_1780_; lean_object* v___x_1782_; uint8_t v_isShared_1783_; uint8_t v_isSharedCheck_1796_; 
v_a_1780_ = lean_ctor_get(v___x_1779_, 0);
v_isSharedCheck_1796_ = !lean_is_exclusive(v___x_1779_);
if (v_isSharedCheck_1796_ == 0)
{
v___x_1782_ = v___x_1779_;
v_isShared_1783_ = v_isSharedCheck_1796_;
goto v_resetjp_1781_;
}
else
{
lean_inc(v_a_1780_);
lean_dec(v___x_1779_);
v___x_1782_ = lean_box(0);
v_isShared_1783_ = v_isSharedCheck_1796_;
goto v_resetjp_1781_;
}
v_resetjp_1781_:
{
lean_object* v_fst_1784_; 
v_fst_1784_ = lean_ctor_get(v_a_1780_, 0);
if (lean_obj_tag(v_fst_1784_) == 0)
{
lean_object* v_snd_1785_; lean_object* v___x_1787_; 
v_snd_1785_ = lean_ctor_get(v_a_1780_, 1);
lean_inc(v_snd_1785_);
lean_dec(v_a_1780_);
if (v_isShared_1774_ == 0)
{
lean_ctor_set(v___x_1773_, 0, v_snd_1785_);
v___x_1787_ = v___x_1773_;
goto v_reusejp_1786_;
}
else
{
lean_object* v_reuseFailAlloc_1791_; 
v_reuseFailAlloc_1791_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1791_, 0, v_snd_1785_);
v___x_1787_ = v_reuseFailAlloc_1791_;
goto v_reusejp_1786_;
}
v_reusejp_1786_:
{
lean_object* v___x_1789_; 
if (v_isShared_1783_ == 0)
{
lean_ctor_set(v___x_1782_, 0, v___x_1787_);
v___x_1789_ = v___x_1782_;
goto v_reusejp_1788_;
}
else
{
lean_object* v_reuseFailAlloc_1790_; 
v_reuseFailAlloc_1790_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1790_, 0, v___x_1787_);
v___x_1789_ = v_reuseFailAlloc_1790_;
goto v_reusejp_1788_;
}
v_reusejp_1788_:
{
return v___x_1789_;
}
}
}
else
{
lean_object* v_val_1792_; lean_object* v___x_1794_; 
lean_inc_ref(v_fst_1784_);
lean_dec(v_a_1780_);
lean_del_object(v___x_1773_);
v_val_1792_ = lean_ctor_get(v_fst_1784_, 0);
lean_inc(v_val_1792_);
lean_dec_ref(v_fst_1784_);
if (v_isShared_1783_ == 0)
{
lean_ctor_set(v___x_1782_, 0, v_val_1792_);
v___x_1794_ = v___x_1782_;
goto v_reusejp_1793_;
}
else
{
lean_object* v_reuseFailAlloc_1795_; 
v_reuseFailAlloc_1795_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1795_, 0, v_val_1792_);
v___x_1794_ = v_reuseFailAlloc_1795_;
goto v_reusejp_1793_;
}
v_reusejp_1793_:
{
return v___x_1794_;
}
}
}
}
else
{
lean_object* v_a_1797_; lean_object* v___x_1799_; uint8_t v_isShared_1800_; uint8_t v_isSharedCheck_1804_; 
lean_del_object(v___x_1773_);
v_a_1797_ = lean_ctor_get(v___x_1779_, 0);
v_isSharedCheck_1804_ = !lean_is_exclusive(v___x_1779_);
if (v_isSharedCheck_1804_ == 0)
{
v___x_1799_ = v___x_1779_;
v_isShared_1800_ = v_isSharedCheck_1804_;
goto v_resetjp_1798_;
}
else
{
lean_inc(v_a_1797_);
lean_dec(v___x_1779_);
v___x_1799_ = lean_box(0);
v_isShared_1800_ = v_isSharedCheck_1804_;
goto v_resetjp_1798_;
}
v_resetjp_1798_:
{
lean_object* v___x_1802_; 
if (v_isShared_1800_ == 0)
{
v___x_1802_ = v___x_1799_;
goto v_reusejp_1801_;
}
else
{
lean_object* v_reuseFailAlloc_1803_; 
v_reuseFailAlloc_1803_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1803_, 0, v_a_1797_);
v___x_1802_ = v_reuseFailAlloc_1803_;
goto v_reusejp_1801_;
}
v_reusejp_1801_:
{
return v___x_1802_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__2(lean_object* v_inh_1806_, lean_object* v_as_1807_, size_t v_sz_1808_, size_t v_i_1809_, lean_object* v_b_1810_, lean_object* v___y_1811_, lean_object* v___y_1812_, lean_object* v___y_1813_, lean_object* v___y_1814_, lean_object* v___y_1815_, lean_object* v___y_1816_, lean_object* v___y_1817_, lean_object* v___y_1818_, lean_object* v___y_1819_, lean_object* v___y_1820_, lean_object* v___y_1821_){
_start:
{
uint8_t v___x_1823_; 
v___x_1823_ = lean_usize_dec_lt(v_i_1809_, v_sz_1808_);
if (v___x_1823_ == 0)
{
lean_object* v___x_1824_; 
v___x_1824_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1824_, 0, v_b_1810_);
return v___x_1824_;
}
else
{
lean_object* v_snd_1825_; lean_object* v___x_1827_; uint8_t v_isShared_1828_; uint8_t v_isSharedCheck_1859_; 
v_snd_1825_ = lean_ctor_get(v_b_1810_, 1);
v_isSharedCheck_1859_ = !lean_is_exclusive(v_b_1810_);
if (v_isSharedCheck_1859_ == 0)
{
lean_object* v_unused_1860_; 
v_unused_1860_ = lean_ctor_get(v_b_1810_, 0);
lean_dec(v_unused_1860_);
v___x_1827_ = v_b_1810_;
v_isShared_1828_ = v_isSharedCheck_1859_;
goto v_resetjp_1826_;
}
else
{
lean_inc(v_snd_1825_);
lean_dec(v_b_1810_);
v___x_1827_ = lean_box(0);
v_isShared_1828_ = v_isSharedCheck_1859_;
goto v_resetjp_1826_;
}
v_resetjp_1826_:
{
lean_object* v_a_1829_; lean_object* v___x_1830_; 
v_a_1829_ = lean_array_uget_borrowed(v_as_1807_, v_i_1809_);
lean_inc(v_snd_1825_);
lean_inc(v_a_1829_);
v___x_1830_ = l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1(v_inh_1806_, v_a_1829_, v_snd_1825_, v___y_1811_, v___y_1812_, v___y_1813_, v___y_1814_, v___y_1815_, v___y_1816_, v___y_1817_, v___y_1818_, v___y_1819_, v___y_1820_, v___y_1821_);
if (lean_obj_tag(v___x_1830_) == 0)
{
lean_object* v_a_1831_; lean_object* v___x_1833_; uint8_t v_isShared_1834_; uint8_t v_isSharedCheck_1850_; 
v_a_1831_ = lean_ctor_get(v___x_1830_, 0);
v_isSharedCheck_1850_ = !lean_is_exclusive(v___x_1830_);
if (v_isSharedCheck_1850_ == 0)
{
v___x_1833_ = v___x_1830_;
v_isShared_1834_ = v_isSharedCheck_1850_;
goto v_resetjp_1832_;
}
else
{
lean_inc(v_a_1831_);
lean_dec(v___x_1830_);
v___x_1833_ = lean_box(0);
v_isShared_1834_ = v_isSharedCheck_1850_;
goto v_resetjp_1832_;
}
v_resetjp_1832_:
{
if (lean_obj_tag(v_a_1831_) == 0)
{
lean_object* v___x_1835_; lean_object* v___x_1837_; 
v___x_1835_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_1835_, 0, v_a_1831_);
if (v_isShared_1828_ == 0)
{
lean_ctor_set(v___x_1827_, 0, v___x_1835_);
v___x_1837_ = v___x_1827_;
goto v_reusejp_1836_;
}
else
{
lean_object* v_reuseFailAlloc_1841_; 
v_reuseFailAlloc_1841_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_1841_, 0, v___x_1835_);
lean_ctor_set(v_reuseFailAlloc_1841_, 1, v_snd_1825_);
v___x_1837_ = v_reuseFailAlloc_1841_;
goto v_reusejp_1836_;
}
v_reusejp_1836_:
{
lean_object* v___x_1839_; 
if (v_isShared_1834_ == 0)
{
lean_ctor_set(v___x_1833_, 0, v___x_1837_);
v___x_1839_ = v___x_1833_;
goto v_reusejp_1838_;
}
else
{
lean_object* v_reuseFailAlloc_1840_; 
v_reuseFailAlloc_1840_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1840_, 0, v___x_1837_);
v___x_1839_ = v_reuseFailAlloc_1840_;
goto v_reusejp_1838_;
}
v_reusejp_1838_:
{
return v___x_1839_;
}
}
}
else
{
lean_object* v_a_1842_; lean_object* v___x_1843_; lean_object* v___x_1845_; 
lean_del_object(v___x_1833_);
lean_dec(v_snd_1825_);
v_a_1842_ = lean_ctor_get(v_a_1831_, 0);
lean_inc(v_a_1842_);
lean_dec_ref(v_a_1831_);
v___x_1843_ = lean_box(0);
if (v_isShared_1828_ == 0)
{
lean_ctor_set(v___x_1827_, 1, v_a_1842_);
lean_ctor_set(v___x_1827_, 0, v___x_1843_);
v___x_1845_ = v___x_1827_;
goto v_reusejp_1844_;
}
else
{
lean_object* v_reuseFailAlloc_1849_; 
v_reuseFailAlloc_1849_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_1849_, 0, v___x_1843_);
lean_ctor_set(v_reuseFailAlloc_1849_, 1, v_a_1842_);
v___x_1845_ = v_reuseFailAlloc_1849_;
goto v_reusejp_1844_;
}
v_reusejp_1844_:
{
size_t v___x_1846_; size_t v___x_1847_; 
v___x_1846_ = ((size_t)1ULL);
v___x_1847_ = lean_usize_add(v_i_1809_, v___x_1846_);
v_i_1809_ = v___x_1847_;
v_b_1810_ = v___x_1845_;
goto _start;
}
}
}
}
else
{
lean_object* v_a_1851_; lean_object* v___x_1853_; uint8_t v_isShared_1854_; uint8_t v_isSharedCheck_1858_; 
lean_del_object(v___x_1827_);
lean_dec(v_snd_1825_);
v_a_1851_ = lean_ctor_get(v___x_1830_, 0);
v_isSharedCheck_1858_ = !lean_is_exclusive(v___x_1830_);
if (v_isSharedCheck_1858_ == 0)
{
v___x_1853_ = v___x_1830_;
v_isShared_1854_ = v_isSharedCheck_1858_;
goto v_resetjp_1852_;
}
else
{
lean_inc(v_a_1851_);
lean_dec(v___x_1830_);
v___x_1853_ = lean_box(0);
v_isShared_1854_ = v_isSharedCheck_1858_;
goto v_resetjp_1852_;
}
v_resetjp_1852_:
{
lean_object* v___x_1856_; 
if (v_isShared_1854_ == 0)
{
v___x_1856_ = v___x_1853_;
goto v_reusejp_1855_;
}
else
{
lean_object* v_reuseFailAlloc_1857_; 
v_reuseFailAlloc_1857_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1857_, 0, v_a_1851_);
v___x_1856_ = v_reuseFailAlloc_1857_;
goto v_reusejp_1855_;
}
v_reusejp_1855_:
{
return v___x_1856_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__2___boxed(lean_object** _args){
lean_object* v_inh_1861_ = _args[0];
lean_object* v_as_1862_ = _args[1];
lean_object* v_sz_1863_ = _args[2];
lean_object* v_i_1864_ = _args[3];
lean_object* v_b_1865_ = _args[4];
lean_object* v___y_1866_ = _args[5];
lean_object* v___y_1867_ = _args[6];
lean_object* v___y_1868_ = _args[7];
lean_object* v___y_1869_ = _args[8];
lean_object* v___y_1870_ = _args[9];
lean_object* v___y_1871_ = _args[10];
lean_object* v___y_1872_ = _args[11];
lean_object* v___y_1873_ = _args[12];
lean_object* v___y_1874_ = _args[13];
lean_object* v___y_1875_ = _args[14];
lean_object* v___y_1876_ = _args[15];
lean_object* v___y_1877_ = _args[16];
_start:
{
size_t v_sz_boxed_1878_; size_t v_i_boxed_1879_; lean_object* v_res_1880_; 
v_sz_boxed_1878_ = lean_unbox_usize(v_sz_1863_);
lean_dec(v_sz_1863_);
v_i_boxed_1879_ = lean_unbox_usize(v_i_1864_);
lean_dec(v_i_1864_);
v_res_1880_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1_spec__2(v_inh_1861_, v_as_1862_, v_sz_boxed_1878_, v_i_boxed_1879_, v_b_1865_, v___y_1866_, v___y_1867_, v___y_1868_, v___y_1869_, v___y_1870_, v___y_1871_, v___y_1872_, v___y_1873_, v___y_1874_, v___y_1875_, v___y_1876_);
lean_dec(v___y_1876_);
lean_dec_ref(v___y_1875_);
lean_dec(v___y_1874_);
lean_dec_ref(v___y_1873_);
lean_dec(v___y_1872_);
lean_dec_ref(v___y_1871_);
lean_dec(v___y_1870_);
lean_dec_ref(v___y_1869_);
lean_dec(v___y_1868_);
lean_dec(v___y_1867_);
lean_dec(v___y_1866_);
lean_dec_ref(v_as_1862_);
lean_dec(v_inh_1861_);
return v_res_1880_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1___boxed(lean_object* v_inh_1881_, lean_object* v_n_1882_, lean_object* v_b_1883_, lean_object* v___y_1884_, lean_object* v___y_1885_, lean_object* v___y_1886_, lean_object* v___y_1887_, lean_object* v___y_1888_, lean_object* v___y_1889_, lean_object* v___y_1890_, lean_object* v___y_1891_, lean_object* v___y_1892_, lean_object* v___y_1893_, lean_object* v___y_1894_, lean_object* v___y_1895_){
_start:
{
lean_object* v_res_1896_; 
v_res_1896_ = l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1(v_inh_1881_, v_n_1882_, v_b_1883_, v___y_1884_, v___y_1885_, v___y_1886_, v___y_1887_, v___y_1888_, v___y_1889_, v___y_1890_, v___y_1891_, v___y_1892_, v___y_1893_, v___y_1894_);
lean_dec(v___y_1894_);
lean_dec_ref(v___y_1893_);
lean_dec(v___y_1892_);
lean_dec_ref(v___y_1891_);
lean_dec(v___y_1890_);
lean_dec_ref(v___y_1889_);
lean_dec(v___y_1888_);
lean_dec_ref(v___y_1887_);
lean_dec(v___y_1886_);
lean_dec(v___y_1885_);
lean_dec(v___y_1884_);
lean_dec(v_inh_1881_);
return v_res_1896_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1(lean_object* v_t_1897_, lean_object* v_init_1898_, lean_object* v___y_1899_, lean_object* v___y_1900_, lean_object* v___y_1901_, lean_object* v___y_1902_, lean_object* v___y_1903_, lean_object* v___y_1904_, lean_object* v___y_1905_, lean_object* v___y_1906_, lean_object* v___y_1907_, lean_object* v___y_1908_, lean_object* v___y_1909_){
_start:
{
lean_object* v_root_1911_; lean_object* v_tail_1912_; lean_object* v___x_1913_; 
v_root_1911_ = lean_ctor_get(v_t_1897_, 0);
lean_inc_ref(v_root_1911_);
v_tail_1912_ = lean_ctor_get(v_t_1897_, 1);
lean_inc_ref(v_tail_1912_);
lean_dec_ref(v_t_1897_);
lean_inc(v_init_1898_);
v___x_1913_ = l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__1(v_init_1898_, v_root_1911_, v_init_1898_, v___y_1899_, v___y_1900_, v___y_1901_, v___y_1902_, v___y_1903_, v___y_1904_, v___y_1905_, v___y_1906_, v___y_1907_, v___y_1908_, v___y_1909_);
lean_dec(v_init_1898_);
if (lean_obj_tag(v___x_1913_) == 0)
{
lean_object* v_a_1914_; lean_object* v___x_1916_; uint8_t v_isShared_1917_; uint8_t v_isSharedCheck_1950_; 
v_a_1914_ = lean_ctor_get(v___x_1913_, 0);
v_isSharedCheck_1950_ = !lean_is_exclusive(v___x_1913_);
if (v_isSharedCheck_1950_ == 0)
{
v___x_1916_ = v___x_1913_;
v_isShared_1917_ = v_isSharedCheck_1950_;
goto v_resetjp_1915_;
}
else
{
lean_inc(v_a_1914_);
lean_dec(v___x_1913_);
v___x_1916_ = lean_box(0);
v_isShared_1917_ = v_isSharedCheck_1950_;
goto v_resetjp_1915_;
}
v_resetjp_1915_:
{
if (lean_obj_tag(v_a_1914_) == 0)
{
lean_object* v_a_1918_; lean_object* v___x_1920_; 
lean_dec_ref(v_tail_1912_);
v_a_1918_ = lean_ctor_get(v_a_1914_, 0);
lean_inc(v_a_1918_);
lean_dec_ref(v_a_1914_);
if (v_isShared_1917_ == 0)
{
lean_ctor_set(v___x_1916_, 0, v_a_1918_);
v___x_1920_ = v___x_1916_;
goto v_reusejp_1919_;
}
else
{
lean_object* v_reuseFailAlloc_1921_; 
v_reuseFailAlloc_1921_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1921_, 0, v_a_1918_);
v___x_1920_ = v_reuseFailAlloc_1921_;
goto v_reusejp_1919_;
}
v_reusejp_1919_:
{
return v___x_1920_;
}
}
else
{
lean_object* v_a_1922_; lean_object* v___x_1923_; lean_object* v___x_1924_; size_t v_sz_1925_; size_t v___x_1926_; lean_object* v___x_1927_; 
lean_del_object(v___x_1916_);
v_a_1922_ = lean_ctor_get(v_a_1914_, 0);
lean_inc(v_a_1922_);
lean_dec_ref(v_a_1914_);
v___x_1923_ = lean_box(0);
v___x_1924_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_1924_, 0, v___x_1923_);
lean_ctor_set(v___x_1924_, 1, v_a_1922_);
v_sz_1925_ = lean_array_size(v_tail_1912_);
v___x_1926_ = ((size_t)0ULL);
v___x_1927_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1_spec__2(v_tail_1912_, v_sz_1925_, v___x_1926_, v___x_1924_, v___y_1899_, v___y_1900_, v___y_1901_, v___y_1902_, v___y_1903_, v___y_1904_, v___y_1905_, v___y_1906_, v___y_1907_, v___y_1908_, v___y_1909_);
lean_dec_ref(v_tail_1912_);
if (lean_obj_tag(v___x_1927_) == 0)
{
lean_object* v_a_1928_; lean_object* v___x_1930_; uint8_t v_isShared_1931_; uint8_t v_isSharedCheck_1941_; 
v_a_1928_ = lean_ctor_get(v___x_1927_, 0);
v_isSharedCheck_1941_ = !lean_is_exclusive(v___x_1927_);
if (v_isSharedCheck_1941_ == 0)
{
v___x_1930_ = v___x_1927_;
v_isShared_1931_ = v_isSharedCheck_1941_;
goto v_resetjp_1929_;
}
else
{
lean_inc(v_a_1928_);
lean_dec(v___x_1927_);
v___x_1930_ = lean_box(0);
v_isShared_1931_ = v_isSharedCheck_1941_;
goto v_resetjp_1929_;
}
v_resetjp_1929_:
{
lean_object* v_fst_1932_; 
v_fst_1932_ = lean_ctor_get(v_a_1928_, 0);
if (lean_obj_tag(v_fst_1932_) == 0)
{
lean_object* v_snd_1933_; lean_object* v___x_1935_; 
v_snd_1933_ = lean_ctor_get(v_a_1928_, 1);
lean_inc(v_snd_1933_);
lean_dec(v_a_1928_);
if (v_isShared_1931_ == 0)
{
lean_ctor_set(v___x_1930_, 0, v_snd_1933_);
v___x_1935_ = v___x_1930_;
goto v_reusejp_1934_;
}
else
{
lean_object* v_reuseFailAlloc_1936_; 
v_reuseFailAlloc_1936_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1936_, 0, v_snd_1933_);
v___x_1935_ = v_reuseFailAlloc_1936_;
goto v_reusejp_1934_;
}
v_reusejp_1934_:
{
return v___x_1935_;
}
}
else
{
lean_object* v_val_1937_; lean_object* v___x_1939_; 
lean_inc_ref(v_fst_1932_);
lean_dec(v_a_1928_);
v_val_1937_ = lean_ctor_get(v_fst_1932_, 0);
lean_inc(v_val_1937_);
lean_dec_ref(v_fst_1932_);
if (v_isShared_1931_ == 0)
{
lean_ctor_set(v___x_1930_, 0, v_val_1937_);
v___x_1939_ = v___x_1930_;
goto v_reusejp_1938_;
}
else
{
lean_object* v_reuseFailAlloc_1940_; 
v_reuseFailAlloc_1940_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1940_, 0, v_val_1937_);
v___x_1939_ = v_reuseFailAlloc_1940_;
goto v_reusejp_1938_;
}
v_reusejp_1938_:
{
return v___x_1939_;
}
}
}
}
else
{
lean_object* v_a_1942_; lean_object* v___x_1944_; uint8_t v_isShared_1945_; uint8_t v_isSharedCheck_1949_; 
v_a_1942_ = lean_ctor_get(v___x_1927_, 0);
v_isSharedCheck_1949_ = !lean_is_exclusive(v___x_1927_);
if (v_isSharedCheck_1949_ == 0)
{
v___x_1944_ = v___x_1927_;
v_isShared_1945_ = v_isSharedCheck_1949_;
goto v_resetjp_1943_;
}
else
{
lean_inc(v_a_1942_);
lean_dec(v___x_1927_);
v___x_1944_ = lean_box(0);
v_isShared_1945_ = v_isSharedCheck_1949_;
goto v_resetjp_1943_;
}
v_resetjp_1943_:
{
lean_object* v___x_1947_; 
if (v_isShared_1945_ == 0)
{
v___x_1947_ = v___x_1944_;
goto v_reusejp_1946_;
}
else
{
lean_object* v_reuseFailAlloc_1948_; 
v_reuseFailAlloc_1948_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1948_, 0, v_a_1942_);
v___x_1947_ = v_reuseFailAlloc_1948_;
goto v_reusejp_1946_;
}
v_reusejp_1946_:
{
return v___x_1947_;
}
}
}
}
}
}
else
{
lean_object* v_a_1951_; lean_object* v___x_1953_; uint8_t v_isShared_1954_; uint8_t v_isSharedCheck_1958_; 
lean_dec_ref(v_tail_1912_);
v_a_1951_ = lean_ctor_get(v___x_1913_, 0);
v_isSharedCheck_1958_ = !lean_is_exclusive(v___x_1913_);
if (v_isSharedCheck_1958_ == 0)
{
v___x_1953_ = v___x_1913_;
v_isShared_1954_ = v_isSharedCheck_1958_;
goto v_resetjp_1952_;
}
else
{
lean_inc(v_a_1951_);
lean_dec(v___x_1913_);
v___x_1953_ = lean_box(0);
v_isShared_1954_ = v_isSharedCheck_1958_;
goto v_resetjp_1952_;
}
v_resetjp_1952_:
{
lean_object* v___x_1956_; 
if (v_isShared_1954_ == 0)
{
v___x_1956_ = v___x_1953_;
goto v_reusejp_1955_;
}
else
{
lean_object* v_reuseFailAlloc_1957_; 
v_reuseFailAlloc_1957_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1957_, 0, v_a_1951_);
v___x_1956_ = v_reuseFailAlloc_1957_;
goto v_reusejp_1955_;
}
v_reusejp_1955_:
{
return v___x_1956_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1___boxed(lean_object* v_t_1959_, lean_object* v_init_1960_, lean_object* v___y_1961_, lean_object* v___y_1962_, lean_object* v___y_1963_, lean_object* v___y_1964_, lean_object* v___y_1965_, lean_object* v___y_1966_, lean_object* v___y_1967_, lean_object* v___y_1968_, lean_object* v___y_1969_, lean_object* v___y_1970_, lean_object* v___y_1971_, lean_object* v___y_1972_){
_start:
{
lean_object* v_res_1973_; 
v_res_1973_ = l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1(v_t_1959_, v_init_1960_, v___y_1961_, v___y_1962_, v___y_1963_, v___y_1964_, v___y_1965_, v___y_1966_, v___y_1967_, v___y_1968_, v___y_1969_, v___y_1970_, v___y_1971_);
lean_dec(v___y_1971_);
lean_dec_ref(v___y_1970_);
lean_dec(v___y_1969_);
lean_dec_ref(v___y_1968_);
lean_dec(v___y_1967_);
lean_dec_ref(v___y_1966_);
lean_dec(v___y_1965_);
lean_dec_ref(v___y_1964_);
lean_dec(v___y_1963_);
lean_dec(v___y_1962_);
lean_dec(v___y_1961_);
return v_res_1973_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0(void){
_start:
{
lean_object* v___x_1974_; 
v___x_1974_ = l_Lean_instInhabitedPersistentArray_default(lean_box(0));
return v___x_1974_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f(lean_object* v_x_1975_, lean_object* v_a_1976_, lean_object* v_a_1977_, lean_object* v_a_1978_, lean_object* v_a_1979_, lean_object* v_a_1980_, lean_object* v_a_1981_, lean_object* v_a_1982_, lean_object* v_a_1983_, lean_object* v_a_1984_, lean_object* v_a_1985_, lean_object* v_a_1986_){
_start:
{
lean_object* v___x_1988_; 
v___x_1988_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v_a_1976_, v_a_1977_, v_a_1978_, v_a_1979_, v_a_1980_, v_a_1981_, v_a_1982_, v_a_1983_, v_a_1984_, v_a_1985_, v_a_1986_);
if (lean_obj_tag(v___x_1988_) == 0)
{
lean_object* v_a_1989_; lean_object* v_lowers_1990_; lean_object* v_size_1991_; lean_object* v___x_1992_; lean_object* v___x_1993_; uint8_t v___x_1994_; 
v_a_1989_ = lean_ctor_get(v___x_1988_, 0);
lean_inc(v_a_1989_);
lean_dec_ref(v___x_1988_);
v_lowers_1990_ = lean_ctor_get(v_a_1989_, 32);
lean_inc_ref(v_lowers_1990_);
lean_dec(v_a_1989_);
v_size_1991_ = lean_ctor_get(v_lowers_1990_, 2);
v___x_1992_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0, &l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0);
v___x_1993_ = lean_box(0);
v___x_1994_ = lean_nat_dec_lt(v_x_1975_, v_size_1991_);
if (v___x_1994_ == 0)
{
lean_object* v___x_1995_; lean_object* v___x_1996_; 
lean_dec_ref(v_lowers_1990_);
v___x_1995_ = l_outOfBounds___redArg(v___x_1992_);
v___x_1996_ = l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1(v___x_1995_, v___x_1993_, v_a_1976_, v_a_1977_, v_a_1978_, v_a_1979_, v_a_1980_, v_a_1981_, v_a_1982_, v_a_1983_, v_a_1984_, v_a_1985_, v_a_1986_);
return v___x_1996_;
}
else
{
lean_object* v___x_1997_; lean_object* v___x_1998_; 
v___x_1997_ = l_Lean_PersistentArray_get_x21___redArg(v___x_1992_, v_lowers_1990_, v_x_1975_);
v___x_1998_ = l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestLower_x3f_spec__1(v___x_1997_, v___x_1993_, v_a_1976_, v_a_1977_, v_a_1978_, v_a_1979_, v_a_1980_, v_a_1981_, v_a_1982_, v_a_1983_, v_a_1984_, v_a_1985_, v_a_1986_);
return v___x_1998_;
}
}
else
{
lean_object* v_a_1999_; lean_object* v___x_2001_; uint8_t v_isShared_2002_; uint8_t v_isSharedCheck_2006_; 
v_a_1999_ = lean_ctor_get(v___x_1988_, 0);
v_isSharedCheck_2006_ = !lean_is_exclusive(v___x_1988_);
if (v_isSharedCheck_2006_ == 0)
{
v___x_2001_ = v___x_1988_;
v_isShared_2002_ = v_isSharedCheck_2006_;
goto v_resetjp_2000_;
}
else
{
lean_inc(v_a_1999_);
lean_dec(v___x_1988_);
v___x_2001_ = lean_box(0);
v_isShared_2002_ = v_isSharedCheck_2006_;
goto v_resetjp_2000_;
}
v_resetjp_2000_:
{
lean_object* v___x_2004_; 
if (v_isShared_2002_ == 0)
{
v___x_2004_ = v___x_2001_;
goto v_reusejp_2003_;
}
else
{
lean_object* v_reuseFailAlloc_2005_; 
v_reuseFailAlloc_2005_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2005_, 0, v_a_1999_);
v___x_2004_ = v_reuseFailAlloc_2005_;
goto v_reusejp_2003_;
}
v_reusejp_2003_:
{
return v___x_2004_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___boxed(lean_object* v_x_2007_, lean_object* v_a_2008_, lean_object* v_a_2009_, lean_object* v_a_2010_, lean_object* v_a_2011_, lean_object* v_a_2012_, lean_object* v_a_2013_, lean_object* v_a_2014_, lean_object* v_a_2015_, lean_object* v_a_2016_, lean_object* v_a_2017_, lean_object* v_a_2018_, lean_object* v_a_2019_){
_start:
{
lean_object* v_res_2020_; 
v_res_2020_ = l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f(v_x_2007_, v_a_2008_, v_a_2009_, v_a_2010_, v_a_2011_, v_a_2012_, v_a_2013_, v_a_2014_, v_a_2015_, v_a_2016_, v_a_2017_, v_a_2018_);
lean_dec(v_a_2018_);
lean_dec_ref(v_a_2017_);
lean_dec(v_a_2016_);
lean_dec_ref(v_a_2015_);
lean_dec(v_a_2014_);
lean_dec_ref(v_a_2013_);
lean_dec(v_a_2012_);
lean_dec_ref(v_a_2011_);
lean_dec(v_a_2010_);
lean_dec(v_a_2009_);
lean_dec(v_a_2008_);
lean_dec(v_x_2007_);
return v_res_2020_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2_spec__3(lean_object* v_as_2021_, size_t v_sz_2022_, size_t v_i_2023_, lean_object* v_b_2024_, lean_object* v___y_2025_, lean_object* v___y_2026_, lean_object* v___y_2027_, lean_object* v___y_2028_, lean_object* v___y_2029_, lean_object* v___y_2030_, lean_object* v___y_2031_, lean_object* v___y_2032_, lean_object* v___y_2033_, lean_object* v___y_2034_, lean_object* v___y_2035_){
_start:
{
uint8_t v___x_2037_; 
v___x_2037_ = lean_usize_dec_lt(v_i_2023_, v_sz_2022_);
if (v___x_2037_ == 0)
{
lean_object* v___x_2038_; 
v___x_2038_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2038_, 0, v_b_2024_);
return v___x_2038_;
}
else
{
lean_object* v_snd_2039_; lean_object* v___x_2041_; uint8_t v_isShared_2042_; uint8_t v_isSharedCheck_2110_; 
v_snd_2039_ = lean_ctor_get(v_b_2024_, 1);
v_isSharedCheck_2110_ = !lean_is_exclusive(v_b_2024_);
if (v_isSharedCheck_2110_ == 0)
{
lean_object* v_unused_2111_; 
v_unused_2111_ = lean_ctor_get(v_b_2024_, 0);
lean_dec(v_unused_2111_);
v___x_2041_ = v_b_2024_;
v_isShared_2042_ = v_isSharedCheck_2110_;
goto v_resetjp_2040_;
}
else
{
lean_inc(v_snd_2039_);
lean_dec(v_b_2024_);
v___x_2041_ = lean_box(0);
v_isShared_2042_ = v_isSharedCheck_2110_;
goto v_resetjp_2040_;
}
v_resetjp_2040_:
{
lean_object* v_a_2043_; lean_object* v_p_2044_; uint8_t v_strict_2045_; lean_object* v___x_2046_; lean_object* v_a_2048_; 
v_a_2043_ = lean_array_uget_borrowed(v_as_2021_, v_i_2023_);
v_p_2044_ = lean_ctor_get(v_a_2043_, 0);
v_strict_2045_ = lean_ctor_get_uint8(v_a_2043_, sizeof(void*)*2);
v___x_2046_ = lean_box(0);
if (lean_obj_tag(v_p_2044_) == 1)
{
lean_object* v_k_2055_; lean_object* v_p_2056_; lean_object* v___x_2057_; 
v_k_2055_ = lean_ctor_get(v_p_2044_, 0);
v_p_2056_ = lean_ctor_get(v_p_2044_, 2);
lean_inc(v_p_2056_);
v___x_2057_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_2056_, v___y_2025_, v___y_2026_, v___y_2027_, v___y_2028_, v___y_2029_, v___y_2030_, v___y_2031_, v___y_2032_, v___y_2033_, v___y_2034_, v___y_2035_);
if (lean_obj_tag(v___x_2057_) == 0)
{
lean_object* v_a_2058_; 
v_a_2058_ = lean_ctor_get(v___x_2057_, 0);
lean_inc(v_a_2058_);
lean_dec_ref(v___x_2057_);
if (lean_obj_tag(v_a_2058_) == 1)
{
lean_object* v_val_2059_; lean_object* v___x_2061_; uint8_t v_isShared_2062_; uint8_t v_isSharedCheck_2083_; 
v_val_2059_ = lean_ctor_get(v_a_2058_, 0);
v_isSharedCheck_2083_ = !lean_is_exclusive(v_a_2058_);
if (v_isSharedCheck_2083_ == 0)
{
v___x_2061_ = v_a_2058_;
v_isShared_2062_ = v_isSharedCheck_2083_;
goto v_resetjp_2060_;
}
else
{
lean_inc(v_val_2059_);
lean_dec(v_a_2058_);
v___x_2061_ = lean_box(0);
v_isShared_2062_ = v_isSharedCheck_2083_;
goto v_resetjp_2060_;
}
v_resetjp_2060_:
{
lean_object* v___x_2063_; lean_object* v___x_2064_; lean_object* v___x_2065_; uint8_t v___y_2072_; 
v___x_2063_ = l_Rat_neg(v_val_2059_);
lean_inc(v_k_2055_);
v___x_2064_ = l_Rat_ofInt(v_k_2055_);
v___x_2065_ = l_Rat_div(v___x_2063_, v___x_2064_);
lean_dec_ref(v___x_2063_);
if (lean_obj_tag(v_snd_2039_) == 1)
{
lean_object* v_val_2073_; lean_object* v_fst_2074_; lean_object* v_snd_2075_; uint8_t v___x_2076_; uint8_t v___y_2078_; 
v_val_2073_ = lean_ctor_get(v_snd_2039_, 0);
v_fst_2074_ = lean_ctor_get(v_val_2073_, 0);
v_snd_2075_ = lean_ctor_get(v_val_2073_, 1);
lean_inc(v_fst_2074_);
lean_inc_ref(v___x_2065_);
v___x_2076_ = l_Rat_blt(v___x_2065_, v_fst_2074_);
if (v___x_2076_ == 0)
{
uint8_t v___x_2080_; 
v___x_2080_ = l_instDecidableEqRat_decEq(v___x_2065_, v_fst_2074_);
if (v___x_2080_ == 0)
{
v___y_2078_ = v___x_2080_;
goto v___jp_2077_;
}
else
{
v___y_2078_ = v_strict_2045_;
goto v___jp_2077_;
}
}
else
{
v___y_2072_ = v___x_2076_;
goto v___jp_2071_;
}
v___jp_2077_:
{
if (v___y_2078_ == 0)
{
lean_dec_ref(v___x_2065_);
lean_del_object(v___x_2061_);
v_a_2048_ = v_snd_2039_;
goto v___jp_2047_;
}
else
{
uint8_t v_strict_2079_; 
v_strict_2079_ = lean_ctor_get_uint8(v_snd_2075_, sizeof(void*)*2);
if (v_strict_2079_ == 0)
{
lean_dec_ref(v_snd_2039_);
goto v___jp_2066_;
}
else
{
v___y_2072_ = v___x_2076_;
goto v___jp_2071_;
}
}
}
}
else
{
lean_object* v___x_2081_; lean_object* v___x_2082_; 
lean_del_object(v___x_2061_);
lean_dec(v_snd_2039_);
lean_inc(v_a_2043_);
v___x_2081_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2081_, 0, v___x_2065_);
lean_ctor_set(v___x_2081_, 1, v_a_2043_);
v___x_2082_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2082_, 0, v___x_2081_);
v_a_2048_ = v___x_2082_;
goto v___jp_2047_;
}
v___jp_2066_:
{
lean_object* v___x_2067_; lean_object* v___x_2069_; 
lean_inc(v_a_2043_);
v___x_2067_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2067_, 0, v___x_2065_);
lean_ctor_set(v___x_2067_, 1, v_a_2043_);
if (v_isShared_2062_ == 0)
{
lean_ctor_set(v___x_2061_, 0, v___x_2067_);
v___x_2069_ = v___x_2061_;
goto v_reusejp_2068_;
}
else
{
lean_object* v_reuseFailAlloc_2070_; 
v_reuseFailAlloc_2070_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2070_, 0, v___x_2067_);
v___x_2069_ = v_reuseFailAlloc_2070_;
goto v_reusejp_2068_;
}
v_reusejp_2068_:
{
v_a_2048_ = v___x_2069_;
goto v___jp_2047_;
}
}
v___jp_2071_:
{
if (v___y_2072_ == 0)
{
lean_dec_ref(v___x_2065_);
lean_del_object(v___x_2061_);
v_a_2048_ = v_snd_2039_;
goto v___jp_2047_;
}
else
{
lean_dec(v_snd_2039_);
goto v___jp_2066_;
}
}
}
}
else
{
lean_object* v___x_2084_; 
lean_dec(v_a_2058_);
v___x_2084_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_2043_, v___y_2025_, v___y_2026_, v___y_2027_, v___y_2028_, v___y_2029_, v___y_2030_, v___y_2031_, v___y_2032_, v___y_2033_, v___y_2034_, v___y_2035_);
if (lean_obj_tag(v___x_2084_) == 0)
{
lean_dec_ref(v___x_2084_);
v_a_2048_ = v_snd_2039_;
goto v___jp_2047_;
}
else
{
lean_object* v_a_2085_; lean_object* v___x_2087_; uint8_t v_isShared_2088_; uint8_t v_isSharedCheck_2092_; 
lean_del_object(v___x_2041_);
lean_dec(v_snd_2039_);
v_a_2085_ = lean_ctor_get(v___x_2084_, 0);
v_isSharedCheck_2092_ = !lean_is_exclusive(v___x_2084_);
if (v_isSharedCheck_2092_ == 0)
{
v___x_2087_ = v___x_2084_;
v_isShared_2088_ = v_isSharedCheck_2092_;
goto v_resetjp_2086_;
}
else
{
lean_inc(v_a_2085_);
lean_dec(v___x_2084_);
v___x_2087_ = lean_box(0);
v_isShared_2088_ = v_isSharedCheck_2092_;
goto v_resetjp_2086_;
}
v_resetjp_2086_:
{
lean_object* v___x_2090_; 
if (v_isShared_2088_ == 0)
{
v___x_2090_ = v___x_2087_;
goto v_reusejp_2089_;
}
else
{
lean_object* v_reuseFailAlloc_2091_; 
v_reuseFailAlloc_2091_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2091_, 0, v_a_2085_);
v___x_2090_ = v_reuseFailAlloc_2091_;
goto v_reusejp_2089_;
}
v_reusejp_2089_:
{
return v___x_2090_;
}
}
}
}
}
else
{
lean_object* v_a_2093_; lean_object* v___x_2095_; uint8_t v_isShared_2096_; uint8_t v_isSharedCheck_2100_; 
lean_del_object(v___x_2041_);
lean_dec(v_snd_2039_);
v_a_2093_ = lean_ctor_get(v___x_2057_, 0);
v_isSharedCheck_2100_ = !lean_is_exclusive(v___x_2057_);
if (v_isSharedCheck_2100_ == 0)
{
v___x_2095_ = v___x_2057_;
v_isShared_2096_ = v_isSharedCheck_2100_;
goto v_resetjp_2094_;
}
else
{
lean_inc(v_a_2093_);
lean_dec(v___x_2057_);
v___x_2095_ = lean_box(0);
v_isShared_2096_ = v_isSharedCheck_2100_;
goto v_resetjp_2094_;
}
v_resetjp_2094_:
{
lean_object* v___x_2098_; 
if (v_isShared_2096_ == 0)
{
v___x_2098_ = v___x_2095_;
goto v_reusejp_2097_;
}
else
{
lean_object* v_reuseFailAlloc_2099_; 
v_reuseFailAlloc_2099_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2099_, 0, v_a_2093_);
v___x_2098_ = v_reuseFailAlloc_2099_;
goto v_reusejp_2097_;
}
v_reusejp_2097_:
{
return v___x_2098_;
}
}
}
}
else
{
lean_object* v___x_2101_; 
v___x_2101_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_2043_, v___y_2025_, v___y_2026_, v___y_2027_, v___y_2028_, v___y_2029_, v___y_2030_, v___y_2031_, v___y_2032_, v___y_2033_, v___y_2034_, v___y_2035_);
if (lean_obj_tag(v___x_2101_) == 0)
{
lean_dec_ref(v___x_2101_);
v_a_2048_ = v_snd_2039_;
goto v___jp_2047_;
}
else
{
lean_object* v_a_2102_; lean_object* v___x_2104_; uint8_t v_isShared_2105_; uint8_t v_isSharedCheck_2109_; 
lean_del_object(v___x_2041_);
lean_dec(v_snd_2039_);
v_a_2102_ = lean_ctor_get(v___x_2101_, 0);
v_isSharedCheck_2109_ = !lean_is_exclusive(v___x_2101_);
if (v_isSharedCheck_2109_ == 0)
{
v___x_2104_ = v___x_2101_;
v_isShared_2105_ = v_isSharedCheck_2109_;
goto v_resetjp_2103_;
}
else
{
lean_inc(v_a_2102_);
lean_dec(v___x_2101_);
v___x_2104_ = lean_box(0);
v_isShared_2105_ = v_isSharedCheck_2109_;
goto v_resetjp_2103_;
}
v_resetjp_2103_:
{
lean_object* v___x_2107_; 
if (v_isShared_2105_ == 0)
{
v___x_2107_ = v___x_2104_;
goto v_reusejp_2106_;
}
else
{
lean_object* v_reuseFailAlloc_2108_; 
v_reuseFailAlloc_2108_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2108_, 0, v_a_2102_);
v___x_2107_ = v_reuseFailAlloc_2108_;
goto v_reusejp_2106_;
}
v_reusejp_2106_:
{
return v___x_2107_;
}
}
}
}
v___jp_2047_:
{
lean_object* v___x_2050_; 
if (v_isShared_2042_ == 0)
{
lean_ctor_set(v___x_2041_, 1, v_a_2048_);
lean_ctor_set(v___x_2041_, 0, v___x_2046_);
v___x_2050_ = v___x_2041_;
goto v_reusejp_2049_;
}
else
{
lean_object* v_reuseFailAlloc_2054_; 
v_reuseFailAlloc_2054_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_2054_, 0, v___x_2046_);
lean_ctor_set(v_reuseFailAlloc_2054_, 1, v_a_2048_);
v___x_2050_ = v_reuseFailAlloc_2054_;
goto v_reusejp_2049_;
}
v_reusejp_2049_:
{
size_t v___x_2051_; size_t v___x_2052_; 
v___x_2051_ = ((size_t)1ULL);
v___x_2052_ = lean_usize_add(v_i_2023_, v___x_2051_);
v_i_2023_ = v___x_2052_;
v_b_2024_ = v___x_2050_;
goto _start;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2_spec__3___boxed(lean_object* v_as_2112_, lean_object* v_sz_2113_, lean_object* v_i_2114_, lean_object* v_b_2115_, lean_object* v___y_2116_, lean_object* v___y_2117_, lean_object* v___y_2118_, lean_object* v___y_2119_, lean_object* v___y_2120_, lean_object* v___y_2121_, lean_object* v___y_2122_, lean_object* v___y_2123_, lean_object* v___y_2124_, lean_object* v___y_2125_, lean_object* v___y_2126_, lean_object* v___y_2127_){
_start:
{
size_t v_sz_boxed_2128_; size_t v_i_boxed_2129_; lean_object* v_res_2130_; 
v_sz_boxed_2128_ = lean_unbox_usize(v_sz_2113_);
lean_dec(v_sz_2113_);
v_i_boxed_2129_ = lean_unbox_usize(v_i_2114_);
lean_dec(v_i_2114_);
v_res_2130_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2_spec__3(v_as_2112_, v_sz_boxed_2128_, v_i_boxed_2129_, v_b_2115_, v___y_2116_, v___y_2117_, v___y_2118_, v___y_2119_, v___y_2120_, v___y_2121_, v___y_2122_, v___y_2123_, v___y_2124_, v___y_2125_, v___y_2126_);
lean_dec(v___y_2126_);
lean_dec_ref(v___y_2125_);
lean_dec(v___y_2124_);
lean_dec_ref(v___y_2123_);
lean_dec(v___y_2122_);
lean_dec_ref(v___y_2121_);
lean_dec(v___y_2120_);
lean_dec_ref(v___y_2119_);
lean_dec(v___y_2118_);
lean_dec(v___y_2117_);
lean_dec(v___y_2116_);
lean_dec_ref(v_as_2112_);
return v_res_2130_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2(lean_object* v_as_2131_, size_t v_sz_2132_, size_t v_i_2133_, lean_object* v_b_2134_, lean_object* v___y_2135_, lean_object* v___y_2136_, lean_object* v___y_2137_, lean_object* v___y_2138_, lean_object* v___y_2139_, lean_object* v___y_2140_, lean_object* v___y_2141_, lean_object* v___y_2142_, lean_object* v___y_2143_, lean_object* v___y_2144_, lean_object* v___y_2145_){
_start:
{
uint8_t v___x_2147_; 
v___x_2147_ = lean_usize_dec_lt(v_i_2133_, v_sz_2132_);
if (v___x_2147_ == 0)
{
lean_object* v___x_2148_; 
v___x_2148_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2148_, 0, v_b_2134_);
return v___x_2148_;
}
else
{
lean_object* v_snd_2149_; lean_object* v___x_2151_; uint8_t v_isShared_2152_; uint8_t v_isSharedCheck_2220_; 
v_snd_2149_ = lean_ctor_get(v_b_2134_, 1);
v_isSharedCheck_2220_ = !lean_is_exclusive(v_b_2134_);
if (v_isSharedCheck_2220_ == 0)
{
lean_object* v_unused_2221_; 
v_unused_2221_ = lean_ctor_get(v_b_2134_, 0);
lean_dec(v_unused_2221_);
v___x_2151_ = v_b_2134_;
v_isShared_2152_ = v_isSharedCheck_2220_;
goto v_resetjp_2150_;
}
else
{
lean_inc(v_snd_2149_);
lean_dec(v_b_2134_);
v___x_2151_ = lean_box(0);
v_isShared_2152_ = v_isSharedCheck_2220_;
goto v_resetjp_2150_;
}
v_resetjp_2150_:
{
lean_object* v_a_2153_; lean_object* v_p_2154_; uint8_t v_strict_2155_; lean_object* v___x_2156_; lean_object* v_a_2158_; 
v_a_2153_ = lean_array_uget_borrowed(v_as_2131_, v_i_2133_);
v_p_2154_ = lean_ctor_get(v_a_2153_, 0);
v_strict_2155_ = lean_ctor_get_uint8(v_a_2153_, sizeof(void*)*2);
v___x_2156_ = lean_box(0);
if (lean_obj_tag(v_p_2154_) == 1)
{
lean_object* v_k_2165_; lean_object* v_p_2166_; lean_object* v___x_2167_; 
v_k_2165_ = lean_ctor_get(v_p_2154_, 0);
v_p_2166_ = lean_ctor_get(v_p_2154_, 2);
lean_inc(v_p_2166_);
v___x_2167_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_2166_, v___y_2135_, v___y_2136_, v___y_2137_, v___y_2138_, v___y_2139_, v___y_2140_, v___y_2141_, v___y_2142_, v___y_2143_, v___y_2144_, v___y_2145_);
if (lean_obj_tag(v___x_2167_) == 0)
{
lean_object* v_a_2168_; 
v_a_2168_ = lean_ctor_get(v___x_2167_, 0);
lean_inc(v_a_2168_);
lean_dec_ref(v___x_2167_);
if (lean_obj_tag(v_a_2168_) == 1)
{
lean_object* v_val_2169_; lean_object* v___x_2171_; uint8_t v_isShared_2172_; uint8_t v_isSharedCheck_2193_; 
v_val_2169_ = lean_ctor_get(v_a_2168_, 0);
v_isSharedCheck_2193_ = !lean_is_exclusive(v_a_2168_);
if (v_isSharedCheck_2193_ == 0)
{
v___x_2171_ = v_a_2168_;
v_isShared_2172_ = v_isSharedCheck_2193_;
goto v_resetjp_2170_;
}
else
{
lean_inc(v_val_2169_);
lean_dec(v_a_2168_);
v___x_2171_ = lean_box(0);
v_isShared_2172_ = v_isSharedCheck_2193_;
goto v_resetjp_2170_;
}
v_resetjp_2170_:
{
lean_object* v___x_2173_; lean_object* v___x_2174_; lean_object* v___x_2175_; uint8_t v___y_2182_; 
v___x_2173_ = l_Rat_neg(v_val_2169_);
lean_inc(v_k_2165_);
v___x_2174_ = l_Rat_ofInt(v_k_2165_);
v___x_2175_ = l_Rat_div(v___x_2173_, v___x_2174_);
lean_dec_ref(v___x_2173_);
if (lean_obj_tag(v_snd_2149_) == 1)
{
lean_object* v_val_2183_; lean_object* v_fst_2184_; lean_object* v_snd_2185_; uint8_t v___x_2186_; uint8_t v___y_2188_; 
v_val_2183_ = lean_ctor_get(v_snd_2149_, 0);
v_fst_2184_ = lean_ctor_get(v_val_2183_, 0);
v_snd_2185_ = lean_ctor_get(v_val_2183_, 1);
lean_inc(v_fst_2184_);
lean_inc_ref(v___x_2175_);
v___x_2186_ = l_Rat_blt(v___x_2175_, v_fst_2184_);
if (v___x_2186_ == 0)
{
uint8_t v___x_2190_; 
v___x_2190_ = l_instDecidableEqRat_decEq(v___x_2175_, v_fst_2184_);
if (v___x_2190_ == 0)
{
v___y_2188_ = v___x_2190_;
goto v___jp_2187_;
}
else
{
v___y_2188_ = v_strict_2155_;
goto v___jp_2187_;
}
}
else
{
v___y_2182_ = v___x_2186_;
goto v___jp_2181_;
}
v___jp_2187_:
{
if (v___y_2188_ == 0)
{
lean_dec_ref(v___x_2175_);
lean_del_object(v___x_2171_);
v_a_2158_ = v_snd_2149_;
goto v___jp_2157_;
}
else
{
uint8_t v_strict_2189_; 
v_strict_2189_ = lean_ctor_get_uint8(v_snd_2185_, sizeof(void*)*2);
if (v_strict_2189_ == 0)
{
lean_dec_ref(v_snd_2149_);
goto v___jp_2176_;
}
else
{
v___y_2182_ = v___x_2186_;
goto v___jp_2181_;
}
}
}
}
else
{
lean_object* v___x_2191_; lean_object* v___x_2192_; 
lean_del_object(v___x_2171_);
lean_dec(v_snd_2149_);
lean_inc(v_a_2153_);
v___x_2191_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2191_, 0, v___x_2175_);
lean_ctor_set(v___x_2191_, 1, v_a_2153_);
v___x_2192_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2192_, 0, v___x_2191_);
v_a_2158_ = v___x_2192_;
goto v___jp_2157_;
}
v___jp_2176_:
{
lean_object* v___x_2177_; lean_object* v___x_2179_; 
lean_inc(v_a_2153_);
v___x_2177_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2177_, 0, v___x_2175_);
lean_ctor_set(v___x_2177_, 1, v_a_2153_);
if (v_isShared_2172_ == 0)
{
lean_ctor_set(v___x_2171_, 0, v___x_2177_);
v___x_2179_ = v___x_2171_;
goto v_reusejp_2178_;
}
else
{
lean_object* v_reuseFailAlloc_2180_; 
v_reuseFailAlloc_2180_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2180_, 0, v___x_2177_);
v___x_2179_ = v_reuseFailAlloc_2180_;
goto v_reusejp_2178_;
}
v_reusejp_2178_:
{
v_a_2158_ = v___x_2179_;
goto v___jp_2157_;
}
}
v___jp_2181_:
{
if (v___y_2182_ == 0)
{
lean_dec_ref(v___x_2175_);
lean_del_object(v___x_2171_);
v_a_2158_ = v_snd_2149_;
goto v___jp_2157_;
}
else
{
lean_dec(v_snd_2149_);
goto v___jp_2176_;
}
}
}
}
else
{
lean_object* v___x_2194_; 
lean_dec(v_a_2168_);
v___x_2194_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_2153_, v___y_2135_, v___y_2136_, v___y_2137_, v___y_2138_, v___y_2139_, v___y_2140_, v___y_2141_, v___y_2142_, v___y_2143_, v___y_2144_, v___y_2145_);
if (lean_obj_tag(v___x_2194_) == 0)
{
lean_dec_ref(v___x_2194_);
v_a_2158_ = v_snd_2149_;
goto v___jp_2157_;
}
else
{
lean_object* v_a_2195_; lean_object* v___x_2197_; uint8_t v_isShared_2198_; uint8_t v_isSharedCheck_2202_; 
lean_del_object(v___x_2151_);
lean_dec(v_snd_2149_);
v_a_2195_ = lean_ctor_get(v___x_2194_, 0);
v_isSharedCheck_2202_ = !lean_is_exclusive(v___x_2194_);
if (v_isSharedCheck_2202_ == 0)
{
v___x_2197_ = v___x_2194_;
v_isShared_2198_ = v_isSharedCheck_2202_;
goto v_resetjp_2196_;
}
else
{
lean_inc(v_a_2195_);
lean_dec(v___x_2194_);
v___x_2197_ = lean_box(0);
v_isShared_2198_ = v_isSharedCheck_2202_;
goto v_resetjp_2196_;
}
v_resetjp_2196_:
{
lean_object* v___x_2200_; 
if (v_isShared_2198_ == 0)
{
v___x_2200_ = v___x_2197_;
goto v_reusejp_2199_;
}
else
{
lean_object* v_reuseFailAlloc_2201_; 
v_reuseFailAlloc_2201_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2201_, 0, v_a_2195_);
v___x_2200_ = v_reuseFailAlloc_2201_;
goto v_reusejp_2199_;
}
v_reusejp_2199_:
{
return v___x_2200_;
}
}
}
}
}
else
{
lean_object* v_a_2203_; lean_object* v___x_2205_; uint8_t v_isShared_2206_; uint8_t v_isSharedCheck_2210_; 
lean_del_object(v___x_2151_);
lean_dec(v_snd_2149_);
v_a_2203_ = lean_ctor_get(v___x_2167_, 0);
v_isSharedCheck_2210_ = !lean_is_exclusive(v___x_2167_);
if (v_isSharedCheck_2210_ == 0)
{
v___x_2205_ = v___x_2167_;
v_isShared_2206_ = v_isSharedCheck_2210_;
goto v_resetjp_2204_;
}
else
{
lean_inc(v_a_2203_);
lean_dec(v___x_2167_);
v___x_2205_ = lean_box(0);
v_isShared_2206_ = v_isSharedCheck_2210_;
goto v_resetjp_2204_;
}
v_resetjp_2204_:
{
lean_object* v___x_2208_; 
if (v_isShared_2206_ == 0)
{
v___x_2208_ = v___x_2205_;
goto v_reusejp_2207_;
}
else
{
lean_object* v_reuseFailAlloc_2209_; 
v_reuseFailAlloc_2209_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2209_, 0, v_a_2203_);
v___x_2208_ = v_reuseFailAlloc_2209_;
goto v_reusejp_2207_;
}
v_reusejp_2207_:
{
return v___x_2208_;
}
}
}
}
else
{
lean_object* v___x_2211_; 
v___x_2211_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_2153_, v___y_2135_, v___y_2136_, v___y_2137_, v___y_2138_, v___y_2139_, v___y_2140_, v___y_2141_, v___y_2142_, v___y_2143_, v___y_2144_, v___y_2145_);
if (lean_obj_tag(v___x_2211_) == 0)
{
lean_dec_ref(v___x_2211_);
v_a_2158_ = v_snd_2149_;
goto v___jp_2157_;
}
else
{
lean_object* v_a_2212_; lean_object* v___x_2214_; uint8_t v_isShared_2215_; uint8_t v_isSharedCheck_2219_; 
lean_del_object(v___x_2151_);
lean_dec(v_snd_2149_);
v_a_2212_ = lean_ctor_get(v___x_2211_, 0);
v_isSharedCheck_2219_ = !lean_is_exclusive(v___x_2211_);
if (v_isSharedCheck_2219_ == 0)
{
v___x_2214_ = v___x_2211_;
v_isShared_2215_ = v_isSharedCheck_2219_;
goto v_resetjp_2213_;
}
else
{
lean_inc(v_a_2212_);
lean_dec(v___x_2211_);
v___x_2214_ = lean_box(0);
v_isShared_2215_ = v_isSharedCheck_2219_;
goto v_resetjp_2213_;
}
v_resetjp_2213_:
{
lean_object* v___x_2217_; 
if (v_isShared_2215_ == 0)
{
v___x_2217_ = v___x_2214_;
goto v_reusejp_2216_;
}
else
{
lean_object* v_reuseFailAlloc_2218_; 
v_reuseFailAlloc_2218_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2218_, 0, v_a_2212_);
v___x_2217_ = v_reuseFailAlloc_2218_;
goto v_reusejp_2216_;
}
v_reusejp_2216_:
{
return v___x_2217_;
}
}
}
}
v___jp_2157_:
{
lean_object* v___x_2160_; 
if (v_isShared_2152_ == 0)
{
lean_ctor_set(v___x_2151_, 1, v_a_2158_);
lean_ctor_set(v___x_2151_, 0, v___x_2156_);
v___x_2160_ = v___x_2151_;
goto v_reusejp_2159_;
}
else
{
lean_object* v_reuseFailAlloc_2164_; 
v_reuseFailAlloc_2164_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_2164_, 0, v___x_2156_);
lean_ctor_set(v_reuseFailAlloc_2164_, 1, v_a_2158_);
v___x_2160_ = v_reuseFailAlloc_2164_;
goto v_reusejp_2159_;
}
v_reusejp_2159_:
{
size_t v___x_2161_; size_t v___x_2162_; lean_object* v___x_2163_; 
v___x_2161_ = ((size_t)1ULL);
v___x_2162_ = lean_usize_add(v_i_2133_, v___x_2161_);
v___x_2163_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2_spec__3(v_as_2131_, v_sz_2132_, v___x_2162_, v___x_2160_, v___y_2135_, v___y_2136_, v___y_2137_, v___y_2138_, v___y_2139_, v___y_2140_, v___y_2141_, v___y_2142_, v___y_2143_, v___y_2144_, v___y_2145_);
return v___x_2163_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2___boxed(lean_object* v_as_2222_, lean_object* v_sz_2223_, lean_object* v_i_2224_, lean_object* v_b_2225_, lean_object* v___y_2226_, lean_object* v___y_2227_, lean_object* v___y_2228_, lean_object* v___y_2229_, lean_object* v___y_2230_, lean_object* v___y_2231_, lean_object* v___y_2232_, lean_object* v___y_2233_, lean_object* v___y_2234_, lean_object* v___y_2235_, lean_object* v___y_2236_, lean_object* v___y_2237_){
_start:
{
size_t v_sz_boxed_2238_; size_t v_i_boxed_2239_; lean_object* v_res_2240_; 
v_sz_boxed_2238_ = lean_unbox_usize(v_sz_2223_);
lean_dec(v_sz_2223_);
v_i_boxed_2239_ = lean_unbox_usize(v_i_2224_);
lean_dec(v_i_2224_);
v_res_2240_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2(v_as_2222_, v_sz_boxed_2238_, v_i_boxed_2239_, v_b_2225_, v___y_2226_, v___y_2227_, v___y_2228_, v___y_2229_, v___y_2230_, v___y_2231_, v___y_2232_, v___y_2233_, v___y_2234_, v___y_2235_, v___y_2236_);
lean_dec(v___y_2236_);
lean_dec_ref(v___y_2235_);
lean_dec(v___y_2234_);
lean_dec_ref(v___y_2233_);
lean_dec(v___y_2232_);
lean_dec_ref(v___y_2231_);
lean_dec(v___y_2230_);
lean_dec_ref(v___y_2229_);
lean_dec(v___y_2228_);
lean_dec(v___y_2227_);
lean_dec(v___y_2226_);
lean_dec_ref(v_as_2222_);
return v_res_2240_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0(lean_object* v_inh_2241_, lean_object* v_n_2242_, lean_object* v_b_2243_, lean_object* v___y_2244_, lean_object* v___y_2245_, lean_object* v___y_2246_, lean_object* v___y_2247_, lean_object* v___y_2248_, lean_object* v___y_2249_, lean_object* v___y_2250_, lean_object* v___y_2251_, lean_object* v___y_2252_, lean_object* v___y_2253_, lean_object* v___y_2254_){
_start:
{
if (lean_obj_tag(v_n_2242_) == 0)
{
lean_object* v_cs_2256_; lean_object* v___x_2258_; uint8_t v_isShared_2259_; uint8_t v_isSharedCheck_2290_; 
v_cs_2256_ = lean_ctor_get(v_n_2242_, 0);
v_isSharedCheck_2290_ = !lean_is_exclusive(v_n_2242_);
if (v_isSharedCheck_2290_ == 0)
{
v___x_2258_ = v_n_2242_;
v_isShared_2259_ = v_isSharedCheck_2290_;
goto v_resetjp_2257_;
}
else
{
lean_inc(v_cs_2256_);
lean_dec(v_n_2242_);
v___x_2258_ = lean_box(0);
v_isShared_2259_ = v_isSharedCheck_2290_;
goto v_resetjp_2257_;
}
v_resetjp_2257_:
{
lean_object* v___x_2260_; lean_object* v___x_2261_; size_t v_sz_2262_; size_t v___x_2263_; lean_object* v___x_2264_; 
v___x_2260_ = lean_box(0);
v___x_2261_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2261_, 0, v___x_2260_);
lean_ctor_set(v___x_2261_, 1, v_b_2243_);
v_sz_2262_ = lean_array_size(v_cs_2256_);
v___x_2263_ = ((size_t)0ULL);
v___x_2264_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__1(v_inh_2241_, v_cs_2256_, v_sz_2262_, v___x_2263_, v___x_2261_, v___y_2244_, v___y_2245_, v___y_2246_, v___y_2247_, v___y_2248_, v___y_2249_, v___y_2250_, v___y_2251_, v___y_2252_, v___y_2253_, v___y_2254_);
lean_dec_ref(v_cs_2256_);
if (lean_obj_tag(v___x_2264_) == 0)
{
lean_object* v_a_2265_; lean_object* v___x_2267_; uint8_t v_isShared_2268_; uint8_t v_isSharedCheck_2281_; 
v_a_2265_ = lean_ctor_get(v___x_2264_, 0);
v_isSharedCheck_2281_ = !lean_is_exclusive(v___x_2264_);
if (v_isSharedCheck_2281_ == 0)
{
v___x_2267_ = v___x_2264_;
v_isShared_2268_ = v_isSharedCheck_2281_;
goto v_resetjp_2266_;
}
else
{
lean_inc(v_a_2265_);
lean_dec(v___x_2264_);
v___x_2267_ = lean_box(0);
v_isShared_2268_ = v_isSharedCheck_2281_;
goto v_resetjp_2266_;
}
v_resetjp_2266_:
{
lean_object* v_fst_2269_; 
v_fst_2269_ = lean_ctor_get(v_a_2265_, 0);
if (lean_obj_tag(v_fst_2269_) == 0)
{
lean_object* v_snd_2270_; lean_object* v___x_2272_; 
v_snd_2270_ = lean_ctor_get(v_a_2265_, 1);
lean_inc(v_snd_2270_);
lean_dec(v_a_2265_);
if (v_isShared_2259_ == 0)
{
lean_ctor_set_tag(v___x_2258_, 1);
lean_ctor_set(v___x_2258_, 0, v_snd_2270_);
v___x_2272_ = v___x_2258_;
goto v_reusejp_2271_;
}
else
{
lean_object* v_reuseFailAlloc_2276_; 
v_reuseFailAlloc_2276_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2276_, 0, v_snd_2270_);
v___x_2272_ = v_reuseFailAlloc_2276_;
goto v_reusejp_2271_;
}
v_reusejp_2271_:
{
lean_object* v___x_2274_; 
if (v_isShared_2268_ == 0)
{
lean_ctor_set(v___x_2267_, 0, v___x_2272_);
v___x_2274_ = v___x_2267_;
goto v_reusejp_2273_;
}
else
{
lean_object* v_reuseFailAlloc_2275_; 
v_reuseFailAlloc_2275_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2275_, 0, v___x_2272_);
v___x_2274_ = v_reuseFailAlloc_2275_;
goto v_reusejp_2273_;
}
v_reusejp_2273_:
{
return v___x_2274_;
}
}
}
else
{
lean_object* v_val_2277_; lean_object* v___x_2279_; 
lean_inc_ref(v_fst_2269_);
lean_dec(v_a_2265_);
lean_del_object(v___x_2258_);
v_val_2277_ = lean_ctor_get(v_fst_2269_, 0);
lean_inc(v_val_2277_);
lean_dec_ref(v_fst_2269_);
if (v_isShared_2268_ == 0)
{
lean_ctor_set(v___x_2267_, 0, v_val_2277_);
v___x_2279_ = v___x_2267_;
goto v_reusejp_2278_;
}
else
{
lean_object* v_reuseFailAlloc_2280_; 
v_reuseFailAlloc_2280_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2280_, 0, v_val_2277_);
v___x_2279_ = v_reuseFailAlloc_2280_;
goto v_reusejp_2278_;
}
v_reusejp_2278_:
{
return v___x_2279_;
}
}
}
}
else
{
lean_object* v_a_2282_; lean_object* v___x_2284_; uint8_t v_isShared_2285_; uint8_t v_isSharedCheck_2289_; 
lean_del_object(v___x_2258_);
v_a_2282_ = lean_ctor_get(v___x_2264_, 0);
v_isSharedCheck_2289_ = !lean_is_exclusive(v___x_2264_);
if (v_isSharedCheck_2289_ == 0)
{
v___x_2284_ = v___x_2264_;
v_isShared_2285_ = v_isSharedCheck_2289_;
goto v_resetjp_2283_;
}
else
{
lean_inc(v_a_2282_);
lean_dec(v___x_2264_);
v___x_2284_ = lean_box(0);
v_isShared_2285_ = v_isSharedCheck_2289_;
goto v_resetjp_2283_;
}
v_resetjp_2283_:
{
lean_object* v___x_2287_; 
if (v_isShared_2285_ == 0)
{
v___x_2287_ = v___x_2284_;
goto v_reusejp_2286_;
}
else
{
lean_object* v_reuseFailAlloc_2288_; 
v_reuseFailAlloc_2288_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2288_, 0, v_a_2282_);
v___x_2287_ = v_reuseFailAlloc_2288_;
goto v_reusejp_2286_;
}
v_reusejp_2286_:
{
return v___x_2287_;
}
}
}
}
}
else
{
lean_object* v_vs_2291_; lean_object* v___x_2293_; uint8_t v_isShared_2294_; uint8_t v_isSharedCheck_2325_; 
v_vs_2291_ = lean_ctor_get(v_n_2242_, 0);
v_isSharedCheck_2325_ = !lean_is_exclusive(v_n_2242_);
if (v_isSharedCheck_2325_ == 0)
{
v___x_2293_ = v_n_2242_;
v_isShared_2294_ = v_isSharedCheck_2325_;
goto v_resetjp_2292_;
}
else
{
lean_inc(v_vs_2291_);
lean_dec(v_n_2242_);
v___x_2293_ = lean_box(0);
v_isShared_2294_ = v_isSharedCheck_2325_;
goto v_resetjp_2292_;
}
v_resetjp_2292_:
{
lean_object* v___x_2295_; lean_object* v___x_2296_; size_t v_sz_2297_; size_t v___x_2298_; lean_object* v___x_2299_; 
v___x_2295_ = lean_box(0);
v___x_2296_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2296_, 0, v___x_2295_);
lean_ctor_set(v___x_2296_, 1, v_b_2243_);
v_sz_2297_ = lean_array_size(v_vs_2291_);
v___x_2298_ = ((size_t)0ULL);
v___x_2299_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__2(v_vs_2291_, v_sz_2297_, v___x_2298_, v___x_2296_, v___y_2244_, v___y_2245_, v___y_2246_, v___y_2247_, v___y_2248_, v___y_2249_, v___y_2250_, v___y_2251_, v___y_2252_, v___y_2253_, v___y_2254_);
lean_dec_ref(v_vs_2291_);
if (lean_obj_tag(v___x_2299_) == 0)
{
lean_object* v_a_2300_; lean_object* v___x_2302_; uint8_t v_isShared_2303_; uint8_t v_isSharedCheck_2316_; 
v_a_2300_ = lean_ctor_get(v___x_2299_, 0);
v_isSharedCheck_2316_ = !lean_is_exclusive(v___x_2299_);
if (v_isSharedCheck_2316_ == 0)
{
v___x_2302_ = v___x_2299_;
v_isShared_2303_ = v_isSharedCheck_2316_;
goto v_resetjp_2301_;
}
else
{
lean_inc(v_a_2300_);
lean_dec(v___x_2299_);
v___x_2302_ = lean_box(0);
v_isShared_2303_ = v_isSharedCheck_2316_;
goto v_resetjp_2301_;
}
v_resetjp_2301_:
{
lean_object* v_fst_2304_; 
v_fst_2304_ = lean_ctor_get(v_a_2300_, 0);
if (lean_obj_tag(v_fst_2304_) == 0)
{
lean_object* v_snd_2305_; lean_object* v___x_2307_; 
v_snd_2305_ = lean_ctor_get(v_a_2300_, 1);
lean_inc(v_snd_2305_);
lean_dec(v_a_2300_);
if (v_isShared_2294_ == 0)
{
lean_ctor_set(v___x_2293_, 0, v_snd_2305_);
v___x_2307_ = v___x_2293_;
goto v_reusejp_2306_;
}
else
{
lean_object* v_reuseFailAlloc_2311_; 
v_reuseFailAlloc_2311_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2311_, 0, v_snd_2305_);
v___x_2307_ = v_reuseFailAlloc_2311_;
goto v_reusejp_2306_;
}
v_reusejp_2306_:
{
lean_object* v___x_2309_; 
if (v_isShared_2303_ == 0)
{
lean_ctor_set(v___x_2302_, 0, v___x_2307_);
v___x_2309_ = v___x_2302_;
goto v_reusejp_2308_;
}
else
{
lean_object* v_reuseFailAlloc_2310_; 
v_reuseFailAlloc_2310_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2310_, 0, v___x_2307_);
v___x_2309_ = v_reuseFailAlloc_2310_;
goto v_reusejp_2308_;
}
v_reusejp_2308_:
{
return v___x_2309_;
}
}
}
else
{
lean_object* v_val_2312_; lean_object* v___x_2314_; 
lean_inc_ref(v_fst_2304_);
lean_dec(v_a_2300_);
lean_del_object(v___x_2293_);
v_val_2312_ = lean_ctor_get(v_fst_2304_, 0);
lean_inc(v_val_2312_);
lean_dec_ref(v_fst_2304_);
if (v_isShared_2303_ == 0)
{
lean_ctor_set(v___x_2302_, 0, v_val_2312_);
v___x_2314_ = v___x_2302_;
goto v_reusejp_2313_;
}
else
{
lean_object* v_reuseFailAlloc_2315_; 
v_reuseFailAlloc_2315_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2315_, 0, v_val_2312_);
v___x_2314_ = v_reuseFailAlloc_2315_;
goto v_reusejp_2313_;
}
v_reusejp_2313_:
{
return v___x_2314_;
}
}
}
}
else
{
lean_object* v_a_2317_; lean_object* v___x_2319_; uint8_t v_isShared_2320_; uint8_t v_isSharedCheck_2324_; 
lean_del_object(v___x_2293_);
v_a_2317_ = lean_ctor_get(v___x_2299_, 0);
v_isSharedCheck_2324_ = !lean_is_exclusive(v___x_2299_);
if (v_isSharedCheck_2324_ == 0)
{
v___x_2319_ = v___x_2299_;
v_isShared_2320_ = v_isSharedCheck_2324_;
goto v_resetjp_2318_;
}
else
{
lean_inc(v_a_2317_);
lean_dec(v___x_2299_);
v___x_2319_ = lean_box(0);
v_isShared_2320_ = v_isSharedCheck_2324_;
goto v_resetjp_2318_;
}
v_resetjp_2318_:
{
lean_object* v___x_2322_; 
if (v_isShared_2320_ == 0)
{
v___x_2322_ = v___x_2319_;
goto v_reusejp_2321_;
}
else
{
lean_object* v_reuseFailAlloc_2323_; 
v_reuseFailAlloc_2323_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2323_, 0, v_a_2317_);
v___x_2322_ = v_reuseFailAlloc_2323_;
goto v_reusejp_2321_;
}
v_reusejp_2321_:
{
return v___x_2322_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__1(lean_object* v_inh_2326_, lean_object* v_as_2327_, size_t v_sz_2328_, size_t v_i_2329_, lean_object* v_b_2330_, lean_object* v___y_2331_, lean_object* v___y_2332_, lean_object* v___y_2333_, lean_object* v___y_2334_, lean_object* v___y_2335_, lean_object* v___y_2336_, lean_object* v___y_2337_, lean_object* v___y_2338_, lean_object* v___y_2339_, lean_object* v___y_2340_, lean_object* v___y_2341_){
_start:
{
uint8_t v___x_2343_; 
v___x_2343_ = lean_usize_dec_lt(v_i_2329_, v_sz_2328_);
if (v___x_2343_ == 0)
{
lean_object* v___x_2344_; 
v___x_2344_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2344_, 0, v_b_2330_);
return v___x_2344_;
}
else
{
lean_object* v_snd_2345_; lean_object* v___x_2347_; uint8_t v_isShared_2348_; uint8_t v_isSharedCheck_2379_; 
v_snd_2345_ = lean_ctor_get(v_b_2330_, 1);
v_isSharedCheck_2379_ = !lean_is_exclusive(v_b_2330_);
if (v_isSharedCheck_2379_ == 0)
{
lean_object* v_unused_2380_; 
v_unused_2380_ = lean_ctor_get(v_b_2330_, 0);
lean_dec(v_unused_2380_);
v___x_2347_ = v_b_2330_;
v_isShared_2348_ = v_isSharedCheck_2379_;
goto v_resetjp_2346_;
}
else
{
lean_inc(v_snd_2345_);
lean_dec(v_b_2330_);
v___x_2347_ = lean_box(0);
v_isShared_2348_ = v_isSharedCheck_2379_;
goto v_resetjp_2346_;
}
v_resetjp_2346_:
{
lean_object* v_a_2349_; lean_object* v___x_2350_; 
v_a_2349_ = lean_array_uget_borrowed(v_as_2327_, v_i_2329_);
lean_inc(v_snd_2345_);
lean_inc(v_a_2349_);
v___x_2350_ = l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0(v_inh_2326_, v_a_2349_, v_snd_2345_, v___y_2331_, v___y_2332_, v___y_2333_, v___y_2334_, v___y_2335_, v___y_2336_, v___y_2337_, v___y_2338_, v___y_2339_, v___y_2340_, v___y_2341_);
if (lean_obj_tag(v___x_2350_) == 0)
{
lean_object* v_a_2351_; lean_object* v___x_2353_; uint8_t v_isShared_2354_; uint8_t v_isSharedCheck_2370_; 
v_a_2351_ = lean_ctor_get(v___x_2350_, 0);
v_isSharedCheck_2370_ = !lean_is_exclusive(v___x_2350_);
if (v_isSharedCheck_2370_ == 0)
{
v___x_2353_ = v___x_2350_;
v_isShared_2354_ = v_isSharedCheck_2370_;
goto v_resetjp_2352_;
}
else
{
lean_inc(v_a_2351_);
lean_dec(v___x_2350_);
v___x_2353_ = lean_box(0);
v_isShared_2354_ = v_isSharedCheck_2370_;
goto v_resetjp_2352_;
}
v_resetjp_2352_:
{
if (lean_obj_tag(v_a_2351_) == 0)
{
lean_object* v___x_2355_; lean_object* v___x_2357_; 
v___x_2355_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2355_, 0, v_a_2351_);
if (v_isShared_2348_ == 0)
{
lean_ctor_set(v___x_2347_, 0, v___x_2355_);
v___x_2357_ = v___x_2347_;
goto v_reusejp_2356_;
}
else
{
lean_object* v_reuseFailAlloc_2361_; 
v_reuseFailAlloc_2361_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_2361_, 0, v___x_2355_);
lean_ctor_set(v_reuseFailAlloc_2361_, 1, v_snd_2345_);
v___x_2357_ = v_reuseFailAlloc_2361_;
goto v_reusejp_2356_;
}
v_reusejp_2356_:
{
lean_object* v___x_2359_; 
if (v_isShared_2354_ == 0)
{
lean_ctor_set(v___x_2353_, 0, v___x_2357_);
v___x_2359_ = v___x_2353_;
goto v_reusejp_2358_;
}
else
{
lean_object* v_reuseFailAlloc_2360_; 
v_reuseFailAlloc_2360_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2360_, 0, v___x_2357_);
v___x_2359_ = v_reuseFailAlloc_2360_;
goto v_reusejp_2358_;
}
v_reusejp_2358_:
{
return v___x_2359_;
}
}
}
else
{
lean_object* v_a_2362_; lean_object* v___x_2363_; lean_object* v___x_2365_; 
lean_del_object(v___x_2353_);
lean_dec(v_snd_2345_);
v_a_2362_ = lean_ctor_get(v_a_2351_, 0);
lean_inc(v_a_2362_);
lean_dec_ref(v_a_2351_);
v___x_2363_ = lean_box(0);
if (v_isShared_2348_ == 0)
{
lean_ctor_set(v___x_2347_, 1, v_a_2362_);
lean_ctor_set(v___x_2347_, 0, v___x_2363_);
v___x_2365_ = v___x_2347_;
goto v_reusejp_2364_;
}
else
{
lean_object* v_reuseFailAlloc_2369_; 
v_reuseFailAlloc_2369_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_2369_, 0, v___x_2363_);
lean_ctor_set(v_reuseFailAlloc_2369_, 1, v_a_2362_);
v___x_2365_ = v_reuseFailAlloc_2369_;
goto v_reusejp_2364_;
}
v_reusejp_2364_:
{
size_t v___x_2366_; size_t v___x_2367_; 
v___x_2366_ = ((size_t)1ULL);
v___x_2367_ = lean_usize_add(v_i_2329_, v___x_2366_);
v_i_2329_ = v___x_2367_;
v_b_2330_ = v___x_2365_;
goto _start;
}
}
}
}
else
{
lean_object* v_a_2371_; lean_object* v___x_2373_; uint8_t v_isShared_2374_; uint8_t v_isSharedCheck_2378_; 
lean_del_object(v___x_2347_);
lean_dec(v_snd_2345_);
v_a_2371_ = lean_ctor_get(v___x_2350_, 0);
v_isSharedCheck_2378_ = !lean_is_exclusive(v___x_2350_);
if (v_isSharedCheck_2378_ == 0)
{
v___x_2373_ = v___x_2350_;
v_isShared_2374_ = v_isSharedCheck_2378_;
goto v_resetjp_2372_;
}
else
{
lean_inc(v_a_2371_);
lean_dec(v___x_2350_);
v___x_2373_ = lean_box(0);
v_isShared_2374_ = v_isSharedCheck_2378_;
goto v_resetjp_2372_;
}
v_resetjp_2372_:
{
lean_object* v___x_2376_; 
if (v_isShared_2374_ == 0)
{
v___x_2376_ = v___x_2373_;
goto v_reusejp_2375_;
}
else
{
lean_object* v_reuseFailAlloc_2377_; 
v_reuseFailAlloc_2377_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2377_, 0, v_a_2371_);
v___x_2376_ = v_reuseFailAlloc_2377_;
goto v_reusejp_2375_;
}
v_reusejp_2375_:
{
return v___x_2376_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__1___boxed(lean_object** _args){
lean_object* v_inh_2381_ = _args[0];
lean_object* v_as_2382_ = _args[1];
lean_object* v_sz_2383_ = _args[2];
lean_object* v_i_2384_ = _args[3];
lean_object* v_b_2385_ = _args[4];
lean_object* v___y_2386_ = _args[5];
lean_object* v___y_2387_ = _args[6];
lean_object* v___y_2388_ = _args[7];
lean_object* v___y_2389_ = _args[8];
lean_object* v___y_2390_ = _args[9];
lean_object* v___y_2391_ = _args[10];
lean_object* v___y_2392_ = _args[11];
lean_object* v___y_2393_ = _args[12];
lean_object* v___y_2394_ = _args[13];
lean_object* v___y_2395_ = _args[14];
lean_object* v___y_2396_ = _args[15];
lean_object* v___y_2397_ = _args[16];
_start:
{
size_t v_sz_boxed_2398_; size_t v_i_boxed_2399_; lean_object* v_res_2400_; 
v_sz_boxed_2398_ = lean_unbox_usize(v_sz_2383_);
lean_dec(v_sz_2383_);
v_i_boxed_2399_ = lean_unbox_usize(v_i_2384_);
lean_dec(v_i_2384_);
v_res_2400_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0_spec__1(v_inh_2381_, v_as_2382_, v_sz_boxed_2398_, v_i_boxed_2399_, v_b_2385_, v___y_2386_, v___y_2387_, v___y_2388_, v___y_2389_, v___y_2390_, v___y_2391_, v___y_2392_, v___y_2393_, v___y_2394_, v___y_2395_, v___y_2396_);
lean_dec(v___y_2396_);
lean_dec_ref(v___y_2395_);
lean_dec(v___y_2394_);
lean_dec_ref(v___y_2393_);
lean_dec(v___y_2392_);
lean_dec_ref(v___y_2391_);
lean_dec(v___y_2390_);
lean_dec_ref(v___y_2389_);
lean_dec(v___y_2388_);
lean_dec(v___y_2387_);
lean_dec(v___y_2386_);
lean_dec_ref(v_as_2382_);
lean_dec(v_inh_2381_);
return v_res_2400_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0___boxed(lean_object* v_inh_2401_, lean_object* v_n_2402_, lean_object* v_b_2403_, lean_object* v___y_2404_, lean_object* v___y_2405_, lean_object* v___y_2406_, lean_object* v___y_2407_, lean_object* v___y_2408_, lean_object* v___y_2409_, lean_object* v___y_2410_, lean_object* v___y_2411_, lean_object* v___y_2412_, lean_object* v___y_2413_, lean_object* v___y_2414_, lean_object* v___y_2415_){
_start:
{
lean_object* v_res_2416_; 
v_res_2416_ = l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0(v_inh_2401_, v_n_2402_, v_b_2403_, v___y_2404_, v___y_2405_, v___y_2406_, v___y_2407_, v___y_2408_, v___y_2409_, v___y_2410_, v___y_2411_, v___y_2412_, v___y_2413_, v___y_2414_);
lean_dec(v___y_2414_);
lean_dec_ref(v___y_2413_);
lean_dec(v___y_2412_);
lean_dec_ref(v___y_2411_);
lean_dec(v___y_2410_);
lean_dec_ref(v___y_2409_);
lean_dec(v___y_2408_);
lean_dec_ref(v___y_2407_);
lean_dec(v___y_2406_);
lean_dec(v___y_2405_);
lean_dec(v___y_2404_);
lean_dec(v_inh_2401_);
return v_res_2416_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1_spec__4(lean_object* v_as_2417_, size_t v_sz_2418_, size_t v_i_2419_, lean_object* v_b_2420_, lean_object* v___y_2421_, lean_object* v___y_2422_, lean_object* v___y_2423_, lean_object* v___y_2424_, lean_object* v___y_2425_, lean_object* v___y_2426_, lean_object* v___y_2427_, lean_object* v___y_2428_, lean_object* v___y_2429_, lean_object* v___y_2430_, lean_object* v___y_2431_){
_start:
{
uint8_t v___x_2433_; 
v___x_2433_ = lean_usize_dec_lt(v_i_2419_, v_sz_2418_);
if (v___x_2433_ == 0)
{
lean_object* v___x_2434_; 
v___x_2434_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2434_, 0, v_b_2420_);
return v___x_2434_;
}
else
{
lean_object* v_snd_2435_; lean_object* v___x_2437_; uint8_t v_isShared_2438_; uint8_t v_isSharedCheck_2506_; 
v_snd_2435_ = lean_ctor_get(v_b_2420_, 1);
v_isSharedCheck_2506_ = !lean_is_exclusive(v_b_2420_);
if (v_isSharedCheck_2506_ == 0)
{
lean_object* v_unused_2507_; 
v_unused_2507_ = lean_ctor_get(v_b_2420_, 0);
lean_dec(v_unused_2507_);
v___x_2437_ = v_b_2420_;
v_isShared_2438_ = v_isSharedCheck_2506_;
goto v_resetjp_2436_;
}
else
{
lean_inc(v_snd_2435_);
lean_dec(v_b_2420_);
v___x_2437_ = lean_box(0);
v_isShared_2438_ = v_isSharedCheck_2506_;
goto v_resetjp_2436_;
}
v_resetjp_2436_:
{
lean_object* v_a_2439_; lean_object* v_p_2440_; uint8_t v_strict_2441_; lean_object* v___x_2442_; lean_object* v_a_2444_; 
v_a_2439_ = lean_array_uget_borrowed(v_as_2417_, v_i_2419_);
v_p_2440_ = lean_ctor_get(v_a_2439_, 0);
v_strict_2441_ = lean_ctor_get_uint8(v_a_2439_, sizeof(void*)*2);
v___x_2442_ = lean_box(0);
if (lean_obj_tag(v_p_2440_) == 1)
{
lean_object* v_k_2451_; lean_object* v_p_2452_; lean_object* v___x_2453_; 
v_k_2451_ = lean_ctor_get(v_p_2440_, 0);
v_p_2452_ = lean_ctor_get(v_p_2440_, 2);
lean_inc(v_p_2452_);
v___x_2453_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_2452_, v___y_2421_, v___y_2422_, v___y_2423_, v___y_2424_, v___y_2425_, v___y_2426_, v___y_2427_, v___y_2428_, v___y_2429_, v___y_2430_, v___y_2431_);
if (lean_obj_tag(v___x_2453_) == 0)
{
lean_object* v_a_2454_; 
v_a_2454_ = lean_ctor_get(v___x_2453_, 0);
lean_inc(v_a_2454_);
lean_dec_ref(v___x_2453_);
if (lean_obj_tag(v_a_2454_) == 1)
{
lean_object* v_val_2455_; lean_object* v___x_2457_; uint8_t v_isShared_2458_; uint8_t v_isSharedCheck_2479_; 
v_val_2455_ = lean_ctor_get(v_a_2454_, 0);
v_isSharedCheck_2479_ = !lean_is_exclusive(v_a_2454_);
if (v_isSharedCheck_2479_ == 0)
{
v___x_2457_ = v_a_2454_;
v_isShared_2458_ = v_isSharedCheck_2479_;
goto v_resetjp_2456_;
}
else
{
lean_inc(v_val_2455_);
lean_dec(v_a_2454_);
v___x_2457_ = lean_box(0);
v_isShared_2458_ = v_isSharedCheck_2479_;
goto v_resetjp_2456_;
}
v_resetjp_2456_:
{
lean_object* v___x_2459_; lean_object* v___x_2460_; lean_object* v___x_2461_; uint8_t v___y_2468_; 
v___x_2459_ = l_Rat_neg(v_val_2455_);
lean_inc(v_k_2451_);
v___x_2460_ = l_Rat_ofInt(v_k_2451_);
v___x_2461_ = l_Rat_div(v___x_2459_, v___x_2460_);
lean_dec_ref(v___x_2459_);
if (lean_obj_tag(v_snd_2435_) == 1)
{
lean_object* v_val_2469_; lean_object* v_fst_2470_; lean_object* v_snd_2471_; uint8_t v___x_2472_; uint8_t v___y_2474_; 
v_val_2469_ = lean_ctor_get(v_snd_2435_, 0);
v_fst_2470_ = lean_ctor_get(v_val_2469_, 0);
v_snd_2471_ = lean_ctor_get(v_val_2469_, 1);
lean_inc(v_fst_2470_);
lean_inc_ref(v___x_2461_);
v___x_2472_ = l_Rat_blt(v___x_2461_, v_fst_2470_);
if (v___x_2472_ == 0)
{
uint8_t v___x_2476_; 
v___x_2476_ = l_instDecidableEqRat_decEq(v___x_2461_, v_fst_2470_);
if (v___x_2476_ == 0)
{
v___y_2474_ = v___x_2476_;
goto v___jp_2473_;
}
else
{
v___y_2474_ = v_strict_2441_;
goto v___jp_2473_;
}
}
else
{
v___y_2468_ = v___x_2472_;
goto v___jp_2467_;
}
v___jp_2473_:
{
if (v___y_2474_ == 0)
{
lean_dec_ref(v___x_2461_);
lean_del_object(v___x_2457_);
v_a_2444_ = v_snd_2435_;
goto v___jp_2443_;
}
else
{
uint8_t v_strict_2475_; 
v_strict_2475_ = lean_ctor_get_uint8(v_snd_2471_, sizeof(void*)*2);
if (v_strict_2475_ == 0)
{
lean_dec_ref(v_snd_2435_);
goto v___jp_2462_;
}
else
{
v___y_2468_ = v___x_2472_;
goto v___jp_2467_;
}
}
}
}
else
{
lean_object* v___x_2477_; lean_object* v___x_2478_; 
lean_del_object(v___x_2457_);
lean_dec(v_snd_2435_);
lean_inc(v_a_2439_);
v___x_2477_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2477_, 0, v___x_2461_);
lean_ctor_set(v___x_2477_, 1, v_a_2439_);
v___x_2478_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2478_, 0, v___x_2477_);
v_a_2444_ = v___x_2478_;
goto v___jp_2443_;
}
v___jp_2462_:
{
lean_object* v___x_2463_; lean_object* v___x_2465_; 
lean_inc(v_a_2439_);
v___x_2463_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2463_, 0, v___x_2461_);
lean_ctor_set(v___x_2463_, 1, v_a_2439_);
if (v_isShared_2458_ == 0)
{
lean_ctor_set(v___x_2457_, 0, v___x_2463_);
v___x_2465_ = v___x_2457_;
goto v_reusejp_2464_;
}
else
{
lean_object* v_reuseFailAlloc_2466_; 
v_reuseFailAlloc_2466_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2466_, 0, v___x_2463_);
v___x_2465_ = v_reuseFailAlloc_2466_;
goto v_reusejp_2464_;
}
v_reusejp_2464_:
{
v_a_2444_ = v___x_2465_;
goto v___jp_2443_;
}
}
v___jp_2467_:
{
if (v___y_2468_ == 0)
{
lean_dec_ref(v___x_2461_);
lean_del_object(v___x_2457_);
v_a_2444_ = v_snd_2435_;
goto v___jp_2443_;
}
else
{
lean_dec(v_snd_2435_);
goto v___jp_2462_;
}
}
}
}
else
{
lean_object* v___x_2480_; 
lean_dec(v_a_2454_);
v___x_2480_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_2439_, v___y_2421_, v___y_2422_, v___y_2423_, v___y_2424_, v___y_2425_, v___y_2426_, v___y_2427_, v___y_2428_, v___y_2429_, v___y_2430_, v___y_2431_);
if (lean_obj_tag(v___x_2480_) == 0)
{
lean_dec_ref(v___x_2480_);
v_a_2444_ = v_snd_2435_;
goto v___jp_2443_;
}
else
{
lean_object* v_a_2481_; lean_object* v___x_2483_; uint8_t v_isShared_2484_; uint8_t v_isSharedCheck_2488_; 
lean_del_object(v___x_2437_);
lean_dec(v_snd_2435_);
v_a_2481_ = lean_ctor_get(v___x_2480_, 0);
v_isSharedCheck_2488_ = !lean_is_exclusive(v___x_2480_);
if (v_isSharedCheck_2488_ == 0)
{
v___x_2483_ = v___x_2480_;
v_isShared_2484_ = v_isSharedCheck_2488_;
goto v_resetjp_2482_;
}
else
{
lean_inc(v_a_2481_);
lean_dec(v___x_2480_);
v___x_2483_ = lean_box(0);
v_isShared_2484_ = v_isSharedCheck_2488_;
goto v_resetjp_2482_;
}
v_resetjp_2482_:
{
lean_object* v___x_2486_; 
if (v_isShared_2484_ == 0)
{
v___x_2486_ = v___x_2483_;
goto v_reusejp_2485_;
}
else
{
lean_object* v_reuseFailAlloc_2487_; 
v_reuseFailAlloc_2487_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2487_, 0, v_a_2481_);
v___x_2486_ = v_reuseFailAlloc_2487_;
goto v_reusejp_2485_;
}
v_reusejp_2485_:
{
return v___x_2486_;
}
}
}
}
}
else
{
lean_object* v_a_2489_; lean_object* v___x_2491_; uint8_t v_isShared_2492_; uint8_t v_isSharedCheck_2496_; 
lean_del_object(v___x_2437_);
lean_dec(v_snd_2435_);
v_a_2489_ = lean_ctor_get(v___x_2453_, 0);
v_isSharedCheck_2496_ = !lean_is_exclusive(v___x_2453_);
if (v_isSharedCheck_2496_ == 0)
{
v___x_2491_ = v___x_2453_;
v_isShared_2492_ = v_isSharedCheck_2496_;
goto v_resetjp_2490_;
}
else
{
lean_inc(v_a_2489_);
lean_dec(v___x_2453_);
v___x_2491_ = lean_box(0);
v_isShared_2492_ = v_isSharedCheck_2496_;
goto v_resetjp_2490_;
}
v_resetjp_2490_:
{
lean_object* v___x_2494_; 
if (v_isShared_2492_ == 0)
{
v___x_2494_ = v___x_2491_;
goto v_reusejp_2493_;
}
else
{
lean_object* v_reuseFailAlloc_2495_; 
v_reuseFailAlloc_2495_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2495_, 0, v_a_2489_);
v___x_2494_ = v_reuseFailAlloc_2495_;
goto v_reusejp_2493_;
}
v_reusejp_2493_:
{
return v___x_2494_;
}
}
}
}
else
{
lean_object* v___x_2497_; 
v___x_2497_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_2439_, v___y_2421_, v___y_2422_, v___y_2423_, v___y_2424_, v___y_2425_, v___y_2426_, v___y_2427_, v___y_2428_, v___y_2429_, v___y_2430_, v___y_2431_);
if (lean_obj_tag(v___x_2497_) == 0)
{
lean_dec_ref(v___x_2497_);
v_a_2444_ = v_snd_2435_;
goto v___jp_2443_;
}
else
{
lean_object* v_a_2498_; lean_object* v___x_2500_; uint8_t v_isShared_2501_; uint8_t v_isSharedCheck_2505_; 
lean_del_object(v___x_2437_);
lean_dec(v_snd_2435_);
v_a_2498_ = lean_ctor_get(v___x_2497_, 0);
v_isSharedCheck_2505_ = !lean_is_exclusive(v___x_2497_);
if (v_isSharedCheck_2505_ == 0)
{
v___x_2500_ = v___x_2497_;
v_isShared_2501_ = v_isSharedCheck_2505_;
goto v_resetjp_2499_;
}
else
{
lean_inc(v_a_2498_);
lean_dec(v___x_2497_);
v___x_2500_ = lean_box(0);
v_isShared_2501_ = v_isSharedCheck_2505_;
goto v_resetjp_2499_;
}
v_resetjp_2499_:
{
lean_object* v___x_2503_; 
if (v_isShared_2501_ == 0)
{
v___x_2503_ = v___x_2500_;
goto v_reusejp_2502_;
}
else
{
lean_object* v_reuseFailAlloc_2504_; 
v_reuseFailAlloc_2504_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2504_, 0, v_a_2498_);
v___x_2503_ = v_reuseFailAlloc_2504_;
goto v_reusejp_2502_;
}
v_reusejp_2502_:
{
return v___x_2503_;
}
}
}
}
v___jp_2443_:
{
lean_object* v___x_2446_; 
if (v_isShared_2438_ == 0)
{
lean_ctor_set(v___x_2437_, 1, v_a_2444_);
lean_ctor_set(v___x_2437_, 0, v___x_2442_);
v___x_2446_ = v___x_2437_;
goto v_reusejp_2445_;
}
else
{
lean_object* v_reuseFailAlloc_2450_; 
v_reuseFailAlloc_2450_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_2450_, 0, v___x_2442_);
lean_ctor_set(v_reuseFailAlloc_2450_, 1, v_a_2444_);
v___x_2446_ = v_reuseFailAlloc_2450_;
goto v_reusejp_2445_;
}
v_reusejp_2445_:
{
size_t v___x_2447_; size_t v___x_2448_; 
v___x_2447_ = ((size_t)1ULL);
v___x_2448_ = lean_usize_add(v_i_2419_, v___x_2447_);
v_i_2419_ = v___x_2448_;
v_b_2420_ = v___x_2446_;
goto _start;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1_spec__4___boxed(lean_object* v_as_2508_, lean_object* v_sz_2509_, lean_object* v_i_2510_, lean_object* v_b_2511_, lean_object* v___y_2512_, lean_object* v___y_2513_, lean_object* v___y_2514_, lean_object* v___y_2515_, lean_object* v___y_2516_, lean_object* v___y_2517_, lean_object* v___y_2518_, lean_object* v___y_2519_, lean_object* v___y_2520_, lean_object* v___y_2521_, lean_object* v___y_2522_, lean_object* v___y_2523_){
_start:
{
size_t v_sz_boxed_2524_; size_t v_i_boxed_2525_; lean_object* v_res_2526_; 
v_sz_boxed_2524_ = lean_unbox_usize(v_sz_2509_);
lean_dec(v_sz_2509_);
v_i_boxed_2525_ = lean_unbox_usize(v_i_2510_);
lean_dec(v_i_2510_);
v_res_2526_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1_spec__4(v_as_2508_, v_sz_boxed_2524_, v_i_boxed_2525_, v_b_2511_, v___y_2512_, v___y_2513_, v___y_2514_, v___y_2515_, v___y_2516_, v___y_2517_, v___y_2518_, v___y_2519_, v___y_2520_, v___y_2521_, v___y_2522_);
lean_dec(v___y_2522_);
lean_dec_ref(v___y_2521_);
lean_dec(v___y_2520_);
lean_dec_ref(v___y_2519_);
lean_dec(v___y_2518_);
lean_dec_ref(v___y_2517_);
lean_dec(v___y_2516_);
lean_dec_ref(v___y_2515_);
lean_dec(v___y_2514_);
lean_dec(v___y_2513_);
lean_dec(v___y_2512_);
lean_dec_ref(v_as_2508_);
return v_res_2526_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1(lean_object* v_as_2527_, size_t v_sz_2528_, size_t v_i_2529_, lean_object* v_b_2530_, lean_object* v___y_2531_, lean_object* v___y_2532_, lean_object* v___y_2533_, lean_object* v___y_2534_, lean_object* v___y_2535_, lean_object* v___y_2536_, lean_object* v___y_2537_, lean_object* v___y_2538_, lean_object* v___y_2539_, lean_object* v___y_2540_, lean_object* v___y_2541_){
_start:
{
uint8_t v___x_2543_; 
v___x_2543_ = lean_usize_dec_lt(v_i_2529_, v_sz_2528_);
if (v___x_2543_ == 0)
{
lean_object* v___x_2544_; 
v___x_2544_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2544_, 0, v_b_2530_);
return v___x_2544_;
}
else
{
lean_object* v_snd_2545_; lean_object* v___x_2547_; uint8_t v_isShared_2548_; uint8_t v_isSharedCheck_2616_; 
v_snd_2545_ = lean_ctor_get(v_b_2530_, 1);
v_isSharedCheck_2616_ = !lean_is_exclusive(v_b_2530_);
if (v_isSharedCheck_2616_ == 0)
{
lean_object* v_unused_2617_; 
v_unused_2617_ = lean_ctor_get(v_b_2530_, 0);
lean_dec(v_unused_2617_);
v___x_2547_ = v_b_2530_;
v_isShared_2548_ = v_isSharedCheck_2616_;
goto v_resetjp_2546_;
}
else
{
lean_inc(v_snd_2545_);
lean_dec(v_b_2530_);
v___x_2547_ = lean_box(0);
v_isShared_2548_ = v_isSharedCheck_2616_;
goto v_resetjp_2546_;
}
v_resetjp_2546_:
{
lean_object* v_a_2549_; lean_object* v_p_2550_; uint8_t v_strict_2551_; lean_object* v___x_2552_; lean_object* v_a_2554_; 
v_a_2549_ = lean_array_uget_borrowed(v_as_2527_, v_i_2529_);
v_p_2550_ = lean_ctor_get(v_a_2549_, 0);
v_strict_2551_ = lean_ctor_get_uint8(v_a_2549_, sizeof(void*)*2);
v___x_2552_ = lean_box(0);
if (lean_obj_tag(v_p_2550_) == 1)
{
lean_object* v_k_2561_; lean_object* v_p_2562_; lean_object* v___x_2563_; 
v_k_2561_ = lean_ctor_get(v_p_2550_, 0);
v_p_2562_ = lean_ctor_get(v_p_2550_, 2);
lean_inc(v_p_2562_);
v___x_2563_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_2562_, v___y_2531_, v___y_2532_, v___y_2533_, v___y_2534_, v___y_2535_, v___y_2536_, v___y_2537_, v___y_2538_, v___y_2539_, v___y_2540_, v___y_2541_);
if (lean_obj_tag(v___x_2563_) == 0)
{
lean_object* v_a_2564_; 
v_a_2564_ = lean_ctor_get(v___x_2563_, 0);
lean_inc(v_a_2564_);
lean_dec_ref(v___x_2563_);
if (lean_obj_tag(v_a_2564_) == 1)
{
lean_object* v_val_2565_; lean_object* v___x_2567_; uint8_t v_isShared_2568_; uint8_t v_isSharedCheck_2589_; 
v_val_2565_ = lean_ctor_get(v_a_2564_, 0);
v_isSharedCheck_2589_ = !lean_is_exclusive(v_a_2564_);
if (v_isSharedCheck_2589_ == 0)
{
v___x_2567_ = v_a_2564_;
v_isShared_2568_ = v_isSharedCheck_2589_;
goto v_resetjp_2566_;
}
else
{
lean_inc(v_val_2565_);
lean_dec(v_a_2564_);
v___x_2567_ = lean_box(0);
v_isShared_2568_ = v_isSharedCheck_2589_;
goto v_resetjp_2566_;
}
v_resetjp_2566_:
{
lean_object* v___x_2569_; lean_object* v___x_2570_; lean_object* v___x_2571_; uint8_t v___y_2578_; 
v___x_2569_ = l_Rat_neg(v_val_2565_);
lean_inc(v_k_2561_);
v___x_2570_ = l_Rat_ofInt(v_k_2561_);
v___x_2571_ = l_Rat_div(v___x_2569_, v___x_2570_);
lean_dec_ref(v___x_2569_);
if (lean_obj_tag(v_snd_2545_) == 1)
{
lean_object* v_val_2579_; lean_object* v_fst_2580_; lean_object* v_snd_2581_; uint8_t v___x_2582_; uint8_t v___y_2584_; 
v_val_2579_ = lean_ctor_get(v_snd_2545_, 0);
v_fst_2580_ = lean_ctor_get(v_val_2579_, 0);
v_snd_2581_ = lean_ctor_get(v_val_2579_, 1);
lean_inc(v_fst_2580_);
lean_inc_ref(v___x_2571_);
v___x_2582_ = l_Rat_blt(v___x_2571_, v_fst_2580_);
if (v___x_2582_ == 0)
{
uint8_t v___x_2586_; 
v___x_2586_ = l_instDecidableEqRat_decEq(v___x_2571_, v_fst_2580_);
if (v___x_2586_ == 0)
{
v___y_2584_ = v___x_2586_;
goto v___jp_2583_;
}
else
{
v___y_2584_ = v_strict_2551_;
goto v___jp_2583_;
}
}
else
{
v___y_2578_ = v___x_2582_;
goto v___jp_2577_;
}
v___jp_2583_:
{
if (v___y_2584_ == 0)
{
lean_dec_ref(v___x_2571_);
lean_del_object(v___x_2567_);
v_a_2554_ = v_snd_2545_;
goto v___jp_2553_;
}
else
{
uint8_t v_strict_2585_; 
v_strict_2585_ = lean_ctor_get_uint8(v_snd_2581_, sizeof(void*)*2);
if (v_strict_2585_ == 0)
{
lean_dec_ref(v_snd_2545_);
goto v___jp_2572_;
}
else
{
v___y_2578_ = v___x_2582_;
goto v___jp_2577_;
}
}
}
}
else
{
lean_object* v___x_2587_; lean_object* v___x_2588_; 
lean_del_object(v___x_2567_);
lean_dec(v_snd_2545_);
lean_inc(v_a_2549_);
v___x_2587_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2587_, 0, v___x_2571_);
lean_ctor_set(v___x_2587_, 1, v_a_2549_);
v___x_2588_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2588_, 0, v___x_2587_);
v_a_2554_ = v___x_2588_;
goto v___jp_2553_;
}
v___jp_2572_:
{
lean_object* v___x_2573_; lean_object* v___x_2575_; 
lean_inc(v_a_2549_);
v___x_2573_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2573_, 0, v___x_2571_);
lean_ctor_set(v___x_2573_, 1, v_a_2549_);
if (v_isShared_2568_ == 0)
{
lean_ctor_set(v___x_2567_, 0, v___x_2573_);
v___x_2575_ = v___x_2567_;
goto v_reusejp_2574_;
}
else
{
lean_object* v_reuseFailAlloc_2576_; 
v_reuseFailAlloc_2576_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2576_, 0, v___x_2573_);
v___x_2575_ = v_reuseFailAlloc_2576_;
goto v_reusejp_2574_;
}
v_reusejp_2574_:
{
v_a_2554_ = v___x_2575_;
goto v___jp_2553_;
}
}
v___jp_2577_:
{
if (v___y_2578_ == 0)
{
lean_dec_ref(v___x_2571_);
lean_del_object(v___x_2567_);
v_a_2554_ = v_snd_2545_;
goto v___jp_2553_;
}
else
{
lean_dec(v_snd_2545_);
goto v___jp_2572_;
}
}
}
}
else
{
lean_object* v___x_2590_; 
lean_dec(v_a_2564_);
v___x_2590_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_2549_, v___y_2531_, v___y_2532_, v___y_2533_, v___y_2534_, v___y_2535_, v___y_2536_, v___y_2537_, v___y_2538_, v___y_2539_, v___y_2540_, v___y_2541_);
if (lean_obj_tag(v___x_2590_) == 0)
{
lean_dec_ref(v___x_2590_);
v_a_2554_ = v_snd_2545_;
goto v___jp_2553_;
}
else
{
lean_object* v_a_2591_; lean_object* v___x_2593_; uint8_t v_isShared_2594_; uint8_t v_isSharedCheck_2598_; 
lean_del_object(v___x_2547_);
lean_dec(v_snd_2545_);
v_a_2591_ = lean_ctor_get(v___x_2590_, 0);
v_isSharedCheck_2598_ = !lean_is_exclusive(v___x_2590_);
if (v_isSharedCheck_2598_ == 0)
{
v___x_2593_ = v___x_2590_;
v_isShared_2594_ = v_isSharedCheck_2598_;
goto v_resetjp_2592_;
}
else
{
lean_inc(v_a_2591_);
lean_dec(v___x_2590_);
v___x_2593_ = lean_box(0);
v_isShared_2594_ = v_isSharedCheck_2598_;
goto v_resetjp_2592_;
}
v_resetjp_2592_:
{
lean_object* v___x_2596_; 
if (v_isShared_2594_ == 0)
{
v___x_2596_ = v___x_2593_;
goto v_reusejp_2595_;
}
else
{
lean_object* v_reuseFailAlloc_2597_; 
v_reuseFailAlloc_2597_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2597_, 0, v_a_2591_);
v___x_2596_ = v_reuseFailAlloc_2597_;
goto v_reusejp_2595_;
}
v_reusejp_2595_:
{
return v___x_2596_;
}
}
}
}
}
else
{
lean_object* v_a_2599_; lean_object* v___x_2601_; uint8_t v_isShared_2602_; uint8_t v_isSharedCheck_2606_; 
lean_del_object(v___x_2547_);
lean_dec(v_snd_2545_);
v_a_2599_ = lean_ctor_get(v___x_2563_, 0);
v_isSharedCheck_2606_ = !lean_is_exclusive(v___x_2563_);
if (v_isSharedCheck_2606_ == 0)
{
v___x_2601_ = v___x_2563_;
v_isShared_2602_ = v_isSharedCheck_2606_;
goto v_resetjp_2600_;
}
else
{
lean_inc(v_a_2599_);
lean_dec(v___x_2563_);
v___x_2601_ = lean_box(0);
v_isShared_2602_ = v_isSharedCheck_2606_;
goto v_resetjp_2600_;
}
v_resetjp_2600_:
{
lean_object* v___x_2604_; 
if (v_isShared_2602_ == 0)
{
v___x_2604_ = v___x_2601_;
goto v_reusejp_2603_;
}
else
{
lean_object* v_reuseFailAlloc_2605_; 
v_reuseFailAlloc_2605_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2605_, 0, v_a_2599_);
v___x_2604_ = v_reuseFailAlloc_2605_;
goto v_reusejp_2603_;
}
v_reusejp_2603_:
{
return v___x_2604_;
}
}
}
}
else
{
lean_object* v___x_2607_; 
v___x_2607_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_a_2549_, v___y_2531_, v___y_2532_, v___y_2533_, v___y_2534_, v___y_2535_, v___y_2536_, v___y_2537_, v___y_2538_, v___y_2539_, v___y_2540_, v___y_2541_);
if (lean_obj_tag(v___x_2607_) == 0)
{
lean_dec_ref(v___x_2607_);
v_a_2554_ = v_snd_2545_;
goto v___jp_2553_;
}
else
{
lean_object* v_a_2608_; lean_object* v___x_2610_; uint8_t v_isShared_2611_; uint8_t v_isSharedCheck_2615_; 
lean_del_object(v___x_2547_);
lean_dec(v_snd_2545_);
v_a_2608_ = lean_ctor_get(v___x_2607_, 0);
v_isSharedCheck_2615_ = !lean_is_exclusive(v___x_2607_);
if (v_isSharedCheck_2615_ == 0)
{
v___x_2610_ = v___x_2607_;
v_isShared_2611_ = v_isSharedCheck_2615_;
goto v_resetjp_2609_;
}
else
{
lean_inc(v_a_2608_);
lean_dec(v___x_2607_);
v___x_2610_ = lean_box(0);
v_isShared_2611_ = v_isSharedCheck_2615_;
goto v_resetjp_2609_;
}
v_resetjp_2609_:
{
lean_object* v___x_2613_; 
if (v_isShared_2611_ == 0)
{
v___x_2613_ = v___x_2610_;
goto v_reusejp_2612_;
}
else
{
lean_object* v_reuseFailAlloc_2614_; 
v_reuseFailAlloc_2614_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2614_, 0, v_a_2608_);
v___x_2613_ = v_reuseFailAlloc_2614_;
goto v_reusejp_2612_;
}
v_reusejp_2612_:
{
return v___x_2613_;
}
}
}
}
v___jp_2553_:
{
lean_object* v___x_2556_; 
if (v_isShared_2548_ == 0)
{
lean_ctor_set(v___x_2547_, 1, v_a_2554_);
lean_ctor_set(v___x_2547_, 0, v___x_2552_);
v___x_2556_ = v___x_2547_;
goto v_reusejp_2555_;
}
else
{
lean_object* v_reuseFailAlloc_2560_; 
v_reuseFailAlloc_2560_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_2560_, 0, v___x_2552_);
lean_ctor_set(v_reuseFailAlloc_2560_, 1, v_a_2554_);
v___x_2556_ = v_reuseFailAlloc_2560_;
goto v_reusejp_2555_;
}
v_reusejp_2555_:
{
size_t v___x_2557_; size_t v___x_2558_; lean_object* v___x_2559_; 
v___x_2557_ = ((size_t)1ULL);
v___x_2558_ = lean_usize_add(v_i_2529_, v___x_2557_);
v___x_2559_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1_spec__4(v_as_2527_, v_sz_2528_, v___x_2558_, v___x_2556_, v___y_2531_, v___y_2532_, v___y_2533_, v___y_2534_, v___y_2535_, v___y_2536_, v___y_2537_, v___y_2538_, v___y_2539_, v___y_2540_, v___y_2541_);
return v___x_2559_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1___boxed(lean_object* v_as_2618_, lean_object* v_sz_2619_, lean_object* v_i_2620_, lean_object* v_b_2621_, lean_object* v___y_2622_, lean_object* v___y_2623_, lean_object* v___y_2624_, lean_object* v___y_2625_, lean_object* v___y_2626_, lean_object* v___y_2627_, lean_object* v___y_2628_, lean_object* v___y_2629_, lean_object* v___y_2630_, lean_object* v___y_2631_, lean_object* v___y_2632_, lean_object* v___y_2633_){
_start:
{
size_t v_sz_boxed_2634_; size_t v_i_boxed_2635_; lean_object* v_res_2636_; 
v_sz_boxed_2634_ = lean_unbox_usize(v_sz_2619_);
lean_dec(v_sz_2619_);
v_i_boxed_2635_ = lean_unbox_usize(v_i_2620_);
lean_dec(v_i_2620_);
v_res_2636_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1(v_as_2618_, v_sz_boxed_2634_, v_i_boxed_2635_, v_b_2621_, v___y_2622_, v___y_2623_, v___y_2624_, v___y_2625_, v___y_2626_, v___y_2627_, v___y_2628_, v___y_2629_, v___y_2630_, v___y_2631_, v___y_2632_);
lean_dec(v___y_2632_);
lean_dec_ref(v___y_2631_);
lean_dec(v___y_2630_);
lean_dec_ref(v___y_2629_);
lean_dec(v___y_2628_);
lean_dec_ref(v___y_2627_);
lean_dec(v___y_2626_);
lean_dec_ref(v___y_2625_);
lean_dec(v___y_2624_);
lean_dec(v___y_2623_);
lean_dec(v___y_2622_);
lean_dec_ref(v_as_2618_);
return v_res_2636_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0(lean_object* v_t_2637_, lean_object* v_init_2638_, lean_object* v___y_2639_, lean_object* v___y_2640_, lean_object* v___y_2641_, lean_object* v___y_2642_, lean_object* v___y_2643_, lean_object* v___y_2644_, lean_object* v___y_2645_, lean_object* v___y_2646_, lean_object* v___y_2647_, lean_object* v___y_2648_, lean_object* v___y_2649_){
_start:
{
lean_object* v_root_2651_; lean_object* v_tail_2652_; lean_object* v___x_2653_; 
v_root_2651_ = lean_ctor_get(v_t_2637_, 0);
lean_inc_ref(v_root_2651_);
v_tail_2652_ = lean_ctor_get(v_t_2637_, 1);
lean_inc_ref(v_tail_2652_);
lean_dec_ref(v_t_2637_);
lean_inc(v_init_2638_);
v___x_2653_ = l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__0(v_init_2638_, v_root_2651_, v_init_2638_, v___y_2639_, v___y_2640_, v___y_2641_, v___y_2642_, v___y_2643_, v___y_2644_, v___y_2645_, v___y_2646_, v___y_2647_, v___y_2648_, v___y_2649_);
lean_dec(v_init_2638_);
if (lean_obj_tag(v___x_2653_) == 0)
{
lean_object* v_a_2654_; lean_object* v___x_2656_; uint8_t v_isShared_2657_; uint8_t v_isSharedCheck_2690_; 
v_a_2654_ = lean_ctor_get(v___x_2653_, 0);
v_isSharedCheck_2690_ = !lean_is_exclusive(v___x_2653_);
if (v_isSharedCheck_2690_ == 0)
{
v___x_2656_ = v___x_2653_;
v_isShared_2657_ = v_isSharedCheck_2690_;
goto v_resetjp_2655_;
}
else
{
lean_inc(v_a_2654_);
lean_dec(v___x_2653_);
v___x_2656_ = lean_box(0);
v_isShared_2657_ = v_isSharedCheck_2690_;
goto v_resetjp_2655_;
}
v_resetjp_2655_:
{
if (lean_obj_tag(v_a_2654_) == 0)
{
lean_object* v_a_2658_; lean_object* v___x_2660_; 
lean_dec_ref(v_tail_2652_);
v_a_2658_ = lean_ctor_get(v_a_2654_, 0);
lean_inc(v_a_2658_);
lean_dec_ref(v_a_2654_);
if (v_isShared_2657_ == 0)
{
lean_ctor_set(v___x_2656_, 0, v_a_2658_);
v___x_2660_ = v___x_2656_;
goto v_reusejp_2659_;
}
else
{
lean_object* v_reuseFailAlloc_2661_; 
v_reuseFailAlloc_2661_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2661_, 0, v_a_2658_);
v___x_2660_ = v_reuseFailAlloc_2661_;
goto v_reusejp_2659_;
}
v_reusejp_2659_:
{
return v___x_2660_;
}
}
else
{
lean_object* v_a_2662_; lean_object* v___x_2663_; lean_object* v___x_2664_; size_t v_sz_2665_; size_t v___x_2666_; lean_object* v___x_2667_; 
lean_del_object(v___x_2656_);
v_a_2662_ = lean_ctor_get(v_a_2654_, 0);
lean_inc(v_a_2662_);
lean_dec_ref(v_a_2654_);
v___x_2663_ = lean_box(0);
v___x_2664_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2664_, 0, v___x_2663_);
lean_ctor_set(v___x_2664_, 1, v_a_2662_);
v_sz_2665_ = lean_array_size(v_tail_2652_);
v___x_2666_ = ((size_t)0ULL);
v___x_2667_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0_spec__1(v_tail_2652_, v_sz_2665_, v___x_2666_, v___x_2664_, v___y_2639_, v___y_2640_, v___y_2641_, v___y_2642_, v___y_2643_, v___y_2644_, v___y_2645_, v___y_2646_, v___y_2647_, v___y_2648_, v___y_2649_);
lean_dec_ref(v_tail_2652_);
if (lean_obj_tag(v___x_2667_) == 0)
{
lean_object* v_a_2668_; lean_object* v___x_2670_; uint8_t v_isShared_2671_; uint8_t v_isSharedCheck_2681_; 
v_a_2668_ = lean_ctor_get(v___x_2667_, 0);
v_isSharedCheck_2681_ = !lean_is_exclusive(v___x_2667_);
if (v_isSharedCheck_2681_ == 0)
{
v___x_2670_ = v___x_2667_;
v_isShared_2671_ = v_isSharedCheck_2681_;
goto v_resetjp_2669_;
}
else
{
lean_inc(v_a_2668_);
lean_dec(v___x_2667_);
v___x_2670_ = lean_box(0);
v_isShared_2671_ = v_isSharedCheck_2681_;
goto v_resetjp_2669_;
}
v_resetjp_2669_:
{
lean_object* v_fst_2672_; 
v_fst_2672_ = lean_ctor_get(v_a_2668_, 0);
if (lean_obj_tag(v_fst_2672_) == 0)
{
lean_object* v_snd_2673_; lean_object* v___x_2675_; 
v_snd_2673_ = lean_ctor_get(v_a_2668_, 1);
lean_inc(v_snd_2673_);
lean_dec(v_a_2668_);
if (v_isShared_2671_ == 0)
{
lean_ctor_set(v___x_2670_, 0, v_snd_2673_);
v___x_2675_ = v___x_2670_;
goto v_reusejp_2674_;
}
else
{
lean_object* v_reuseFailAlloc_2676_; 
v_reuseFailAlloc_2676_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2676_, 0, v_snd_2673_);
v___x_2675_ = v_reuseFailAlloc_2676_;
goto v_reusejp_2674_;
}
v_reusejp_2674_:
{
return v___x_2675_;
}
}
else
{
lean_object* v_val_2677_; lean_object* v___x_2679_; 
lean_inc_ref(v_fst_2672_);
lean_dec(v_a_2668_);
v_val_2677_ = lean_ctor_get(v_fst_2672_, 0);
lean_inc(v_val_2677_);
lean_dec_ref(v_fst_2672_);
if (v_isShared_2671_ == 0)
{
lean_ctor_set(v___x_2670_, 0, v_val_2677_);
v___x_2679_ = v___x_2670_;
goto v_reusejp_2678_;
}
else
{
lean_object* v_reuseFailAlloc_2680_; 
v_reuseFailAlloc_2680_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2680_, 0, v_val_2677_);
v___x_2679_ = v_reuseFailAlloc_2680_;
goto v_reusejp_2678_;
}
v_reusejp_2678_:
{
return v___x_2679_;
}
}
}
}
else
{
lean_object* v_a_2682_; lean_object* v___x_2684_; uint8_t v_isShared_2685_; uint8_t v_isSharedCheck_2689_; 
v_a_2682_ = lean_ctor_get(v___x_2667_, 0);
v_isSharedCheck_2689_ = !lean_is_exclusive(v___x_2667_);
if (v_isSharedCheck_2689_ == 0)
{
v___x_2684_ = v___x_2667_;
v_isShared_2685_ = v_isSharedCheck_2689_;
goto v_resetjp_2683_;
}
else
{
lean_inc(v_a_2682_);
lean_dec(v___x_2667_);
v___x_2684_ = lean_box(0);
v_isShared_2685_ = v_isSharedCheck_2689_;
goto v_resetjp_2683_;
}
v_resetjp_2683_:
{
lean_object* v___x_2687_; 
if (v_isShared_2685_ == 0)
{
v___x_2687_ = v___x_2684_;
goto v_reusejp_2686_;
}
else
{
lean_object* v_reuseFailAlloc_2688_; 
v_reuseFailAlloc_2688_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2688_, 0, v_a_2682_);
v___x_2687_ = v_reuseFailAlloc_2688_;
goto v_reusejp_2686_;
}
v_reusejp_2686_:
{
return v___x_2687_;
}
}
}
}
}
}
else
{
lean_object* v_a_2691_; lean_object* v___x_2693_; uint8_t v_isShared_2694_; uint8_t v_isSharedCheck_2698_; 
lean_dec_ref(v_tail_2652_);
v_a_2691_ = lean_ctor_get(v___x_2653_, 0);
v_isSharedCheck_2698_ = !lean_is_exclusive(v___x_2653_);
if (v_isSharedCheck_2698_ == 0)
{
v___x_2693_ = v___x_2653_;
v_isShared_2694_ = v_isSharedCheck_2698_;
goto v_resetjp_2692_;
}
else
{
lean_inc(v_a_2691_);
lean_dec(v___x_2653_);
v___x_2693_ = lean_box(0);
v_isShared_2694_ = v_isSharedCheck_2698_;
goto v_resetjp_2692_;
}
v_resetjp_2692_:
{
lean_object* v___x_2696_; 
if (v_isShared_2694_ == 0)
{
v___x_2696_ = v___x_2693_;
goto v_reusejp_2695_;
}
else
{
lean_object* v_reuseFailAlloc_2697_; 
v_reuseFailAlloc_2697_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2697_, 0, v_a_2691_);
v___x_2696_ = v_reuseFailAlloc_2697_;
goto v_reusejp_2695_;
}
v_reusejp_2695_:
{
return v___x_2696_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0___boxed(lean_object* v_t_2699_, lean_object* v_init_2700_, lean_object* v___y_2701_, lean_object* v___y_2702_, lean_object* v___y_2703_, lean_object* v___y_2704_, lean_object* v___y_2705_, lean_object* v___y_2706_, lean_object* v___y_2707_, lean_object* v___y_2708_, lean_object* v___y_2709_, lean_object* v___y_2710_, lean_object* v___y_2711_, lean_object* v___y_2712_){
_start:
{
lean_object* v_res_2713_; 
v_res_2713_ = l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0(v_t_2699_, v_init_2700_, v___y_2701_, v___y_2702_, v___y_2703_, v___y_2704_, v___y_2705_, v___y_2706_, v___y_2707_, v___y_2708_, v___y_2709_, v___y_2710_, v___y_2711_);
lean_dec(v___y_2711_);
lean_dec_ref(v___y_2710_);
lean_dec(v___y_2709_);
lean_dec_ref(v___y_2708_);
lean_dec(v___y_2707_);
lean_dec_ref(v___y_2706_);
lean_dec(v___y_2705_);
lean_dec_ref(v___y_2704_);
lean_dec(v___y_2703_);
lean_dec(v___y_2702_);
lean_dec(v___y_2701_);
return v_res_2713_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f(lean_object* v_x_2714_, lean_object* v_a_2715_, lean_object* v_a_2716_, lean_object* v_a_2717_, lean_object* v_a_2718_, lean_object* v_a_2719_, lean_object* v_a_2720_, lean_object* v_a_2721_, lean_object* v_a_2722_, lean_object* v_a_2723_, lean_object* v_a_2724_, lean_object* v_a_2725_){
_start:
{
lean_object* v___x_2727_; 
v___x_2727_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v_a_2715_, v_a_2716_, v_a_2717_, v_a_2718_, v_a_2719_, v_a_2720_, v_a_2721_, v_a_2722_, v_a_2723_, v_a_2724_, v_a_2725_);
if (lean_obj_tag(v___x_2727_) == 0)
{
lean_object* v_a_2728_; lean_object* v_uppers_2729_; lean_object* v_size_2730_; lean_object* v___x_2731_; lean_object* v___x_2732_; uint8_t v___x_2733_; 
v_a_2728_ = lean_ctor_get(v___x_2727_, 0);
lean_inc(v_a_2728_);
lean_dec_ref(v___x_2727_);
v_uppers_2729_ = lean_ctor_get(v_a_2728_, 33);
lean_inc_ref(v_uppers_2729_);
lean_dec(v_a_2728_);
v_size_2730_ = lean_ctor_get(v_uppers_2729_, 2);
v___x_2731_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0, &l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0);
v___x_2732_ = lean_box(0);
v___x_2733_ = lean_nat_dec_lt(v_x_2714_, v_size_2730_);
if (v___x_2733_ == 0)
{
lean_object* v___x_2734_; lean_object* v___x_2735_; 
lean_dec_ref(v_uppers_2729_);
v___x_2734_ = l_outOfBounds___redArg(v___x_2731_);
v___x_2735_ = l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0(v___x_2734_, v___x_2732_, v_a_2715_, v_a_2716_, v_a_2717_, v_a_2718_, v_a_2719_, v_a_2720_, v_a_2721_, v_a_2722_, v_a_2723_, v_a_2724_, v_a_2725_);
return v___x_2735_;
}
else
{
lean_object* v___x_2736_; lean_object* v___x_2737_; 
v___x_2736_ = l_Lean_PersistentArray_get_x21___redArg(v___x_2731_, v_uppers_2729_, v_x_2714_);
v___x_2737_ = l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f_spec__0(v___x_2736_, v___x_2732_, v_a_2715_, v_a_2716_, v_a_2717_, v_a_2718_, v_a_2719_, v_a_2720_, v_a_2721_, v_a_2722_, v_a_2723_, v_a_2724_, v_a_2725_);
return v___x_2737_;
}
}
else
{
lean_object* v_a_2738_; lean_object* v___x_2740_; uint8_t v_isShared_2741_; uint8_t v_isSharedCheck_2745_; 
v_a_2738_ = lean_ctor_get(v___x_2727_, 0);
v_isSharedCheck_2745_ = !lean_is_exclusive(v___x_2727_);
if (v_isSharedCheck_2745_ == 0)
{
v___x_2740_ = v___x_2727_;
v_isShared_2741_ = v_isSharedCheck_2745_;
goto v_resetjp_2739_;
}
else
{
lean_inc(v_a_2738_);
lean_dec(v___x_2727_);
v___x_2740_ = lean_box(0);
v_isShared_2741_ = v_isSharedCheck_2745_;
goto v_resetjp_2739_;
}
v_resetjp_2739_:
{
lean_object* v___x_2743_; 
if (v_isShared_2741_ == 0)
{
v___x_2743_ = v___x_2740_;
goto v_reusejp_2742_;
}
else
{
lean_object* v_reuseFailAlloc_2744_; 
v_reuseFailAlloc_2744_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2744_, 0, v_a_2738_);
v___x_2743_ = v_reuseFailAlloc_2744_;
goto v_reusejp_2742_;
}
v_reusejp_2742_:
{
return v___x_2743_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f___boxed(lean_object* v_x_2746_, lean_object* v_a_2747_, lean_object* v_a_2748_, lean_object* v_a_2749_, lean_object* v_a_2750_, lean_object* v_a_2751_, lean_object* v_a_2752_, lean_object* v_a_2753_, lean_object* v_a_2754_, lean_object* v_a_2755_, lean_object* v_a_2756_, lean_object* v_a_2757_, lean_object* v_a_2758_){
_start:
{
lean_object* v_res_2759_; 
v_res_2759_ = l_Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f(v_x_2746_, v_a_2747_, v_a_2748_, v_a_2749_, v_a_2750_, v_a_2751_, v_a_2752_, v_a_2753_, v_a_2754_, v_a_2755_, v_a_2756_, v_a_2757_);
lean_dec(v_a_2757_);
lean_dec_ref(v_a_2756_);
lean_dec(v_a_2755_);
lean_dec_ref(v_a_2754_);
lean_dec(v_a_2753_);
lean_dec_ref(v_a_2752_);
lean_dec(v_a_2751_);
lean_dec_ref(v_a_2750_);
lean_dec(v_a_2749_);
lean_dec(v_a_2748_);
lean_dec(v_a_2747_);
lean_dec(v_x_2746_);
return v_res_2759_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1_spec__4(lean_object* v_as_2760_, size_t v_sz_2761_, size_t v_i_2762_, lean_object* v_b_2763_, lean_object* v___y_2764_, lean_object* v___y_2765_, lean_object* v___y_2766_, lean_object* v___y_2767_, lean_object* v___y_2768_, lean_object* v___y_2769_, lean_object* v___y_2770_, lean_object* v___y_2771_, lean_object* v___y_2772_, lean_object* v___y_2773_, lean_object* v___y_2774_){
_start:
{
uint8_t v___x_2776_; 
v___x_2776_ = lean_usize_dec_lt(v_i_2762_, v_sz_2761_);
if (v___x_2776_ == 0)
{
lean_object* v___x_2777_; 
v___x_2777_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2777_, 0, v_b_2763_);
return v___x_2777_;
}
else
{
lean_object* v_snd_2778_; lean_object* v___x_2780_; uint8_t v_isShared_2781_; uint8_t v_isSharedCheck_2829_; 
v_snd_2778_ = lean_ctor_get(v_b_2763_, 1);
v_isSharedCheck_2829_ = !lean_is_exclusive(v_b_2763_);
if (v_isSharedCheck_2829_ == 0)
{
lean_object* v_unused_2830_; 
v_unused_2830_ = lean_ctor_get(v_b_2763_, 0);
lean_dec(v_unused_2830_);
v___x_2780_ = v_b_2763_;
v_isShared_2781_ = v_isSharedCheck_2829_;
goto v_resetjp_2779_;
}
else
{
lean_inc(v_snd_2778_);
lean_dec(v_b_2763_);
v___x_2780_ = lean_box(0);
v_isShared_2781_ = v_isSharedCheck_2829_;
goto v_resetjp_2779_;
}
v_resetjp_2779_:
{
lean_object* v_a_2782_; lean_object* v_p_2783_; lean_object* v___x_2784_; lean_object* v_a_2786_; 
v_a_2782_ = lean_array_uget_borrowed(v_as_2760_, v_i_2762_);
v_p_2783_ = lean_ctor_get(v_a_2782_, 0);
v___x_2784_ = lean_box(0);
if (lean_obj_tag(v_p_2783_) == 1)
{
lean_object* v_k_2793_; lean_object* v_p_2794_; lean_object* v___x_2795_; 
v_k_2793_ = lean_ctor_get(v_p_2783_, 0);
v_p_2794_ = lean_ctor_get(v_p_2783_, 2);
lean_inc(v_p_2794_);
v___x_2795_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_2794_, v___y_2764_, v___y_2765_, v___y_2766_, v___y_2767_, v___y_2768_, v___y_2769_, v___y_2770_, v___y_2771_, v___y_2772_, v___y_2773_, v___y_2774_);
if (lean_obj_tag(v___x_2795_) == 0)
{
lean_object* v_a_2796_; 
v_a_2796_ = lean_ctor_get(v___x_2795_, 0);
lean_inc(v_a_2796_);
lean_dec_ref(v___x_2795_);
if (lean_obj_tag(v_a_2796_) == 1)
{
lean_object* v_val_2797_; lean_object* v___x_2798_; lean_object* v___x_2799_; lean_object* v___x_2800_; lean_object* v___x_2801_; lean_object* v___x_2802_; 
v_val_2797_ = lean_ctor_get(v_a_2796_, 0);
lean_inc(v_val_2797_);
lean_dec_ref(v_a_2796_);
v___x_2798_ = l_Rat_neg(v_val_2797_);
lean_inc(v_k_2793_);
v___x_2799_ = l_Rat_ofInt(v_k_2793_);
v___x_2800_ = l_Rat_div(v___x_2798_, v___x_2799_);
lean_dec_ref(v___x_2798_);
lean_inc(v_a_2782_);
v___x_2801_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2801_, 0, v___x_2800_);
lean_ctor_set(v___x_2801_, 1, v_a_2782_);
v___x_2802_ = lean_array_push(v_snd_2778_, v___x_2801_);
v_a_2786_ = v___x_2802_;
goto v___jp_2785_;
}
else
{
lean_object* v___x_2803_; 
lean_dec(v_a_2796_);
v___x_2803_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_a_2782_, v___y_2764_, v___y_2765_, v___y_2766_, v___y_2767_, v___y_2768_, v___y_2769_, v___y_2770_, v___y_2771_, v___y_2772_, v___y_2773_, v___y_2774_);
if (lean_obj_tag(v___x_2803_) == 0)
{
lean_dec_ref(v___x_2803_);
v_a_2786_ = v_snd_2778_;
goto v___jp_2785_;
}
else
{
lean_object* v_a_2804_; lean_object* v___x_2806_; uint8_t v_isShared_2807_; uint8_t v_isSharedCheck_2811_; 
lean_del_object(v___x_2780_);
lean_dec(v_snd_2778_);
v_a_2804_ = lean_ctor_get(v___x_2803_, 0);
v_isSharedCheck_2811_ = !lean_is_exclusive(v___x_2803_);
if (v_isSharedCheck_2811_ == 0)
{
v___x_2806_ = v___x_2803_;
v_isShared_2807_ = v_isSharedCheck_2811_;
goto v_resetjp_2805_;
}
else
{
lean_inc(v_a_2804_);
lean_dec(v___x_2803_);
v___x_2806_ = lean_box(0);
v_isShared_2807_ = v_isSharedCheck_2811_;
goto v_resetjp_2805_;
}
v_resetjp_2805_:
{
lean_object* v___x_2809_; 
if (v_isShared_2807_ == 0)
{
v___x_2809_ = v___x_2806_;
goto v_reusejp_2808_;
}
else
{
lean_object* v_reuseFailAlloc_2810_; 
v_reuseFailAlloc_2810_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2810_, 0, v_a_2804_);
v___x_2809_ = v_reuseFailAlloc_2810_;
goto v_reusejp_2808_;
}
v_reusejp_2808_:
{
return v___x_2809_;
}
}
}
}
}
else
{
lean_object* v_a_2812_; lean_object* v___x_2814_; uint8_t v_isShared_2815_; uint8_t v_isSharedCheck_2819_; 
lean_del_object(v___x_2780_);
lean_dec(v_snd_2778_);
v_a_2812_ = lean_ctor_get(v___x_2795_, 0);
v_isSharedCheck_2819_ = !lean_is_exclusive(v___x_2795_);
if (v_isSharedCheck_2819_ == 0)
{
v___x_2814_ = v___x_2795_;
v_isShared_2815_ = v_isSharedCheck_2819_;
goto v_resetjp_2813_;
}
else
{
lean_inc(v_a_2812_);
lean_dec(v___x_2795_);
v___x_2814_ = lean_box(0);
v_isShared_2815_ = v_isSharedCheck_2819_;
goto v_resetjp_2813_;
}
v_resetjp_2813_:
{
lean_object* v___x_2817_; 
if (v_isShared_2815_ == 0)
{
v___x_2817_ = v___x_2814_;
goto v_reusejp_2816_;
}
else
{
lean_object* v_reuseFailAlloc_2818_; 
v_reuseFailAlloc_2818_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2818_, 0, v_a_2812_);
v___x_2817_ = v_reuseFailAlloc_2818_;
goto v_reusejp_2816_;
}
v_reusejp_2816_:
{
return v___x_2817_;
}
}
}
}
else
{
lean_object* v___x_2820_; 
v___x_2820_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_a_2782_, v___y_2764_, v___y_2765_, v___y_2766_, v___y_2767_, v___y_2768_, v___y_2769_, v___y_2770_, v___y_2771_, v___y_2772_, v___y_2773_, v___y_2774_);
if (lean_obj_tag(v___x_2820_) == 0)
{
lean_dec_ref(v___x_2820_);
v_a_2786_ = v_snd_2778_;
goto v___jp_2785_;
}
else
{
lean_object* v_a_2821_; lean_object* v___x_2823_; uint8_t v_isShared_2824_; uint8_t v_isSharedCheck_2828_; 
lean_del_object(v___x_2780_);
lean_dec(v_snd_2778_);
v_a_2821_ = lean_ctor_get(v___x_2820_, 0);
v_isSharedCheck_2828_ = !lean_is_exclusive(v___x_2820_);
if (v_isSharedCheck_2828_ == 0)
{
v___x_2823_ = v___x_2820_;
v_isShared_2824_ = v_isSharedCheck_2828_;
goto v_resetjp_2822_;
}
else
{
lean_inc(v_a_2821_);
lean_dec(v___x_2820_);
v___x_2823_ = lean_box(0);
v_isShared_2824_ = v_isSharedCheck_2828_;
goto v_resetjp_2822_;
}
v_resetjp_2822_:
{
lean_object* v___x_2826_; 
if (v_isShared_2824_ == 0)
{
v___x_2826_ = v___x_2823_;
goto v_reusejp_2825_;
}
else
{
lean_object* v_reuseFailAlloc_2827_; 
v_reuseFailAlloc_2827_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2827_, 0, v_a_2821_);
v___x_2826_ = v_reuseFailAlloc_2827_;
goto v_reusejp_2825_;
}
v_reusejp_2825_:
{
return v___x_2826_;
}
}
}
}
v___jp_2785_:
{
lean_object* v___x_2788_; 
if (v_isShared_2781_ == 0)
{
lean_ctor_set(v___x_2780_, 1, v_a_2786_);
lean_ctor_set(v___x_2780_, 0, v___x_2784_);
v___x_2788_ = v___x_2780_;
goto v_reusejp_2787_;
}
else
{
lean_object* v_reuseFailAlloc_2792_; 
v_reuseFailAlloc_2792_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_2792_, 0, v___x_2784_);
lean_ctor_set(v_reuseFailAlloc_2792_, 1, v_a_2786_);
v___x_2788_ = v_reuseFailAlloc_2792_;
goto v_reusejp_2787_;
}
v_reusejp_2787_:
{
size_t v___x_2789_; size_t v___x_2790_; 
v___x_2789_ = ((size_t)1ULL);
v___x_2790_ = lean_usize_add(v_i_2762_, v___x_2789_);
v_i_2762_ = v___x_2790_;
v_b_2763_ = v___x_2788_;
goto _start;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1_spec__4___boxed(lean_object* v_as_2831_, lean_object* v_sz_2832_, lean_object* v_i_2833_, lean_object* v_b_2834_, lean_object* v___y_2835_, lean_object* v___y_2836_, lean_object* v___y_2837_, lean_object* v___y_2838_, lean_object* v___y_2839_, lean_object* v___y_2840_, lean_object* v___y_2841_, lean_object* v___y_2842_, lean_object* v___y_2843_, lean_object* v___y_2844_, lean_object* v___y_2845_, lean_object* v___y_2846_){
_start:
{
size_t v_sz_boxed_2847_; size_t v_i_boxed_2848_; lean_object* v_res_2849_; 
v_sz_boxed_2847_ = lean_unbox_usize(v_sz_2832_);
lean_dec(v_sz_2832_);
v_i_boxed_2848_ = lean_unbox_usize(v_i_2833_);
lean_dec(v_i_2833_);
v_res_2849_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1_spec__4(v_as_2831_, v_sz_boxed_2847_, v_i_boxed_2848_, v_b_2834_, v___y_2835_, v___y_2836_, v___y_2837_, v___y_2838_, v___y_2839_, v___y_2840_, v___y_2841_, v___y_2842_, v___y_2843_, v___y_2844_, v___y_2845_);
lean_dec(v___y_2845_);
lean_dec_ref(v___y_2844_);
lean_dec(v___y_2843_);
lean_dec_ref(v___y_2842_);
lean_dec(v___y_2841_);
lean_dec_ref(v___y_2840_);
lean_dec(v___y_2839_);
lean_dec_ref(v___y_2838_);
lean_dec(v___y_2837_);
lean_dec(v___y_2836_);
lean_dec(v___y_2835_);
lean_dec_ref(v_as_2831_);
return v_res_2849_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1(lean_object* v_as_2850_, size_t v_sz_2851_, size_t v_i_2852_, lean_object* v_b_2853_, lean_object* v___y_2854_, lean_object* v___y_2855_, lean_object* v___y_2856_, lean_object* v___y_2857_, lean_object* v___y_2858_, lean_object* v___y_2859_, lean_object* v___y_2860_, lean_object* v___y_2861_, lean_object* v___y_2862_, lean_object* v___y_2863_, lean_object* v___y_2864_){
_start:
{
uint8_t v___x_2866_; 
v___x_2866_ = lean_usize_dec_lt(v_i_2852_, v_sz_2851_);
if (v___x_2866_ == 0)
{
lean_object* v___x_2867_; 
v___x_2867_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2867_, 0, v_b_2853_);
return v___x_2867_;
}
else
{
lean_object* v_snd_2868_; lean_object* v___x_2870_; uint8_t v_isShared_2871_; uint8_t v_isSharedCheck_2919_; 
v_snd_2868_ = lean_ctor_get(v_b_2853_, 1);
v_isSharedCheck_2919_ = !lean_is_exclusive(v_b_2853_);
if (v_isSharedCheck_2919_ == 0)
{
lean_object* v_unused_2920_; 
v_unused_2920_ = lean_ctor_get(v_b_2853_, 0);
lean_dec(v_unused_2920_);
v___x_2870_ = v_b_2853_;
v_isShared_2871_ = v_isSharedCheck_2919_;
goto v_resetjp_2869_;
}
else
{
lean_inc(v_snd_2868_);
lean_dec(v_b_2853_);
v___x_2870_ = lean_box(0);
v_isShared_2871_ = v_isSharedCheck_2919_;
goto v_resetjp_2869_;
}
v_resetjp_2869_:
{
lean_object* v_a_2872_; lean_object* v_p_2873_; lean_object* v___x_2874_; lean_object* v_a_2876_; 
v_a_2872_ = lean_array_uget_borrowed(v_as_2850_, v_i_2852_);
v_p_2873_ = lean_ctor_get(v_a_2872_, 0);
v___x_2874_ = lean_box(0);
if (lean_obj_tag(v_p_2873_) == 1)
{
lean_object* v_k_2883_; lean_object* v_p_2884_; lean_object* v___x_2885_; 
v_k_2883_ = lean_ctor_get(v_p_2873_, 0);
v_p_2884_ = lean_ctor_get(v_p_2873_, 2);
lean_inc(v_p_2884_);
v___x_2885_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_2884_, v___y_2854_, v___y_2855_, v___y_2856_, v___y_2857_, v___y_2858_, v___y_2859_, v___y_2860_, v___y_2861_, v___y_2862_, v___y_2863_, v___y_2864_);
if (lean_obj_tag(v___x_2885_) == 0)
{
lean_object* v_a_2886_; 
v_a_2886_ = lean_ctor_get(v___x_2885_, 0);
lean_inc(v_a_2886_);
lean_dec_ref(v___x_2885_);
if (lean_obj_tag(v_a_2886_) == 1)
{
lean_object* v_val_2887_; lean_object* v___x_2888_; lean_object* v___x_2889_; lean_object* v___x_2890_; lean_object* v___x_2891_; lean_object* v___x_2892_; 
v_val_2887_ = lean_ctor_get(v_a_2886_, 0);
lean_inc(v_val_2887_);
lean_dec_ref(v_a_2886_);
v___x_2888_ = l_Rat_neg(v_val_2887_);
lean_inc(v_k_2883_);
v___x_2889_ = l_Rat_ofInt(v_k_2883_);
v___x_2890_ = l_Rat_div(v___x_2888_, v___x_2889_);
lean_dec_ref(v___x_2888_);
lean_inc(v_a_2872_);
v___x_2891_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2891_, 0, v___x_2890_);
lean_ctor_set(v___x_2891_, 1, v_a_2872_);
v___x_2892_ = lean_array_push(v_snd_2868_, v___x_2891_);
v_a_2876_ = v___x_2892_;
goto v___jp_2875_;
}
else
{
lean_object* v___x_2893_; 
lean_dec(v_a_2886_);
v___x_2893_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_a_2872_, v___y_2854_, v___y_2855_, v___y_2856_, v___y_2857_, v___y_2858_, v___y_2859_, v___y_2860_, v___y_2861_, v___y_2862_, v___y_2863_, v___y_2864_);
if (lean_obj_tag(v___x_2893_) == 0)
{
lean_dec_ref(v___x_2893_);
v_a_2876_ = v_snd_2868_;
goto v___jp_2875_;
}
else
{
lean_object* v_a_2894_; lean_object* v___x_2896_; uint8_t v_isShared_2897_; uint8_t v_isSharedCheck_2901_; 
lean_del_object(v___x_2870_);
lean_dec(v_snd_2868_);
v_a_2894_ = lean_ctor_get(v___x_2893_, 0);
v_isSharedCheck_2901_ = !lean_is_exclusive(v___x_2893_);
if (v_isSharedCheck_2901_ == 0)
{
v___x_2896_ = v___x_2893_;
v_isShared_2897_ = v_isSharedCheck_2901_;
goto v_resetjp_2895_;
}
else
{
lean_inc(v_a_2894_);
lean_dec(v___x_2893_);
v___x_2896_ = lean_box(0);
v_isShared_2897_ = v_isSharedCheck_2901_;
goto v_resetjp_2895_;
}
v_resetjp_2895_:
{
lean_object* v___x_2899_; 
if (v_isShared_2897_ == 0)
{
v___x_2899_ = v___x_2896_;
goto v_reusejp_2898_;
}
else
{
lean_object* v_reuseFailAlloc_2900_; 
v_reuseFailAlloc_2900_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2900_, 0, v_a_2894_);
v___x_2899_ = v_reuseFailAlloc_2900_;
goto v_reusejp_2898_;
}
v_reusejp_2898_:
{
return v___x_2899_;
}
}
}
}
}
else
{
lean_object* v_a_2902_; lean_object* v___x_2904_; uint8_t v_isShared_2905_; uint8_t v_isSharedCheck_2909_; 
lean_del_object(v___x_2870_);
lean_dec(v_snd_2868_);
v_a_2902_ = lean_ctor_get(v___x_2885_, 0);
v_isSharedCheck_2909_ = !lean_is_exclusive(v___x_2885_);
if (v_isSharedCheck_2909_ == 0)
{
v___x_2904_ = v___x_2885_;
v_isShared_2905_ = v_isSharedCheck_2909_;
goto v_resetjp_2903_;
}
else
{
lean_inc(v_a_2902_);
lean_dec(v___x_2885_);
v___x_2904_ = lean_box(0);
v_isShared_2905_ = v_isSharedCheck_2909_;
goto v_resetjp_2903_;
}
v_resetjp_2903_:
{
lean_object* v___x_2907_; 
if (v_isShared_2905_ == 0)
{
v___x_2907_ = v___x_2904_;
goto v_reusejp_2906_;
}
else
{
lean_object* v_reuseFailAlloc_2908_; 
v_reuseFailAlloc_2908_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2908_, 0, v_a_2902_);
v___x_2907_ = v_reuseFailAlloc_2908_;
goto v_reusejp_2906_;
}
v_reusejp_2906_:
{
return v___x_2907_;
}
}
}
}
else
{
lean_object* v___x_2910_; 
v___x_2910_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_a_2872_, v___y_2854_, v___y_2855_, v___y_2856_, v___y_2857_, v___y_2858_, v___y_2859_, v___y_2860_, v___y_2861_, v___y_2862_, v___y_2863_, v___y_2864_);
if (lean_obj_tag(v___x_2910_) == 0)
{
lean_dec_ref(v___x_2910_);
v_a_2876_ = v_snd_2868_;
goto v___jp_2875_;
}
else
{
lean_object* v_a_2911_; lean_object* v___x_2913_; uint8_t v_isShared_2914_; uint8_t v_isSharedCheck_2918_; 
lean_del_object(v___x_2870_);
lean_dec(v_snd_2868_);
v_a_2911_ = lean_ctor_get(v___x_2910_, 0);
v_isSharedCheck_2918_ = !lean_is_exclusive(v___x_2910_);
if (v_isSharedCheck_2918_ == 0)
{
v___x_2913_ = v___x_2910_;
v_isShared_2914_ = v_isSharedCheck_2918_;
goto v_resetjp_2912_;
}
else
{
lean_inc(v_a_2911_);
lean_dec(v___x_2910_);
v___x_2913_ = lean_box(0);
v_isShared_2914_ = v_isSharedCheck_2918_;
goto v_resetjp_2912_;
}
v_resetjp_2912_:
{
lean_object* v___x_2916_; 
if (v_isShared_2914_ == 0)
{
v___x_2916_ = v___x_2913_;
goto v_reusejp_2915_;
}
else
{
lean_object* v_reuseFailAlloc_2917_; 
v_reuseFailAlloc_2917_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2917_, 0, v_a_2911_);
v___x_2916_ = v_reuseFailAlloc_2917_;
goto v_reusejp_2915_;
}
v_reusejp_2915_:
{
return v___x_2916_;
}
}
}
}
v___jp_2875_:
{
lean_object* v___x_2878_; 
if (v_isShared_2871_ == 0)
{
lean_ctor_set(v___x_2870_, 1, v_a_2876_);
lean_ctor_set(v___x_2870_, 0, v___x_2874_);
v___x_2878_ = v___x_2870_;
goto v_reusejp_2877_;
}
else
{
lean_object* v_reuseFailAlloc_2882_; 
v_reuseFailAlloc_2882_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_2882_, 0, v___x_2874_);
lean_ctor_set(v_reuseFailAlloc_2882_, 1, v_a_2876_);
v___x_2878_ = v_reuseFailAlloc_2882_;
goto v_reusejp_2877_;
}
v_reusejp_2877_:
{
size_t v___x_2879_; size_t v___x_2880_; lean_object* v___x_2881_; 
v___x_2879_ = ((size_t)1ULL);
v___x_2880_ = lean_usize_add(v_i_2852_, v___x_2879_);
v___x_2881_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1_spec__4(v_as_2850_, v_sz_2851_, v___x_2880_, v___x_2878_, v___y_2854_, v___y_2855_, v___y_2856_, v___y_2857_, v___y_2858_, v___y_2859_, v___y_2860_, v___y_2861_, v___y_2862_, v___y_2863_, v___y_2864_);
return v___x_2881_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1___boxed(lean_object* v_as_2921_, lean_object* v_sz_2922_, lean_object* v_i_2923_, lean_object* v_b_2924_, lean_object* v___y_2925_, lean_object* v___y_2926_, lean_object* v___y_2927_, lean_object* v___y_2928_, lean_object* v___y_2929_, lean_object* v___y_2930_, lean_object* v___y_2931_, lean_object* v___y_2932_, lean_object* v___y_2933_, lean_object* v___y_2934_, lean_object* v___y_2935_, lean_object* v___y_2936_){
_start:
{
size_t v_sz_boxed_2937_; size_t v_i_boxed_2938_; lean_object* v_res_2939_; 
v_sz_boxed_2937_ = lean_unbox_usize(v_sz_2922_);
lean_dec(v_sz_2922_);
v_i_boxed_2938_ = lean_unbox_usize(v_i_2923_);
lean_dec(v_i_2923_);
v_res_2939_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1(v_as_2921_, v_sz_boxed_2937_, v_i_boxed_2938_, v_b_2924_, v___y_2925_, v___y_2926_, v___y_2927_, v___y_2928_, v___y_2929_, v___y_2930_, v___y_2931_, v___y_2932_, v___y_2933_, v___y_2934_, v___y_2935_);
lean_dec(v___y_2935_);
lean_dec_ref(v___y_2934_);
lean_dec(v___y_2933_);
lean_dec_ref(v___y_2932_);
lean_dec(v___y_2931_);
lean_dec_ref(v___y_2930_);
lean_dec(v___y_2929_);
lean_dec_ref(v___y_2928_);
lean_dec(v___y_2927_);
lean_dec(v___y_2926_);
lean_dec(v___y_2925_);
lean_dec_ref(v_as_2921_);
return v_res_2939_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2_spec__3(lean_object* v_as_2940_, size_t v_sz_2941_, size_t v_i_2942_, lean_object* v_b_2943_, lean_object* v___y_2944_, lean_object* v___y_2945_, lean_object* v___y_2946_, lean_object* v___y_2947_, lean_object* v___y_2948_, lean_object* v___y_2949_, lean_object* v___y_2950_, lean_object* v___y_2951_, lean_object* v___y_2952_, lean_object* v___y_2953_, lean_object* v___y_2954_){
_start:
{
uint8_t v___x_2956_; 
v___x_2956_ = lean_usize_dec_lt(v_i_2942_, v_sz_2941_);
if (v___x_2956_ == 0)
{
lean_object* v___x_2957_; 
v___x_2957_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2957_, 0, v_b_2943_);
return v___x_2957_;
}
else
{
lean_object* v_snd_2958_; lean_object* v___x_2960_; uint8_t v_isShared_2961_; uint8_t v_isSharedCheck_3009_; 
v_snd_2958_ = lean_ctor_get(v_b_2943_, 1);
v_isSharedCheck_3009_ = !lean_is_exclusive(v_b_2943_);
if (v_isSharedCheck_3009_ == 0)
{
lean_object* v_unused_3010_; 
v_unused_3010_ = lean_ctor_get(v_b_2943_, 0);
lean_dec(v_unused_3010_);
v___x_2960_ = v_b_2943_;
v_isShared_2961_ = v_isSharedCheck_3009_;
goto v_resetjp_2959_;
}
else
{
lean_inc(v_snd_2958_);
lean_dec(v_b_2943_);
v___x_2960_ = lean_box(0);
v_isShared_2961_ = v_isSharedCheck_3009_;
goto v_resetjp_2959_;
}
v_resetjp_2959_:
{
lean_object* v_a_2962_; lean_object* v_p_2963_; lean_object* v___x_2964_; lean_object* v_a_2966_; 
v_a_2962_ = lean_array_uget_borrowed(v_as_2940_, v_i_2942_);
v_p_2963_ = lean_ctor_get(v_a_2962_, 0);
v___x_2964_ = lean_box(0);
if (lean_obj_tag(v_p_2963_) == 1)
{
lean_object* v_k_2973_; lean_object* v_p_2974_; lean_object* v___x_2975_; 
v_k_2973_ = lean_ctor_get(v_p_2963_, 0);
v_p_2974_ = lean_ctor_get(v_p_2963_, 2);
lean_inc(v_p_2974_);
v___x_2975_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_2974_, v___y_2944_, v___y_2945_, v___y_2946_, v___y_2947_, v___y_2948_, v___y_2949_, v___y_2950_, v___y_2951_, v___y_2952_, v___y_2953_, v___y_2954_);
if (lean_obj_tag(v___x_2975_) == 0)
{
lean_object* v_a_2976_; 
v_a_2976_ = lean_ctor_get(v___x_2975_, 0);
lean_inc(v_a_2976_);
lean_dec_ref(v___x_2975_);
if (lean_obj_tag(v_a_2976_) == 1)
{
lean_object* v_val_2977_; lean_object* v___x_2978_; lean_object* v___x_2979_; lean_object* v___x_2980_; lean_object* v___x_2981_; lean_object* v___x_2982_; 
v_val_2977_ = lean_ctor_get(v_a_2976_, 0);
lean_inc(v_val_2977_);
lean_dec_ref(v_a_2976_);
v___x_2978_ = l_Rat_neg(v_val_2977_);
lean_inc(v_k_2973_);
v___x_2979_ = l_Rat_ofInt(v_k_2973_);
v___x_2980_ = l_Rat_div(v___x_2978_, v___x_2979_);
lean_dec_ref(v___x_2978_);
lean_inc(v_a_2962_);
v___x_2981_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_2981_, 0, v___x_2980_);
lean_ctor_set(v___x_2981_, 1, v_a_2962_);
v___x_2982_ = lean_array_push(v_snd_2958_, v___x_2981_);
v_a_2966_ = v___x_2982_;
goto v___jp_2965_;
}
else
{
lean_object* v___x_2983_; 
lean_dec(v_a_2976_);
v___x_2983_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_a_2962_, v___y_2944_, v___y_2945_, v___y_2946_, v___y_2947_, v___y_2948_, v___y_2949_, v___y_2950_, v___y_2951_, v___y_2952_, v___y_2953_, v___y_2954_);
if (lean_obj_tag(v___x_2983_) == 0)
{
lean_dec_ref(v___x_2983_);
v_a_2966_ = v_snd_2958_;
goto v___jp_2965_;
}
else
{
lean_object* v_a_2984_; lean_object* v___x_2986_; uint8_t v_isShared_2987_; uint8_t v_isSharedCheck_2991_; 
lean_del_object(v___x_2960_);
lean_dec(v_snd_2958_);
v_a_2984_ = lean_ctor_get(v___x_2983_, 0);
v_isSharedCheck_2991_ = !lean_is_exclusive(v___x_2983_);
if (v_isSharedCheck_2991_ == 0)
{
v___x_2986_ = v___x_2983_;
v_isShared_2987_ = v_isSharedCheck_2991_;
goto v_resetjp_2985_;
}
else
{
lean_inc(v_a_2984_);
lean_dec(v___x_2983_);
v___x_2986_ = lean_box(0);
v_isShared_2987_ = v_isSharedCheck_2991_;
goto v_resetjp_2985_;
}
v_resetjp_2985_:
{
lean_object* v___x_2989_; 
if (v_isShared_2987_ == 0)
{
v___x_2989_ = v___x_2986_;
goto v_reusejp_2988_;
}
else
{
lean_object* v_reuseFailAlloc_2990_; 
v_reuseFailAlloc_2990_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2990_, 0, v_a_2984_);
v___x_2989_ = v_reuseFailAlloc_2990_;
goto v_reusejp_2988_;
}
v_reusejp_2988_:
{
return v___x_2989_;
}
}
}
}
}
else
{
lean_object* v_a_2992_; lean_object* v___x_2994_; uint8_t v_isShared_2995_; uint8_t v_isSharedCheck_2999_; 
lean_del_object(v___x_2960_);
lean_dec(v_snd_2958_);
v_a_2992_ = lean_ctor_get(v___x_2975_, 0);
v_isSharedCheck_2999_ = !lean_is_exclusive(v___x_2975_);
if (v_isSharedCheck_2999_ == 0)
{
v___x_2994_ = v___x_2975_;
v_isShared_2995_ = v_isSharedCheck_2999_;
goto v_resetjp_2993_;
}
else
{
lean_inc(v_a_2992_);
lean_dec(v___x_2975_);
v___x_2994_ = lean_box(0);
v_isShared_2995_ = v_isSharedCheck_2999_;
goto v_resetjp_2993_;
}
v_resetjp_2993_:
{
lean_object* v___x_2997_; 
if (v_isShared_2995_ == 0)
{
v___x_2997_ = v___x_2994_;
goto v_reusejp_2996_;
}
else
{
lean_object* v_reuseFailAlloc_2998_; 
v_reuseFailAlloc_2998_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2998_, 0, v_a_2992_);
v___x_2997_ = v_reuseFailAlloc_2998_;
goto v_reusejp_2996_;
}
v_reusejp_2996_:
{
return v___x_2997_;
}
}
}
}
else
{
lean_object* v___x_3000_; 
v___x_3000_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_a_2962_, v___y_2944_, v___y_2945_, v___y_2946_, v___y_2947_, v___y_2948_, v___y_2949_, v___y_2950_, v___y_2951_, v___y_2952_, v___y_2953_, v___y_2954_);
if (lean_obj_tag(v___x_3000_) == 0)
{
lean_dec_ref(v___x_3000_);
v_a_2966_ = v_snd_2958_;
goto v___jp_2965_;
}
else
{
lean_object* v_a_3001_; lean_object* v___x_3003_; uint8_t v_isShared_3004_; uint8_t v_isSharedCheck_3008_; 
lean_del_object(v___x_2960_);
lean_dec(v_snd_2958_);
v_a_3001_ = lean_ctor_get(v___x_3000_, 0);
v_isSharedCheck_3008_ = !lean_is_exclusive(v___x_3000_);
if (v_isSharedCheck_3008_ == 0)
{
v___x_3003_ = v___x_3000_;
v_isShared_3004_ = v_isSharedCheck_3008_;
goto v_resetjp_3002_;
}
else
{
lean_inc(v_a_3001_);
lean_dec(v___x_3000_);
v___x_3003_ = lean_box(0);
v_isShared_3004_ = v_isSharedCheck_3008_;
goto v_resetjp_3002_;
}
v_resetjp_3002_:
{
lean_object* v___x_3006_; 
if (v_isShared_3004_ == 0)
{
v___x_3006_ = v___x_3003_;
goto v_reusejp_3005_;
}
else
{
lean_object* v_reuseFailAlloc_3007_; 
v_reuseFailAlloc_3007_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3007_, 0, v_a_3001_);
v___x_3006_ = v_reuseFailAlloc_3007_;
goto v_reusejp_3005_;
}
v_reusejp_3005_:
{
return v___x_3006_;
}
}
}
}
v___jp_2965_:
{
lean_object* v___x_2968_; 
if (v_isShared_2961_ == 0)
{
lean_ctor_set(v___x_2960_, 1, v_a_2966_);
lean_ctor_set(v___x_2960_, 0, v___x_2964_);
v___x_2968_ = v___x_2960_;
goto v_reusejp_2967_;
}
else
{
lean_object* v_reuseFailAlloc_2972_; 
v_reuseFailAlloc_2972_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_2972_, 0, v___x_2964_);
lean_ctor_set(v_reuseFailAlloc_2972_, 1, v_a_2966_);
v___x_2968_ = v_reuseFailAlloc_2972_;
goto v_reusejp_2967_;
}
v_reusejp_2967_:
{
size_t v___x_2969_; size_t v___x_2970_; 
v___x_2969_ = ((size_t)1ULL);
v___x_2970_ = lean_usize_add(v_i_2942_, v___x_2969_);
v_i_2942_ = v___x_2970_;
v_b_2943_ = v___x_2968_;
goto _start;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2_spec__3___boxed(lean_object* v_as_3011_, lean_object* v_sz_3012_, lean_object* v_i_3013_, lean_object* v_b_3014_, lean_object* v___y_3015_, lean_object* v___y_3016_, lean_object* v___y_3017_, lean_object* v___y_3018_, lean_object* v___y_3019_, lean_object* v___y_3020_, lean_object* v___y_3021_, lean_object* v___y_3022_, lean_object* v___y_3023_, lean_object* v___y_3024_, lean_object* v___y_3025_, lean_object* v___y_3026_){
_start:
{
size_t v_sz_boxed_3027_; size_t v_i_boxed_3028_; lean_object* v_res_3029_; 
v_sz_boxed_3027_ = lean_unbox_usize(v_sz_3012_);
lean_dec(v_sz_3012_);
v_i_boxed_3028_ = lean_unbox_usize(v_i_3013_);
lean_dec(v_i_3013_);
v_res_3029_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2_spec__3(v_as_3011_, v_sz_boxed_3027_, v_i_boxed_3028_, v_b_3014_, v___y_3015_, v___y_3016_, v___y_3017_, v___y_3018_, v___y_3019_, v___y_3020_, v___y_3021_, v___y_3022_, v___y_3023_, v___y_3024_, v___y_3025_);
lean_dec(v___y_3025_);
lean_dec_ref(v___y_3024_);
lean_dec(v___y_3023_);
lean_dec_ref(v___y_3022_);
lean_dec(v___y_3021_);
lean_dec_ref(v___y_3020_);
lean_dec(v___y_3019_);
lean_dec_ref(v___y_3018_);
lean_dec(v___y_3017_);
lean_dec(v___y_3016_);
lean_dec(v___y_3015_);
lean_dec_ref(v_as_3011_);
return v_res_3029_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2(lean_object* v_as_3030_, size_t v_sz_3031_, size_t v_i_3032_, lean_object* v_b_3033_, lean_object* v___y_3034_, lean_object* v___y_3035_, lean_object* v___y_3036_, lean_object* v___y_3037_, lean_object* v___y_3038_, lean_object* v___y_3039_, lean_object* v___y_3040_, lean_object* v___y_3041_, lean_object* v___y_3042_, lean_object* v___y_3043_, lean_object* v___y_3044_){
_start:
{
uint8_t v___x_3046_; 
v___x_3046_ = lean_usize_dec_lt(v_i_3032_, v_sz_3031_);
if (v___x_3046_ == 0)
{
lean_object* v___x_3047_; 
v___x_3047_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3047_, 0, v_b_3033_);
return v___x_3047_;
}
else
{
lean_object* v_snd_3048_; lean_object* v___x_3050_; uint8_t v_isShared_3051_; uint8_t v_isSharedCheck_3099_; 
v_snd_3048_ = lean_ctor_get(v_b_3033_, 1);
v_isSharedCheck_3099_ = !lean_is_exclusive(v_b_3033_);
if (v_isSharedCheck_3099_ == 0)
{
lean_object* v_unused_3100_; 
v_unused_3100_ = lean_ctor_get(v_b_3033_, 0);
lean_dec(v_unused_3100_);
v___x_3050_ = v_b_3033_;
v_isShared_3051_ = v_isSharedCheck_3099_;
goto v_resetjp_3049_;
}
else
{
lean_inc(v_snd_3048_);
lean_dec(v_b_3033_);
v___x_3050_ = lean_box(0);
v_isShared_3051_ = v_isSharedCheck_3099_;
goto v_resetjp_3049_;
}
v_resetjp_3049_:
{
lean_object* v_a_3052_; lean_object* v_p_3053_; lean_object* v___x_3054_; lean_object* v_a_3056_; 
v_a_3052_ = lean_array_uget_borrowed(v_as_3030_, v_i_3032_);
v_p_3053_ = lean_ctor_get(v_a_3052_, 0);
v___x_3054_ = lean_box(0);
if (lean_obj_tag(v_p_3053_) == 1)
{
lean_object* v_k_3063_; lean_object* v_p_3064_; lean_object* v___x_3065_; 
v_k_3063_ = lean_ctor_get(v_p_3053_, 0);
v_p_3064_ = lean_ctor_get(v_p_3053_, 2);
lean_inc(v_p_3064_);
v___x_3065_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v_p_3064_, v___y_3034_, v___y_3035_, v___y_3036_, v___y_3037_, v___y_3038_, v___y_3039_, v___y_3040_, v___y_3041_, v___y_3042_, v___y_3043_, v___y_3044_);
if (lean_obj_tag(v___x_3065_) == 0)
{
lean_object* v_a_3066_; 
v_a_3066_ = lean_ctor_get(v___x_3065_, 0);
lean_inc(v_a_3066_);
lean_dec_ref(v___x_3065_);
if (lean_obj_tag(v_a_3066_) == 1)
{
lean_object* v_val_3067_; lean_object* v___x_3068_; lean_object* v___x_3069_; lean_object* v___x_3070_; lean_object* v___x_3071_; lean_object* v___x_3072_; 
v_val_3067_ = lean_ctor_get(v_a_3066_, 0);
lean_inc(v_val_3067_);
lean_dec_ref(v_a_3066_);
v___x_3068_ = l_Rat_neg(v_val_3067_);
lean_inc(v_k_3063_);
v___x_3069_ = l_Rat_ofInt(v_k_3063_);
v___x_3070_ = l_Rat_div(v___x_3068_, v___x_3069_);
lean_dec_ref(v___x_3068_);
lean_inc(v_a_3052_);
v___x_3071_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_3071_, 0, v___x_3070_);
lean_ctor_set(v___x_3071_, 1, v_a_3052_);
v___x_3072_ = lean_array_push(v_snd_3048_, v___x_3071_);
v_a_3056_ = v___x_3072_;
goto v___jp_3055_;
}
else
{
lean_object* v___x_3073_; 
lean_dec(v_a_3066_);
v___x_3073_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_a_3052_, v___y_3034_, v___y_3035_, v___y_3036_, v___y_3037_, v___y_3038_, v___y_3039_, v___y_3040_, v___y_3041_, v___y_3042_, v___y_3043_, v___y_3044_);
if (lean_obj_tag(v___x_3073_) == 0)
{
lean_dec_ref(v___x_3073_);
v_a_3056_ = v_snd_3048_;
goto v___jp_3055_;
}
else
{
lean_object* v_a_3074_; lean_object* v___x_3076_; uint8_t v_isShared_3077_; uint8_t v_isSharedCheck_3081_; 
lean_del_object(v___x_3050_);
lean_dec(v_snd_3048_);
v_a_3074_ = lean_ctor_get(v___x_3073_, 0);
v_isSharedCheck_3081_ = !lean_is_exclusive(v___x_3073_);
if (v_isSharedCheck_3081_ == 0)
{
v___x_3076_ = v___x_3073_;
v_isShared_3077_ = v_isSharedCheck_3081_;
goto v_resetjp_3075_;
}
else
{
lean_inc(v_a_3074_);
lean_dec(v___x_3073_);
v___x_3076_ = lean_box(0);
v_isShared_3077_ = v_isSharedCheck_3081_;
goto v_resetjp_3075_;
}
v_resetjp_3075_:
{
lean_object* v___x_3079_; 
if (v_isShared_3077_ == 0)
{
v___x_3079_ = v___x_3076_;
goto v_reusejp_3078_;
}
else
{
lean_object* v_reuseFailAlloc_3080_; 
v_reuseFailAlloc_3080_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3080_, 0, v_a_3074_);
v___x_3079_ = v_reuseFailAlloc_3080_;
goto v_reusejp_3078_;
}
v_reusejp_3078_:
{
return v___x_3079_;
}
}
}
}
}
else
{
lean_object* v_a_3082_; lean_object* v___x_3084_; uint8_t v_isShared_3085_; uint8_t v_isSharedCheck_3089_; 
lean_del_object(v___x_3050_);
lean_dec(v_snd_3048_);
v_a_3082_ = lean_ctor_get(v___x_3065_, 0);
v_isSharedCheck_3089_ = !lean_is_exclusive(v___x_3065_);
if (v_isSharedCheck_3089_ == 0)
{
v___x_3084_ = v___x_3065_;
v_isShared_3085_ = v_isSharedCheck_3089_;
goto v_resetjp_3083_;
}
else
{
lean_inc(v_a_3082_);
lean_dec(v___x_3065_);
v___x_3084_ = lean_box(0);
v_isShared_3085_ = v_isSharedCheck_3089_;
goto v_resetjp_3083_;
}
v_resetjp_3083_:
{
lean_object* v___x_3087_; 
if (v_isShared_3085_ == 0)
{
v___x_3087_ = v___x_3084_;
goto v_reusejp_3086_;
}
else
{
lean_object* v_reuseFailAlloc_3088_; 
v_reuseFailAlloc_3088_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3088_, 0, v_a_3082_);
v___x_3087_ = v_reuseFailAlloc_3088_;
goto v_reusejp_3086_;
}
v_reusejp_3086_:
{
return v___x_3087_;
}
}
}
}
else
{
lean_object* v___x_3090_; 
v___x_3090_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected___redArg(v_a_3052_, v___y_3034_, v___y_3035_, v___y_3036_, v___y_3037_, v___y_3038_, v___y_3039_, v___y_3040_, v___y_3041_, v___y_3042_, v___y_3043_, v___y_3044_);
if (lean_obj_tag(v___x_3090_) == 0)
{
lean_dec_ref(v___x_3090_);
v_a_3056_ = v_snd_3048_;
goto v___jp_3055_;
}
else
{
lean_object* v_a_3091_; lean_object* v___x_3093_; uint8_t v_isShared_3094_; uint8_t v_isSharedCheck_3098_; 
lean_del_object(v___x_3050_);
lean_dec(v_snd_3048_);
v_a_3091_ = lean_ctor_get(v___x_3090_, 0);
v_isSharedCheck_3098_ = !lean_is_exclusive(v___x_3090_);
if (v_isSharedCheck_3098_ == 0)
{
v___x_3093_ = v___x_3090_;
v_isShared_3094_ = v_isSharedCheck_3098_;
goto v_resetjp_3092_;
}
else
{
lean_inc(v_a_3091_);
lean_dec(v___x_3090_);
v___x_3093_ = lean_box(0);
v_isShared_3094_ = v_isSharedCheck_3098_;
goto v_resetjp_3092_;
}
v_resetjp_3092_:
{
lean_object* v___x_3096_; 
if (v_isShared_3094_ == 0)
{
v___x_3096_ = v___x_3093_;
goto v_reusejp_3095_;
}
else
{
lean_object* v_reuseFailAlloc_3097_; 
v_reuseFailAlloc_3097_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3097_, 0, v_a_3091_);
v___x_3096_ = v_reuseFailAlloc_3097_;
goto v_reusejp_3095_;
}
v_reusejp_3095_:
{
return v___x_3096_;
}
}
}
}
v___jp_3055_:
{
lean_object* v___x_3058_; 
if (v_isShared_3051_ == 0)
{
lean_ctor_set(v___x_3050_, 1, v_a_3056_);
lean_ctor_set(v___x_3050_, 0, v___x_3054_);
v___x_3058_ = v___x_3050_;
goto v_reusejp_3057_;
}
else
{
lean_object* v_reuseFailAlloc_3062_; 
v_reuseFailAlloc_3062_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_3062_, 0, v___x_3054_);
lean_ctor_set(v_reuseFailAlloc_3062_, 1, v_a_3056_);
v___x_3058_ = v_reuseFailAlloc_3062_;
goto v_reusejp_3057_;
}
v_reusejp_3057_:
{
size_t v___x_3059_; size_t v___x_3060_; lean_object* v___x_3061_; 
v___x_3059_ = ((size_t)1ULL);
v___x_3060_ = lean_usize_add(v_i_3032_, v___x_3059_);
v___x_3061_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00__private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2_spec__3(v_as_3030_, v_sz_3031_, v___x_3060_, v___x_3058_, v___y_3034_, v___y_3035_, v___y_3036_, v___y_3037_, v___y_3038_, v___y_3039_, v___y_3040_, v___y_3041_, v___y_3042_, v___y_3043_, v___y_3044_);
return v___x_3061_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2___boxed(lean_object* v_as_3101_, lean_object* v_sz_3102_, lean_object* v_i_3103_, lean_object* v_b_3104_, lean_object* v___y_3105_, lean_object* v___y_3106_, lean_object* v___y_3107_, lean_object* v___y_3108_, lean_object* v___y_3109_, lean_object* v___y_3110_, lean_object* v___y_3111_, lean_object* v___y_3112_, lean_object* v___y_3113_, lean_object* v___y_3114_, lean_object* v___y_3115_, lean_object* v___y_3116_){
_start:
{
size_t v_sz_boxed_3117_; size_t v_i_boxed_3118_; lean_object* v_res_3119_; 
v_sz_boxed_3117_ = lean_unbox_usize(v_sz_3102_);
lean_dec(v_sz_3102_);
v_i_boxed_3118_ = lean_unbox_usize(v_i_3103_);
lean_dec(v_i_3103_);
v_res_3119_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2(v_as_3101_, v_sz_boxed_3117_, v_i_boxed_3118_, v_b_3104_, v___y_3105_, v___y_3106_, v___y_3107_, v___y_3108_, v___y_3109_, v___y_3110_, v___y_3111_, v___y_3112_, v___y_3113_, v___y_3114_, v___y_3115_);
lean_dec(v___y_3115_);
lean_dec_ref(v___y_3114_);
lean_dec(v___y_3113_);
lean_dec_ref(v___y_3112_);
lean_dec(v___y_3111_);
lean_dec_ref(v___y_3110_);
lean_dec(v___y_3109_);
lean_dec_ref(v___y_3108_);
lean_dec(v___y_3107_);
lean_dec(v___y_3106_);
lean_dec(v___y_3105_);
lean_dec_ref(v_as_3101_);
return v_res_3119_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0(lean_object* v_inh_3120_, lean_object* v_n_3121_, lean_object* v_b_3122_, lean_object* v___y_3123_, lean_object* v___y_3124_, lean_object* v___y_3125_, lean_object* v___y_3126_, lean_object* v___y_3127_, lean_object* v___y_3128_, lean_object* v___y_3129_, lean_object* v___y_3130_, lean_object* v___y_3131_, lean_object* v___y_3132_, lean_object* v___y_3133_){
_start:
{
if (lean_obj_tag(v_n_3121_) == 0)
{
lean_object* v_cs_3135_; lean_object* v___x_3137_; uint8_t v_isShared_3138_; uint8_t v_isSharedCheck_3169_; 
v_cs_3135_ = lean_ctor_get(v_n_3121_, 0);
v_isSharedCheck_3169_ = !lean_is_exclusive(v_n_3121_);
if (v_isSharedCheck_3169_ == 0)
{
v___x_3137_ = v_n_3121_;
v_isShared_3138_ = v_isSharedCheck_3169_;
goto v_resetjp_3136_;
}
else
{
lean_inc(v_cs_3135_);
lean_dec(v_n_3121_);
v___x_3137_ = lean_box(0);
v_isShared_3138_ = v_isSharedCheck_3169_;
goto v_resetjp_3136_;
}
v_resetjp_3136_:
{
lean_object* v___x_3139_; lean_object* v___x_3140_; size_t v_sz_3141_; size_t v___x_3142_; lean_object* v___x_3143_; 
v___x_3139_ = lean_box(0);
v___x_3140_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_3140_, 0, v___x_3139_);
lean_ctor_set(v___x_3140_, 1, v_b_3122_);
v_sz_3141_ = lean_array_size(v_cs_3135_);
v___x_3142_ = ((size_t)0ULL);
v___x_3143_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__1(v_inh_3120_, v_cs_3135_, v_sz_3141_, v___x_3142_, v___x_3140_, v___y_3123_, v___y_3124_, v___y_3125_, v___y_3126_, v___y_3127_, v___y_3128_, v___y_3129_, v___y_3130_, v___y_3131_, v___y_3132_, v___y_3133_);
lean_dec_ref(v_cs_3135_);
if (lean_obj_tag(v___x_3143_) == 0)
{
lean_object* v_a_3144_; lean_object* v___x_3146_; uint8_t v_isShared_3147_; uint8_t v_isSharedCheck_3160_; 
v_a_3144_ = lean_ctor_get(v___x_3143_, 0);
v_isSharedCheck_3160_ = !lean_is_exclusive(v___x_3143_);
if (v_isSharedCheck_3160_ == 0)
{
v___x_3146_ = v___x_3143_;
v_isShared_3147_ = v_isSharedCheck_3160_;
goto v_resetjp_3145_;
}
else
{
lean_inc(v_a_3144_);
lean_dec(v___x_3143_);
v___x_3146_ = lean_box(0);
v_isShared_3147_ = v_isSharedCheck_3160_;
goto v_resetjp_3145_;
}
v_resetjp_3145_:
{
lean_object* v_fst_3148_; 
v_fst_3148_ = lean_ctor_get(v_a_3144_, 0);
if (lean_obj_tag(v_fst_3148_) == 0)
{
lean_object* v_snd_3149_; lean_object* v___x_3151_; 
v_snd_3149_ = lean_ctor_get(v_a_3144_, 1);
lean_inc(v_snd_3149_);
lean_dec(v_a_3144_);
if (v_isShared_3138_ == 0)
{
lean_ctor_set_tag(v___x_3137_, 1);
lean_ctor_set(v___x_3137_, 0, v_snd_3149_);
v___x_3151_ = v___x_3137_;
goto v_reusejp_3150_;
}
else
{
lean_object* v_reuseFailAlloc_3155_; 
v_reuseFailAlloc_3155_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3155_, 0, v_snd_3149_);
v___x_3151_ = v_reuseFailAlloc_3155_;
goto v_reusejp_3150_;
}
v_reusejp_3150_:
{
lean_object* v___x_3153_; 
if (v_isShared_3147_ == 0)
{
lean_ctor_set(v___x_3146_, 0, v___x_3151_);
v___x_3153_ = v___x_3146_;
goto v_reusejp_3152_;
}
else
{
lean_object* v_reuseFailAlloc_3154_; 
v_reuseFailAlloc_3154_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3154_, 0, v___x_3151_);
v___x_3153_ = v_reuseFailAlloc_3154_;
goto v_reusejp_3152_;
}
v_reusejp_3152_:
{
return v___x_3153_;
}
}
}
else
{
lean_object* v_val_3156_; lean_object* v___x_3158_; 
lean_inc_ref(v_fst_3148_);
lean_dec(v_a_3144_);
lean_del_object(v___x_3137_);
v_val_3156_ = lean_ctor_get(v_fst_3148_, 0);
lean_inc(v_val_3156_);
lean_dec_ref(v_fst_3148_);
if (v_isShared_3147_ == 0)
{
lean_ctor_set(v___x_3146_, 0, v_val_3156_);
v___x_3158_ = v___x_3146_;
goto v_reusejp_3157_;
}
else
{
lean_object* v_reuseFailAlloc_3159_; 
v_reuseFailAlloc_3159_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3159_, 0, v_val_3156_);
v___x_3158_ = v_reuseFailAlloc_3159_;
goto v_reusejp_3157_;
}
v_reusejp_3157_:
{
return v___x_3158_;
}
}
}
}
else
{
lean_object* v_a_3161_; lean_object* v___x_3163_; uint8_t v_isShared_3164_; uint8_t v_isSharedCheck_3168_; 
lean_del_object(v___x_3137_);
v_a_3161_ = lean_ctor_get(v___x_3143_, 0);
v_isSharedCheck_3168_ = !lean_is_exclusive(v___x_3143_);
if (v_isSharedCheck_3168_ == 0)
{
v___x_3163_ = v___x_3143_;
v_isShared_3164_ = v_isSharedCheck_3168_;
goto v_resetjp_3162_;
}
else
{
lean_inc(v_a_3161_);
lean_dec(v___x_3143_);
v___x_3163_ = lean_box(0);
v_isShared_3164_ = v_isSharedCheck_3168_;
goto v_resetjp_3162_;
}
v_resetjp_3162_:
{
lean_object* v___x_3166_; 
if (v_isShared_3164_ == 0)
{
v___x_3166_ = v___x_3163_;
goto v_reusejp_3165_;
}
else
{
lean_object* v_reuseFailAlloc_3167_; 
v_reuseFailAlloc_3167_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3167_, 0, v_a_3161_);
v___x_3166_ = v_reuseFailAlloc_3167_;
goto v_reusejp_3165_;
}
v_reusejp_3165_:
{
return v___x_3166_;
}
}
}
}
}
else
{
lean_object* v_vs_3170_; lean_object* v___x_3172_; uint8_t v_isShared_3173_; uint8_t v_isSharedCheck_3204_; 
v_vs_3170_ = lean_ctor_get(v_n_3121_, 0);
v_isSharedCheck_3204_ = !lean_is_exclusive(v_n_3121_);
if (v_isSharedCheck_3204_ == 0)
{
v___x_3172_ = v_n_3121_;
v_isShared_3173_ = v_isSharedCheck_3204_;
goto v_resetjp_3171_;
}
else
{
lean_inc(v_vs_3170_);
lean_dec(v_n_3121_);
v___x_3172_ = lean_box(0);
v_isShared_3173_ = v_isSharedCheck_3204_;
goto v_resetjp_3171_;
}
v_resetjp_3171_:
{
lean_object* v___x_3174_; lean_object* v___x_3175_; size_t v_sz_3176_; size_t v___x_3177_; lean_object* v___x_3178_; 
v___x_3174_ = lean_box(0);
v___x_3175_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_3175_, 0, v___x_3174_);
lean_ctor_set(v___x_3175_, 1, v_b_3122_);
v_sz_3176_ = lean_array_size(v_vs_3170_);
v___x_3177_ = ((size_t)0ULL);
v___x_3178_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__2(v_vs_3170_, v_sz_3176_, v___x_3177_, v___x_3175_, v___y_3123_, v___y_3124_, v___y_3125_, v___y_3126_, v___y_3127_, v___y_3128_, v___y_3129_, v___y_3130_, v___y_3131_, v___y_3132_, v___y_3133_);
lean_dec_ref(v_vs_3170_);
if (lean_obj_tag(v___x_3178_) == 0)
{
lean_object* v_a_3179_; lean_object* v___x_3181_; uint8_t v_isShared_3182_; uint8_t v_isSharedCheck_3195_; 
v_a_3179_ = lean_ctor_get(v___x_3178_, 0);
v_isSharedCheck_3195_ = !lean_is_exclusive(v___x_3178_);
if (v_isSharedCheck_3195_ == 0)
{
v___x_3181_ = v___x_3178_;
v_isShared_3182_ = v_isSharedCheck_3195_;
goto v_resetjp_3180_;
}
else
{
lean_inc(v_a_3179_);
lean_dec(v___x_3178_);
v___x_3181_ = lean_box(0);
v_isShared_3182_ = v_isSharedCheck_3195_;
goto v_resetjp_3180_;
}
v_resetjp_3180_:
{
lean_object* v_fst_3183_; 
v_fst_3183_ = lean_ctor_get(v_a_3179_, 0);
if (lean_obj_tag(v_fst_3183_) == 0)
{
lean_object* v_snd_3184_; lean_object* v___x_3186_; 
v_snd_3184_ = lean_ctor_get(v_a_3179_, 1);
lean_inc(v_snd_3184_);
lean_dec(v_a_3179_);
if (v_isShared_3173_ == 0)
{
lean_ctor_set(v___x_3172_, 0, v_snd_3184_);
v___x_3186_ = v___x_3172_;
goto v_reusejp_3185_;
}
else
{
lean_object* v_reuseFailAlloc_3190_; 
v_reuseFailAlloc_3190_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3190_, 0, v_snd_3184_);
v___x_3186_ = v_reuseFailAlloc_3190_;
goto v_reusejp_3185_;
}
v_reusejp_3185_:
{
lean_object* v___x_3188_; 
if (v_isShared_3182_ == 0)
{
lean_ctor_set(v___x_3181_, 0, v___x_3186_);
v___x_3188_ = v___x_3181_;
goto v_reusejp_3187_;
}
else
{
lean_object* v_reuseFailAlloc_3189_; 
v_reuseFailAlloc_3189_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3189_, 0, v___x_3186_);
v___x_3188_ = v_reuseFailAlloc_3189_;
goto v_reusejp_3187_;
}
v_reusejp_3187_:
{
return v___x_3188_;
}
}
}
else
{
lean_object* v_val_3191_; lean_object* v___x_3193_; 
lean_inc_ref(v_fst_3183_);
lean_dec(v_a_3179_);
lean_del_object(v___x_3172_);
v_val_3191_ = lean_ctor_get(v_fst_3183_, 0);
lean_inc(v_val_3191_);
lean_dec_ref(v_fst_3183_);
if (v_isShared_3182_ == 0)
{
lean_ctor_set(v___x_3181_, 0, v_val_3191_);
v___x_3193_ = v___x_3181_;
goto v_reusejp_3192_;
}
else
{
lean_object* v_reuseFailAlloc_3194_; 
v_reuseFailAlloc_3194_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3194_, 0, v_val_3191_);
v___x_3193_ = v_reuseFailAlloc_3194_;
goto v_reusejp_3192_;
}
v_reusejp_3192_:
{
return v___x_3193_;
}
}
}
}
else
{
lean_object* v_a_3196_; lean_object* v___x_3198_; uint8_t v_isShared_3199_; uint8_t v_isSharedCheck_3203_; 
lean_del_object(v___x_3172_);
v_a_3196_ = lean_ctor_get(v___x_3178_, 0);
v_isSharedCheck_3203_ = !lean_is_exclusive(v___x_3178_);
if (v_isSharedCheck_3203_ == 0)
{
v___x_3198_ = v___x_3178_;
v_isShared_3199_ = v_isSharedCheck_3203_;
goto v_resetjp_3197_;
}
else
{
lean_inc(v_a_3196_);
lean_dec(v___x_3178_);
v___x_3198_ = lean_box(0);
v_isShared_3199_ = v_isSharedCheck_3203_;
goto v_resetjp_3197_;
}
v_resetjp_3197_:
{
lean_object* v___x_3201_; 
if (v_isShared_3199_ == 0)
{
v___x_3201_ = v___x_3198_;
goto v_reusejp_3200_;
}
else
{
lean_object* v_reuseFailAlloc_3202_; 
v_reuseFailAlloc_3202_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3202_, 0, v_a_3196_);
v___x_3201_ = v_reuseFailAlloc_3202_;
goto v_reusejp_3200_;
}
v_reusejp_3200_:
{
return v___x_3201_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__1(lean_object* v_inh_3205_, lean_object* v_as_3206_, size_t v_sz_3207_, size_t v_i_3208_, lean_object* v_b_3209_, lean_object* v___y_3210_, lean_object* v___y_3211_, lean_object* v___y_3212_, lean_object* v___y_3213_, lean_object* v___y_3214_, lean_object* v___y_3215_, lean_object* v___y_3216_, lean_object* v___y_3217_, lean_object* v___y_3218_, lean_object* v___y_3219_, lean_object* v___y_3220_){
_start:
{
uint8_t v___x_3222_; 
v___x_3222_ = lean_usize_dec_lt(v_i_3208_, v_sz_3207_);
if (v___x_3222_ == 0)
{
lean_object* v___x_3223_; 
v___x_3223_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3223_, 0, v_b_3209_);
return v___x_3223_;
}
else
{
lean_object* v_snd_3224_; lean_object* v___x_3226_; uint8_t v_isShared_3227_; uint8_t v_isSharedCheck_3258_; 
v_snd_3224_ = lean_ctor_get(v_b_3209_, 1);
v_isSharedCheck_3258_ = !lean_is_exclusive(v_b_3209_);
if (v_isSharedCheck_3258_ == 0)
{
lean_object* v_unused_3259_; 
v_unused_3259_ = lean_ctor_get(v_b_3209_, 0);
lean_dec(v_unused_3259_);
v___x_3226_ = v_b_3209_;
v_isShared_3227_ = v_isSharedCheck_3258_;
goto v_resetjp_3225_;
}
else
{
lean_inc(v_snd_3224_);
lean_dec(v_b_3209_);
v___x_3226_ = lean_box(0);
v_isShared_3227_ = v_isSharedCheck_3258_;
goto v_resetjp_3225_;
}
v_resetjp_3225_:
{
lean_object* v_a_3228_; lean_object* v___x_3229_; 
v_a_3228_ = lean_array_uget_borrowed(v_as_3206_, v_i_3208_);
lean_inc(v_snd_3224_);
lean_inc(v_a_3228_);
v___x_3229_ = l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0(v_inh_3205_, v_a_3228_, v_snd_3224_, v___y_3210_, v___y_3211_, v___y_3212_, v___y_3213_, v___y_3214_, v___y_3215_, v___y_3216_, v___y_3217_, v___y_3218_, v___y_3219_, v___y_3220_);
if (lean_obj_tag(v___x_3229_) == 0)
{
lean_object* v_a_3230_; lean_object* v___x_3232_; uint8_t v_isShared_3233_; uint8_t v_isSharedCheck_3249_; 
v_a_3230_ = lean_ctor_get(v___x_3229_, 0);
v_isSharedCheck_3249_ = !lean_is_exclusive(v___x_3229_);
if (v_isSharedCheck_3249_ == 0)
{
v___x_3232_ = v___x_3229_;
v_isShared_3233_ = v_isSharedCheck_3249_;
goto v_resetjp_3231_;
}
else
{
lean_inc(v_a_3230_);
lean_dec(v___x_3229_);
v___x_3232_ = lean_box(0);
v_isShared_3233_ = v_isSharedCheck_3249_;
goto v_resetjp_3231_;
}
v_resetjp_3231_:
{
if (lean_obj_tag(v_a_3230_) == 0)
{
lean_object* v___x_3234_; lean_object* v___x_3236_; 
v___x_3234_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3234_, 0, v_a_3230_);
if (v_isShared_3227_ == 0)
{
lean_ctor_set(v___x_3226_, 0, v___x_3234_);
v___x_3236_ = v___x_3226_;
goto v_reusejp_3235_;
}
else
{
lean_object* v_reuseFailAlloc_3240_; 
v_reuseFailAlloc_3240_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_3240_, 0, v___x_3234_);
lean_ctor_set(v_reuseFailAlloc_3240_, 1, v_snd_3224_);
v___x_3236_ = v_reuseFailAlloc_3240_;
goto v_reusejp_3235_;
}
v_reusejp_3235_:
{
lean_object* v___x_3238_; 
if (v_isShared_3233_ == 0)
{
lean_ctor_set(v___x_3232_, 0, v___x_3236_);
v___x_3238_ = v___x_3232_;
goto v_reusejp_3237_;
}
else
{
lean_object* v_reuseFailAlloc_3239_; 
v_reuseFailAlloc_3239_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3239_, 0, v___x_3236_);
v___x_3238_ = v_reuseFailAlloc_3239_;
goto v_reusejp_3237_;
}
v_reusejp_3237_:
{
return v___x_3238_;
}
}
}
else
{
lean_object* v_a_3241_; lean_object* v___x_3242_; lean_object* v___x_3244_; 
lean_del_object(v___x_3232_);
lean_dec(v_snd_3224_);
v_a_3241_ = lean_ctor_get(v_a_3230_, 0);
lean_inc(v_a_3241_);
lean_dec_ref(v_a_3230_);
v___x_3242_ = lean_box(0);
if (v_isShared_3227_ == 0)
{
lean_ctor_set(v___x_3226_, 1, v_a_3241_);
lean_ctor_set(v___x_3226_, 0, v___x_3242_);
v___x_3244_ = v___x_3226_;
goto v_reusejp_3243_;
}
else
{
lean_object* v_reuseFailAlloc_3248_; 
v_reuseFailAlloc_3248_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_3248_, 0, v___x_3242_);
lean_ctor_set(v_reuseFailAlloc_3248_, 1, v_a_3241_);
v___x_3244_ = v_reuseFailAlloc_3248_;
goto v_reusejp_3243_;
}
v_reusejp_3243_:
{
size_t v___x_3245_; size_t v___x_3246_; 
v___x_3245_ = ((size_t)1ULL);
v___x_3246_ = lean_usize_add(v_i_3208_, v___x_3245_);
v_i_3208_ = v___x_3246_;
v_b_3209_ = v___x_3244_;
goto _start;
}
}
}
}
else
{
lean_object* v_a_3250_; lean_object* v___x_3252_; uint8_t v_isShared_3253_; uint8_t v_isSharedCheck_3257_; 
lean_del_object(v___x_3226_);
lean_dec(v_snd_3224_);
v_a_3250_ = lean_ctor_get(v___x_3229_, 0);
v_isSharedCheck_3257_ = !lean_is_exclusive(v___x_3229_);
if (v_isSharedCheck_3257_ == 0)
{
v___x_3252_ = v___x_3229_;
v_isShared_3253_ = v_isSharedCheck_3257_;
goto v_resetjp_3251_;
}
else
{
lean_inc(v_a_3250_);
lean_dec(v___x_3229_);
v___x_3252_ = lean_box(0);
v_isShared_3253_ = v_isSharedCheck_3257_;
goto v_resetjp_3251_;
}
v_resetjp_3251_:
{
lean_object* v___x_3255_; 
if (v_isShared_3253_ == 0)
{
v___x_3255_ = v___x_3252_;
goto v_reusejp_3254_;
}
else
{
lean_object* v_reuseFailAlloc_3256_; 
v_reuseFailAlloc_3256_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3256_, 0, v_a_3250_);
v___x_3255_ = v_reuseFailAlloc_3256_;
goto v_reusejp_3254_;
}
v_reusejp_3254_:
{
return v___x_3255_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__1___boxed(lean_object** _args){
lean_object* v_inh_3260_ = _args[0];
lean_object* v_as_3261_ = _args[1];
lean_object* v_sz_3262_ = _args[2];
lean_object* v_i_3263_ = _args[3];
lean_object* v_b_3264_ = _args[4];
lean_object* v___y_3265_ = _args[5];
lean_object* v___y_3266_ = _args[6];
lean_object* v___y_3267_ = _args[7];
lean_object* v___y_3268_ = _args[8];
lean_object* v___y_3269_ = _args[9];
lean_object* v___y_3270_ = _args[10];
lean_object* v___y_3271_ = _args[11];
lean_object* v___y_3272_ = _args[12];
lean_object* v___y_3273_ = _args[13];
lean_object* v___y_3274_ = _args[14];
lean_object* v___y_3275_ = _args[15];
lean_object* v___y_3276_ = _args[16];
_start:
{
size_t v_sz_boxed_3277_; size_t v_i_boxed_3278_; lean_object* v_res_3279_; 
v_sz_boxed_3277_ = lean_unbox_usize(v_sz_3262_);
lean_dec(v_sz_3262_);
v_i_boxed_3278_ = lean_unbox_usize(v_i_3263_);
lean_dec(v_i_3263_);
v_res_3279_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0_spec__1(v_inh_3260_, v_as_3261_, v_sz_boxed_3277_, v_i_boxed_3278_, v_b_3264_, v___y_3265_, v___y_3266_, v___y_3267_, v___y_3268_, v___y_3269_, v___y_3270_, v___y_3271_, v___y_3272_, v___y_3273_, v___y_3274_, v___y_3275_);
lean_dec(v___y_3275_);
lean_dec_ref(v___y_3274_);
lean_dec(v___y_3273_);
lean_dec_ref(v___y_3272_);
lean_dec(v___y_3271_);
lean_dec_ref(v___y_3270_);
lean_dec(v___y_3269_);
lean_dec_ref(v___y_3268_);
lean_dec(v___y_3267_);
lean_dec(v___y_3266_);
lean_dec(v___y_3265_);
lean_dec_ref(v_as_3261_);
lean_dec_ref(v_inh_3260_);
return v_res_3279_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0___boxed(lean_object* v_inh_3280_, lean_object* v_n_3281_, lean_object* v_b_3282_, lean_object* v___y_3283_, lean_object* v___y_3284_, lean_object* v___y_3285_, lean_object* v___y_3286_, lean_object* v___y_3287_, lean_object* v___y_3288_, lean_object* v___y_3289_, lean_object* v___y_3290_, lean_object* v___y_3291_, lean_object* v___y_3292_, lean_object* v___y_3293_, lean_object* v___y_3294_){
_start:
{
lean_object* v_res_3295_; 
v_res_3295_ = l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0(v_inh_3280_, v_n_3281_, v_b_3282_, v___y_3283_, v___y_3284_, v___y_3285_, v___y_3286_, v___y_3287_, v___y_3288_, v___y_3289_, v___y_3290_, v___y_3291_, v___y_3292_, v___y_3293_);
lean_dec(v___y_3293_);
lean_dec_ref(v___y_3292_);
lean_dec(v___y_3291_);
lean_dec_ref(v___y_3290_);
lean_dec(v___y_3289_);
lean_dec_ref(v___y_3288_);
lean_dec(v___y_3287_);
lean_dec_ref(v___y_3286_);
lean_dec(v___y_3285_);
lean_dec(v___y_3284_);
lean_dec(v___y_3283_);
lean_dec_ref(v_inh_3280_);
return v_res_3295_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0(lean_object* v_t_3296_, lean_object* v_init_3297_, lean_object* v___y_3298_, lean_object* v___y_3299_, lean_object* v___y_3300_, lean_object* v___y_3301_, lean_object* v___y_3302_, lean_object* v___y_3303_, lean_object* v___y_3304_, lean_object* v___y_3305_, lean_object* v___y_3306_, lean_object* v___y_3307_, lean_object* v___y_3308_){
_start:
{
lean_object* v_root_3310_; lean_object* v_tail_3311_; lean_object* v___x_3312_; 
v_root_3310_ = lean_ctor_get(v_t_3296_, 0);
lean_inc_ref(v_root_3310_);
v_tail_3311_ = lean_ctor_get(v_t_3296_, 1);
lean_inc_ref(v_tail_3311_);
lean_dec_ref(v_t_3296_);
lean_inc_ref(v_init_3297_);
v___x_3312_ = l_Lean_PersistentArray_forInAux___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__0(v_init_3297_, v_root_3310_, v_init_3297_, v___y_3298_, v___y_3299_, v___y_3300_, v___y_3301_, v___y_3302_, v___y_3303_, v___y_3304_, v___y_3305_, v___y_3306_, v___y_3307_, v___y_3308_);
lean_dec_ref(v_init_3297_);
if (lean_obj_tag(v___x_3312_) == 0)
{
lean_object* v_a_3313_; lean_object* v___x_3315_; uint8_t v_isShared_3316_; uint8_t v_isSharedCheck_3349_; 
v_a_3313_ = lean_ctor_get(v___x_3312_, 0);
v_isSharedCheck_3349_ = !lean_is_exclusive(v___x_3312_);
if (v_isSharedCheck_3349_ == 0)
{
v___x_3315_ = v___x_3312_;
v_isShared_3316_ = v_isSharedCheck_3349_;
goto v_resetjp_3314_;
}
else
{
lean_inc(v_a_3313_);
lean_dec(v___x_3312_);
v___x_3315_ = lean_box(0);
v_isShared_3316_ = v_isSharedCheck_3349_;
goto v_resetjp_3314_;
}
v_resetjp_3314_:
{
if (lean_obj_tag(v_a_3313_) == 0)
{
lean_object* v_a_3317_; lean_object* v___x_3319_; 
lean_dec_ref(v_tail_3311_);
v_a_3317_ = lean_ctor_get(v_a_3313_, 0);
lean_inc(v_a_3317_);
lean_dec_ref(v_a_3313_);
if (v_isShared_3316_ == 0)
{
lean_ctor_set(v___x_3315_, 0, v_a_3317_);
v___x_3319_ = v___x_3315_;
goto v_reusejp_3318_;
}
else
{
lean_object* v_reuseFailAlloc_3320_; 
v_reuseFailAlloc_3320_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3320_, 0, v_a_3317_);
v___x_3319_ = v_reuseFailAlloc_3320_;
goto v_reusejp_3318_;
}
v_reusejp_3318_:
{
return v___x_3319_;
}
}
else
{
lean_object* v_a_3321_; lean_object* v___x_3322_; lean_object* v___x_3323_; size_t v_sz_3324_; size_t v___x_3325_; lean_object* v___x_3326_; 
lean_del_object(v___x_3315_);
v_a_3321_ = lean_ctor_get(v_a_3313_, 0);
lean_inc(v_a_3321_);
lean_dec_ref(v_a_3313_);
v___x_3322_ = lean_box(0);
v___x_3323_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_3323_, 0, v___x_3322_);
lean_ctor_set(v___x_3323_, 1, v_a_3321_);
v_sz_3324_ = lean_array_size(v_tail_3311_);
v___x_3325_ = ((size_t)0ULL);
v___x_3326_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0_spec__1(v_tail_3311_, v_sz_3324_, v___x_3325_, v___x_3323_, v___y_3298_, v___y_3299_, v___y_3300_, v___y_3301_, v___y_3302_, v___y_3303_, v___y_3304_, v___y_3305_, v___y_3306_, v___y_3307_, v___y_3308_);
lean_dec_ref(v_tail_3311_);
if (lean_obj_tag(v___x_3326_) == 0)
{
lean_object* v_a_3327_; lean_object* v___x_3329_; uint8_t v_isShared_3330_; uint8_t v_isSharedCheck_3340_; 
v_a_3327_ = lean_ctor_get(v___x_3326_, 0);
v_isSharedCheck_3340_ = !lean_is_exclusive(v___x_3326_);
if (v_isSharedCheck_3340_ == 0)
{
v___x_3329_ = v___x_3326_;
v_isShared_3330_ = v_isSharedCheck_3340_;
goto v_resetjp_3328_;
}
else
{
lean_inc(v_a_3327_);
lean_dec(v___x_3326_);
v___x_3329_ = lean_box(0);
v_isShared_3330_ = v_isSharedCheck_3340_;
goto v_resetjp_3328_;
}
v_resetjp_3328_:
{
lean_object* v_fst_3331_; 
v_fst_3331_ = lean_ctor_get(v_a_3327_, 0);
if (lean_obj_tag(v_fst_3331_) == 0)
{
lean_object* v_snd_3332_; lean_object* v___x_3334_; 
v_snd_3332_ = lean_ctor_get(v_a_3327_, 1);
lean_inc(v_snd_3332_);
lean_dec(v_a_3327_);
if (v_isShared_3330_ == 0)
{
lean_ctor_set(v___x_3329_, 0, v_snd_3332_);
v___x_3334_ = v___x_3329_;
goto v_reusejp_3333_;
}
else
{
lean_object* v_reuseFailAlloc_3335_; 
v_reuseFailAlloc_3335_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3335_, 0, v_snd_3332_);
v___x_3334_ = v_reuseFailAlloc_3335_;
goto v_reusejp_3333_;
}
v_reusejp_3333_:
{
return v___x_3334_;
}
}
else
{
lean_object* v_val_3336_; lean_object* v___x_3338_; 
lean_inc_ref(v_fst_3331_);
lean_dec(v_a_3327_);
v_val_3336_ = lean_ctor_get(v_fst_3331_, 0);
lean_inc(v_val_3336_);
lean_dec_ref(v_fst_3331_);
if (v_isShared_3330_ == 0)
{
lean_ctor_set(v___x_3329_, 0, v_val_3336_);
v___x_3338_ = v___x_3329_;
goto v_reusejp_3337_;
}
else
{
lean_object* v_reuseFailAlloc_3339_; 
v_reuseFailAlloc_3339_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3339_, 0, v_val_3336_);
v___x_3338_ = v_reuseFailAlloc_3339_;
goto v_reusejp_3337_;
}
v_reusejp_3337_:
{
return v___x_3338_;
}
}
}
}
else
{
lean_object* v_a_3341_; lean_object* v___x_3343_; uint8_t v_isShared_3344_; uint8_t v_isSharedCheck_3348_; 
v_a_3341_ = lean_ctor_get(v___x_3326_, 0);
v_isSharedCheck_3348_ = !lean_is_exclusive(v___x_3326_);
if (v_isSharedCheck_3348_ == 0)
{
v___x_3343_ = v___x_3326_;
v_isShared_3344_ = v_isSharedCheck_3348_;
goto v_resetjp_3342_;
}
else
{
lean_inc(v_a_3341_);
lean_dec(v___x_3326_);
v___x_3343_ = lean_box(0);
v_isShared_3344_ = v_isSharedCheck_3348_;
goto v_resetjp_3342_;
}
v_resetjp_3342_:
{
lean_object* v___x_3346_; 
if (v_isShared_3344_ == 0)
{
v___x_3346_ = v___x_3343_;
goto v_reusejp_3345_;
}
else
{
lean_object* v_reuseFailAlloc_3347_; 
v_reuseFailAlloc_3347_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3347_, 0, v_a_3341_);
v___x_3346_ = v_reuseFailAlloc_3347_;
goto v_reusejp_3345_;
}
v_reusejp_3345_:
{
return v___x_3346_;
}
}
}
}
}
}
else
{
lean_object* v_a_3350_; lean_object* v___x_3352_; uint8_t v_isShared_3353_; uint8_t v_isSharedCheck_3357_; 
lean_dec_ref(v_tail_3311_);
v_a_3350_ = lean_ctor_get(v___x_3312_, 0);
v_isSharedCheck_3357_ = !lean_is_exclusive(v___x_3312_);
if (v_isSharedCheck_3357_ == 0)
{
v___x_3352_ = v___x_3312_;
v_isShared_3353_ = v_isSharedCheck_3357_;
goto v_resetjp_3351_;
}
else
{
lean_inc(v_a_3350_);
lean_dec(v___x_3312_);
v___x_3352_ = lean_box(0);
v_isShared_3353_ = v_isSharedCheck_3357_;
goto v_resetjp_3351_;
}
v_resetjp_3351_:
{
lean_object* v___x_3355_; 
if (v_isShared_3353_ == 0)
{
v___x_3355_ = v___x_3352_;
goto v_reusejp_3354_;
}
else
{
lean_object* v_reuseFailAlloc_3356_; 
v_reuseFailAlloc_3356_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3356_, 0, v_a_3350_);
v___x_3355_ = v_reuseFailAlloc_3356_;
goto v_reusejp_3354_;
}
v_reusejp_3354_:
{
return v___x_3355_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0___boxed(lean_object* v_t_3358_, lean_object* v_init_3359_, lean_object* v___y_3360_, lean_object* v___y_3361_, lean_object* v___y_3362_, lean_object* v___y_3363_, lean_object* v___y_3364_, lean_object* v___y_3365_, lean_object* v___y_3366_, lean_object* v___y_3367_, lean_object* v___y_3368_, lean_object* v___y_3369_, lean_object* v___y_3370_, lean_object* v___y_3371_){
_start:
{
lean_object* v_res_3372_; 
v_res_3372_ = l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0(v_t_3358_, v_init_3359_, v___y_3360_, v___y_3361_, v___y_3362_, v___y_3363_, v___y_3364_, v___y_3365_, v___y_3366_, v___y_3367_, v___y_3368_, v___y_3369_, v___y_3370_);
lean_dec(v___y_3370_);
lean_dec_ref(v___y_3369_);
lean_dec(v___y_3368_);
lean_dec_ref(v___y_3367_);
lean_dec(v___y_3366_);
lean_dec_ref(v___y_3365_);
lean_dec(v___y_3364_);
lean_dec_ref(v___y_3363_);
lean_dec(v___y_3362_);
lean_dec(v___y_3361_);
lean_dec(v___y_3360_);
return v_res_3372_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getDiseqValues(lean_object* v_x_3375_, lean_object* v_a_3376_, lean_object* v_a_3377_, lean_object* v_a_3378_, lean_object* v_a_3379_, lean_object* v_a_3380_, lean_object* v_a_3381_, lean_object* v_a_3382_, lean_object* v_a_3383_, lean_object* v_a_3384_, lean_object* v_a_3385_, lean_object* v_a_3386_){
_start:
{
lean_object* v___x_3388_; 
v___x_3388_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v_a_3376_, v_a_3377_, v_a_3378_, v_a_3379_, v_a_3380_, v_a_3381_, v_a_3382_, v_a_3383_, v_a_3384_, v_a_3385_, v_a_3386_);
if (lean_obj_tag(v___x_3388_) == 0)
{
lean_object* v_a_3389_; lean_object* v_diseqs_3390_; lean_object* v_size_3391_; lean_object* v___x_3392_; lean_object* v___x_3393_; uint8_t v___x_3394_; 
v_a_3389_ = lean_ctor_get(v___x_3388_, 0);
lean_inc(v_a_3389_);
lean_dec_ref(v___x_3388_);
v_diseqs_3390_ = lean_ctor_get(v_a_3389_, 34);
lean_inc_ref(v_diseqs_3390_);
lean_dec(v_a_3389_);
v_size_3391_ = lean_ctor_get(v_diseqs_3390_, 2);
v___x_3392_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0, &l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f___closed__0);
v___x_3393_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_getDiseqValues___closed__0));
v___x_3394_ = lean_nat_dec_lt(v_x_3375_, v_size_3391_);
if (v___x_3394_ == 0)
{
lean_object* v___x_3395_; lean_object* v___x_3396_; 
lean_dec_ref(v_diseqs_3390_);
v___x_3395_ = l_outOfBounds___redArg(v___x_3392_);
v___x_3396_ = l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0(v___x_3395_, v___x_3393_, v_a_3376_, v_a_3377_, v_a_3378_, v_a_3379_, v_a_3380_, v_a_3381_, v_a_3382_, v_a_3383_, v_a_3384_, v_a_3385_, v_a_3386_);
return v___x_3396_;
}
else
{
lean_object* v___x_3397_; lean_object* v___x_3398_; 
v___x_3397_ = l_Lean_PersistentArray_get_x21___redArg(v___x_3392_, v_diseqs_3390_, v_x_3375_);
v___x_3398_ = l_Lean_PersistentArray_forIn___at___00Lean_Meta_Grind_Arith_Linear_getDiseqValues_spec__0(v___x_3397_, v___x_3393_, v_a_3376_, v_a_3377_, v_a_3378_, v_a_3379_, v_a_3380_, v_a_3381_, v_a_3382_, v_a_3383_, v_a_3384_, v_a_3385_, v_a_3386_);
return v___x_3398_;
}
}
else
{
lean_object* v_a_3399_; lean_object* v___x_3401_; uint8_t v_isShared_3402_; uint8_t v_isSharedCheck_3406_; 
v_a_3399_ = lean_ctor_get(v___x_3388_, 0);
v_isSharedCheck_3406_ = !lean_is_exclusive(v___x_3388_);
if (v_isSharedCheck_3406_ == 0)
{
v___x_3401_ = v___x_3388_;
v_isShared_3402_ = v_isSharedCheck_3406_;
goto v_resetjp_3400_;
}
else
{
lean_inc(v_a_3399_);
lean_dec(v___x_3388_);
v___x_3401_ = lean_box(0);
v_isShared_3402_ = v_isSharedCheck_3406_;
goto v_resetjp_3400_;
}
v_resetjp_3400_:
{
lean_object* v___x_3404_; 
if (v_isShared_3402_ == 0)
{
v___x_3404_ = v___x_3401_;
goto v_reusejp_3403_;
}
else
{
lean_object* v_reuseFailAlloc_3405_; 
v_reuseFailAlloc_3405_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3405_, 0, v_a_3399_);
v___x_3404_ = v_reuseFailAlloc_3405_;
goto v_reusejp_3403_;
}
v_reusejp_3403_:
{
return v___x_3404_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getDiseqValues___boxed(lean_object* v_x_3407_, lean_object* v_a_3408_, lean_object* v_a_3409_, lean_object* v_a_3410_, lean_object* v_a_3411_, lean_object* v_a_3412_, lean_object* v_a_3413_, lean_object* v_a_3414_, lean_object* v_a_3415_, lean_object* v_a_3416_, lean_object* v_a_3417_, lean_object* v_a_3418_, lean_object* v_a_3419_){
_start:
{
lean_object* v_res_3420_; 
v_res_3420_ = l_Lean_Meta_Grind_Arith_Linear_getDiseqValues(v_x_3407_, v_a_3408_, v_a_3409_, v_a_3410_, v_a_3411_, v_a_3412_, v_a_3413_, v_a_3414_, v_a_3415_, v_a_3416_, v_a_3417_, v_a_3418_);
lean_dec(v_a_3418_);
lean_dec_ref(v_a_3417_);
lean_dec(v_a_3416_);
lean_dec_ref(v_a_3415_);
lean_dec(v_a_3414_);
lean_dec_ref(v_a_3413_);
lean_dec(v_a_3412_);
lean_dec_ref(v_a_3411_);
lean_dec(v_a_3410_);
lean_dec(v_a_3409_);
lean_dec(v_a_3408_);
lean_dec(v_x_3407_);
return v_res_3420_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0(lean_object* v_v_3424_, lean_object* v_as_3425_, size_t v_sz_3426_, size_t v_i_3427_, lean_object* v_b_3428_){
_start:
{
uint8_t v___x_3429_; 
v___x_3429_ = lean_usize_dec_lt(v_i_3427_, v_sz_3426_);
if (v___x_3429_ == 0)
{
return v_b_3428_;
}
else
{
lean_object* v_a_3430_; lean_object* v_fst_3431_; lean_object* v___x_3432_; uint8_t v___x_3433_; 
lean_dec_ref(v_b_3428_);
v_a_3430_ = lean_array_uget_borrowed(v_as_3425_, v_i_3427_);
v_fst_3431_ = lean_ctor_get(v_a_3430_, 0);
v___x_3432_ = lean_box(0);
v___x_3433_ = l_instDecidableEqRat_decEq(v_fst_3431_, v_v_3424_);
if (v___x_3433_ == 0)
{
lean_object* v___x_3434_; size_t v___x_3435_; size_t v___x_3436_; 
v___x_3434_ = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0___closed__0));
v___x_3435_ = ((size_t)1ULL);
v___x_3436_ = lean_usize_add(v_i_3427_, v___x_3435_);
v_i_3427_ = v___x_3436_;
v_b_3428_ = v___x_3434_;
goto _start;
}
else
{
lean_object* v___x_3438_; lean_object* v___x_3439_; lean_object* v___x_3440_; 
lean_inc(v_a_3430_);
v___x_3438_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3438_, 0, v_a_3430_);
v___x_3439_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3439_, 0, v___x_3438_);
v___x_3440_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_3440_, 0, v___x_3439_);
lean_ctor_set(v___x_3440_, 1, v___x_3432_);
return v___x_3440_;
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0___boxed(lean_object* v_v_3441_, lean_object* v_as_3442_, lean_object* v_sz_3443_, lean_object* v_i_3444_, lean_object* v_b_3445_){
_start:
{
size_t v_sz_boxed_3446_; size_t v_i_boxed_3447_; lean_object* v_res_3448_; 
v_sz_boxed_3446_ = lean_unbox_usize(v_sz_3443_);
lean_dec(v_sz_3443_);
v_i_boxed_3447_ = lean_unbox_usize(v_i_3444_);
lean_dec(v_i_3444_);
v_res_3448_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0(v_v_3441_, v_as_3442_, v_sz_boxed_3446_, v_i_boxed_3447_, v_b_3445_);
lean_dec_ref(v_as_3442_);
lean_dec_ref(v_v_3441_);
return v_res_3448_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findDiseq_x3f(lean_object* v_v_3449_, lean_object* v_dvals_3450_){
_start:
{
lean_object* v___x_3451_; lean_object* v___x_3452_; size_t v_sz_3453_; size_t v___x_3454_; lean_object* v___x_3455_; lean_object* v_fst_3456_; 
v___x_3451_ = lean_box(0);
v___x_3452_ = ((lean_object*)(l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0___closed__0));
v_sz_3453_ = lean_array_size(v_dvals_3450_);
v___x_3454_ = ((size_t)0ULL);
v___x_3455_ = l___private_Init_Data_Array_Basic_0__Array_forIn_x27Unsafe_loop___at___00Lean_Meta_Grind_Arith_Linear_findDiseq_x3f_spec__0(v_v_3449_, v_dvals_3450_, v_sz_3453_, v___x_3454_, v___x_3452_);
v_fst_3456_ = lean_ctor_get(v___x_3455_, 0);
lean_inc(v_fst_3456_);
lean_dec_ref(v___x_3455_);
if (lean_obj_tag(v_fst_3456_) == 0)
{
return v___x_3451_;
}
else
{
lean_object* v_val_3457_; 
v_val_3457_ = lean_ctor_get(v_fst_3456_, 0);
lean_inc(v_val_3457_);
lean_dec_ref(v_fst_3456_);
if (lean_obj_tag(v_val_3457_) == 0)
{
return v___x_3451_;
}
else
{
lean_object* v_val_3458_; lean_object* v___x_3460_; uint8_t v_isShared_3461_; uint8_t v_isSharedCheck_3466_; 
v_val_3458_ = lean_ctor_get(v_val_3457_, 0);
v_isSharedCheck_3466_ = !lean_is_exclusive(v_val_3457_);
if (v_isSharedCheck_3466_ == 0)
{
v___x_3460_ = v_val_3457_;
v_isShared_3461_ = v_isSharedCheck_3466_;
goto v_resetjp_3459_;
}
else
{
lean_inc(v_val_3458_);
lean_dec(v_val_3457_);
v___x_3460_ = lean_box(0);
v_isShared_3461_ = v_isSharedCheck_3466_;
goto v_resetjp_3459_;
}
v_resetjp_3459_:
{
lean_object* v_snd_3462_; lean_object* v___x_3464_; 
v_snd_3462_ = lean_ctor_get(v_val_3458_, 1);
lean_inc(v_snd_3462_);
lean_dec(v_val_3458_);
if (v_isShared_3461_ == 0)
{
lean_ctor_set(v___x_3460_, 0, v_snd_3462_);
v___x_3464_ = v___x_3460_;
goto v_reusejp_3463_;
}
else
{
lean_object* v_reuseFailAlloc_3465_; 
v_reuseFailAlloc_3465_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3465_, 0, v_snd_3462_);
v___x_3464_ = v_reuseFailAlloc_3465_;
goto v_reusejp_3463_;
}
v_reusejp_3463_:
{
return v___x_3464_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findDiseq_x3f___boxed(lean_object* v_v_3467_, lean_object* v_dvals_3468_){
_start:
{
lean_object* v_res_3469_; 
v_res_3469_ = l_Lean_Meta_Grind_Arith_Linear_findDiseq_x3f(v_v_3467_, v_dvals_3468_);
lean_dec_ref(v_dvals_3468_);
lean_dec_ref(v_v_3467_);
return v_res_3469_;
}
}
LEAN_EXPORT uint8_t l_Lean_Meta_Grind_Arith_Linear_inDiseqValues(lean_object* v_v_3470_, lean_object* v_dvals_3471_){
_start:
{
lean_object* v___x_3472_; 
v___x_3472_ = l_Lean_Meta_Grind_Arith_Linear_findDiseq_x3f(v_v_3470_, v_dvals_3471_);
if (lean_obj_tag(v___x_3472_) == 0)
{
uint8_t v___x_3473_; 
v___x_3473_ = 0;
return v___x_3473_;
}
else
{
uint8_t v___x_3474_; 
lean_dec_ref(v___x_3472_);
v___x_3474_ = 1;
return v___x_3474_;
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_inDiseqValues___boxed(lean_object* v_v_3475_, lean_object* v_dvals_3476_){
_start:
{
uint8_t v_res_3477_; lean_object* v_r_3478_; 
v_res_3477_ = l_Lean_Meta_Grind_Arith_Linear_inDiseqValues(v_v_3475_, v_dvals_3476_);
lean_dec_ref(v_dvals_3476_);
lean_dec_ref(v_v_3475_);
v_r_3478_ = lean_box(v_res_3477_);
return v_r_3478_;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at___00Lean_Meta_Grind_Arith_Linear_geAvoiding_spec__0(lean_object* v_a_3479_){
_start:
{
lean_object* v___x_3480_; lean_object* v___x_3481_; 
v___x_3480_ = lean_nat_to_int(v_a_3479_);
v___x_3481_ = l_Rat_ofInt(v___x_3480_);
return v___x_3481_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0(void){
_start:
{
lean_object* v___x_3482_; lean_object* v___x_3483_; 
v___x_3482_ = lean_unsigned_to_nat(1u);
v___x_3483_ = l_Nat_cast___at___00Lean_Meta_Grind_Arith_Linear_geAvoiding_spec__0(v___x_3482_);
return v___x_3483_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_geAvoiding(lean_object* v_v_3484_, lean_object* v_dvals_3485_){
_start:
{
uint8_t v___x_3486_; 
v___x_3486_ = l_Lean_Meta_Grind_Arith_Linear_inDiseqValues(v_v_3484_, v_dvals_3485_);
if (v___x_3486_ == 0)
{
return v_v_3484_;
}
else
{
lean_object* v___x_3487_; lean_object* v___x_3488_; 
v___x_3487_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0, &l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0);
v___x_3488_ = l_Rat_add(v_v_3484_, v___x_3487_);
v_v_3484_ = v___x_3488_;
goto _start;
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_geAvoiding___boxed(lean_object* v_v_3490_, lean_object* v_dvals_3491_){
_start:
{
lean_object* v_res_3492_; 
v_res_3492_ = l_Lean_Meta_Grind_Arith_Linear_geAvoiding(v_v_3490_, v_dvals_3491_);
lean_dec_ref(v_dvals_3491_);
return v_res_3492_;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at___00Nat_cast___at___00Lean_Meta_Grind_Arith_Linear_geAvoiding_spec__0_spec__0(lean_object* v_a_3493_){
_start:
{
lean_object* v___x_3494_; 
v___x_3494_ = lean_nat_to_int(v_a_3493_);
return v___x_3494_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_leAvoiding(lean_object* v_v_3495_, lean_object* v_dvals_3496_){
_start:
{
uint8_t v___x_3497_; 
v___x_3497_ = l_Lean_Meta_Grind_Arith_Linear_inDiseqValues(v_v_3495_, v_dvals_3496_);
if (v___x_3497_ == 0)
{
return v_v_3495_;
}
else
{
lean_object* v___x_3498_; lean_object* v___x_3499_; 
v___x_3498_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0, &l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0);
v___x_3499_ = l_Rat_sub(v_v_3495_, v___x_3498_);
v_v_3495_ = v___x_3499_;
goto _start;
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_leAvoiding___boxed(lean_object* v_v_3501_, lean_object* v_dvals_3502_){
_start:
{
lean_object* v_res_3503_; 
v_res_3503_ = l_Lean_Meta_Grind_Arith_Linear_leAvoiding(v_v_3501_, v_dvals_3502_);
lean_dec_ref(v_dvals_3502_);
return v_res_3503_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3(void){
_start:
{
lean_object* v___x_3512_; lean_object* v___x_3513_; 
v___x_3512_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__2));
v___x_3513_ = l_Lean_stringToMessageData(v___x_3512_);
return v___x_3513_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict(lean_object* v_c_u2081_3514_, lean_object* v_c_u2082_3515_, lean_object* v_a_3516_, lean_object* v_a_3517_, lean_object* v_a_3518_, lean_object* v_a_3519_, lean_object* v_a_3520_, lean_object* v_a_3521_, lean_object* v_a_3522_, lean_object* v_a_3523_, lean_object* v_a_3524_, lean_object* v_a_3525_, lean_object* v_a_3526_){
_start:
{
lean_object* v___y_3529_; lean_object* v___y_3530_; lean_object* v___y_3531_; lean_object* v___y_3532_; lean_object* v___y_3533_; lean_object* v___y_3534_; lean_object* v___y_3535_; lean_object* v___y_3536_; lean_object* v___y_3537_; lean_object* v___y_3538_; lean_object* v___y_3539_; lean_object* v___y_3540_; uint8_t v___y_3541_; lean_object* v___y_3546_; lean_object* v___y_3547_; lean_object* v___y_3548_; lean_object* v___y_3549_; lean_object* v___y_3550_; lean_object* v___y_3551_; lean_object* v___y_3552_; lean_object* v___y_3553_; lean_object* v___y_3554_; lean_object* v___y_3555_; lean_object* v___y_3556_; lean_object* v_cls_3574_; lean_object* v___x_3575_; lean_object* v_a_3576_; uint8_t v___x_3577_; 
v_cls_3574_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__1));
v___x_3575_ = l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg(v_cls_3574_, v_a_3525_);
v_a_3576_ = lean_ctor_get(v___x_3575_, 0);
lean_inc(v_a_3576_);
lean_dec_ref(v___x_3575_);
v___x_3577_ = lean_unbox(v_a_3576_);
lean_dec(v_a_3576_);
if (v___x_3577_ == 0)
{
v___y_3546_ = v_a_3516_;
v___y_3547_ = v_a_3517_;
v___y_3548_ = v_a_3518_;
v___y_3549_ = v_a_3519_;
v___y_3550_ = v_a_3520_;
v___y_3551_ = v_a_3521_;
v___y_3552_ = v_a_3522_;
v___y_3553_ = v_a_3523_;
v___y_3554_ = v_a_3524_;
v___y_3555_ = v_a_3525_;
v___y_3556_ = v_a_3526_;
goto v___jp_3545_;
}
else
{
lean_object* v___x_3578_; 
v___x_3578_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0(v_c_u2081_3514_, v_a_3516_, v_a_3517_, v_a_3518_, v_a_3519_, v_a_3520_, v_a_3521_, v_a_3522_, v_a_3523_, v_a_3524_, v_a_3525_, v_a_3526_);
if (lean_obj_tag(v___x_3578_) == 0)
{
lean_object* v_a_3579_; lean_object* v___x_3580_; 
v_a_3579_ = lean_ctor_get(v___x_3578_, 0);
lean_inc(v_a_3579_);
lean_dec_ref(v___x_3578_);
v___x_3580_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0(v_c_u2082_3515_, v_a_3516_, v_a_3517_, v_a_3518_, v_a_3519_, v_a_3520_, v_a_3521_, v_a_3522_, v_a_3523_, v_a_3524_, v_a_3525_, v_a_3526_);
if (lean_obj_tag(v___x_3580_) == 0)
{
lean_object* v_a_3581_; lean_object* v___x_3582_; lean_object* v___x_3583_; lean_object* v___x_3584_; lean_object* v___x_3585_; lean_object* v___x_3586_; lean_object* v___x_3587_; 
v_a_3581_ = lean_ctor_get(v___x_3580_, 0);
lean_inc(v_a_3581_);
lean_dec_ref(v___x_3580_);
v___x_3582_ = l_Lean_MessageData_ofExpr(v_a_3579_);
v___x_3583_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3, &l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3);
v___x_3584_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_3584_, 0, v___x_3582_);
lean_ctor_set(v___x_3584_, 1, v___x_3583_);
v___x_3585_ = l_Lean_MessageData_ofExpr(v_a_3581_);
v___x_3586_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_3586_, 0, v___x_3584_);
lean_ctor_set(v___x_3586_, 1, v___x_3585_);
v___x_3587_ = l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg(v_cls_3574_, v___x_3586_, v_a_3523_, v_a_3524_, v_a_3525_, v_a_3526_);
if (lean_obj_tag(v___x_3587_) == 0)
{
lean_dec_ref(v___x_3587_);
v___y_3546_ = v_a_3516_;
v___y_3547_ = v_a_3517_;
v___y_3548_ = v_a_3518_;
v___y_3549_ = v_a_3519_;
v___y_3550_ = v_a_3520_;
v___y_3551_ = v_a_3521_;
v___y_3552_ = v_a_3522_;
v___y_3553_ = v_a_3523_;
v___y_3554_ = v_a_3524_;
v___y_3555_ = v_a_3525_;
v___y_3556_ = v_a_3526_;
goto v___jp_3545_;
}
else
{
lean_dec(v_a_3526_);
lean_dec_ref(v_a_3525_);
lean_dec(v_a_3524_);
lean_dec_ref(v_a_3523_);
lean_dec(v_a_3522_);
lean_dec_ref(v_a_3521_);
lean_dec(v_a_3520_);
lean_dec_ref(v_a_3519_);
lean_dec(v_a_3518_);
lean_dec(v_a_3517_);
lean_dec(v_a_3516_);
lean_dec_ref(v_c_u2082_3515_);
lean_dec_ref(v_c_u2081_3514_);
return v___x_3587_;
}
}
else
{
lean_object* v_a_3588_; lean_object* v___x_3590_; uint8_t v_isShared_3591_; uint8_t v_isSharedCheck_3595_; 
lean_dec(v_a_3579_);
lean_dec(v_a_3526_);
lean_dec_ref(v_a_3525_);
lean_dec(v_a_3524_);
lean_dec_ref(v_a_3523_);
lean_dec(v_a_3522_);
lean_dec_ref(v_a_3521_);
lean_dec(v_a_3520_);
lean_dec_ref(v_a_3519_);
lean_dec(v_a_3518_);
lean_dec(v_a_3517_);
lean_dec(v_a_3516_);
lean_dec_ref(v_c_u2082_3515_);
lean_dec_ref(v_c_u2081_3514_);
v_a_3588_ = lean_ctor_get(v___x_3580_, 0);
v_isSharedCheck_3595_ = !lean_is_exclusive(v___x_3580_);
if (v_isSharedCheck_3595_ == 0)
{
v___x_3590_ = v___x_3580_;
v_isShared_3591_ = v_isSharedCheck_3595_;
goto v_resetjp_3589_;
}
else
{
lean_inc(v_a_3588_);
lean_dec(v___x_3580_);
v___x_3590_ = lean_box(0);
v_isShared_3591_ = v_isSharedCheck_3595_;
goto v_resetjp_3589_;
}
v_resetjp_3589_:
{
lean_object* v___x_3593_; 
if (v_isShared_3591_ == 0)
{
v___x_3593_ = v___x_3590_;
goto v_reusejp_3592_;
}
else
{
lean_object* v_reuseFailAlloc_3594_; 
v_reuseFailAlloc_3594_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3594_, 0, v_a_3588_);
v___x_3593_ = v_reuseFailAlloc_3594_;
goto v_reusejp_3592_;
}
v_reusejp_3592_:
{
return v___x_3593_;
}
}
}
}
else
{
lean_object* v_a_3596_; lean_object* v___x_3598_; uint8_t v_isShared_3599_; uint8_t v_isSharedCheck_3603_; 
lean_dec(v_a_3526_);
lean_dec_ref(v_a_3525_);
lean_dec(v_a_3524_);
lean_dec_ref(v_a_3523_);
lean_dec(v_a_3522_);
lean_dec_ref(v_a_3521_);
lean_dec(v_a_3520_);
lean_dec_ref(v_a_3519_);
lean_dec(v_a_3518_);
lean_dec(v_a_3517_);
lean_dec(v_a_3516_);
lean_dec_ref(v_c_u2082_3515_);
lean_dec_ref(v_c_u2081_3514_);
v_a_3596_ = lean_ctor_get(v___x_3578_, 0);
v_isSharedCheck_3603_ = !lean_is_exclusive(v___x_3578_);
if (v_isSharedCheck_3603_ == 0)
{
v___x_3598_ = v___x_3578_;
v_isShared_3599_ = v_isSharedCheck_3603_;
goto v_resetjp_3597_;
}
else
{
lean_inc(v_a_3596_);
lean_dec(v___x_3578_);
v___x_3598_ = lean_box(0);
v_isShared_3599_ = v_isSharedCheck_3603_;
goto v_resetjp_3597_;
}
v_resetjp_3597_:
{
lean_object* v___x_3601_; 
if (v_isShared_3599_ == 0)
{
v___x_3601_ = v___x_3598_;
goto v_reusejp_3600_;
}
else
{
lean_object* v_reuseFailAlloc_3602_; 
v_reuseFailAlloc_3602_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3602_, 0, v_a_3596_);
v___x_3601_ = v_reuseFailAlloc_3602_;
goto v_reusejp_3600_;
}
v_reusejp_3600_:
{
return v___x_3601_;
}
}
}
}
v___jp_3528_:
{
lean_object* v___x_3542_; lean_object* v___x_3543_; lean_object* v___x_3544_; 
v___x_3542_ = lean_alloc_ctor(5, 2, 0);
lean_ctor_set(v___x_3542_, 0, v_c_u2081_3514_);
lean_ctor_set(v___x_3542_, 1, v_c_u2082_3515_);
v___x_3543_ = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(v___x_3543_, 0, v___y_3530_);
lean_ctor_set(v___x_3543_, 1, v___x_3542_);
lean_ctor_set_uint8(v___x_3543_, sizeof(void*)*2, v___y_3541_);
v___x_3544_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_assert(v___x_3543_, v___y_3535_, v___y_3536_, v___y_3532_, v___y_3533_, v___y_3529_, v___y_3538_, v___y_3537_, v___y_3540_, v___y_3531_, v___y_3539_, v___y_3534_);
return v___x_3544_;
}
v___jp_3545_:
{
lean_object* v_p_3557_; 
v_p_3557_ = lean_ctor_get(v_c_u2081_3514_, 0);
if (lean_obj_tag(v_p_3557_) == 1)
{
lean_object* v_p_3558_; 
v_p_3558_ = lean_ctor_get(v_c_u2082_3515_, 0);
if (lean_obj_tag(v_p_3558_) == 1)
{
uint8_t v_strict_3559_; lean_object* v_k_3560_; lean_object* v_p_3561_; uint8_t v_strict_3562_; lean_object* v_k_3563_; lean_object* v_p_3564_; lean_object* v___x_3565_; lean_object* v___x_3566_; lean_object* v___x_3567_; lean_object* v___x_3568_; lean_object* v___x_3569_; lean_object* v___x_3570_; lean_object* v___x_3571_; 
v_strict_3559_ = lean_ctor_get_uint8(v_c_u2081_3514_, sizeof(void*)*2);
v_k_3560_ = lean_ctor_get(v_p_3557_, 0);
v_p_3561_ = lean_ctor_get(v_p_3557_, 2);
v_strict_3562_ = lean_ctor_get_uint8(v_c_u2082_3515_, sizeof(void*)*2);
v_k_3563_ = lean_ctor_get(v_p_3558_, 0);
v_p_3564_ = lean_ctor_get(v_p_3558_, 2);
v___x_3565_ = lean_nat_abs(v_k_3563_);
v___x_3566_ = lean_nat_to_int(v___x_3565_);
lean_inc(v_p_3561_);
v___x_3567_ = l_Lean_Grind_Linarith_Poly_mul(v_p_3561_, v___x_3566_);
lean_dec(v___x_3566_);
v___x_3568_ = lean_nat_abs(v_k_3560_);
v___x_3569_ = lean_nat_to_int(v___x_3568_);
lean_inc(v_p_3564_);
v___x_3570_ = l_Lean_Grind_Linarith_Poly_mul(v_p_3564_, v___x_3569_);
lean_dec(v___x_3569_);
v___x_3571_ = l_Lean_Grind_Linarith_Poly_combine(v___x_3567_, v___x_3570_);
if (v_strict_3559_ == 0)
{
v___y_3529_ = v___y_3550_;
v___y_3530_ = v___x_3571_;
v___y_3531_ = v___y_3554_;
v___y_3532_ = v___y_3548_;
v___y_3533_ = v___y_3549_;
v___y_3534_ = v___y_3556_;
v___y_3535_ = v___y_3546_;
v___y_3536_ = v___y_3547_;
v___y_3537_ = v___y_3552_;
v___y_3538_ = v___y_3551_;
v___y_3539_ = v___y_3555_;
v___y_3540_ = v___y_3553_;
v___y_3541_ = v_strict_3562_;
goto v___jp_3528_;
}
else
{
v___y_3529_ = v___y_3550_;
v___y_3530_ = v___x_3571_;
v___y_3531_ = v___y_3554_;
v___y_3532_ = v___y_3548_;
v___y_3533_ = v___y_3549_;
v___y_3534_ = v___y_3556_;
v___y_3535_ = v___y_3546_;
v___y_3536_ = v___y_3547_;
v___y_3537_ = v___y_3552_;
v___y_3538_ = v___y_3551_;
v___y_3539_ = v___y_3555_;
v___y_3540_ = v___y_3553_;
v___y_3541_ = v_strict_3559_;
goto v___jp_3528_;
}
}
else
{
lean_object* v___x_3572_; 
lean_dec_ref(v_c_u2081_3514_);
v___x_3572_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_c_u2082_3515_, v___y_3546_, v___y_3547_, v___y_3548_, v___y_3549_, v___y_3550_, v___y_3551_, v___y_3552_, v___y_3553_, v___y_3554_, v___y_3555_, v___y_3556_);
lean_dec(v___y_3556_);
lean_dec_ref(v___y_3555_);
lean_dec(v___y_3554_);
lean_dec_ref(v___y_3553_);
lean_dec(v___y_3552_);
lean_dec_ref(v___y_3551_);
lean_dec(v___y_3550_);
lean_dec_ref(v___y_3549_);
lean_dec(v___y_3548_);
lean_dec(v___y_3547_);
lean_dec(v___y_3546_);
lean_dec_ref(v_c_u2082_3515_);
return v___x_3572_;
}
}
else
{
lean_object* v___x_3573_; 
lean_dec_ref(v_c_u2082_3515_);
v___x_3573_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected___redArg(v_c_u2081_3514_, v___y_3546_, v___y_3547_, v___y_3548_, v___y_3549_, v___y_3550_, v___y_3551_, v___y_3552_, v___y_3553_, v___y_3554_, v___y_3555_, v___y_3556_);
lean_dec(v___y_3556_);
lean_dec_ref(v___y_3555_);
lean_dec(v___y_3554_);
lean_dec_ref(v___y_3553_);
lean_dec(v___y_3552_);
lean_dec_ref(v___y_3551_);
lean_dec(v___y_3550_);
lean_dec_ref(v___y_3549_);
lean_dec(v___y_3548_);
lean_dec(v___y_3547_);
lean_dec(v___y_3546_);
lean_dec_ref(v_c_u2081_3514_);
return v___x_3573_;
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___boxed(lean_object* v_c_u2081_3604_, lean_object* v_c_u2082_3605_, lean_object* v_a_3606_, lean_object* v_a_3607_, lean_object* v_a_3608_, lean_object* v_a_3609_, lean_object* v_a_3610_, lean_object* v_a_3611_, lean_object* v_a_3612_, lean_object* v_a_3613_, lean_object* v_a_3614_, lean_object* v_a_3615_, lean_object* v_a_3616_, lean_object* v_a_3617_){
_start:
{
lean_object* v_res_3618_; 
v_res_3618_ = l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict(v_c_u2081_3604_, v_c_u2082_3605_, v_a_3606_, v_a_3607_, v_a_3608_, v_a_3609_, v_a_3610_, v_a_3611_, v_a_3612_, v_a_3613_, v_a_3614_, v_a_3615_, v_a_3616_);
return v_res_3618_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findInt_x3f_go(lean_object* v_dvals_3619_, lean_object* v_v_3620_, lean_object* v_stop_3621_){
_start:
{
uint8_t v___x_3622_; 
v___x_3622_ = lean_int_dec_lt(v_stop_3621_, v_v_3620_);
if (v___x_3622_ == 0)
{
lean_object* v___x_3623_; uint8_t v___x_3624_; 
lean_inc(v_v_3620_);
v___x_3623_ = l_Rat_ofInt(v_v_3620_);
v___x_3624_ = l_Lean_Meta_Grind_Arith_Linear_inDiseqValues(v___x_3623_, v_dvals_3619_);
if (v___x_3624_ == 0)
{
lean_object* v___x_3625_; 
lean_dec(v_v_3620_);
v___x_3625_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3625_, 0, v___x_3623_);
return v___x_3625_;
}
else
{
lean_object* v___x_3626_; lean_object* v___x_3627_; 
lean_dec_ref(v___x_3623_);
v___x_3626_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0);
v___x_3627_ = lean_int_add(v_v_3620_, v___x_3626_);
lean_dec(v_v_3620_);
v_v_3620_ = v___x_3627_;
goto _start;
}
}
else
{
lean_object* v___x_3629_; 
lean_dec(v_v_3620_);
v___x_3629_ = lean_box(0);
return v___x_3629_;
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findInt_x3f_go___boxed(lean_object* v_dvals_3630_, lean_object* v_v_3631_, lean_object* v_stop_3632_){
_start:
{
lean_object* v_res_3633_; 
v_res_3633_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findInt_x3f_go(v_dvals_3630_, v_v_3631_, v_stop_3632_);
lean_dec(v_stop_3632_);
lean_dec_ref(v_dvals_3630_);
return v_res_3633_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findInt_x3f(lean_object* v_lower_3634_, uint8_t v_lowerStrict_3635_, lean_object* v_upper_3636_, uint8_t v_upperStrict_3637_, lean_object* v_dvals_3638_){
_start:
{
lean_object* v___y_3640_; lean_object* v___y_3641_; uint8_t v___y_3642_; lean_object* v___y_3648_; lean_object* v_start_3652_; uint8_t v___y_3654_; lean_object* v___x_3657_; uint8_t v___x_3658_; 
lean_inc_ref(v_lower_3634_);
v_start_3652_ = l_Rat_ceil(v_lower_3634_);
lean_inc(v_start_3652_);
v___x_3657_ = l_Rat_ofInt(v_start_3652_);
v___x_3658_ = l_instDecidableEqRat_decEq(v___x_3657_, v_lower_3634_);
lean_dec_ref(v_lower_3634_);
lean_dec_ref(v___x_3657_);
if (v___x_3658_ == 0)
{
v___y_3654_ = v___x_3658_;
goto v___jp_3653_;
}
else
{
v___y_3654_ = v_lowerStrict_3635_;
goto v___jp_3653_;
}
v___jp_3639_:
{
if (v___y_3642_ == 0)
{
lean_object* v___x_3643_; 
v___x_3643_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findInt_x3f_go(v_dvals_3638_, v___y_3641_, v___y_3640_);
lean_dec(v___y_3640_);
return v___x_3643_;
}
else
{
lean_object* v___x_3644_; lean_object* v___x_3645_; lean_object* v___x_3646_; 
v___x_3644_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0);
v___x_3645_ = lean_int_sub(v___y_3640_, v___x_3644_);
lean_dec(v___y_3640_);
v___x_3646_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findInt_x3f_go(v_dvals_3638_, v___y_3641_, v___x_3645_);
lean_dec(v___x_3645_);
return v___x_3646_;
}
}
v___jp_3647_:
{
lean_object* v_stop_3649_; lean_object* v___x_3650_; uint8_t v___x_3651_; 
lean_inc_ref(v_upper_3636_);
v_stop_3649_ = l_Rat_floor(v_upper_3636_);
lean_inc(v_stop_3649_);
v___x_3650_ = l_Rat_ofInt(v_stop_3649_);
v___x_3651_ = l_instDecidableEqRat_decEq(v___x_3650_, v_upper_3636_);
lean_dec_ref(v_upper_3636_);
lean_dec_ref(v___x_3650_);
if (v___x_3651_ == 0)
{
v___y_3640_ = v_stop_3649_;
v___y_3641_ = v___y_3648_;
v___y_3642_ = v___x_3651_;
goto v___jp_3639_;
}
else
{
v___y_3640_ = v_stop_3649_;
v___y_3641_ = v___y_3648_;
v___y_3642_ = v_upperStrict_3637_;
goto v___jp_3639_;
}
}
v___jp_3653_:
{
if (v___y_3654_ == 0)
{
v___y_3648_ = v_start_3652_;
goto v___jp_3647_;
}
else
{
lean_object* v___x_3655_; lean_object* v___x_3656_; 
v___x_3655_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0);
v___x_3656_ = lean_int_add(v_start_3652_, v___x_3655_);
lean_dec(v_start_3652_);
v___y_3648_ = v___x_3656_;
goto v___jp_3647_;
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findInt_x3f___boxed(lean_object* v_lower_3659_, lean_object* v_lowerStrict_3660_, lean_object* v_upper_3661_, lean_object* v_upperStrict_3662_, lean_object* v_dvals_3663_){
_start:
{
uint8_t v_lowerStrict_boxed_3664_; uint8_t v_upperStrict_boxed_3665_; lean_object* v_res_3666_; 
v_lowerStrict_boxed_3664_ = lean_unbox(v_lowerStrict_3660_);
v_upperStrict_boxed_3665_ = lean_unbox(v_upperStrict_3662_);
v_res_3666_ = l_Lean_Meta_Grind_Arith_Linear_findInt_x3f(v_lower_3659_, v_lowerStrict_boxed_3664_, v_upper_3661_, v_upperStrict_boxed_3665_, v_dvals_3663_);
lean_dec_ref(v_dvals_3663_);
return v_res_3666_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_findRat___closed__0(void){
_start:
{
lean_object* v___x_3667_; lean_object* v___x_3668_; 
v___x_3667_ = lean_unsigned_to_nat(2u);
v___x_3668_ = l_Nat_cast___at___00Lean_Meta_Grind_Arith_Linear_geAvoiding_spec__0(v___x_3667_);
return v___x_3668_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findRat(lean_object* v_lower_3669_, lean_object* v_upper_3670_, lean_object* v_dvals_3671_){
_start:
{
lean_object* v___x_3672_; lean_object* v___x_3673_; lean_object* v_mid_3674_; uint8_t v___x_3675_; 
lean_inc_ref(v_upper_3670_);
v___x_3672_ = l_Rat_add(v_lower_3669_, v_upper_3670_);
v___x_3673_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_findRat___closed__0, &l_Lean_Meta_Grind_Arith_Linear_findRat___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_findRat___closed__0);
v_mid_3674_ = l_Rat_div(v___x_3672_, v___x_3673_);
lean_dec_ref(v___x_3672_);
v___x_3675_ = l_Lean_Meta_Grind_Arith_Linear_inDiseqValues(v_mid_3674_, v_dvals_3671_);
if (v___x_3675_ == 0)
{
lean_dec_ref(v_upper_3670_);
return v_mid_3674_;
}
else
{
v_lower_3669_ = v_mid_3674_;
goto _start;
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_findRat___boxed(lean_object* v_lower_3677_, lean_object* v_upper_3678_, lean_object* v_dvals_3679_){
_start:
{
lean_object* v_res_3680_; 
v_res_3680_ = l_Lean_Meta_Grind_Arith_Linear_findRat(v_lower_3677_, v_upper_3678_, v_dvals_3679_);
lean_dec_ref(v_dvals_3679_);
return v_res_3680_;
}
}
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(lean_object* v_cls_3681_, lean_object* v___y_3682_){
_start:
{
lean_object* v_options_3684_; uint8_t v_hasTrace_3685_; 
v_options_3684_ = lean_ctor_get(v___y_3682_, 2);
v_hasTrace_3685_ = lean_ctor_get_uint8(v_options_3684_, sizeof(void*)*1);
if (v_hasTrace_3685_ == 0)
{
lean_object* v___x_3686_; lean_object* v___x_3687_; 
lean_dec(v_cls_3681_);
v___x_3686_ = lean_box(v_hasTrace_3685_);
v___x_3687_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3687_, 0, v___x_3686_);
return v___x_3687_;
}
else
{
lean_object* v_inheritedTraceOptions_3688_; lean_object* v___x_3689_; lean_object* v___x_3690_; uint8_t v___x_3691_; lean_object* v___x_3692_; lean_object* v___x_3693_; 
v_inheritedTraceOptions_3688_ = lean_ctor_get(v___y_3682_, 13);
v___x_3689_ = ((lean_object*)(l_Lean_isTracingEnabledFor___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__0___redArg___closed__1));
v___x_3690_ = l_Lean_Name_append(v___x_3689_, v_cls_3681_);
v___x_3691_ = l___private_Lean_Util_Trace_0__Lean_checkTraceOption_go(v_inheritedTraceOptions_3688_, v_options_3684_, v___x_3690_);
lean_dec(v___x_3690_);
v___x_3692_ = lean_box(v___x_3691_);
v___x_3693_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3693_, 0, v___x_3692_);
return v___x_3693_;
}
}
}
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg___boxed(lean_object* v_cls_3694_, lean_object* v___y_3695_, lean_object* v___y_3696_){
_start:
{
lean_object* v_res_3697_; 
v_res_3697_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v_cls_3694_, v___y_3695_);
lean_dec_ref(v___y_3695_);
return v_res_3697_;
}
}
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1(lean_object* v_cls_3698_, lean_object* v___y_3699_, lean_object* v___y_3700_, lean_object* v___y_3701_, lean_object* v___y_3702_, lean_object* v___y_3703_, lean_object* v___y_3704_, lean_object* v___y_3705_, lean_object* v___y_3706_, lean_object* v___y_3707_, lean_object* v___y_3708_, lean_object* v___y_3709_, lean_object* v___y_3710_){
_start:
{
lean_object* v___x_3712_; 
v___x_3712_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v_cls_3698_, v___y_3709_);
return v___x_3712_;
}
}
LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___boxed(lean_object* v_cls_3713_, lean_object* v___y_3714_, lean_object* v___y_3715_, lean_object* v___y_3716_, lean_object* v___y_3717_, lean_object* v___y_3718_, lean_object* v___y_3719_, lean_object* v___y_3720_, lean_object* v___y_3721_, lean_object* v___y_3722_, lean_object* v___y_3723_, lean_object* v___y_3724_, lean_object* v___y_3725_, lean_object* v___y_3726_){
_start:
{
lean_object* v_res_3727_; 
v_res_3727_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1(v_cls_3713_, v___y_3714_, v___y_3715_, v___y_3716_, v___y_3717_, v___y_3718_, v___y_3719_, v___y_3720_, v___y_3721_, v___y_3722_, v___y_3723_, v___y_3724_, v___y_3725_);
lean_dec(v___y_3725_);
lean_dec_ref(v___y_3724_);
lean_dec(v___y_3723_);
lean_dec_ref(v___y_3722_);
lean_dec(v___y_3721_);
lean_dec_ref(v___y_3720_);
lean_dec(v___y_3719_);
lean_dec_ref(v___y_3718_);
lean_dec(v___y_3717_);
lean_dec(v___y_3716_);
lean_dec(v___y_3715_);
lean_dec(v___y_3714_);
return v_res_3727_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at___00Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11_spec__12___redArg(lean_object* v_x_3728_, lean_object* v_x_3729_, lean_object* v_x_3730_, lean_object* v_x_3731_){
_start:
{
lean_object* v_ks_3732_; lean_object* v_vs_3733_; lean_object* v___x_3735_; uint8_t v_isShared_3736_; uint8_t v_isSharedCheck_3757_; 
v_ks_3732_ = lean_ctor_get(v_x_3728_, 0);
v_vs_3733_ = lean_ctor_get(v_x_3728_, 1);
v_isSharedCheck_3757_ = !lean_is_exclusive(v_x_3728_);
if (v_isSharedCheck_3757_ == 0)
{
v___x_3735_ = v_x_3728_;
v_isShared_3736_ = v_isSharedCheck_3757_;
goto v_resetjp_3734_;
}
else
{
lean_inc(v_vs_3733_);
lean_inc(v_ks_3732_);
lean_dec(v_x_3728_);
v___x_3735_ = lean_box(0);
v_isShared_3736_ = v_isSharedCheck_3757_;
goto v_resetjp_3734_;
}
v_resetjp_3734_:
{
lean_object* v___x_3737_; uint8_t v___x_3738_; 
v___x_3737_ = lean_array_get_size(v_ks_3732_);
v___x_3738_ = lean_nat_dec_lt(v_x_3729_, v___x_3737_);
if (v___x_3738_ == 0)
{
lean_object* v___x_3739_; lean_object* v___x_3740_; lean_object* v___x_3742_; 
lean_dec(v_x_3729_);
v___x_3739_ = lean_array_push(v_ks_3732_, v_x_3730_);
v___x_3740_ = lean_array_push(v_vs_3733_, v_x_3731_);
if (v_isShared_3736_ == 0)
{
lean_ctor_set(v___x_3735_, 1, v___x_3740_);
lean_ctor_set(v___x_3735_, 0, v___x_3739_);
v___x_3742_ = v___x_3735_;
goto v_reusejp_3741_;
}
else
{
lean_object* v_reuseFailAlloc_3743_; 
v_reuseFailAlloc_3743_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v_reuseFailAlloc_3743_, 0, v___x_3739_);
lean_ctor_set(v_reuseFailAlloc_3743_, 1, v___x_3740_);
v___x_3742_ = v_reuseFailAlloc_3743_;
goto v_reusejp_3741_;
}
v_reusejp_3741_:
{
return v___x_3742_;
}
}
else
{
lean_object* v_k_x27_3744_; uint8_t v___x_3745_; 
v_k_x27_3744_ = lean_array_fget_borrowed(v_ks_3732_, v_x_3729_);
v___x_3745_ = l_Lean_Grind_Linarith_instBEqPoly_beq(v_x_3730_, v_k_x27_3744_);
if (v___x_3745_ == 0)
{
lean_object* v___x_3747_; 
if (v_isShared_3736_ == 0)
{
v___x_3747_ = v___x_3735_;
goto v_reusejp_3746_;
}
else
{
lean_object* v_reuseFailAlloc_3751_; 
v_reuseFailAlloc_3751_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v_reuseFailAlloc_3751_, 0, v_ks_3732_);
lean_ctor_set(v_reuseFailAlloc_3751_, 1, v_vs_3733_);
v___x_3747_ = v_reuseFailAlloc_3751_;
goto v_reusejp_3746_;
}
v_reusejp_3746_:
{
lean_object* v___x_3748_; lean_object* v___x_3749_; 
v___x_3748_ = lean_unsigned_to_nat(1u);
v___x_3749_ = lean_nat_add(v_x_3729_, v___x_3748_);
lean_dec(v_x_3729_);
v_x_3728_ = v___x_3747_;
v_x_3729_ = v___x_3749_;
goto _start;
}
}
else
{
lean_object* v___x_3752_; lean_object* v___x_3753_; lean_object* v___x_3755_; 
v___x_3752_ = lean_array_fset(v_ks_3732_, v_x_3729_, v_x_3730_);
v___x_3753_ = lean_array_fset(v_vs_3733_, v_x_3729_, v_x_3731_);
lean_dec(v_x_3729_);
if (v_isShared_3736_ == 0)
{
lean_ctor_set(v___x_3735_, 1, v___x_3753_);
lean_ctor_set(v___x_3735_, 0, v___x_3752_);
v___x_3755_ = v___x_3735_;
goto v_reusejp_3754_;
}
else
{
lean_object* v_reuseFailAlloc_3756_; 
v_reuseFailAlloc_3756_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v_reuseFailAlloc_3756_, 0, v___x_3752_);
lean_ctor_set(v_reuseFailAlloc_3756_, 1, v___x_3753_);
v___x_3755_ = v_reuseFailAlloc_3756_;
goto v_reusejp_3754_;
}
v_reusejp_3754_:
{
return v___x_3755_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11___redArg(lean_object* v_n_3758_, lean_object* v_k_3759_, lean_object* v_v_3760_){
_start:
{
lean_object* v___x_3761_; lean_object* v___x_3762_; 
v___x_3761_ = lean_unsigned_to_nat(0u);
v___x_3762_ = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at___00Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11_spec__12___redArg(v_n_3758_, v___x_3761_, v_k_3759_, v_v_3760_);
return v___x_3762_;
}
}
static size_t _init_l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__0(void){
_start:
{
size_t v___x_3763_; size_t v___x_3764_; size_t v___x_3765_; 
v___x_3763_ = ((size_t)5ULL);
v___x_3764_ = ((size_t)1ULL);
v___x_3765_ = lean_usize_shift_left(v___x_3764_, v___x_3763_);
return v___x_3765_;
}
}
static size_t _init_l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__1(void){
_start:
{
size_t v___x_3766_; size_t v___x_3767_; size_t v___x_3768_; 
v___x_3766_ = ((size_t)1ULL);
v___x_3767_ = lean_usize_once(&l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__0, &l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__0_once, _init_l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__0);
v___x_3768_ = lean_usize_sub(v___x_3767_, v___x_3766_);
return v___x_3768_;
}
}
static lean_object* _init_l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__2(void){
_start:
{
lean_object* v___x_3769_; 
v___x_3769_ = l_Lean_PersistentHashMap_mkEmptyEntries(lean_box(0), lean_box(0));
return v___x_3769_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg(lean_object* v_x_3770_, size_t v_x_3771_, size_t v_x_3772_, lean_object* v_x_3773_, lean_object* v_x_3774_){
_start:
{
if (lean_obj_tag(v_x_3770_) == 0)
{
lean_object* v_es_3775_; size_t v___x_3776_; size_t v___x_3777_; size_t v___x_3778_; size_t v___x_3779_; lean_object* v_j_3780_; lean_object* v___x_3781_; uint8_t v___x_3782_; 
v_es_3775_ = lean_ctor_get(v_x_3770_, 0);
v___x_3776_ = ((size_t)5ULL);
v___x_3777_ = ((size_t)1ULL);
v___x_3778_ = lean_usize_once(&l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__1, &l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__1_once, _init_l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__1);
v___x_3779_ = lean_usize_land(v_x_3771_, v___x_3778_);
v_j_3780_ = lean_usize_to_nat(v___x_3779_);
v___x_3781_ = lean_array_get_size(v_es_3775_);
v___x_3782_ = lean_nat_dec_lt(v_j_3780_, v___x_3781_);
if (v___x_3782_ == 0)
{
lean_dec(v_j_3780_);
lean_dec(v_x_3774_);
lean_dec(v_x_3773_);
return v_x_3770_;
}
else
{
lean_object* v___x_3784_; uint8_t v_isShared_3785_; uint8_t v_isSharedCheck_3819_; 
lean_inc_ref(v_es_3775_);
v_isSharedCheck_3819_ = !lean_is_exclusive(v_x_3770_);
if (v_isSharedCheck_3819_ == 0)
{
lean_object* v_unused_3820_; 
v_unused_3820_ = lean_ctor_get(v_x_3770_, 0);
lean_dec(v_unused_3820_);
v___x_3784_ = v_x_3770_;
v_isShared_3785_ = v_isSharedCheck_3819_;
goto v_resetjp_3783_;
}
else
{
lean_dec(v_x_3770_);
v___x_3784_ = lean_box(0);
v_isShared_3785_ = v_isSharedCheck_3819_;
goto v_resetjp_3783_;
}
v_resetjp_3783_:
{
lean_object* v_v_3786_; lean_object* v___x_3787_; lean_object* v_xs_x27_3788_; lean_object* v___y_3790_; 
v_v_3786_ = lean_array_fget(v_es_3775_, v_j_3780_);
v___x_3787_ = lean_box(0);
v_xs_x27_3788_ = lean_array_fset(v_es_3775_, v_j_3780_, v___x_3787_);
switch(lean_obj_tag(v_v_3786_))
{
case 0:
{
lean_object* v_key_3795_; lean_object* v_val_3796_; lean_object* v___x_3798_; uint8_t v_isShared_3799_; uint8_t v_isSharedCheck_3806_; 
v_key_3795_ = lean_ctor_get(v_v_3786_, 0);
v_val_3796_ = lean_ctor_get(v_v_3786_, 1);
v_isSharedCheck_3806_ = !lean_is_exclusive(v_v_3786_);
if (v_isSharedCheck_3806_ == 0)
{
v___x_3798_ = v_v_3786_;
v_isShared_3799_ = v_isSharedCheck_3806_;
goto v_resetjp_3797_;
}
else
{
lean_inc(v_val_3796_);
lean_inc(v_key_3795_);
lean_dec(v_v_3786_);
v___x_3798_ = lean_box(0);
v_isShared_3799_ = v_isSharedCheck_3806_;
goto v_resetjp_3797_;
}
v_resetjp_3797_:
{
uint8_t v___x_3800_; 
v___x_3800_ = l_Lean_Grind_Linarith_instBEqPoly_beq(v_x_3773_, v_key_3795_);
if (v___x_3800_ == 0)
{
lean_object* v___x_3801_; lean_object* v___x_3802_; 
lean_del_object(v___x_3798_);
v___x_3801_ = l_Lean_PersistentHashMap_mkCollisionNode___redArg(v_key_3795_, v_val_3796_, v_x_3773_, v_x_3774_);
v___x_3802_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3802_, 0, v___x_3801_);
v___y_3790_ = v___x_3802_;
goto v___jp_3789_;
}
else
{
lean_object* v___x_3804_; 
lean_dec(v_val_3796_);
lean_dec(v_key_3795_);
if (v_isShared_3799_ == 0)
{
lean_ctor_set(v___x_3798_, 1, v_x_3774_);
lean_ctor_set(v___x_3798_, 0, v_x_3773_);
v___x_3804_ = v___x_3798_;
goto v_reusejp_3803_;
}
else
{
lean_object* v_reuseFailAlloc_3805_; 
v_reuseFailAlloc_3805_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_3805_, 0, v_x_3773_);
lean_ctor_set(v_reuseFailAlloc_3805_, 1, v_x_3774_);
v___x_3804_ = v_reuseFailAlloc_3805_;
goto v_reusejp_3803_;
}
v_reusejp_3803_:
{
v___y_3790_ = v___x_3804_;
goto v___jp_3789_;
}
}
}
}
case 1:
{
lean_object* v_node_3807_; lean_object* v___x_3809_; uint8_t v_isShared_3810_; uint8_t v_isSharedCheck_3817_; 
v_node_3807_ = lean_ctor_get(v_v_3786_, 0);
v_isSharedCheck_3817_ = !lean_is_exclusive(v_v_3786_);
if (v_isSharedCheck_3817_ == 0)
{
v___x_3809_ = v_v_3786_;
v_isShared_3810_ = v_isSharedCheck_3817_;
goto v_resetjp_3808_;
}
else
{
lean_inc(v_node_3807_);
lean_dec(v_v_3786_);
v___x_3809_ = lean_box(0);
v_isShared_3810_ = v_isSharedCheck_3817_;
goto v_resetjp_3808_;
}
v_resetjp_3808_:
{
size_t v___x_3811_; size_t v___x_3812_; lean_object* v___x_3813_; lean_object* v___x_3815_; 
v___x_3811_ = lean_usize_shift_right(v_x_3771_, v___x_3776_);
v___x_3812_ = lean_usize_add(v_x_3772_, v___x_3777_);
v___x_3813_ = l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg(v_node_3807_, v___x_3811_, v___x_3812_, v_x_3773_, v_x_3774_);
if (v_isShared_3810_ == 0)
{
lean_ctor_set(v___x_3809_, 0, v___x_3813_);
v___x_3815_ = v___x_3809_;
goto v_reusejp_3814_;
}
else
{
lean_object* v_reuseFailAlloc_3816_; 
v_reuseFailAlloc_3816_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3816_, 0, v___x_3813_);
v___x_3815_ = v_reuseFailAlloc_3816_;
goto v_reusejp_3814_;
}
v_reusejp_3814_:
{
v___y_3790_ = v___x_3815_;
goto v___jp_3789_;
}
}
}
default: 
{
lean_object* v___x_3818_; 
v___x_3818_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_3818_, 0, v_x_3773_);
lean_ctor_set(v___x_3818_, 1, v_x_3774_);
v___y_3790_ = v___x_3818_;
goto v___jp_3789_;
}
}
v___jp_3789_:
{
lean_object* v___x_3791_; lean_object* v___x_3793_; 
v___x_3791_ = lean_array_fset(v_xs_x27_3788_, v_j_3780_, v___y_3790_);
lean_dec(v_j_3780_);
if (v_isShared_3785_ == 0)
{
lean_ctor_set(v___x_3784_, 0, v___x_3791_);
v___x_3793_ = v___x_3784_;
goto v_reusejp_3792_;
}
else
{
lean_object* v_reuseFailAlloc_3794_; 
v_reuseFailAlloc_3794_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3794_, 0, v___x_3791_);
v___x_3793_ = v_reuseFailAlloc_3794_;
goto v_reusejp_3792_;
}
v_reusejp_3792_:
{
return v___x_3793_;
}
}
}
}
}
else
{
lean_object* v_ks_3821_; lean_object* v_vs_3822_; lean_object* v___x_3824_; uint8_t v_isShared_3825_; uint8_t v_isSharedCheck_3842_; 
v_ks_3821_ = lean_ctor_get(v_x_3770_, 0);
v_vs_3822_ = lean_ctor_get(v_x_3770_, 1);
v_isSharedCheck_3842_ = !lean_is_exclusive(v_x_3770_);
if (v_isSharedCheck_3842_ == 0)
{
v___x_3824_ = v_x_3770_;
v_isShared_3825_ = v_isSharedCheck_3842_;
goto v_resetjp_3823_;
}
else
{
lean_inc(v_vs_3822_);
lean_inc(v_ks_3821_);
lean_dec(v_x_3770_);
v___x_3824_ = lean_box(0);
v_isShared_3825_ = v_isSharedCheck_3842_;
goto v_resetjp_3823_;
}
v_resetjp_3823_:
{
lean_object* v___x_3827_; 
if (v_isShared_3825_ == 0)
{
v___x_3827_ = v___x_3824_;
goto v_reusejp_3826_;
}
else
{
lean_object* v_reuseFailAlloc_3841_; 
v_reuseFailAlloc_3841_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v_reuseFailAlloc_3841_, 0, v_ks_3821_);
lean_ctor_set(v_reuseFailAlloc_3841_, 1, v_vs_3822_);
v___x_3827_ = v_reuseFailAlloc_3841_;
goto v_reusejp_3826_;
}
v_reusejp_3826_:
{
lean_object* v_newNode_3828_; uint8_t v___y_3830_; size_t v___x_3836_; uint8_t v___x_3837_; 
v_newNode_3828_ = l_Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11___redArg(v___x_3827_, v_x_3773_, v_x_3774_);
v___x_3836_ = ((size_t)7ULL);
v___x_3837_ = lean_usize_dec_le(v___x_3836_, v_x_3772_);
if (v___x_3837_ == 0)
{
lean_object* v___x_3838_; lean_object* v___x_3839_; uint8_t v___x_3840_; 
v___x_3838_ = l_Lean_PersistentHashMap_getCollisionNodeSize___redArg(v_newNode_3828_);
v___x_3839_ = lean_unsigned_to_nat(4u);
v___x_3840_ = lean_nat_dec_lt(v___x_3838_, v___x_3839_);
lean_dec(v___x_3838_);
v___y_3830_ = v___x_3840_;
goto v___jp_3829_;
}
else
{
v___y_3830_ = v___x_3837_;
goto v___jp_3829_;
}
v___jp_3829_:
{
if (v___y_3830_ == 0)
{
lean_object* v_ks_3831_; lean_object* v_vs_3832_; lean_object* v___x_3833_; lean_object* v___x_3834_; lean_object* v___x_3835_; 
v_ks_3831_ = lean_ctor_get(v_newNode_3828_, 0);
lean_inc_ref(v_ks_3831_);
v_vs_3832_ = lean_ctor_get(v_newNode_3828_, 1);
lean_inc_ref(v_vs_3832_);
lean_dec_ref(v_newNode_3828_);
v___x_3833_ = lean_unsigned_to_nat(0u);
v___x_3834_ = lean_obj_once(&l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__2, &l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__2_once, _init_l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__2);
v___x_3835_ = l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12___redArg(v_x_3772_, v_ks_3831_, v_vs_3832_, v___x_3833_, v___x_3834_);
lean_dec_ref(v_vs_3832_);
lean_dec_ref(v_ks_3831_);
return v___x_3835_;
}
else
{
return v_newNode_3828_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12___redArg(size_t v_depth_3843_, lean_object* v_keys_3844_, lean_object* v_vals_3845_, lean_object* v_i_3846_, lean_object* v_entries_3847_){
_start:
{
lean_object* v___x_3848_; uint8_t v___x_3849_; 
v___x_3848_ = lean_array_get_size(v_keys_3844_);
v___x_3849_ = lean_nat_dec_lt(v_i_3846_, v___x_3848_);
if (v___x_3849_ == 0)
{
lean_dec(v_i_3846_);
return v_entries_3847_;
}
else
{
lean_object* v_k_3850_; lean_object* v_v_3851_; uint64_t v___x_3852_; size_t v_h_3853_; size_t v___x_3854_; lean_object* v___x_3855_; size_t v___x_3856_; size_t v___x_3857_; size_t v___x_3858_; size_t v_h_3859_; lean_object* v___x_3860_; lean_object* v___x_3861_; 
v_k_3850_ = lean_array_fget_borrowed(v_keys_3844_, v_i_3846_);
v_v_3851_ = lean_array_fget_borrowed(v_vals_3845_, v_i_3846_);
v___x_3852_ = l_Lean_Meta_Grind_Arith_Linear_instHashablePoly__lean_hash(v_k_3850_);
v_h_3853_ = lean_uint64_to_usize(v___x_3852_);
v___x_3854_ = ((size_t)5ULL);
v___x_3855_ = lean_unsigned_to_nat(1u);
v___x_3856_ = ((size_t)1ULL);
v___x_3857_ = lean_usize_sub(v_depth_3843_, v___x_3856_);
v___x_3858_ = lean_usize_mul(v___x_3854_, v___x_3857_);
v_h_3859_ = lean_usize_shift_right(v_h_3853_, v___x_3858_);
v___x_3860_ = lean_nat_add(v_i_3846_, v___x_3855_);
lean_dec(v_i_3846_);
lean_inc(v_v_3851_);
lean_inc(v_k_3850_);
v___x_3861_ = l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg(v_entries_3847_, v_h_3859_, v_depth_3843_, v_k_3850_, v_v_3851_);
v_i_3846_ = v___x_3860_;
v_entries_3847_ = v___x_3861_;
goto _start;
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12___redArg___boxed(lean_object* v_depth_3863_, lean_object* v_keys_3864_, lean_object* v_vals_3865_, lean_object* v_i_3866_, lean_object* v_entries_3867_){
_start:
{
size_t v_depth_boxed_3868_; lean_object* v_res_3869_; 
v_depth_boxed_3868_ = lean_unbox_usize(v_depth_3863_);
lean_dec(v_depth_3863_);
v_res_3869_ = l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12___redArg(v_depth_boxed_3868_, v_keys_3864_, v_vals_3865_, v_i_3866_, v_entries_3867_);
lean_dec_ref(v_vals_3865_);
lean_dec_ref(v_keys_3864_);
return v_res_3869_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___boxed(lean_object* v_x_3870_, lean_object* v_x_3871_, lean_object* v_x_3872_, lean_object* v_x_3873_, lean_object* v_x_3874_){
_start:
{
size_t v_x_50005__boxed_3875_; size_t v_x_50006__boxed_3876_; lean_object* v_res_3877_; 
v_x_50005__boxed_3875_ = lean_unbox_usize(v_x_3871_);
lean_dec(v_x_3871_);
v_x_50006__boxed_3876_ = lean_unbox_usize(v_x_3872_);
lean_dec(v_x_3872_);
v_res_3877_ = l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg(v_x_3870_, v_x_50005__boxed_3875_, v_x_50006__boxed_3876_, v_x_3873_, v_x_3874_);
return v_res_3877_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4___redArg(lean_object* v_x_3878_, lean_object* v_x_3879_, lean_object* v_x_3880_){
_start:
{
uint64_t v___x_3881_; size_t v___x_3882_; size_t v___x_3883_; lean_object* v___x_3884_; 
v___x_3881_ = l_Lean_Meta_Grind_Arith_Linear_instHashablePoly__lean_hash(v_x_3879_);
v___x_3882_ = lean_uint64_to_usize(v___x_3881_);
v___x_3883_ = ((size_t)1ULL);
v___x_3884_ = l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg(v_x_3878_, v___x_3882_, v___x_3883_, v_x_3879_, v_x_3880_);
return v___x_3884_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___lam__0(lean_object* v___y_3885_, lean_object* v_p_3886_, lean_object* v_a_3887_, lean_object* v_s_3888_){
_start:
{
lean_object* v_structs_3889_; lean_object* v_typeIdOf_3890_; lean_object* v_exprToStructId_3891_; lean_object* v_exprToStructIdEntries_3892_; lean_object* v_forbiddenNatModules_3893_; lean_object* v_natStructs_3894_; lean_object* v_natTypeIdOf_3895_; lean_object* v_exprToNatStructId_3896_; lean_object* v___x_3897_; uint8_t v___x_3898_; 
v_structs_3889_ = lean_ctor_get(v_s_3888_, 0);
v_typeIdOf_3890_ = lean_ctor_get(v_s_3888_, 1);
v_exprToStructId_3891_ = lean_ctor_get(v_s_3888_, 2);
v_exprToStructIdEntries_3892_ = lean_ctor_get(v_s_3888_, 3);
v_forbiddenNatModules_3893_ = lean_ctor_get(v_s_3888_, 4);
v_natStructs_3894_ = lean_ctor_get(v_s_3888_, 5);
v_natTypeIdOf_3895_ = lean_ctor_get(v_s_3888_, 6);
v_exprToNatStructId_3896_ = lean_ctor_get(v_s_3888_, 7);
v___x_3897_ = lean_array_get_size(v_structs_3889_);
v___x_3898_ = lean_nat_dec_lt(v___y_3885_, v___x_3897_);
if (v___x_3898_ == 0)
{
lean_dec(v_a_3887_);
lean_dec(v_p_3886_);
return v_s_3888_;
}
else
{
lean_object* v___x_3900_; uint8_t v_isShared_3901_; uint8_t v_isSharedCheck_3960_; 
lean_inc_ref(v_exprToNatStructId_3896_);
lean_inc_ref(v_natTypeIdOf_3895_);
lean_inc_ref(v_natStructs_3894_);
lean_inc_ref(v_forbiddenNatModules_3893_);
lean_inc_ref(v_exprToStructIdEntries_3892_);
lean_inc_ref(v_exprToStructId_3891_);
lean_inc_ref(v_typeIdOf_3890_);
lean_inc_ref(v_structs_3889_);
v_isSharedCheck_3960_ = !lean_is_exclusive(v_s_3888_);
if (v_isSharedCheck_3960_ == 0)
{
lean_object* v_unused_3961_; lean_object* v_unused_3962_; lean_object* v_unused_3963_; lean_object* v_unused_3964_; lean_object* v_unused_3965_; lean_object* v_unused_3966_; lean_object* v_unused_3967_; lean_object* v_unused_3968_; 
v_unused_3961_ = lean_ctor_get(v_s_3888_, 7);
lean_dec(v_unused_3961_);
v_unused_3962_ = lean_ctor_get(v_s_3888_, 6);
lean_dec(v_unused_3962_);
v_unused_3963_ = lean_ctor_get(v_s_3888_, 5);
lean_dec(v_unused_3963_);
v_unused_3964_ = lean_ctor_get(v_s_3888_, 4);
lean_dec(v_unused_3964_);
v_unused_3965_ = lean_ctor_get(v_s_3888_, 3);
lean_dec(v_unused_3965_);
v_unused_3966_ = lean_ctor_get(v_s_3888_, 2);
lean_dec(v_unused_3966_);
v_unused_3967_ = lean_ctor_get(v_s_3888_, 1);
lean_dec(v_unused_3967_);
v_unused_3968_ = lean_ctor_get(v_s_3888_, 0);
lean_dec(v_unused_3968_);
v___x_3900_ = v_s_3888_;
v_isShared_3901_ = v_isSharedCheck_3960_;
goto v_resetjp_3899_;
}
else
{
lean_dec(v_s_3888_);
v___x_3900_ = lean_box(0);
v_isShared_3901_ = v_isSharedCheck_3960_;
goto v_resetjp_3899_;
}
v_resetjp_3899_:
{
lean_object* v_v_3902_; lean_object* v_id_3903_; lean_object* v_ringId_x3f_3904_; lean_object* v_type_3905_; lean_object* v_u_3906_; lean_object* v_intModuleInst_3907_; lean_object* v_leInst_x3f_3908_; lean_object* v_ltInst_x3f_3909_; lean_object* v_lawfulOrderLTInst_x3f_3910_; lean_object* v_isPreorderInst_x3f_3911_; lean_object* v_orderedAddInst_x3f_3912_; lean_object* v_isLinearInst_x3f_3913_; lean_object* v_noNatDivInst_x3f_3914_; lean_object* v_ringInst_x3f_3915_; lean_object* v_commRingInst_x3f_3916_; lean_object* v_orderedRingInst_x3f_3917_; lean_object* v_fieldInst_x3f_3918_; lean_object* v_charInst_x3f_3919_; lean_object* v_zero_3920_; lean_object* v_ofNatZero_3921_; lean_object* v_one_x3f_3922_; lean_object* v_leFn_x3f_3923_; lean_object* v_ltFn_x3f_3924_; lean_object* v_addFn_3925_; lean_object* v_zsmulFn_3926_; lean_object* v_nsmulFn_3927_; lean_object* v_zsmulFn_x3f_3928_; lean_object* v_nsmulFn_x3f_3929_; lean_object* v_homomulFn_x3f_3930_; lean_object* v_subFn_3931_; lean_object* v_negFn_3932_; lean_object* v_vars_3933_; lean_object* v_varMap_3934_; lean_object* v_lowers_3935_; lean_object* v_uppers_3936_; lean_object* v_diseqs_3937_; lean_object* v_assignment_3938_; uint8_t v_caseSplits_3939_; lean_object* v_conflict_x3f_3940_; lean_object* v_diseqSplits_3941_; lean_object* v_elimEqs_3942_; lean_object* v_elimStack_3943_; lean_object* v_occurs_3944_; lean_object* v_ignored_3945_; lean_object* v___x_3947_; uint8_t v_isShared_3948_; uint8_t v_isSharedCheck_3959_; 
v_v_3902_ = lean_array_fget(v_structs_3889_, v___y_3885_);
v_id_3903_ = lean_ctor_get(v_v_3902_, 0);
v_ringId_x3f_3904_ = lean_ctor_get(v_v_3902_, 1);
v_type_3905_ = lean_ctor_get(v_v_3902_, 2);
v_u_3906_ = lean_ctor_get(v_v_3902_, 3);
v_intModuleInst_3907_ = lean_ctor_get(v_v_3902_, 4);
v_leInst_x3f_3908_ = lean_ctor_get(v_v_3902_, 5);
v_ltInst_x3f_3909_ = lean_ctor_get(v_v_3902_, 6);
v_lawfulOrderLTInst_x3f_3910_ = lean_ctor_get(v_v_3902_, 7);
v_isPreorderInst_x3f_3911_ = lean_ctor_get(v_v_3902_, 8);
v_orderedAddInst_x3f_3912_ = lean_ctor_get(v_v_3902_, 9);
v_isLinearInst_x3f_3913_ = lean_ctor_get(v_v_3902_, 10);
v_noNatDivInst_x3f_3914_ = lean_ctor_get(v_v_3902_, 11);
v_ringInst_x3f_3915_ = lean_ctor_get(v_v_3902_, 12);
v_commRingInst_x3f_3916_ = lean_ctor_get(v_v_3902_, 13);
v_orderedRingInst_x3f_3917_ = lean_ctor_get(v_v_3902_, 14);
v_fieldInst_x3f_3918_ = lean_ctor_get(v_v_3902_, 15);
v_charInst_x3f_3919_ = lean_ctor_get(v_v_3902_, 16);
v_zero_3920_ = lean_ctor_get(v_v_3902_, 17);
v_ofNatZero_3921_ = lean_ctor_get(v_v_3902_, 18);
v_one_x3f_3922_ = lean_ctor_get(v_v_3902_, 19);
v_leFn_x3f_3923_ = lean_ctor_get(v_v_3902_, 20);
v_ltFn_x3f_3924_ = lean_ctor_get(v_v_3902_, 21);
v_addFn_3925_ = lean_ctor_get(v_v_3902_, 22);
v_zsmulFn_3926_ = lean_ctor_get(v_v_3902_, 23);
v_nsmulFn_3927_ = lean_ctor_get(v_v_3902_, 24);
v_zsmulFn_x3f_3928_ = lean_ctor_get(v_v_3902_, 25);
v_nsmulFn_x3f_3929_ = lean_ctor_get(v_v_3902_, 26);
v_homomulFn_x3f_3930_ = lean_ctor_get(v_v_3902_, 27);
v_subFn_3931_ = lean_ctor_get(v_v_3902_, 28);
v_negFn_3932_ = lean_ctor_get(v_v_3902_, 29);
v_vars_3933_ = lean_ctor_get(v_v_3902_, 30);
v_varMap_3934_ = lean_ctor_get(v_v_3902_, 31);
v_lowers_3935_ = lean_ctor_get(v_v_3902_, 32);
v_uppers_3936_ = lean_ctor_get(v_v_3902_, 33);
v_diseqs_3937_ = lean_ctor_get(v_v_3902_, 34);
v_assignment_3938_ = lean_ctor_get(v_v_3902_, 35);
v_caseSplits_3939_ = lean_ctor_get_uint8(v_v_3902_, sizeof(void*)*42);
v_conflict_x3f_3940_ = lean_ctor_get(v_v_3902_, 36);
v_diseqSplits_3941_ = lean_ctor_get(v_v_3902_, 37);
v_elimEqs_3942_ = lean_ctor_get(v_v_3902_, 38);
v_elimStack_3943_ = lean_ctor_get(v_v_3902_, 39);
v_occurs_3944_ = lean_ctor_get(v_v_3902_, 40);
v_ignored_3945_ = lean_ctor_get(v_v_3902_, 41);
v_isSharedCheck_3959_ = !lean_is_exclusive(v_v_3902_);
if (v_isSharedCheck_3959_ == 0)
{
v___x_3947_ = v_v_3902_;
v_isShared_3948_ = v_isSharedCheck_3959_;
goto v_resetjp_3946_;
}
else
{
lean_inc(v_ignored_3945_);
lean_inc(v_occurs_3944_);
lean_inc(v_elimStack_3943_);
lean_inc(v_elimEqs_3942_);
lean_inc(v_diseqSplits_3941_);
lean_inc(v_conflict_x3f_3940_);
lean_inc(v_assignment_3938_);
lean_inc(v_diseqs_3937_);
lean_inc(v_uppers_3936_);
lean_inc(v_lowers_3935_);
lean_inc(v_varMap_3934_);
lean_inc(v_vars_3933_);
lean_inc(v_negFn_3932_);
lean_inc(v_subFn_3931_);
lean_inc(v_homomulFn_x3f_3930_);
lean_inc(v_nsmulFn_x3f_3929_);
lean_inc(v_zsmulFn_x3f_3928_);
lean_inc(v_nsmulFn_3927_);
lean_inc(v_zsmulFn_3926_);
lean_inc(v_addFn_3925_);
lean_inc(v_ltFn_x3f_3924_);
lean_inc(v_leFn_x3f_3923_);
lean_inc(v_one_x3f_3922_);
lean_inc(v_ofNatZero_3921_);
lean_inc(v_zero_3920_);
lean_inc(v_charInst_x3f_3919_);
lean_inc(v_fieldInst_x3f_3918_);
lean_inc(v_orderedRingInst_x3f_3917_);
lean_inc(v_commRingInst_x3f_3916_);
lean_inc(v_ringInst_x3f_3915_);
lean_inc(v_noNatDivInst_x3f_3914_);
lean_inc(v_isLinearInst_x3f_3913_);
lean_inc(v_orderedAddInst_x3f_3912_);
lean_inc(v_isPreorderInst_x3f_3911_);
lean_inc(v_lawfulOrderLTInst_x3f_3910_);
lean_inc(v_ltInst_x3f_3909_);
lean_inc(v_leInst_x3f_3908_);
lean_inc(v_intModuleInst_3907_);
lean_inc(v_u_3906_);
lean_inc(v_type_3905_);
lean_inc(v_ringId_x3f_3904_);
lean_inc(v_id_3903_);
lean_dec(v_v_3902_);
v___x_3947_ = lean_box(0);
v_isShared_3948_ = v_isSharedCheck_3959_;
goto v_resetjp_3946_;
}
v_resetjp_3946_:
{
lean_object* v___x_3949_; lean_object* v_xs_x27_3950_; lean_object* v___x_3951_; lean_object* v___x_3953_; 
v___x_3949_ = lean_box(0);
v_xs_x27_3950_ = lean_array_fset(v_structs_3889_, v___y_3885_, v___x_3949_);
v___x_3951_ = l_Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4___redArg(v_diseqSplits_3941_, v_p_3886_, v_a_3887_);
if (v_isShared_3948_ == 0)
{
lean_ctor_set(v___x_3947_, 37, v___x_3951_);
v___x_3953_ = v___x_3947_;
goto v_reusejp_3952_;
}
else
{
lean_object* v_reuseFailAlloc_3958_; 
v_reuseFailAlloc_3958_ = lean_alloc_ctor(0, 42, 1);
lean_ctor_set(v_reuseFailAlloc_3958_, 0, v_id_3903_);
lean_ctor_set(v_reuseFailAlloc_3958_, 1, v_ringId_x3f_3904_);
lean_ctor_set(v_reuseFailAlloc_3958_, 2, v_type_3905_);
lean_ctor_set(v_reuseFailAlloc_3958_, 3, v_u_3906_);
lean_ctor_set(v_reuseFailAlloc_3958_, 4, v_intModuleInst_3907_);
lean_ctor_set(v_reuseFailAlloc_3958_, 5, v_leInst_x3f_3908_);
lean_ctor_set(v_reuseFailAlloc_3958_, 6, v_ltInst_x3f_3909_);
lean_ctor_set(v_reuseFailAlloc_3958_, 7, v_lawfulOrderLTInst_x3f_3910_);
lean_ctor_set(v_reuseFailAlloc_3958_, 8, v_isPreorderInst_x3f_3911_);
lean_ctor_set(v_reuseFailAlloc_3958_, 9, v_orderedAddInst_x3f_3912_);
lean_ctor_set(v_reuseFailAlloc_3958_, 10, v_isLinearInst_x3f_3913_);
lean_ctor_set(v_reuseFailAlloc_3958_, 11, v_noNatDivInst_x3f_3914_);
lean_ctor_set(v_reuseFailAlloc_3958_, 12, v_ringInst_x3f_3915_);
lean_ctor_set(v_reuseFailAlloc_3958_, 13, v_commRingInst_x3f_3916_);
lean_ctor_set(v_reuseFailAlloc_3958_, 14, v_orderedRingInst_x3f_3917_);
lean_ctor_set(v_reuseFailAlloc_3958_, 15, v_fieldInst_x3f_3918_);
lean_ctor_set(v_reuseFailAlloc_3958_, 16, v_charInst_x3f_3919_);
lean_ctor_set(v_reuseFailAlloc_3958_, 17, v_zero_3920_);
lean_ctor_set(v_reuseFailAlloc_3958_, 18, v_ofNatZero_3921_);
lean_ctor_set(v_reuseFailAlloc_3958_, 19, v_one_x3f_3922_);
lean_ctor_set(v_reuseFailAlloc_3958_, 20, v_leFn_x3f_3923_);
lean_ctor_set(v_reuseFailAlloc_3958_, 21, v_ltFn_x3f_3924_);
lean_ctor_set(v_reuseFailAlloc_3958_, 22, v_addFn_3925_);
lean_ctor_set(v_reuseFailAlloc_3958_, 23, v_zsmulFn_3926_);
lean_ctor_set(v_reuseFailAlloc_3958_, 24, v_nsmulFn_3927_);
lean_ctor_set(v_reuseFailAlloc_3958_, 25, v_zsmulFn_x3f_3928_);
lean_ctor_set(v_reuseFailAlloc_3958_, 26, v_nsmulFn_x3f_3929_);
lean_ctor_set(v_reuseFailAlloc_3958_, 27, v_homomulFn_x3f_3930_);
lean_ctor_set(v_reuseFailAlloc_3958_, 28, v_subFn_3931_);
lean_ctor_set(v_reuseFailAlloc_3958_, 29, v_negFn_3932_);
lean_ctor_set(v_reuseFailAlloc_3958_, 30, v_vars_3933_);
lean_ctor_set(v_reuseFailAlloc_3958_, 31, v_varMap_3934_);
lean_ctor_set(v_reuseFailAlloc_3958_, 32, v_lowers_3935_);
lean_ctor_set(v_reuseFailAlloc_3958_, 33, v_uppers_3936_);
lean_ctor_set(v_reuseFailAlloc_3958_, 34, v_diseqs_3937_);
lean_ctor_set(v_reuseFailAlloc_3958_, 35, v_assignment_3938_);
lean_ctor_set(v_reuseFailAlloc_3958_, 36, v_conflict_x3f_3940_);
lean_ctor_set(v_reuseFailAlloc_3958_, 37, v___x_3951_);
lean_ctor_set(v_reuseFailAlloc_3958_, 38, v_elimEqs_3942_);
lean_ctor_set(v_reuseFailAlloc_3958_, 39, v_elimStack_3943_);
lean_ctor_set(v_reuseFailAlloc_3958_, 40, v_occurs_3944_);
lean_ctor_set(v_reuseFailAlloc_3958_, 41, v_ignored_3945_);
lean_ctor_set_uint8(v_reuseFailAlloc_3958_, sizeof(void*)*42, v_caseSplits_3939_);
v___x_3953_ = v_reuseFailAlloc_3958_;
goto v_reusejp_3952_;
}
v_reusejp_3952_:
{
lean_object* v___x_3954_; lean_object* v___x_3956_; 
v___x_3954_ = lean_array_fset(v_xs_x27_3950_, v___y_3885_, v___x_3953_);
if (v_isShared_3901_ == 0)
{
lean_ctor_set(v___x_3900_, 0, v___x_3954_);
v___x_3956_ = v___x_3900_;
goto v_reusejp_3955_;
}
else
{
lean_object* v_reuseFailAlloc_3957_; 
v_reuseFailAlloc_3957_ = lean_alloc_ctor(0, 8, 0);
lean_ctor_set(v_reuseFailAlloc_3957_, 0, v___x_3954_);
lean_ctor_set(v_reuseFailAlloc_3957_, 1, v_typeIdOf_3890_);
lean_ctor_set(v_reuseFailAlloc_3957_, 2, v_exprToStructId_3891_);
lean_ctor_set(v_reuseFailAlloc_3957_, 3, v_exprToStructIdEntries_3892_);
lean_ctor_set(v_reuseFailAlloc_3957_, 4, v_forbiddenNatModules_3893_);
lean_ctor_set(v_reuseFailAlloc_3957_, 5, v_natStructs_3894_);
lean_ctor_set(v_reuseFailAlloc_3957_, 6, v_natTypeIdOf_3895_);
lean_ctor_set(v_reuseFailAlloc_3957_, 7, v_exprToNatStructId_3896_);
v___x_3956_ = v_reuseFailAlloc_3957_;
goto v_reusejp_3955_;
}
v_reusejp_3955_:
{
return v___x_3956_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___lam__0___boxed(lean_object* v___y_3969_, lean_object* v_p_3970_, lean_object* v_a_3971_, lean_object* v_s_3972_){
_start:
{
lean_object* v_res_3973_; 
v_res_3973_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___lam__0(v___y_3969_, v_p_3970_, v_a_3971_, v_s_3972_);
lean_dec(v___y_3969_);
return v_res_3973_;
}
}
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(lean_object* v_cls_3974_, lean_object* v_msg_3975_, lean_object* v___y_3976_, lean_object* v___y_3977_, lean_object* v___y_3978_, lean_object* v___y_3979_){
_start:
{
lean_object* v_ref_3981_; lean_object* v___x_3982_; lean_object* v_a_3983_; lean_object* v___x_3985_; uint8_t v_isShared_3986_; uint8_t v_isSharedCheck_4027_; 
v_ref_3981_ = lean_ctor_get(v___y_3978_, 5);
v___x_3982_ = l_Lean_addMessageContextFull___at___00Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1_spec__2(v_msg_3975_, v___y_3976_, v___y_3977_, v___y_3978_, v___y_3979_);
v_a_3983_ = lean_ctor_get(v___x_3982_, 0);
v_isSharedCheck_4027_ = !lean_is_exclusive(v___x_3982_);
if (v_isSharedCheck_4027_ == 0)
{
v___x_3985_ = v___x_3982_;
v_isShared_3986_ = v_isSharedCheck_4027_;
goto v_resetjp_3984_;
}
else
{
lean_inc(v_a_3983_);
lean_dec(v___x_3982_);
v___x_3985_ = lean_box(0);
v_isShared_3986_ = v_isSharedCheck_4027_;
goto v_resetjp_3984_;
}
v_resetjp_3984_:
{
lean_object* v___x_3987_; lean_object* v_traceState_3988_; lean_object* v_env_3989_; lean_object* v_nextMacroScope_3990_; lean_object* v_ngen_3991_; lean_object* v_auxDeclNGen_3992_; lean_object* v_cache_3993_; lean_object* v_messages_3994_; lean_object* v_infoState_3995_; lean_object* v_snapshotTasks_3996_; lean_object* v___x_3998_; uint8_t v_isShared_3999_; uint8_t v_isSharedCheck_4026_; 
v___x_3987_ = lean_st_ref_take(v___y_3979_);
v_traceState_3988_ = lean_ctor_get(v___x_3987_, 4);
v_env_3989_ = lean_ctor_get(v___x_3987_, 0);
v_nextMacroScope_3990_ = lean_ctor_get(v___x_3987_, 1);
v_ngen_3991_ = lean_ctor_get(v___x_3987_, 2);
v_auxDeclNGen_3992_ = lean_ctor_get(v___x_3987_, 3);
v_cache_3993_ = lean_ctor_get(v___x_3987_, 5);
v_messages_3994_ = lean_ctor_get(v___x_3987_, 6);
v_infoState_3995_ = lean_ctor_get(v___x_3987_, 7);
v_snapshotTasks_3996_ = lean_ctor_get(v___x_3987_, 8);
v_isSharedCheck_4026_ = !lean_is_exclusive(v___x_3987_);
if (v_isSharedCheck_4026_ == 0)
{
v___x_3998_ = v___x_3987_;
v_isShared_3999_ = v_isSharedCheck_4026_;
goto v_resetjp_3997_;
}
else
{
lean_inc(v_snapshotTasks_3996_);
lean_inc(v_infoState_3995_);
lean_inc(v_messages_3994_);
lean_inc(v_cache_3993_);
lean_inc(v_traceState_3988_);
lean_inc(v_auxDeclNGen_3992_);
lean_inc(v_ngen_3991_);
lean_inc(v_nextMacroScope_3990_);
lean_inc(v_env_3989_);
lean_dec(v___x_3987_);
v___x_3998_ = lean_box(0);
v_isShared_3999_ = v_isSharedCheck_4026_;
goto v_resetjp_3997_;
}
v_resetjp_3997_:
{
uint64_t v_tid_4000_; lean_object* v_traces_4001_; lean_object* v___x_4003_; uint8_t v_isShared_4004_; uint8_t v_isSharedCheck_4025_; 
v_tid_4000_ = lean_ctor_get_uint64(v_traceState_3988_, sizeof(void*)*1);
v_traces_4001_ = lean_ctor_get(v_traceState_3988_, 0);
v_isSharedCheck_4025_ = !lean_is_exclusive(v_traceState_3988_);
if (v_isSharedCheck_4025_ == 0)
{
v___x_4003_ = v_traceState_3988_;
v_isShared_4004_ = v_isSharedCheck_4025_;
goto v_resetjp_4002_;
}
else
{
lean_inc(v_traces_4001_);
lean_dec(v_traceState_3988_);
v___x_4003_ = lean_box(0);
v_isShared_4004_ = v_isSharedCheck_4025_;
goto v_resetjp_4002_;
}
v_resetjp_4002_:
{
lean_object* v___x_4005_; double v___x_4006_; uint8_t v___x_4007_; lean_object* v___x_4008_; lean_object* v___x_4009_; lean_object* v___x_4010_; lean_object* v___x_4011_; lean_object* v___x_4012_; lean_object* v___x_4013_; lean_object* v___x_4015_; 
v___x_4005_ = lean_box(0);
v___x_4006_ = lean_float_once(&l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__0, &l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__0_once, _init_l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__0);
v___x_4007_ = 0;
v___x_4008_ = ((lean_object*)(l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__1));
v___x_4009_ = lean_alloc_ctor(0, 3, 17);
lean_ctor_set(v___x_4009_, 0, v_cls_3974_);
lean_ctor_set(v___x_4009_, 1, v___x_4005_);
lean_ctor_set(v___x_4009_, 2, v___x_4008_);
lean_ctor_set_float(v___x_4009_, sizeof(void*)*3, v___x_4006_);
lean_ctor_set_float(v___x_4009_, sizeof(void*)*3 + 8, v___x_4006_);
lean_ctor_set_uint8(v___x_4009_, sizeof(void*)*3 + 16, v___x_4007_);
v___x_4010_ = ((lean_object*)(l_Lean_addTrace___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment_spec__1___redArg___closed__2));
v___x_4011_ = lean_alloc_ctor(9, 3, 0);
lean_ctor_set(v___x_4011_, 0, v___x_4009_);
lean_ctor_set(v___x_4011_, 1, v_a_3983_);
lean_ctor_set(v___x_4011_, 2, v___x_4010_);
lean_inc(v_ref_3981_);
v___x_4012_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_4012_, 0, v_ref_3981_);
lean_ctor_set(v___x_4012_, 1, v___x_4011_);
v___x_4013_ = l_Lean_PersistentArray_push___redArg(v_traces_4001_, v___x_4012_);
if (v_isShared_4004_ == 0)
{
lean_ctor_set(v___x_4003_, 0, v___x_4013_);
v___x_4015_ = v___x_4003_;
goto v_reusejp_4014_;
}
else
{
lean_object* v_reuseFailAlloc_4024_; 
v_reuseFailAlloc_4024_ = lean_alloc_ctor(0, 1, 8);
lean_ctor_set(v_reuseFailAlloc_4024_, 0, v___x_4013_);
lean_ctor_set_uint64(v_reuseFailAlloc_4024_, sizeof(void*)*1, v_tid_4000_);
v___x_4015_ = v_reuseFailAlloc_4024_;
goto v_reusejp_4014_;
}
v_reusejp_4014_:
{
lean_object* v___x_4017_; 
if (v_isShared_3999_ == 0)
{
lean_ctor_set(v___x_3998_, 4, v___x_4015_);
v___x_4017_ = v___x_3998_;
goto v_reusejp_4016_;
}
else
{
lean_object* v_reuseFailAlloc_4023_; 
v_reuseFailAlloc_4023_ = lean_alloc_ctor(0, 9, 0);
lean_ctor_set(v_reuseFailAlloc_4023_, 0, v_env_3989_);
lean_ctor_set(v_reuseFailAlloc_4023_, 1, v_nextMacroScope_3990_);
lean_ctor_set(v_reuseFailAlloc_4023_, 2, v_ngen_3991_);
lean_ctor_set(v_reuseFailAlloc_4023_, 3, v_auxDeclNGen_3992_);
lean_ctor_set(v_reuseFailAlloc_4023_, 4, v___x_4015_);
lean_ctor_set(v_reuseFailAlloc_4023_, 5, v_cache_3993_);
lean_ctor_set(v_reuseFailAlloc_4023_, 6, v_messages_3994_);
lean_ctor_set(v_reuseFailAlloc_4023_, 7, v_infoState_3995_);
lean_ctor_set(v_reuseFailAlloc_4023_, 8, v_snapshotTasks_3996_);
v___x_4017_ = v_reuseFailAlloc_4023_;
goto v_reusejp_4016_;
}
v_reusejp_4016_:
{
lean_object* v___x_4018_; lean_object* v___x_4019_; lean_object* v___x_4021_; 
v___x_4018_ = lean_st_ref_set(v___y_3979_, v___x_4017_);
v___x_4019_ = lean_box(0);
if (v_isShared_3986_ == 0)
{
lean_ctor_set(v___x_3985_, 0, v___x_4019_);
v___x_4021_ = v___x_3985_;
goto v_reusejp_4020_;
}
else
{
lean_object* v_reuseFailAlloc_4022_; 
v_reuseFailAlloc_4022_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4022_, 0, v___x_4019_);
v___x_4021_ = v_reuseFailAlloc_4022_;
goto v_reusejp_4020_;
}
v_reusejp_4020_:
{
return v___x_4021_;
}
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg___boxed(lean_object* v_cls_4028_, lean_object* v_msg_4029_, lean_object* v___y_4030_, lean_object* v___y_4031_, lean_object* v___y_4032_, lean_object* v___y_4033_, lean_object* v___y_4034_){
_start:
{
lean_object* v_res_4035_; 
v_res_4035_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v_cls_4028_, v_msg_4029_, v___y_4030_, v___y_4031_, v___y_4032_, v___y_4033_);
lean_dec(v___y_4033_);
lean_dec_ref(v___y_4032_);
lean_dec(v___y_4031_);
lean_dec_ref(v___y_4030_);
return v_res_4035_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2___redArg(lean_object* v_keys_4036_, lean_object* v_vals_4037_, lean_object* v_i_4038_, lean_object* v_k_4039_){
_start:
{
lean_object* v___x_4040_; uint8_t v___x_4041_; 
v___x_4040_ = lean_array_get_size(v_keys_4036_);
v___x_4041_ = lean_nat_dec_lt(v_i_4038_, v___x_4040_);
if (v___x_4041_ == 0)
{
lean_object* v___x_4042_; 
lean_dec(v_i_4038_);
v___x_4042_ = lean_box(0);
return v___x_4042_;
}
else
{
lean_object* v_k_x27_4043_; uint8_t v___x_4044_; 
v_k_x27_4043_ = lean_array_fget_borrowed(v_keys_4036_, v_i_4038_);
v___x_4044_ = l_Lean_Grind_Linarith_instBEqPoly_beq(v_k_4039_, v_k_x27_4043_);
if (v___x_4044_ == 0)
{
lean_object* v___x_4045_; lean_object* v___x_4046_; 
v___x_4045_ = lean_unsigned_to_nat(1u);
v___x_4046_ = lean_nat_add(v_i_4038_, v___x_4045_);
lean_dec(v_i_4038_);
v_i_4038_ = v___x_4046_;
goto _start;
}
else
{
lean_object* v___x_4048_; lean_object* v___x_4049_; 
v___x_4048_ = lean_array_fget_borrowed(v_vals_4037_, v_i_4038_);
lean_dec(v_i_4038_);
lean_inc(v___x_4048_);
v___x_4049_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_4049_, 0, v___x_4048_);
return v___x_4049_;
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2___redArg___boxed(lean_object* v_keys_4050_, lean_object* v_vals_4051_, lean_object* v_i_4052_, lean_object* v_k_4053_){
_start:
{
lean_object* v_res_4054_; 
v_res_4054_ = l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2___redArg(v_keys_4050_, v_vals_4051_, v_i_4052_, v_k_4053_);
lean_dec(v_k_4053_);
lean_dec_ref(v_vals_4051_);
lean_dec_ref(v_keys_4050_);
return v_res_4054_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0___redArg(lean_object* v_x_4055_, size_t v_x_4056_, lean_object* v_x_4057_){
_start:
{
if (lean_obj_tag(v_x_4055_) == 0)
{
lean_object* v_es_4058_; lean_object* v___x_4060_; uint8_t v_isShared_4061_; uint8_t v_isSharedCheck_4079_; 
v_es_4058_ = lean_ctor_get(v_x_4055_, 0);
v_isSharedCheck_4079_ = !lean_is_exclusive(v_x_4055_);
if (v_isSharedCheck_4079_ == 0)
{
v___x_4060_ = v_x_4055_;
v_isShared_4061_ = v_isSharedCheck_4079_;
goto v_resetjp_4059_;
}
else
{
lean_inc(v_es_4058_);
lean_dec(v_x_4055_);
v___x_4060_ = lean_box(0);
v_isShared_4061_ = v_isSharedCheck_4079_;
goto v_resetjp_4059_;
}
v_resetjp_4059_:
{
lean_object* v___x_4062_; size_t v___x_4063_; size_t v___x_4064_; size_t v___x_4065_; lean_object* v_j_4066_; lean_object* v___x_4067_; 
v___x_4062_ = lean_box(2);
v___x_4063_ = ((size_t)5ULL);
v___x_4064_ = lean_usize_once(&l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__1, &l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__1_once, _init_l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg___closed__1);
v___x_4065_ = lean_usize_land(v_x_4056_, v___x_4064_);
v_j_4066_ = lean_usize_to_nat(v___x_4065_);
v___x_4067_ = lean_array_get(v___x_4062_, v_es_4058_, v_j_4066_);
lean_dec(v_j_4066_);
lean_dec_ref(v_es_4058_);
switch(lean_obj_tag(v___x_4067_))
{
case 0:
{
lean_object* v_key_4068_; lean_object* v_val_4069_; uint8_t v___x_4070_; 
v_key_4068_ = lean_ctor_get(v___x_4067_, 0);
lean_inc(v_key_4068_);
v_val_4069_ = lean_ctor_get(v___x_4067_, 1);
lean_inc(v_val_4069_);
lean_dec_ref(v___x_4067_);
v___x_4070_ = l_Lean_Grind_Linarith_instBEqPoly_beq(v_x_4057_, v_key_4068_);
lean_dec(v_key_4068_);
if (v___x_4070_ == 0)
{
lean_object* v___x_4071_; 
lean_dec(v_val_4069_);
lean_del_object(v___x_4060_);
v___x_4071_ = lean_box(0);
return v___x_4071_;
}
else
{
lean_object* v___x_4073_; 
if (v_isShared_4061_ == 0)
{
lean_ctor_set_tag(v___x_4060_, 1);
lean_ctor_set(v___x_4060_, 0, v_val_4069_);
v___x_4073_ = v___x_4060_;
goto v_reusejp_4072_;
}
else
{
lean_object* v_reuseFailAlloc_4074_; 
v_reuseFailAlloc_4074_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4074_, 0, v_val_4069_);
v___x_4073_ = v_reuseFailAlloc_4074_;
goto v_reusejp_4072_;
}
v_reusejp_4072_:
{
return v___x_4073_;
}
}
}
case 1:
{
lean_object* v_node_4075_; size_t v___x_4076_; 
lean_del_object(v___x_4060_);
v_node_4075_ = lean_ctor_get(v___x_4067_, 0);
lean_inc(v_node_4075_);
lean_dec_ref(v___x_4067_);
v___x_4076_ = lean_usize_shift_right(v_x_4056_, v___x_4063_);
v_x_4055_ = v_node_4075_;
v_x_4056_ = v___x_4076_;
goto _start;
}
default: 
{
lean_object* v___x_4078_; 
lean_del_object(v___x_4060_);
v___x_4078_ = lean_box(0);
return v___x_4078_;
}
}
}
}
else
{
lean_object* v_ks_4080_; lean_object* v_vs_4081_; lean_object* v___x_4082_; lean_object* v___x_4083_; 
v_ks_4080_ = lean_ctor_get(v_x_4055_, 0);
lean_inc_ref(v_ks_4080_);
v_vs_4081_ = lean_ctor_get(v_x_4055_, 1);
lean_inc_ref(v_vs_4081_);
lean_dec_ref(v_x_4055_);
v___x_4082_ = lean_unsigned_to_nat(0u);
v___x_4083_ = l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2___redArg(v_ks_4080_, v_vs_4081_, v___x_4082_, v_x_4057_);
lean_dec_ref(v_vs_4081_);
lean_dec_ref(v_ks_4080_);
return v___x_4083_;
}
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0___redArg___boxed(lean_object* v_x_4084_, lean_object* v_x_4085_, lean_object* v_x_4086_){
_start:
{
size_t v_x_50357__boxed_4087_; lean_object* v_res_4088_; 
v_x_50357__boxed_4087_ = lean_unbox_usize(v_x_4085_);
lean_dec(v_x_4085_);
v_res_4088_ = l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0___redArg(v_x_4084_, v_x_50357__boxed_4087_, v_x_4086_);
lean_dec(v_x_4086_);
return v_res_4088_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0___redArg(lean_object* v_x_4089_, lean_object* v_x_4090_){
_start:
{
uint64_t v___x_4091_; size_t v___x_4092_; lean_object* v___x_4093_; 
v___x_4091_ = l_Lean_Meta_Grind_Arith_Linear_instHashablePoly__lean_hash(v_x_4090_);
v___x_4092_ = lean_uint64_to_usize(v___x_4091_);
v___x_4093_ = l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0___redArg(v_x_4089_, v___x_4092_, v_x_4090_);
return v___x_4093_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0___redArg___boxed(lean_object* v_x_4094_, lean_object* v_x_4095_){
_start:
{
lean_object* v_res_4096_; 
v_res_4096_ = l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0___redArg(v_x_4094_, v_x_4095_);
lean_dec(v_x_4095_);
return v_res_4096_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4___redArg(lean_object* v_a_4097_, lean_object* v_b_4098_, lean_object* v___y_4099_, lean_object* v___y_4100_, lean_object* v___y_4101_, lean_object* v___y_4102_, lean_object* v___y_4103_, lean_object* v___y_4104_, lean_object* v___y_4105_, lean_object* v___y_4106_, lean_object* v___y_4107_, lean_object* v___y_4108_, lean_object* v___y_4109_){
_start:
{
lean_object* v___x_4111_; 
v___x_4111_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_4099_, v___y_4100_, v___y_4101_, v___y_4102_, v___y_4103_, v___y_4104_, v___y_4105_, v___y_4106_, v___y_4107_, v___y_4108_, v___y_4109_);
if (lean_obj_tag(v___x_4111_) == 0)
{
lean_object* v_a_4112_; lean_object* v___x_4114_; uint8_t v_isShared_4115_; uint8_t v_isSharedCheck_4127_; 
v_a_4112_ = lean_ctor_get(v___x_4111_, 0);
v_isSharedCheck_4127_ = !lean_is_exclusive(v___x_4111_);
if (v_isSharedCheck_4127_ == 0)
{
v___x_4114_ = v___x_4111_;
v_isShared_4115_ = v_isSharedCheck_4127_;
goto v_resetjp_4113_;
}
else
{
lean_inc(v_a_4112_);
lean_dec(v___x_4111_);
v___x_4114_ = lean_box(0);
v_isShared_4115_ = v_isSharedCheck_4127_;
goto v_resetjp_4113_;
}
v_resetjp_4113_:
{
lean_object* v_type_4116_; lean_object* v_u_4117_; lean_object* v___x_4118_; lean_object* v___x_4119_; lean_object* v___x_4120_; lean_object* v___x_4121_; lean_object* v___x_4122_; lean_object* v___x_4123_; lean_object* v___x_4125_; 
v_type_4116_ = lean_ctor_get(v_a_4112_, 2);
lean_inc_ref(v_type_4116_);
v_u_4117_ = lean_ctor_get(v_a_4112_, 3);
lean_inc(v_u_4117_);
lean_dec(v_a_4112_);
v___x_4118_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_throwUnexpected_spec__0_spec__0___closed__1));
v___x_4119_ = l_Lean_Level_succ___override(v_u_4117_);
v___x_4120_ = lean_box(0);
v___x_4121_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v___x_4121_, 0, v___x_4119_);
lean_ctor_set(v___x_4121_, 1, v___x_4120_);
v___x_4122_ = l_Lean_mkConst(v___x_4118_, v___x_4121_);
v___x_4123_ = l_Lean_mkApp3(v___x_4122_, v_type_4116_, v_a_4097_, v_b_4098_);
if (v_isShared_4115_ == 0)
{
lean_ctor_set(v___x_4114_, 0, v___x_4123_);
v___x_4125_ = v___x_4114_;
goto v_reusejp_4124_;
}
else
{
lean_object* v_reuseFailAlloc_4126_; 
v_reuseFailAlloc_4126_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4126_, 0, v___x_4123_);
v___x_4125_ = v_reuseFailAlloc_4126_;
goto v_reusejp_4124_;
}
v_reusejp_4124_:
{
return v___x_4125_;
}
}
}
else
{
lean_object* v_a_4128_; lean_object* v___x_4130_; uint8_t v_isShared_4131_; uint8_t v_isSharedCheck_4135_; 
lean_dec_ref(v_b_4098_);
lean_dec_ref(v_a_4097_);
v_a_4128_ = lean_ctor_get(v___x_4111_, 0);
v_isSharedCheck_4135_ = !lean_is_exclusive(v___x_4111_);
if (v_isSharedCheck_4135_ == 0)
{
v___x_4130_ = v___x_4111_;
v_isShared_4131_ = v_isSharedCheck_4135_;
goto v_resetjp_4129_;
}
else
{
lean_inc(v_a_4128_);
lean_dec(v___x_4111_);
v___x_4130_ = lean_box(0);
v_isShared_4131_ = v_isSharedCheck_4135_;
goto v_resetjp_4129_;
}
v_resetjp_4129_:
{
lean_object* v___x_4133_; 
if (v_isShared_4131_ == 0)
{
v___x_4133_ = v___x_4130_;
goto v_reusejp_4132_;
}
else
{
lean_object* v_reuseFailAlloc_4134_; 
v_reuseFailAlloc_4134_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4134_, 0, v_a_4128_);
v___x_4133_ = v_reuseFailAlloc_4134_;
goto v_reusejp_4132_;
}
v_reusejp_4132_:
{
return v___x_4133_;
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4___redArg___boxed(lean_object* v_a_4136_, lean_object* v_b_4137_, lean_object* v___y_4138_, lean_object* v___y_4139_, lean_object* v___y_4140_, lean_object* v___y_4141_, lean_object* v___y_4142_, lean_object* v___y_4143_, lean_object* v___y_4144_, lean_object* v___y_4145_, lean_object* v___y_4146_, lean_object* v___y_4147_, lean_object* v___y_4148_, lean_object* v___y_4149_){
_start:
{
lean_object* v_res_4150_; 
v_res_4150_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4___redArg(v_a_4136_, v_b_4137_, v___y_4138_, v___y_4139_, v___y_4140_, v___y_4141_, v___y_4142_, v___y_4143_, v___y_4144_, v___y_4145_, v___y_4146_, v___y_4147_, v___y_4148_);
lean_dec(v___y_4148_);
lean_dec_ref(v___y_4147_);
lean_dec(v___y_4146_);
lean_dec_ref(v___y_4145_);
lean_dec(v___y_4144_);
lean_dec_ref(v___y_4143_);
lean_dec(v___y_4142_);
lean_dec_ref(v___y_4141_);
lean_dec(v___y_4140_);
lean_dec(v___y_4139_);
lean_dec(v___y_4138_);
return v_res_4150_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___redArg(lean_object* v_k_4151_, lean_object* v_x_4152_, lean_object* v___y_4153_, lean_object* v___y_4154_, lean_object* v___y_4155_, lean_object* v___y_4156_, lean_object* v___y_4157_, lean_object* v___y_4158_, lean_object* v___y_4159_, lean_object* v___y_4160_, lean_object* v___y_4161_, lean_object* v___y_4162_, lean_object* v___y_4163_){
_start:
{
lean_object* v___x_4165_; uint8_t v___x_4166_; 
v___x_4165_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0);
v___x_4166_ = lean_int_dec_eq(v_k_4151_, v___x_4165_);
if (v___x_4166_ == 0)
{
lean_object* v___x_4167_; 
v___x_4167_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_4153_, v___y_4154_, v___y_4155_, v___y_4156_, v___y_4157_, v___y_4158_, v___y_4159_, v___y_4160_, v___y_4161_, v___y_4162_, v___y_4163_);
if (lean_obj_tag(v___x_4167_) == 0)
{
lean_object* v_a_4168_; lean_object* v___x_4169_; 
v_a_4168_ = lean_ctor_get(v___x_4167_, 0);
lean_inc(v_a_4168_);
lean_dec_ref(v___x_4167_);
v___x_4169_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_4153_, v___y_4154_, v___y_4155_, v___y_4156_, v___y_4157_, v___y_4158_, v___y_4159_, v___y_4160_, v___y_4161_, v___y_4162_, v___y_4163_);
if (lean_obj_tag(v___x_4169_) == 0)
{
lean_object* v_a_4170_; lean_object* v___x_4172_; uint8_t v_isShared_4173_; uint8_t v_isSharedCheck_4188_; 
v_a_4170_ = lean_ctor_get(v___x_4169_, 0);
v_isSharedCheck_4188_ = !lean_is_exclusive(v___x_4169_);
if (v_isSharedCheck_4188_ == 0)
{
v___x_4172_ = v___x_4169_;
v_isShared_4173_ = v_isSharedCheck_4188_;
goto v_resetjp_4171_;
}
else
{
lean_inc(v_a_4170_);
lean_dec(v___x_4169_);
v___x_4172_ = lean_box(0);
v_isShared_4173_ = v_isSharedCheck_4188_;
goto v_resetjp_4171_;
}
v_resetjp_4171_:
{
lean_object* v_vars_4174_; lean_object* v_zsmulFn_4175_; lean_object* v_size_4176_; lean_object* v___x_4177_; lean_object* v___y_4179_; lean_object* v___x_4184_; uint8_t v___x_4185_; 
v_vars_4174_ = lean_ctor_get(v_a_4170_, 30);
lean_inc_ref(v_vars_4174_);
lean_dec(v_a_4170_);
v_zsmulFn_4175_ = lean_ctor_get(v_a_4168_, 23);
lean_inc_ref(v_zsmulFn_4175_);
lean_dec(v_a_4168_);
v_size_4176_ = lean_ctor_get(v_vars_4174_, 2);
v___x_4177_ = l_Lean_mkIntLit(v_k_4151_);
v___x_4184_ = l_Lean_instInhabitedExpr;
v___x_4185_ = lean_nat_dec_lt(v_x_4152_, v_size_4176_);
if (v___x_4185_ == 0)
{
lean_object* v___x_4186_; 
lean_dec_ref(v_vars_4174_);
v___x_4186_ = l_outOfBounds___redArg(v___x_4184_);
v___y_4179_ = v___x_4186_;
goto v___jp_4178_;
}
else
{
lean_object* v___x_4187_; 
v___x_4187_ = l_Lean_PersistentArray_get_x21___redArg(v___x_4184_, v_vars_4174_, v_x_4152_);
v___y_4179_ = v___x_4187_;
goto v___jp_4178_;
}
v___jp_4178_:
{
lean_object* v___x_4180_; lean_object* v___x_4182_; 
v___x_4180_ = l_Lean_mkAppB(v_zsmulFn_4175_, v___x_4177_, v___y_4179_);
if (v_isShared_4173_ == 0)
{
lean_ctor_set(v___x_4172_, 0, v___x_4180_);
v___x_4182_ = v___x_4172_;
goto v_reusejp_4181_;
}
else
{
lean_object* v_reuseFailAlloc_4183_; 
v_reuseFailAlloc_4183_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4183_, 0, v___x_4180_);
v___x_4182_ = v_reuseFailAlloc_4183_;
goto v_reusejp_4181_;
}
v_reusejp_4181_:
{
return v___x_4182_;
}
}
}
}
else
{
lean_object* v_a_4189_; lean_object* v___x_4191_; uint8_t v_isShared_4192_; uint8_t v_isSharedCheck_4196_; 
lean_dec(v_a_4168_);
v_a_4189_ = lean_ctor_get(v___x_4169_, 0);
v_isSharedCheck_4196_ = !lean_is_exclusive(v___x_4169_);
if (v_isSharedCheck_4196_ == 0)
{
v___x_4191_ = v___x_4169_;
v_isShared_4192_ = v_isSharedCheck_4196_;
goto v_resetjp_4190_;
}
else
{
lean_inc(v_a_4189_);
lean_dec(v___x_4169_);
v___x_4191_ = lean_box(0);
v_isShared_4192_ = v_isSharedCheck_4196_;
goto v_resetjp_4190_;
}
v_resetjp_4190_:
{
lean_object* v___x_4194_; 
if (v_isShared_4192_ == 0)
{
v___x_4194_ = v___x_4191_;
goto v_reusejp_4193_;
}
else
{
lean_object* v_reuseFailAlloc_4195_; 
v_reuseFailAlloc_4195_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4195_, 0, v_a_4189_);
v___x_4194_ = v_reuseFailAlloc_4195_;
goto v_reusejp_4193_;
}
v_reusejp_4193_:
{
return v___x_4194_;
}
}
}
}
else
{
lean_object* v_a_4197_; lean_object* v___x_4199_; uint8_t v_isShared_4200_; uint8_t v_isSharedCheck_4204_; 
v_a_4197_ = lean_ctor_get(v___x_4167_, 0);
v_isSharedCheck_4204_ = !lean_is_exclusive(v___x_4167_);
if (v_isSharedCheck_4204_ == 0)
{
v___x_4199_ = v___x_4167_;
v_isShared_4200_ = v_isSharedCheck_4204_;
goto v_resetjp_4198_;
}
else
{
lean_inc(v_a_4197_);
lean_dec(v___x_4167_);
v___x_4199_ = lean_box(0);
v_isShared_4200_ = v_isSharedCheck_4204_;
goto v_resetjp_4198_;
}
v_resetjp_4198_:
{
lean_object* v___x_4202_; 
if (v_isShared_4200_ == 0)
{
v___x_4202_ = v___x_4199_;
goto v_reusejp_4201_;
}
else
{
lean_object* v_reuseFailAlloc_4203_; 
v_reuseFailAlloc_4203_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4203_, 0, v_a_4197_);
v___x_4202_ = v_reuseFailAlloc_4203_;
goto v_reusejp_4201_;
}
v_reusejp_4201_:
{
return v___x_4202_;
}
}
}
}
else
{
lean_object* v___x_4205_; 
v___x_4205_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_4153_, v___y_4154_, v___y_4155_, v___y_4156_, v___y_4157_, v___y_4158_, v___y_4159_, v___y_4160_, v___y_4161_, v___y_4162_, v___y_4163_);
if (lean_obj_tag(v___x_4205_) == 0)
{
lean_object* v_a_4206_; lean_object* v___x_4208_; uint8_t v_isShared_4209_; uint8_t v_isSharedCheck_4222_; 
v_a_4206_ = lean_ctor_get(v___x_4205_, 0);
v_isSharedCheck_4222_ = !lean_is_exclusive(v___x_4205_);
if (v_isSharedCheck_4222_ == 0)
{
v___x_4208_ = v___x_4205_;
v_isShared_4209_ = v_isSharedCheck_4222_;
goto v_resetjp_4207_;
}
else
{
lean_inc(v_a_4206_);
lean_dec(v___x_4205_);
v___x_4208_ = lean_box(0);
v_isShared_4209_ = v_isSharedCheck_4222_;
goto v_resetjp_4207_;
}
v_resetjp_4207_:
{
lean_object* v_vars_4210_; lean_object* v_size_4211_; lean_object* v___x_4212_; uint8_t v___x_4213_; 
v_vars_4210_ = lean_ctor_get(v_a_4206_, 30);
lean_inc_ref(v_vars_4210_);
lean_dec(v_a_4206_);
v_size_4211_ = lean_ctor_get(v_vars_4210_, 2);
v___x_4212_ = l_Lean_instInhabitedExpr;
v___x_4213_ = lean_nat_dec_lt(v_x_4152_, v_size_4211_);
if (v___x_4213_ == 0)
{
lean_object* v___x_4214_; lean_object* v___x_4216_; 
lean_dec_ref(v_vars_4210_);
v___x_4214_ = l_outOfBounds___redArg(v___x_4212_);
if (v_isShared_4209_ == 0)
{
lean_ctor_set(v___x_4208_, 0, v___x_4214_);
v___x_4216_ = v___x_4208_;
goto v_reusejp_4215_;
}
else
{
lean_object* v_reuseFailAlloc_4217_; 
v_reuseFailAlloc_4217_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4217_, 0, v___x_4214_);
v___x_4216_ = v_reuseFailAlloc_4217_;
goto v_reusejp_4215_;
}
v_reusejp_4215_:
{
return v___x_4216_;
}
}
else
{
lean_object* v___x_4218_; lean_object* v___x_4220_; 
v___x_4218_ = l_Lean_PersistentArray_get_x21___redArg(v___x_4212_, v_vars_4210_, v_x_4152_);
if (v_isShared_4209_ == 0)
{
lean_ctor_set(v___x_4208_, 0, v___x_4218_);
v___x_4220_ = v___x_4208_;
goto v_reusejp_4219_;
}
else
{
lean_object* v_reuseFailAlloc_4221_; 
v_reuseFailAlloc_4221_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4221_, 0, v___x_4218_);
v___x_4220_ = v_reuseFailAlloc_4221_;
goto v_reusejp_4219_;
}
v_reusejp_4219_:
{
return v___x_4220_;
}
}
}
}
else
{
lean_object* v_a_4223_; lean_object* v___x_4225_; uint8_t v_isShared_4226_; uint8_t v_isSharedCheck_4230_; 
v_a_4223_ = lean_ctor_get(v___x_4205_, 0);
v_isSharedCheck_4230_ = !lean_is_exclusive(v___x_4205_);
if (v_isSharedCheck_4230_ == 0)
{
v___x_4225_ = v___x_4205_;
v_isShared_4226_ = v_isSharedCheck_4230_;
goto v_resetjp_4224_;
}
else
{
lean_inc(v_a_4223_);
lean_dec(v___x_4205_);
v___x_4225_ = lean_box(0);
v_isShared_4226_ = v_isSharedCheck_4230_;
goto v_resetjp_4224_;
}
v_resetjp_4224_:
{
lean_object* v___x_4228_; 
if (v_isShared_4226_ == 0)
{
v___x_4228_ = v___x_4225_;
goto v_reusejp_4227_;
}
else
{
lean_object* v_reuseFailAlloc_4229_; 
v_reuseFailAlloc_4229_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4229_, 0, v_a_4223_);
v___x_4228_ = v_reuseFailAlloc_4229_;
goto v_reusejp_4227_;
}
v_reusejp_4227_:
{
return v___x_4228_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___redArg___boxed(lean_object* v_k_4231_, lean_object* v_x_4232_, lean_object* v___y_4233_, lean_object* v___y_4234_, lean_object* v___y_4235_, lean_object* v___y_4236_, lean_object* v___y_4237_, lean_object* v___y_4238_, lean_object* v___y_4239_, lean_object* v___y_4240_, lean_object* v___y_4241_, lean_object* v___y_4242_, lean_object* v___y_4243_, lean_object* v___y_4244_){
_start:
{
lean_object* v_res_4245_; 
v_res_4245_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___redArg(v_k_4231_, v_x_4232_, v___y_4233_, v___y_4234_, v___y_4235_, v___y_4236_, v___y_4237_, v___y_4238_, v___y_4239_, v___y_4240_, v___y_4241_, v___y_4242_, v___y_4243_);
lean_dec(v___y_4243_);
lean_dec_ref(v___y_4242_);
lean_dec(v___y_4241_);
lean_dec_ref(v___y_4240_);
lean_dec(v___y_4239_);
lean_dec_ref(v___y_4238_);
lean_dec(v___y_4237_);
lean_dec_ref(v___y_4236_);
lean_dec(v___y_4235_);
lean_dec(v___y_4234_);
lean_dec(v___y_4233_);
lean_dec(v_x_4232_);
lean_dec(v_k_4231_);
return v_res_4245_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__6(lean_object* v_p_4246_, lean_object* v_acc_4247_, lean_object* v___y_4248_, lean_object* v___y_4249_, lean_object* v___y_4250_, lean_object* v___y_4251_, lean_object* v___y_4252_, lean_object* v___y_4253_, lean_object* v___y_4254_, lean_object* v___y_4255_, lean_object* v___y_4256_, lean_object* v___y_4257_, lean_object* v___y_4258_, lean_object* v___y_4259_){
_start:
{
if (lean_obj_tag(v_p_4246_) == 0)
{
lean_object* v___x_4261_; 
v___x_4261_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_4261_, 0, v_acc_4247_);
return v___x_4261_;
}
else
{
lean_object* v_k_4262_; lean_object* v_v_4263_; lean_object* v_p_4264_; lean_object* v___x_4265_; 
v_k_4262_ = lean_ctor_get(v_p_4246_, 0);
v_v_4263_ = lean_ctor_get(v_p_4246_, 1);
v_p_4264_ = lean_ctor_get(v_p_4246_, 2);
v___x_4265_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_4249_, v___y_4250_, v___y_4251_, v___y_4252_, v___y_4253_, v___y_4254_, v___y_4255_, v___y_4256_, v___y_4257_, v___y_4258_, v___y_4259_);
if (lean_obj_tag(v___x_4265_) == 0)
{
lean_object* v_a_4266_; lean_object* v___x_4267_; 
v_a_4266_ = lean_ctor_get(v___x_4265_, 0);
lean_inc(v_a_4266_);
lean_dec_ref(v___x_4265_);
v___x_4267_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___redArg(v_k_4262_, v_v_4263_, v___y_4249_, v___y_4250_, v___y_4251_, v___y_4252_, v___y_4253_, v___y_4254_, v___y_4255_, v___y_4256_, v___y_4257_, v___y_4258_, v___y_4259_);
if (lean_obj_tag(v___x_4267_) == 0)
{
lean_object* v_a_4268_; lean_object* v_addFn_4269_; lean_object* v___x_4270_; 
v_a_4268_ = lean_ctor_get(v___x_4267_, 0);
lean_inc(v_a_4268_);
lean_dec_ref(v___x_4267_);
v_addFn_4269_ = lean_ctor_get(v_a_4266_, 22);
lean_inc_ref(v_addFn_4269_);
lean_dec(v_a_4266_);
v___x_4270_ = l_Lean_mkAppB(v_addFn_4269_, v_acc_4247_, v_a_4268_);
v_p_4246_ = v_p_4264_;
v_acc_4247_ = v___x_4270_;
goto _start;
}
else
{
lean_dec(v_a_4266_);
lean_dec_ref(v_acc_4247_);
return v___x_4267_;
}
}
else
{
lean_object* v_a_4272_; lean_object* v___x_4274_; uint8_t v_isShared_4275_; uint8_t v_isSharedCheck_4279_; 
lean_dec_ref(v_acc_4247_);
v_a_4272_ = lean_ctor_get(v___x_4265_, 0);
v_isSharedCheck_4279_ = !lean_is_exclusive(v___x_4265_);
if (v_isSharedCheck_4279_ == 0)
{
v___x_4274_ = v___x_4265_;
v_isShared_4275_ = v_isSharedCheck_4279_;
goto v_resetjp_4273_;
}
else
{
lean_inc(v_a_4272_);
lean_dec(v___x_4265_);
v___x_4274_ = lean_box(0);
v_isShared_4275_ = v_isSharedCheck_4279_;
goto v_resetjp_4273_;
}
v_resetjp_4273_:
{
lean_object* v___x_4277_; 
if (v_isShared_4275_ == 0)
{
v___x_4277_ = v___x_4274_;
goto v_reusejp_4276_;
}
else
{
lean_object* v_reuseFailAlloc_4278_; 
v_reuseFailAlloc_4278_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4278_, 0, v_a_4272_);
v___x_4277_ = v_reuseFailAlloc_4278_;
goto v_reusejp_4276_;
}
v_reusejp_4276_:
{
return v___x_4277_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__6___boxed(lean_object* v_p_4280_, lean_object* v_acc_4281_, lean_object* v___y_4282_, lean_object* v___y_4283_, lean_object* v___y_4284_, lean_object* v___y_4285_, lean_object* v___y_4286_, lean_object* v___y_4287_, lean_object* v___y_4288_, lean_object* v___y_4289_, lean_object* v___y_4290_, lean_object* v___y_4291_, lean_object* v___y_4292_, lean_object* v___y_4293_, lean_object* v___y_4294_){
_start:
{
lean_object* v_res_4295_; 
v_res_4295_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__6(v_p_4280_, v_acc_4281_, v___y_4282_, v___y_4283_, v___y_4284_, v___y_4285_, v___y_4286_, v___y_4287_, v___y_4288_, v___y_4289_, v___y_4290_, v___y_4291_, v___y_4292_, v___y_4293_);
lean_dec(v___y_4293_);
lean_dec_ref(v___y_4292_);
lean_dec(v___y_4291_);
lean_dec_ref(v___y_4290_);
lean_dec(v___y_4289_);
lean_dec_ref(v___y_4288_);
lean_dec(v___y_4287_);
lean_dec_ref(v___y_4286_);
lean_dec(v___y_4285_);
lean_dec(v___y_4284_);
lean_dec(v___y_4283_);
lean_dec(v___y_4282_);
lean_dec(v_p_4280_);
return v_res_4295_;
}
}
LEAN_EXPORT lean_object* l_Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3(lean_object* v_p_4296_, lean_object* v___y_4297_, lean_object* v___y_4298_, lean_object* v___y_4299_, lean_object* v___y_4300_, lean_object* v___y_4301_, lean_object* v___y_4302_, lean_object* v___y_4303_, lean_object* v___y_4304_, lean_object* v___y_4305_, lean_object* v___y_4306_, lean_object* v___y_4307_, lean_object* v___y_4308_){
_start:
{
if (lean_obj_tag(v_p_4296_) == 0)
{
lean_object* v___x_4310_; 
v___x_4310_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_4298_, v___y_4299_, v___y_4300_, v___y_4301_, v___y_4302_, v___y_4303_, v___y_4304_, v___y_4305_, v___y_4306_, v___y_4307_, v___y_4308_);
if (lean_obj_tag(v___x_4310_) == 0)
{
lean_object* v_a_4311_; lean_object* v___x_4313_; uint8_t v_isShared_4314_; uint8_t v_isSharedCheck_4319_; 
v_a_4311_ = lean_ctor_get(v___x_4310_, 0);
v_isSharedCheck_4319_ = !lean_is_exclusive(v___x_4310_);
if (v_isSharedCheck_4319_ == 0)
{
v___x_4313_ = v___x_4310_;
v_isShared_4314_ = v_isSharedCheck_4319_;
goto v_resetjp_4312_;
}
else
{
lean_inc(v_a_4311_);
lean_dec(v___x_4310_);
v___x_4313_ = lean_box(0);
v_isShared_4314_ = v_isSharedCheck_4319_;
goto v_resetjp_4312_;
}
v_resetjp_4312_:
{
lean_object* v_zero_4315_; lean_object* v___x_4317_; 
v_zero_4315_ = lean_ctor_get(v_a_4311_, 17);
lean_inc_ref(v_zero_4315_);
lean_dec(v_a_4311_);
if (v_isShared_4314_ == 0)
{
lean_ctor_set(v___x_4313_, 0, v_zero_4315_);
v___x_4317_ = v___x_4313_;
goto v_reusejp_4316_;
}
else
{
lean_object* v_reuseFailAlloc_4318_; 
v_reuseFailAlloc_4318_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4318_, 0, v_zero_4315_);
v___x_4317_ = v_reuseFailAlloc_4318_;
goto v_reusejp_4316_;
}
v_reusejp_4316_:
{
return v___x_4317_;
}
}
}
else
{
lean_object* v_a_4320_; lean_object* v___x_4322_; uint8_t v_isShared_4323_; uint8_t v_isSharedCheck_4327_; 
v_a_4320_ = lean_ctor_get(v___x_4310_, 0);
v_isSharedCheck_4327_ = !lean_is_exclusive(v___x_4310_);
if (v_isSharedCheck_4327_ == 0)
{
v___x_4322_ = v___x_4310_;
v_isShared_4323_ = v_isSharedCheck_4327_;
goto v_resetjp_4321_;
}
else
{
lean_inc(v_a_4320_);
lean_dec(v___x_4310_);
v___x_4322_ = lean_box(0);
v_isShared_4323_ = v_isSharedCheck_4327_;
goto v_resetjp_4321_;
}
v_resetjp_4321_:
{
lean_object* v___x_4325_; 
if (v_isShared_4323_ == 0)
{
v___x_4325_ = v___x_4322_;
goto v_reusejp_4324_;
}
else
{
lean_object* v_reuseFailAlloc_4326_; 
v_reuseFailAlloc_4326_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4326_, 0, v_a_4320_);
v___x_4325_ = v_reuseFailAlloc_4326_;
goto v_reusejp_4324_;
}
v_reusejp_4324_:
{
return v___x_4325_;
}
}
}
}
else
{
lean_object* v_k_4328_; lean_object* v_v_4329_; lean_object* v_p_4330_; lean_object* v___x_4331_; 
v_k_4328_ = lean_ctor_get(v_p_4296_, 0);
v_v_4329_ = lean_ctor_get(v_p_4296_, 1);
v_p_4330_ = lean_ctor_get(v_p_4296_, 2);
v___x_4331_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___redArg(v_k_4328_, v_v_4329_, v___y_4298_, v___y_4299_, v___y_4300_, v___y_4301_, v___y_4302_, v___y_4303_, v___y_4304_, v___y_4305_, v___y_4306_, v___y_4307_, v___y_4308_);
if (lean_obj_tag(v___x_4331_) == 0)
{
lean_object* v_a_4332_; lean_object* v___x_4333_; 
v_a_4332_ = lean_ctor_get(v___x_4331_, 0);
lean_inc(v_a_4332_);
lean_dec_ref(v___x_4331_);
v___x_4333_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_go___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__6(v_p_4330_, v_a_4332_, v___y_4297_, v___y_4298_, v___y_4299_, v___y_4300_, v___y_4301_, v___y_4302_, v___y_4303_, v___y_4304_, v___y_4305_, v___y_4306_, v___y_4307_, v___y_4308_);
return v___x_4333_;
}
else
{
return v___x_4331_;
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3___boxed(lean_object* v_p_4334_, lean_object* v___y_4335_, lean_object* v___y_4336_, lean_object* v___y_4337_, lean_object* v___y_4338_, lean_object* v___y_4339_, lean_object* v___y_4340_, lean_object* v___y_4341_, lean_object* v___y_4342_, lean_object* v___y_4343_, lean_object* v___y_4344_, lean_object* v___y_4345_, lean_object* v___y_4346_, lean_object* v___y_4347_){
_start:
{
lean_object* v_res_4348_; 
v_res_4348_ = l_Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3(v_p_4334_, v___y_4335_, v___y_4336_, v___y_4337_, v___y_4338_, v___y_4339_, v___y_4340_, v___y_4341_, v___y_4342_, v___y_4343_, v___y_4344_, v___y_4345_, v___y_4346_);
lean_dec(v___y_4346_);
lean_dec_ref(v___y_4345_);
lean_dec(v___y_4344_);
lean_dec_ref(v___y_4343_);
lean_dec(v___y_4342_);
lean_dec_ref(v___y_4341_);
lean_dec(v___y_4340_);
lean_dec_ref(v___y_4339_);
lean_dec(v___y_4338_);
lean_dec(v___y_4337_);
lean_dec(v___y_4336_);
lean_dec(v___y_4335_);
lean_dec(v_p_4334_);
return v_res_4348_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2(lean_object* v_c_4349_, lean_object* v___y_4350_, lean_object* v___y_4351_, lean_object* v___y_4352_, lean_object* v___y_4353_, lean_object* v___y_4354_, lean_object* v___y_4355_, lean_object* v___y_4356_, lean_object* v___y_4357_, lean_object* v___y_4358_, lean_object* v___y_4359_, lean_object* v___y_4360_, lean_object* v___y_4361_){
_start:
{
lean_object* v_p_4363_; lean_object* v___x_4364_; 
v_p_4363_ = lean_ctor_get(v_c_4349_, 0);
v___x_4364_ = l_Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3(v_p_4363_, v___y_4350_, v___y_4351_, v___y_4352_, v___y_4353_, v___y_4354_, v___y_4355_, v___y_4356_, v___y_4357_, v___y_4358_, v___y_4359_, v___y_4360_, v___y_4361_);
if (lean_obj_tag(v___x_4364_) == 0)
{
lean_object* v_a_4365_; lean_object* v___x_4366_; 
v_a_4365_ = lean_ctor_get(v___x_4364_, 0);
lean_inc(v_a_4365_);
lean_dec_ref(v___x_4364_);
v___x_4366_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_4351_, v___y_4352_, v___y_4353_, v___y_4354_, v___y_4355_, v___y_4356_, v___y_4357_, v___y_4358_, v___y_4359_, v___y_4360_, v___y_4361_);
if (lean_obj_tag(v___x_4366_) == 0)
{
lean_object* v_a_4367_; lean_object* v_ofNatZero_4368_; lean_object* v___x_4369_; 
v_a_4367_ = lean_ctor_get(v___x_4366_, 0);
lean_inc(v_a_4367_);
lean_dec_ref(v___x_4366_);
v_ofNatZero_4368_ = lean_ctor_get(v_a_4367_, 18);
lean_inc_ref(v_ofNatZero_4368_);
lean_dec(v_a_4367_);
v___x_4369_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4___redArg(v_a_4365_, v_ofNatZero_4368_, v___y_4351_, v___y_4352_, v___y_4353_, v___y_4354_, v___y_4355_, v___y_4356_, v___y_4357_, v___y_4358_, v___y_4359_, v___y_4360_, v___y_4361_);
if (lean_obj_tag(v___x_4369_) == 0)
{
lean_object* v_a_4370_; lean_object* v___x_4372_; uint8_t v_isShared_4373_; uint8_t v_isSharedCheck_4378_; 
v_a_4370_ = lean_ctor_get(v___x_4369_, 0);
v_isSharedCheck_4378_ = !lean_is_exclusive(v___x_4369_);
if (v_isSharedCheck_4378_ == 0)
{
v___x_4372_ = v___x_4369_;
v_isShared_4373_ = v_isSharedCheck_4378_;
goto v_resetjp_4371_;
}
else
{
lean_inc(v_a_4370_);
lean_dec(v___x_4369_);
v___x_4372_ = lean_box(0);
v_isShared_4373_ = v_isSharedCheck_4378_;
goto v_resetjp_4371_;
}
v_resetjp_4371_:
{
lean_object* v___x_4374_; lean_object* v___x_4376_; 
v___x_4374_ = l_Lean_mkNot(v_a_4370_);
if (v_isShared_4373_ == 0)
{
lean_ctor_set(v___x_4372_, 0, v___x_4374_);
v___x_4376_ = v___x_4372_;
goto v_reusejp_4375_;
}
else
{
lean_object* v_reuseFailAlloc_4377_; 
v_reuseFailAlloc_4377_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4377_, 0, v___x_4374_);
v___x_4376_ = v_reuseFailAlloc_4377_;
goto v_reusejp_4375_;
}
v_reusejp_4375_:
{
return v___x_4376_;
}
}
}
else
{
return v___x_4369_;
}
}
else
{
lean_object* v_a_4379_; lean_object* v___x_4381_; uint8_t v_isShared_4382_; uint8_t v_isSharedCheck_4386_; 
lean_dec(v_a_4365_);
v_a_4379_ = lean_ctor_get(v___x_4366_, 0);
v_isSharedCheck_4386_ = !lean_is_exclusive(v___x_4366_);
if (v_isSharedCheck_4386_ == 0)
{
v___x_4381_ = v___x_4366_;
v_isShared_4382_ = v_isSharedCheck_4386_;
goto v_resetjp_4380_;
}
else
{
lean_inc(v_a_4379_);
lean_dec(v___x_4366_);
v___x_4381_ = lean_box(0);
v_isShared_4382_ = v_isSharedCheck_4386_;
goto v_resetjp_4380_;
}
v_resetjp_4380_:
{
lean_object* v___x_4384_; 
if (v_isShared_4382_ == 0)
{
v___x_4384_ = v___x_4381_;
goto v_reusejp_4383_;
}
else
{
lean_object* v_reuseFailAlloc_4385_; 
v_reuseFailAlloc_4385_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4385_, 0, v_a_4379_);
v___x_4384_ = v_reuseFailAlloc_4385_;
goto v_reusejp_4383_;
}
v_reusejp_4383_:
{
return v___x_4384_;
}
}
}
}
else
{
return v___x_4364_;
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2___boxed(lean_object* v_c_4387_, lean_object* v___y_4388_, lean_object* v___y_4389_, lean_object* v___y_4390_, lean_object* v___y_4391_, lean_object* v___y_4392_, lean_object* v___y_4393_, lean_object* v___y_4394_, lean_object* v___y_4395_, lean_object* v___y_4396_, lean_object* v___y_4397_, lean_object* v___y_4398_, lean_object* v___y_4399_, lean_object* v___y_4400_){
_start:
{
lean_object* v_res_4401_; 
v_res_4401_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2(v_c_4387_, v___y_4388_, v___y_4389_, v___y_4390_, v___y_4391_, v___y_4392_, v___y_4393_, v___y_4394_, v___y_4395_, v___y_4396_, v___y_4397_, v___y_4398_, v___y_4399_);
lean_dec(v___y_4399_);
lean_dec_ref(v___y_4398_);
lean_dec(v___y_4397_);
lean_dec_ref(v___y_4396_);
lean_dec(v___y_4395_);
lean_dec_ref(v___y_4394_);
lean_dec(v___y_4393_);
lean_dec_ref(v___y_4392_);
lean_dec(v___y_4391_);
lean_dec(v___y_4390_);
lean_dec(v___y_4389_);
lean_dec(v___y_4388_);
lean_dec_ref(v_c_4387_);
return v_res_4401_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__3(void){
_start:
{
lean_object* v___x_4410_; lean_object* v___x_4411_; 
v___x_4410_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__2));
v___x_4411_ = l_Lean_stringToMessageData(v___x_4410_);
return v___x_4411_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split(lean_object* v_c_4412_, lean_object* v_a_4413_, lean_object* v_a_4414_, lean_object* v_a_4415_, lean_object* v_a_4416_, lean_object* v_a_4417_, lean_object* v_a_4418_, lean_object* v_a_4419_, lean_object* v_a_4420_, lean_object* v_a_4421_, lean_object* v_a_4422_, lean_object* v_a_4423_, lean_object* v_a_4424_){
_start:
{
lean_object* v___x_4426_; 
v___x_4426_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v_a_4414_, v_a_4415_, v_a_4416_, v_a_4417_, v_a_4418_, v_a_4419_, v_a_4420_, v_a_4421_, v_a_4422_, v_a_4423_, v_a_4424_);
if (lean_obj_tag(v___x_4426_) == 0)
{
lean_object* v_a_4427_; lean_object* v___x_4429_; uint8_t v_isShared_4430_; uint8_t v_isSharedCheck_4539_; 
v_a_4427_ = lean_ctor_get(v___x_4426_, 0);
v_isSharedCheck_4539_ = !lean_is_exclusive(v___x_4426_);
if (v_isSharedCheck_4539_ == 0)
{
v___x_4429_ = v___x_4426_;
v_isShared_4430_ = v_isSharedCheck_4539_;
goto v_resetjp_4428_;
}
else
{
lean_inc(v_a_4427_);
lean_dec(v___x_4426_);
v___x_4429_ = lean_box(0);
v_isShared_4430_ = v_isSharedCheck_4539_;
goto v_resetjp_4428_;
}
v_resetjp_4428_:
{
lean_object* v_diseqSplits_4431_; lean_object* v_p_4432_; lean_object* v_fvarId_4434_; lean_object* v___x_4441_; 
v_diseqSplits_4431_ = lean_ctor_get(v_a_4427_, 37);
lean_inc_ref(v_diseqSplits_4431_);
lean_dec(v_a_4427_);
v_p_4432_ = lean_ctor_get(v_c_4412_, 0);
lean_inc(v_p_4432_);
v___x_4441_ = l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0___redArg(v_diseqSplits_4431_, v_p_4432_);
if (lean_obj_tag(v___x_4441_) == 1)
{
lean_object* v_val_4442_; lean_object* v___x_4443_; lean_object* v___x_4444_; lean_object* v_a_4445_; uint8_t v___x_4446_; 
v_val_4442_ = lean_ctor_get(v___x_4441_, 0);
lean_inc(v_val_4442_);
lean_dec_ref(v___x_4441_);
v___x_4443_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1));
v___x_4444_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v___x_4443_, v_a_4423_);
v_a_4445_ = lean_ctor_get(v___x_4444_, 0);
lean_inc(v_a_4445_);
lean_dec_ref(v___x_4444_);
v___x_4446_ = lean_unbox(v_a_4445_);
lean_dec(v_a_4445_);
if (v___x_4446_ == 0)
{
lean_dec(v_a_4414_);
lean_dec_ref(v_c_4412_);
v_fvarId_4434_ = v_val_4442_;
goto v___jp_4433_;
}
else
{
lean_object* v___x_4447_; lean_object* v___x_4449_; uint8_t v_isShared_4450_; uint8_t v_isSharedCheck_4476_; 
v___x_4447_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2(v_c_4412_, v_a_4413_, v_a_4414_, v_a_4415_, v_a_4416_, v_a_4417_, v_a_4418_, v_a_4419_, v_a_4420_, v_a_4421_, v_a_4422_, v_a_4423_, v_a_4424_);
lean_dec(v_a_4414_);
v_isSharedCheck_4476_ = !lean_is_exclusive(v_c_4412_);
if (v_isSharedCheck_4476_ == 0)
{
lean_object* v_unused_4477_; lean_object* v_unused_4478_; 
v_unused_4477_ = lean_ctor_get(v_c_4412_, 1);
lean_dec(v_unused_4477_);
v_unused_4478_ = lean_ctor_get(v_c_4412_, 0);
lean_dec(v_unused_4478_);
v___x_4449_ = v_c_4412_;
v_isShared_4450_ = v_isSharedCheck_4476_;
goto v_resetjp_4448_;
}
else
{
lean_dec(v_c_4412_);
v___x_4449_ = lean_box(0);
v_isShared_4450_ = v_isSharedCheck_4476_;
goto v_resetjp_4448_;
}
v_resetjp_4448_:
{
if (lean_obj_tag(v___x_4447_) == 0)
{
lean_object* v_a_4451_; lean_object* v___x_4452_; lean_object* v___x_4453_; lean_object* v___x_4455_; 
v_a_4451_ = lean_ctor_get(v___x_4447_, 0);
lean_inc(v_a_4451_);
lean_dec_ref(v___x_4447_);
v___x_4452_ = l_Lean_MessageData_ofExpr(v_a_4451_);
v___x_4453_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__3, &l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__3_once, _init_l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__3);
if (v_isShared_4450_ == 0)
{
lean_ctor_set_tag(v___x_4449_, 7);
lean_ctor_set(v___x_4449_, 1, v___x_4453_);
lean_ctor_set(v___x_4449_, 0, v___x_4452_);
v___x_4455_ = v___x_4449_;
goto v_reusejp_4454_;
}
else
{
lean_object* v_reuseFailAlloc_4467_; 
v_reuseFailAlloc_4467_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_4467_, 0, v___x_4452_);
lean_ctor_set(v_reuseFailAlloc_4467_, 1, v___x_4453_);
v___x_4455_ = v_reuseFailAlloc_4467_;
goto v_reusejp_4454_;
}
v_reusejp_4454_:
{
lean_object* v___x_4456_; lean_object* v___x_4457_; lean_object* v___x_4458_; 
lean_inc(v_val_4442_);
v___x_4456_ = l_Lean_MessageData_ofName(v_val_4442_);
v___x_4457_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_4457_, 0, v___x_4455_);
lean_ctor_set(v___x_4457_, 1, v___x_4456_);
v___x_4458_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v___x_4443_, v___x_4457_, v_a_4421_, v_a_4422_, v_a_4423_, v_a_4424_);
if (lean_obj_tag(v___x_4458_) == 0)
{
lean_dec_ref(v___x_4458_);
v_fvarId_4434_ = v_val_4442_;
goto v___jp_4433_;
}
else
{
lean_object* v_a_4459_; lean_object* v___x_4461_; uint8_t v_isShared_4462_; uint8_t v_isSharedCheck_4466_; 
lean_dec(v_val_4442_);
lean_dec(v_p_4432_);
lean_del_object(v___x_4429_);
v_a_4459_ = lean_ctor_get(v___x_4458_, 0);
v_isSharedCheck_4466_ = !lean_is_exclusive(v___x_4458_);
if (v_isSharedCheck_4466_ == 0)
{
v___x_4461_ = v___x_4458_;
v_isShared_4462_ = v_isSharedCheck_4466_;
goto v_resetjp_4460_;
}
else
{
lean_inc(v_a_4459_);
lean_dec(v___x_4458_);
v___x_4461_ = lean_box(0);
v_isShared_4462_ = v_isSharedCheck_4466_;
goto v_resetjp_4460_;
}
v_resetjp_4460_:
{
lean_object* v___x_4464_; 
if (v_isShared_4462_ == 0)
{
v___x_4464_ = v___x_4461_;
goto v_reusejp_4463_;
}
else
{
lean_object* v_reuseFailAlloc_4465_; 
v_reuseFailAlloc_4465_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4465_, 0, v_a_4459_);
v___x_4464_ = v_reuseFailAlloc_4465_;
goto v_reusejp_4463_;
}
v_reusejp_4463_:
{
return v___x_4464_;
}
}
}
}
}
else
{
lean_object* v_a_4468_; lean_object* v___x_4470_; uint8_t v_isShared_4471_; uint8_t v_isSharedCheck_4475_; 
lean_del_object(v___x_4449_);
lean_dec(v_val_4442_);
lean_dec(v_p_4432_);
lean_del_object(v___x_4429_);
v_a_4468_ = lean_ctor_get(v___x_4447_, 0);
v_isSharedCheck_4475_ = !lean_is_exclusive(v___x_4447_);
if (v_isSharedCheck_4475_ == 0)
{
v___x_4470_ = v___x_4447_;
v_isShared_4471_ = v_isSharedCheck_4475_;
goto v_resetjp_4469_;
}
else
{
lean_inc(v_a_4468_);
lean_dec(v___x_4447_);
v___x_4470_ = lean_box(0);
v_isShared_4471_ = v_isSharedCheck_4475_;
goto v_resetjp_4469_;
}
v_resetjp_4469_:
{
lean_object* v___x_4473_; 
if (v_isShared_4471_ == 0)
{
v___x_4473_ = v___x_4470_;
goto v_reusejp_4472_;
}
else
{
lean_object* v_reuseFailAlloc_4474_; 
v_reuseFailAlloc_4474_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4474_, 0, v_a_4468_);
v___x_4473_ = v_reuseFailAlloc_4474_;
goto v_reusejp_4472_;
}
v_reusejp_4472_:
{
return v___x_4473_;
}
}
}
}
}
}
else
{
lean_object* v___x_4479_; 
lean_dec(v___x_4441_);
lean_inc(v_a_4414_);
lean_inc_ref(v_c_4412_);
v___x_4479_ = l_Lean_Meta_Grind_Arith_Linear_mkCase(v_c_4412_, v_a_4413_, v_a_4414_, v_a_4415_, v_a_4416_, v_a_4417_, v_a_4418_, v_a_4419_, v_a_4420_, v_a_4421_, v_a_4422_, v_a_4423_, v_a_4424_);
if (lean_obj_tag(v___x_4479_) == 0)
{
lean_object* v_a_4480_; lean_object* v___y_4482_; lean_object* v___y_4483_; lean_object* v___x_4495_; lean_object* v___x_4496_; lean_object* v_a_4497_; uint8_t v___x_4498_; 
v_a_4480_ = lean_ctor_get(v___x_4479_, 0);
lean_inc(v_a_4480_);
lean_dec_ref(v___x_4479_);
v___x_4495_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___closed__1));
v___x_4496_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v___x_4495_, v_a_4423_);
v_a_4497_ = lean_ctor_get(v___x_4496_, 0);
lean_inc(v_a_4497_);
lean_dec_ref(v___x_4496_);
v___x_4498_ = lean_unbox(v_a_4497_);
lean_dec(v_a_4497_);
if (v___x_4498_ == 0)
{
lean_dec_ref(v_c_4412_);
v___y_4482_ = v_a_4414_;
v___y_4483_ = v_a_4415_;
goto v___jp_4481_;
}
else
{
lean_object* v___x_4499_; lean_object* v___x_4501_; uint8_t v_isShared_4502_; uint8_t v_isSharedCheck_4528_; 
v___x_4499_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2(v_c_4412_, v_a_4413_, v_a_4414_, v_a_4415_, v_a_4416_, v_a_4417_, v_a_4418_, v_a_4419_, v_a_4420_, v_a_4421_, v_a_4422_, v_a_4423_, v_a_4424_);
v_isSharedCheck_4528_ = !lean_is_exclusive(v_c_4412_);
if (v_isSharedCheck_4528_ == 0)
{
lean_object* v_unused_4529_; lean_object* v_unused_4530_; 
v_unused_4529_ = lean_ctor_get(v_c_4412_, 1);
lean_dec(v_unused_4529_);
v_unused_4530_ = lean_ctor_get(v_c_4412_, 0);
lean_dec(v_unused_4530_);
v___x_4501_ = v_c_4412_;
v_isShared_4502_ = v_isSharedCheck_4528_;
goto v_resetjp_4500_;
}
else
{
lean_dec(v_c_4412_);
v___x_4501_ = lean_box(0);
v_isShared_4502_ = v_isSharedCheck_4528_;
goto v_resetjp_4500_;
}
v_resetjp_4500_:
{
if (lean_obj_tag(v___x_4499_) == 0)
{
lean_object* v_a_4503_; lean_object* v___x_4504_; lean_object* v___x_4505_; lean_object* v___x_4507_; 
v_a_4503_ = lean_ctor_get(v___x_4499_, 0);
lean_inc(v_a_4503_);
lean_dec_ref(v___x_4499_);
v___x_4504_ = l_Lean_MessageData_ofExpr(v_a_4503_);
v___x_4505_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3, &l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3);
if (v_isShared_4502_ == 0)
{
lean_ctor_set_tag(v___x_4501_, 7);
lean_ctor_set(v___x_4501_, 1, v___x_4505_);
lean_ctor_set(v___x_4501_, 0, v___x_4504_);
v___x_4507_ = v___x_4501_;
goto v_reusejp_4506_;
}
else
{
lean_object* v_reuseFailAlloc_4519_; 
v_reuseFailAlloc_4519_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_4519_, 0, v___x_4504_);
lean_ctor_set(v_reuseFailAlloc_4519_, 1, v___x_4505_);
v___x_4507_ = v_reuseFailAlloc_4519_;
goto v_reusejp_4506_;
}
v_reusejp_4506_:
{
lean_object* v___x_4508_; lean_object* v___x_4509_; lean_object* v___x_4510_; 
lean_inc(v_a_4480_);
v___x_4508_ = l_Lean_MessageData_ofName(v_a_4480_);
v___x_4509_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_4509_, 0, v___x_4507_);
lean_ctor_set(v___x_4509_, 1, v___x_4508_);
v___x_4510_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v___x_4495_, v___x_4509_, v_a_4421_, v_a_4422_, v_a_4423_, v_a_4424_);
if (lean_obj_tag(v___x_4510_) == 0)
{
lean_dec_ref(v___x_4510_);
v___y_4482_ = v_a_4414_;
v___y_4483_ = v_a_4415_;
goto v___jp_4481_;
}
else
{
lean_object* v_a_4511_; lean_object* v___x_4513_; uint8_t v_isShared_4514_; uint8_t v_isSharedCheck_4518_; 
lean_dec(v_a_4480_);
lean_dec(v_p_4432_);
lean_del_object(v___x_4429_);
lean_dec(v_a_4414_);
v_a_4511_ = lean_ctor_get(v___x_4510_, 0);
v_isSharedCheck_4518_ = !lean_is_exclusive(v___x_4510_);
if (v_isSharedCheck_4518_ == 0)
{
v___x_4513_ = v___x_4510_;
v_isShared_4514_ = v_isSharedCheck_4518_;
goto v_resetjp_4512_;
}
else
{
lean_inc(v_a_4511_);
lean_dec(v___x_4510_);
v___x_4513_ = lean_box(0);
v_isShared_4514_ = v_isSharedCheck_4518_;
goto v_resetjp_4512_;
}
v_resetjp_4512_:
{
lean_object* v___x_4516_; 
if (v_isShared_4514_ == 0)
{
v___x_4516_ = v___x_4513_;
goto v_reusejp_4515_;
}
else
{
lean_object* v_reuseFailAlloc_4517_; 
v_reuseFailAlloc_4517_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4517_, 0, v_a_4511_);
v___x_4516_ = v_reuseFailAlloc_4517_;
goto v_reusejp_4515_;
}
v_reusejp_4515_:
{
return v___x_4516_;
}
}
}
}
}
else
{
lean_object* v_a_4520_; lean_object* v___x_4522_; uint8_t v_isShared_4523_; uint8_t v_isSharedCheck_4527_; 
lean_del_object(v___x_4501_);
lean_dec(v_a_4480_);
lean_dec(v_p_4432_);
lean_del_object(v___x_4429_);
lean_dec(v_a_4414_);
v_a_4520_ = lean_ctor_get(v___x_4499_, 0);
v_isSharedCheck_4527_ = !lean_is_exclusive(v___x_4499_);
if (v_isSharedCheck_4527_ == 0)
{
v___x_4522_ = v___x_4499_;
v_isShared_4523_ = v_isSharedCheck_4527_;
goto v_resetjp_4521_;
}
else
{
lean_inc(v_a_4520_);
lean_dec(v___x_4499_);
v___x_4522_ = lean_box(0);
v_isShared_4523_ = v_isSharedCheck_4527_;
goto v_resetjp_4521_;
}
v_resetjp_4521_:
{
lean_object* v___x_4525_; 
if (v_isShared_4523_ == 0)
{
v___x_4525_ = v___x_4522_;
goto v_reusejp_4524_;
}
else
{
lean_object* v_reuseFailAlloc_4526_; 
v_reuseFailAlloc_4526_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4526_, 0, v_a_4520_);
v___x_4525_ = v_reuseFailAlloc_4526_;
goto v_reusejp_4524_;
}
v_reusejp_4524_:
{
return v___x_4525_;
}
}
}
}
}
v___jp_4481_:
{
lean_object* v___f_4484_; lean_object* v___x_4485_; lean_object* v___x_4486_; 
lean_inc(v_a_4480_);
lean_inc(v_p_4432_);
v___f_4484_ = lean_alloc_closure((void*)(l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___lam__0___boxed), 4, 3);
lean_closure_set(v___f_4484_, 0, v___y_4482_);
lean_closure_set(v___f_4484_, 1, v_p_4432_);
lean_closure_set(v___f_4484_, 2, v_a_4480_);
v___x_4485_ = l_Lean_Meta_Grind_Arith_Linear_linearExt;
v___x_4486_ = l___private_Lean_Meta_Tactic_Grind_Types_0__Lean_Meta_Grind_SolverExtension_modifyStateImpl___redArg(v___x_4485_, v___f_4484_, v___y_4483_);
if (lean_obj_tag(v___x_4486_) == 0)
{
lean_dec_ref(v___x_4486_);
v_fvarId_4434_ = v_a_4480_;
goto v___jp_4433_;
}
else
{
lean_object* v_a_4487_; lean_object* v___x_4489_; uint8_t v_isShared_4490_; uint8_t v_isSharedCheck_4494_; 
lean_dec(v_a_4480_);
lean_dec(v_p_4432_);
lean_del_object(v___x_4429_);
v_a_4487_ = lean_ctor_get(v___x_4486_, 0);
v_isSharedCheck_4494_ = !lean_is_exclusive(v___x_4486_);
if (v_isSharedCheck_4494_ == 0)
{
v___x_4489_ = v___x_4486_;
v_isShared_4490_ = v_isSharedCheck_4494_;
goto v_resetjp_4488_;
}
else
{
lean_inc(v_a_4487_);
lean_dec(v___x_4486_);
v___x_4489_ = lean_box(0);
v_isShared_4490_ = v_isSharedCheck_4494_;
goto v_resetjp_4488_;
}
v_resetjp_4488_:
{
lean_object* v___x_4492_; 
if (v_isShared_4490_ == 0)
{
v___x_4492_ = v___x_4489_;
goto v_reusejp_4491_;
}
else
{
lean_object* v_reuseFailAlloc_4493_; 
v_reuseFailAlloc_4493_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4493_, 0, v_a_4487_);
v___x_4492_ = v_reuseFailAlloc_4493_;
goto v_reusejp_4491_;
}
v_reusejp_4491_:
{
return v___x_4492_;
}
}
}
}
}
else
{
lean_object* v_a_4531_; lean_object* v___x_4533_; uint8_t v_isShared_4534_; uint8_t v_isSharedCheck_4538_; 
lean_dec(v_p_4432_);
lean_del_object(v___x_4429_);
lean_dec(v_a_4414_);
lean_dec_ref(v_c_4412_);
v_a_4531_ = lean_ctor_get(v___x_4479_, 0);
v_isSharedCheck_4538_ = !lean_is_exclusive(v___x_4479_);
if (v_isSharedCheck_4538_ == 0)
{
v___x_4533_ = v___x_4479_;
v_isShared_4534_ = v_isSharedCheck_4538_;
goto v_resetjp_4532_;
}
else
{
lean_inc(v_a_4531_);
lean_dec(v___x_4479_);
v___x_4533_ = lean_box(0);
v_isShared_4534_ = v_isSharedCheck_4538_;
goto v_resetjp_4532_;
}
v_resetjp_4532_:
{
lean_object* v___x_4536_; 
if (v_isShared_4534_ == 0)
{
v___x_4536_ = v___x_4533_;
goto v_reusejp_4535_;
}
else
{
lean_object* v_reuseFailAlloc_4537_; 
v_reuseFailAlloc_4537_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4537_, 0, v_a_4531_);
v___x_4536_ = v_reuseFailAlloc_4537_;
goto v_reusejp_4535_;
}
v_reusejp_4535_:
{
return v___x_4536_;
}
}
}
}
v___jp_4433_:
{
uint8_t v___x_4435_; lean_object* v___x_4436_; lean_object* v___x_4437_; lean_object* v___x_4439_; 
v___x_4435_ = 1;
v___x_4436_ = lean_alloc_ctor(7, 1, 0);
lean_ctor_set(v___x_4436_, 0, v_fvarId_4434_);
v___x_4437_ = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(v___x_4437_, 0, v_p_4432_);
lean_ctor_set(v___x_4437_, 1, v___x_4436_);
lean_ctor_set_uint8(v___x_4437_, sizeof(void*)*2, v___x_4435_);
if (v_isShared_4430_ == 0)
{
lean_ctor_set(v___x_4429_, 0, v___x_4437_);
v___x_4439_ = v___x_4429_;
goto v_reusejp_4438_;
}
else
{
lean_object* v_reuseFailAlloc_4440_; 
v_reuseFailAlloc_4440_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4440_, 0, v___x_4437_);
v___x_4439_ = v_reuseFailAlloc_4440_;
goto v_reusejp_4438_;
}
v_reusejp_4438_:
{
return v___x_4439_;
}
}
}
}
else
{
lean_object* v_a_4540_; lean_object* v___x_4542_; uint8_t v_isShared_4543_; uint8_t v_isSharedCheck_4547_; 
lean_dec(v_a_4414_);
lean_dec_ref(v_c_4412_);
v_a_4540_ = lean_ctor_get(v___x_4426_, 0);
v_isSharedCheck_4547_ = !lean_is_exclusive(v___x_4426_);
if (v_isSharedCheck_4547_ == 0)
{
v___x_4542_ = v___x_4426_;
v_isShared_4543_ = v_isSharedCheck_4547_;
goto v_resetjp_4541_;
}
else
{
lean_inc(v_a_4540_);
lean_dec(v___x_4426_);
v___x_4542_ = lean_box(0);
v_isShared_4543_ = v_isSharedCheck_4547_;
goto v_resetjp_4541_;
}
v_resetjp_4541_:
{
lean_object* v___x_4545_; 
if (v_isShared_4543_ == 0)
{
v___x_4545_ = v___x_4542_;
goto v_reusejp_4544_;
}
else
{
lean_object* v_reuseFailAlloc_4546_; 
v_reuseFailAlloc_4546_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4546_, 0, v_a_4540_);
v___x_4545_ = v_reuseFailAlloc_4546_;
goto v_reusejp_4544_;
}
v_reusejp_4544_:
{
return v___x_4545_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split___boxed(lean_object* v_c_4548_, lean_object* v_a_4549_, lean_object* v_a_4550_, lean_object* v_a_4551_, lean_object* v_a_4552_, lean_object* v_a_4553_, lean_object* v_a_4554_, lean_object* v_a_4555_, lean_object* v_a_4556_, lean_object* v_a_4557_, lean_object* v_a_4558_, lean_object* v_a_4559_, lean_object* v_a_4560_, lean_object* v_a_4561_){
_start:
{
lean_object* v_res_4562_; 
v_res_4562_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split(v_c_4548_, v_a_4549_, v_a_4550_, v_a_4551_, v_a_4552_, v_a_4553_, v_a_4554_, v_a_4555_, v_a_4556_, v_a_4557_, v_a_4558_, v_a_4559_, v_a_4560_);
lean_dec(v_a_4560_);
lean_dec_ref(v_a_4559_);
lean_dec(v_a_4558_);
lean_dec_ref(v_a_4557_);
lean_dec(v_a_4556_);
lean_dec_ref(v_a_4555_);
lean_dec(v_a_4554_);
lean_dec_ref(v_a_4553_);
lean_dec(v_a_4552_);
lean_dec(v_a_4551_);
lean_dec(v_a_4549_);
return v_res_4562_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0(lean_object* v_00_u03b2_4563_, lean_object* v_x_4564_, lean_object* v_x_4565_){
_start:
{
lean_object* v___x_4566_; 
v___x_4566_ = l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0___redArg(v_x_4564_, v_x_4565_);
return v___x_4566_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0___boxed(lean_object* v_00_u03b2_4567_, lean_object* v_x_4568_, lean_object* v_x_4569_){
_start:
{
lean_object* v_res_4570_; 
v_res_4570_ = l_Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0(v_00_u03b2_4567_, v_x_4568_, v_x_4569_);
lean_dec(v_x_4569_);
return v_res_4570_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4(lean_object* v_a_4571_, lean_object* v_b_4572_, lean_object* v___y_4573_, lean_object* v___y_4574_, lean_object* v___y_4575_, lean_object* v___y_4576_, lean_object* v___y_4577_, lean_object* v___y_4578_, lean_object* v___y_4579_, lean_object* v___y_4580_, lean_object* v___y_4581_, lean_object* v___y_4582_, lean_object* v___y_4583_, lean_object* v___y_4584_){
_start:
{
lean_object* v___x_4586_; 
v___x_4586_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4___redArg(v_a_4571_, v_b_4572_, v___y_4574_, v___y_4575_, v___y_4576_, v___y_4577_, v___y_4578_, v___y_4579_, v___y_4580_, v___y_4581_, v___y_4582_, v___y_4583_, v___y_4584_);
return v___x_4586_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4___boxed(lean_object* v_a_4587_, lean_object* v_b_4588_, lean_object* v___y_4589_, lean_object* v___y_4590_, lean_object* v___y_4591_, lean_object* v___y_4592_, lean_object* v___y_4593_, lean_object* v___y_4594_, lean_object* v___y_4595_, lean_object* v___y_4596_, lean_object* v___y_4597_, lean_object* v___y_4598_, lean_object* v___y_4599_, lean_object* v___y_4600_, lean_object* v___y_4601_){
_start:
{
lean_object* v_res_4602_; 
v_res_4602_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_mkEq___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__4(v_a_4587_, v_b_4588_, v___y_4589_, v___y_4590_, v___y_4591_, v___y_4592_, v___y_4593_, v___y_4594_, v___y_4595_, v___y_4596_, v___y_4597_, v___y_4598_, v___y_4599_, v___y_4600_);
lean_dec(v___y_4600_);
lean_dec_ref(v___y_4599_);
lean_dec(v___y_4598_);
lean_dec_ref(v___y_4597_);
lean_dec(v___y_4596_);
lean_dec_ref(v___y_4595_);
lean_dec(v___y_4594_);
lean_dec_ref(v___y_4593_);
lean_dec(v___y_4592_);
lean_dec(v___y_4591_);
lean_dec(v___y_4590_);
lean_dec(v___y_4589_);
return v_res_4602_;
}
}
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3(lean_object* v_cls_4603_, lean_object* v_msg_4604_, lean_object* v___y_4605_, lean_object* v___y_4606_, lean_object* v___y_4607_, lean_object* v___y_4608_, lean_object* v___y_4609_, lean_object* v___y_4610_, lean_object* v___y_4611_, lean_object* v___y_4612_, lean_object* v___y_4613_, lean_object* v___y_4614_, lean_object* v___y_4615_, lean_object* v___y_4616_){
_start:
{
lean_object* v___x_4618_; 
v___x_4618_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v_cls_4603_, v_msg_4604_, v___y_4613_, v___y_4614_, v___y_4615_, v___y_4616_);
return v___x_4618_;
}
}
LEAN_EXPORT lean_object* l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___boxed(lean_object* v_cls_4619_, lean_object* v_msg_4620_, lean_object* v___y_4621_, lean_object* v___y_4622_, lean_object* v___y_4623_, lean_object* v___y_4624_, lean_object* v___y_4625_, lean_object* v___y_4626_, lean_object* v___y_4627_, lean_object* v___y_4628_, lean_object* v___y_4629_, lean_object* v___y_4630_, lean_object* v___y_4631_, lean_object* v___y_4632_, lean_object* v___y_4633_){
_start:
{
lean_object* v_res_4634_; 
v_res_4634_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3(v_cls_4619_, v_msg_4620_, v___y_4621_, v___y_4622_, v___y_4623_, v___y_4624_, v___y_4625_, v___y_4626_, v___y_4627_, v___y_4628_, v___y_4629_, v___y_4630_, v___y_4631_, v___y_4632_);
lean_dec(v___y_4632_);
lean_dec_ref(v___y_4631_);
lean_dec(v___y_4630_);
lean_dec_ref(v___y_4629_);
lean_dec(v___y_4628_);
lean_dec_ref(v___y_4627_);
lean_dec(v___y_4626_);
lean_dec_ref(v___y_4625_);
lean_dec(v___y_4624_);
lean_dec(v___y_4623_);
lean_dec(v___y_4622_);
lean_dec(v___y_4621_);
return v_res_4634_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4(lean_object* v_00_u03b2_4635_, lean_object* v_x_4636_, lean_object* v_x_4637_, lean_object* v_x_4638_){
_start:
{
lean_object* v___x_4639_; 
v___x_4639_ = l_Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4___redArg(v_x_4636_, v_x_4637_, v_x_4638_);
return v___x_4639_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0(lean_object* v_00_u03b2_4640_, lean_object* v_x_4641_, size_t v_x_4642_, lean_object* v_x_4643_){
_start:
{
lean_object* v___x_4644_; 
v___x_4644_ = l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0___redArg(v_x_4641_, v_x_4642_, v_x_4643_);
return v___x_4644_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0___boxed(lean_object* v_00_u03b2_4645_, lean_object* v_x_4646_, lean_object* v_x_4647_, lean_object* v_x_4648_){
_start:
{
size_t v_x_51352__boxed_4649_; lean_object* v_res_4650_; 
v_x_51352__boxed_4649_ = lean_unbox_usize(v_x_4647_);
lean_dec(v_x_4647_);
v_res_4650_ = l_Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0(v_00_u03b2_4645_, v_x_4646_, v_x_51352__boxed_4649_, v_x_4648_);
lean_dec(v_x_4648_);
return v_res_4650_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5(lean_object* v_k_4651_, lean_object* v_x_4652_, lean_object* v___y_4653_, lean_object* v___y_4654_, lean_object* v___y_4655_, lean_object* v___y_4656_, lean_object* v___y_4657_, lean_object* v___y_4658_, lean_object* v___y_4659_, lean_object* v___y_4660_, lean_object* v___y_4661_, lean_object* v___y_4662_, lean_object* v___y_4663_, lean_object* v___y_4664_){
_start:
{
lean_object* v___x_4666_; 
v___x_4666_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___redArg(v_k_4651_, v_x_4652_, v___y_4654_, v___y_4655_, v___y_4656_, v___y_4657_, v___y_4658_, v___y_4659_, v___y_4660_, v___y_4661_, v___y_4662_, v___y_4663_, v___y_4664_);
return v___x_4666_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5___boxed(lean_object* v_k_4667_, lean_object* v_x_4668_, lean_object* v___y_4669_, lean_object* v___y_4670_, lean_object* v___y_4671_, lean_object* v___y_4672_, lean_object* v___y_4673_, lean_object* v___y_4674_, lean_object* v___y_4675_, lean_object* v___y_4676_, lean_object* v___y_4677_, lean_object* v___y_4678_, lean_object* v___y_4679_, lean_object* v___y_4680_, lean_object* v___y_4681_){
_start:
{
lean_object* v_res_4682_; 
v_res_4682_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3_spec__5(v_k_4667_, v_x_4668_, v___y_4669_, v___y_4670_, v___y_4671_, v___y_4672_, v___y_4673_, v___y_4674_, v___y_4675_, v___y_4676_, v___y_4677_, v___y_4678_, v___y_4679_, v___y_4680_);
lean_dec(v___y_4680_);
lean_dec_ref(v___y_4679_);
lean_dec(v___y_4678_);
lean_dec_ref(v___y_4677_);
lean_dec(v___y_4676_);
lean_dec_ref(v___y_4675_);
lean_dec(v___y_4674_);
lean_dec_ref(v___y_4673_);
lean_dec(v___y_4672_);
lean_dec(v___y_4671_);
lean_dec(v___y_4670_);
lean_dec(v___y_4669_);
lean_dec(v_x_4668_);
lean_dec(v_k_4667_);
return v_res_4682_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7(lean_object* v_00_u03b2_4683_, lean_object* v_x_4684_, size_t v_x_4685_, size_t v_x_4686_, lean_object* v_x_4687_, lean_object* v_x_4688_){
_start:
{
lean_object* v___x_4689_; 
v___x_4689_ = l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___redArg(v_x_4684_, v_x_4685_, v_x_4686_, v_x_4687_, v_x_4688_);
return v___x_4689_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7___boxed(lean_object* v_00_u03b2_4690_, lean_object* v_x_4691_, lean_object* v_x_4692_, lean_object* v_x_4693_, lean_object* v_x_4694_, lean_object* v_x_4695_){
_start:
{
size_t v_x_51404__boxed_4696_; size_t v_x_51405__boxed_4697_; lean_object* v_res_4698_; 
v_x_51404__boxed_4696_ = lean_unbox_usize(v_x_4692_);
lean_dec(v_x_4692_);
v_x_51405__boxed_4697_ = lean_unbox_usize(v_x_4693_);
lean_dec(v_x_4693_);
v_res_4698_ = l_Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7(v_00_u03b2_4690_, v_x_4691_, v_x_51404__boxed_4696_, v_x_51405__boxed_4697_, v_x_4694_, v_x_4695_);
return v_res_4698_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2(lean_object* v_00_u03b2_4699_, lean_object* v_keys_4700_, lean_object* v_vals_4701_, lean_object* v_heq_4702_, lean_object* v_i_4703_, lean_object* v_k_4704_){
_start:
{
lean_object* v___x_4705_; 
v___x_4705_ = l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2___redArg(v_keys_4700_, v_vals_4701_, v_i_4703_, v_k_4704_);
return v___x_4705_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2___boxed(lean_object* v_00_u03b2_4706_, lean_object* v_keys_4707_, lean_object* v_vals_4708_, lean_object* v_heq_4709_, lean_object* v_i_4710_, lean_object* v_k_4711_){
_start:
{
lean_object* v_res_4712_; 
v_res_4712_ = l_Lean_PersistentHashMap_findAtAux___at___00Lean_PersistentHashMap_findAux___at___00Lean_PersistentHashMap_find_x3f___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__0_spec__0_spec__2(v_00_u03b2_4706_, v_keys_4707_, v_vals_4708_, v_heq_4709_, v_i_4710_, v_k_4711_);
lean_dec(v_k_4711_);
lean_dec_ref(v_vals_4708_);
lean_dec_ref(v_keys_4707_);
return v_res_4712_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11(lean_object* v_00_u03b2_4713_, lean_object* v_n_4714_, lean_object* v_k_4715_, lean_object* v_v_4716_){
_start:
{
lean_object* v___x_4717_; 
v___x_4717_ = l_Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11___redArg(v_n_4714_, v_k_4715_, v_v_4716_);
return v___x_4717_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12(lean_object* v_00_u03b2_4718_, size_t v_depth_4719_, lean_object* v_keys_4720_, lean_object* v_vals_4721_, lean_object* v_heq_4722_, lean_object* v_i_4723_, lean_object* v_entries_4724_){
_start:
{
lean_object* v___x_4725_; 
v___x_4725_ = l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12___redArg(v_depth_4719_, v_keys_4720_, v_vals_4721_, v_i_4723_, v_entries_4724_);
return v___x_4725_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12___boxed(lean_object* v_00_u03b2_4726_, lean_object* v_depth_4727_, lean_object* v_keys_4728_, lean_object* v_vals_4729_, lean_object* v_heq_4730_, lean_object* v_i_4731_, lean_object* v_entries_4732_){
_start:
{
size_t v_depth_boxed_4733_; lean_object* v_res_4734_; 
v_depth_boxed_4733_ = lean_unbox_usize(v_depth_4727_);
lean_dec(v_depth_4727_);
v_res_4734_ = l___private_Lean_Data_PersistentHashMap_0__Lean_PersistentHashMap_insertAux_traverse___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__12(v_00_u03b2_4726_, v_depth_boxed_4733_, v_keys_4728_, v_vals_4729_, v_heq_4730_, v_i_4731_, v_entries_4732_);
lean_dec_ref(v_vals_4729_);
lean_dec_ref(v_keys_4728_);
return v_res_4734_;
}
}
LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at___00Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11_spec__12(lean_object* v_00_u03b2_4735_, lean_object* v_x_4736_, lean_object* v_x_4737_, lean_object* v_x_4738_, lean_object* v_x_4739_){
_start:
{
lean_object* v___x_4740_; 
v___x_4740_ = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at___00Lean_PersistentHashMap_insertAtCollisionNode___at___00Lean_PersistentHashMap_insertAux___at___00Lean_PersistentHashMap_insert___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__4_spec__7_spec__11_spec__12___redArg(v_x_4736_, v_x_4737_, v_x_4738_, v_x_4739_);
return v___x_4740_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___closed__0(void){
_start:
{
lean_object* v___x_4741_; lean_object* v___x_4742_; 
v___x_4741_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Grind_Linarith_Poly_denoteExpr_denoteTerm___at___00Lean_Grind_Linarith_Poly_denoteExpr___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__2_spec__5___closed__0);
v___x_4742_ = lean_int_neg(v___x_4741_);
return v___x_4742_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict(lean_object* v_c_u2081_4743_, lean_object* v_c_4744_, lean_object* v_a_4745_, lean_object* v_a_4746_, lean_object* v_a_4747_, lean_object* v_a_4748_, lean_object* v_a_4749_, lean_object* v_a_4750_, lean_object* v_a_4751_, lean_object* v_a_4752_, lean_object* v_a_4753_, lean_object* v_a_4754_, lean_object* v_a_4755_, lean_object* v_a_4756_){
_start:
{
lean_object* v___y_4759_; lean_object* v_p_4771_; lean_object* v___x_4772_; lean_object* v___x_4773_; uint8_t v___x_4774_; 
v_p_4771_ = lean_ctor_get(v_c_4744_, 0);
v___x_4772_ = l_Lean_Grind_Linarith_Poly_leadCoeff(v_p_4771_);
v___x_4773_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v___x_4774_ = lean_int_dec_lt(v___x_4772_, v___x_4773_);
lean_dec(v___x_4772_);
if (v___x_4774_ == 0)
{
v___y_4759_ = v_c_4744_;
goto v___jp_4758_;
}
else
{
lean_object* v___x_4775_; lean_object* v___x_4776_; lean_object* v___x_4777_; lean_object* v___x_4778_; 
v___x_4775_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___closed__0, &l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___closed__0);
lean_inc(v_p_4771_);
v___x_4776_ = l_Lean_Grind_Linarith_Poly_mul(v_p_4771_, v___x_4775_);
v___x_4777_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v___x_4777_, 0, v_c_4744_);
v___x_4778_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_4778_, 0, v___x_4776_);
lean_ctor_set(v___x_4778_, 1, v___x_4777_);
v___y_4759_ = v___x_4778_;
goto v___jp_4758_;
}
v___jp_4758_:
{
lean_object* v___x_4760_; 
lean_inc(v_a_4746_);
v___x_4760_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split(v___y_4759_, v_a_4745_, v_a_4746_, v_a_4747_, v_a_4748_, v_a_4749_, v_a_4750_, v_a_4751_, v_a_4752_, v_a_4753_, v_a_4754_, v_a_4755_, v_a_4756_);
if (lean_obj_tag(v___x_4760_) == 0)
{
lean_object* v_a_4761_; lean_object* v___x_4762_; 
v_a_4761_ = lean_ctor_get(v___x_4760_, 0);
lean_inc(v_a_4761_);
lean_dec_ref(v___x_4760_);
v___x_4762_ = l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict(v_c_u2081_4743_, v_a_4761_, v_a_4746_, v_a_4747_, v_a_4748_, v_a_4749_, v_a_4750_, v_a_4751_, v_a_4752_, v_a_4753_, v_a_4754_, v_a_4755_, v_a_4756_);
return v___x_4762_;
}
else
{
lean_object* v_a_4763_; lean_object* v___x_4765_; uint8_t v_isShared_4766_; uint8_t v_isSharedCheck_4770_; 
lean_dec(v_a_4756_);
lean_dec_ref(v_a_4755_);
lean_dec(v_a_4754_);
lean_dec_ref(v_a_4753_);
lean_dec(v_a_4752_);
lean_dec_ref(v_a_4751_);
lean_dec(v_a_4750_);
lean_dec_ref(v_a_4749_);
lean_dec(v_a_4748_);
lean_dec(v_a_4747_);
lean_dec(v_a_4746_);
lean_dec_ref(v_c_u2081_4743_);
v_a_4763_ = lean_ctor_get(v___x_4760_, 0);
v_isSharedCheck_4770_ = !lean_is_exclusive(v___x_4760_);
if (v_isSharedCheck_4770_ == 0)
{
v___x_4765_ = v___x_4760_;
v_isShared_4766_ = v_isSharedCheck_4770_;
goto v_resetjp_4764_;
}
else
{
lean_inc(v_a_4763_);
lean_dec(v___x_4760_);
v___x_4765_ = lean_box(0);
v_isShared_4766_ = v_isSharedCheck_4770_;
goto v_resetjp_4764_;
}
v_resetjp_4764_:
{
lean_object* v___x_4768_; 
if (v_isShared_4766_ == 0)
{
v___x_4768_ = v___x_4765_;
goto v_reusejp_4767_;
}
else
{
lean_object* v_reuseFailAlloc_4769_; 
v_reuseFailAlloc_4769_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4769_, 0, v_a_4763_);
v___x_4768_ = v_reuseFailAlloc_4769_;
goto v_reusejp_4767_;
}
v_reusejp_4767_:
{
return v___x_4768_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___boxed(lean_object* v_c_u2081_4779_, lean_object* v_c_4780_, lean_object* v_a_4781_, lean_object* v_a_4782_, lean_object* v_a_4783_, lean_object* v_a_4784_, lean_object* v_a_4785_, lean_object* v_a_4786_, lean_object* v_a_4787_, lean_object* v_a_4788_, lean_object* v_a_4789_, lean_object* v_a_4790_, lean_object* v_a_4791_, lean_object* v_a_4792_, lean_object* v_a_4793_){
_start:
{
lean_object* v_res_4794_; 
v_res_4794_ = l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict(v_c_u2081_4779_, v_c_4780_, v_a_4781_, v_a_4782_, v_a_4783_, v_a_4784_, v_a_4785_, v_a_4786_, v_a_4787_, v_a_4788_, v_a_4789_, v_a_4790_, v_a_4791_, v_a_4792_);
lean_dec(v_a_4781_);
return v_res_4794_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___lam__0(lean_object* v_a_4795_, lean_object* v_a_4796_, lean_object* v_s_4797_){
_start:
{
lean_object* v_structs_4798_; lean_object* v_typeIdOf_4799_; lean_object* v_exprToStructId_4800_; lean_object* v_exprToStructIdEntries_4801_; lean_object* v_forbiddenNatModules_4802_; lean_object* v_natStructs_4803_; lean_object* v_natTypeIdOf_4804_; lean_object* v_exprToNatStructId_4805_; lean_object* v___x_4806_; uint8_t v___x_4807_; 
v_structs_4798_ = lean_ctor_get(v_s_4797_, 0);
v_typeIdOf_4799_ = lean_ctor_get(v_s_4797_, 1);
v_exprToStructId_4800_ = lean_ctor_get(v_s_4797_, 2);
v_exprToStructIdEntries_4801_ = lean_ctor_get(v_s_4797_, 3);
v_forbiddenNatModules_4802_ = lean_ctor_get(v_s_4797_, 4);
v_natStructs_4803_ = lean_ctor_get(v_s_4797_, 5);
v_natTypeIdOf_4804_ = lean_ctor_get(v_s_4797_, 6);
v_exprToNatStructId_4805_ = lean_ctor_get(v_s_4797_, 7);
v___x_4806_ = lean_array_get_size(v_structs_4798_);
v___x_4807_ = lean_nat_dec_lt(v_a_4795_, v___x_4806_);
if (v___x_4807_ == 0)
{
lean_dec_ref(v_a_4796_);
return v_s_4797_;
}
else
{
lean_object* v___x_4809_; uint8_t v_isShared_4810_; uint8_t v_isSharedCheck_4869_; 
lean_inc_ref(v_exprToNatStructId_4805_);
lean_inc_ref(v_natTypeIdOf_4804_);
lean_inc_ref(v_natStructs_4803_);
lean_inc_ref(v_forbiddenNatModules_4802_);
lean_inc_ref(v_exprToStructIdEntries_4801_);
lean_inc_ref(v_exprToStructId_4800_);
lean_inc_ref(v_typeIdOf_4799_);
lean_inc_ref(v_structs_4798_);
v_isSharedCheck_4869_ = !lean_is_exclusive(v_s_4797_);
if (v_isSharedCheck_4869_ == 0)
{
lean_object* v_unused_4870_; lean_object* v_unused_4871_; lean_object* v_unused_4872_; lean_object* v_unused_4873_; lean_object* v_unused_4874_; lean_object* v_unused_4875_; lean_object* v_unused_4876_; lean_object* v_unused_4877_; 
v_unused_4870_ = lean_ctor_get(v_s_4797_, 7);
lean_dec(v_unused_4870_);
v_unused_4871_ = lean_ctor_get(v_s_4797_, 6);
lean_dec(v_unused_4871_);
v_unused_4872_ = lean_ctor_get(v_s_4797_, 5);
lean_dec(v_unused_4872_);
v_unused_4873_ = lean_ctor_get(v_s_4797_, 4);
lean_dec(v_unused_4873_);
v_unused_4874_ = lean_ctor_get(v_s_4797_, 3);
lean_dec(v_unused_4874_);
v_unused_4875_ = lean_ctor_get(v_s_4797_, 2);
lean_dec(v_unused_4875_);
v_unused_4876_ = lean_ctor_get(v_s_4797_, 1);
lean_dec(v_unused_4876_);
v_unused_4877_ = lean_ctor_get(v_s_4797_, 0);
lean_dec(v_unused_4877_);
v___x_4809_ = v_s_4797_;
v_isShared_4810_ = v_isSharedCheck_4869_;
goto v_resetjp_4808_;
}
else
{
lean_dec(v_s_4797_);
v___x_4809_ = lean_box(0);
v_isShared_4810_ = v_isSharedCheck_4869_;
goto v_resetjp_4808_;
}
v_resetjp_4808_:
{
lean_object* v_v_4811_; lean_object* v_id_4812_; lean_object* v_ringId_x3f_4813_; lean_object* v_type_4814_; lean_object* v_u_4815_; lean_object* v_intModuleInst_4816_; lean_object* v_leInst_x3f_4817_; lean_object* v_ltInst_x3f_4818_; lean_object* v_lawfulOrderLTInst_x3f_4819_; lean_object* v_isPreorderInst_x3f_4820_; lean_object* v_orderedAddInst_x3f_4821_; lean_object* v_isLinearInst_x3f_4822_; lean_object* v_noNatDivInst_x3f_4823_; lean_object* v_ringInst_x3f_4824_; lean_object* v_commRingInst_x3f_4825_; lean_object* v_orderedRingInst_x3f_4826_; lean_object* v_fieldInst_x3f_4827_; lean_object* v_charInst_x3f_4828_; lean_object* v_zero_4829_; lean_object* v_ofNatZero_4830_; lean_object* v_one_x3f_4831_; lean_object* v_leFn_x3f_4832_; lean_object* v_ltFn_x3f_4833_; lean_object* v_addFn_4834_; lean_object* v_zsmulFn_4835_; lean_object* v_nsmulFn_4836_; lean_object* v_zsmulFn_x3f_4837_; lean_object* v_nsmulFn_x3f_4838_; lean_object* v_homomulFn_x3f_4839_; lean_object* v_subFn_4840_; lean_object* v_negFn_4841_; lean_object* v_vars_4842_; lean_object* v_varMap_4843_; lean_object* v_lowers_4844_; lean_object* v_uppers_4845_; lean_object* v_diseqs_4846_; lean_object* v_assignment_4847_; uint8_t v_caseSplits_4848_; lean_object* v_conflict_x3f_4849_; lean_object* v_diseqSplits_4850_; lean_object* v_elimEqs_4851_; lean_object* v_elimStack_4852_; lean_object* v_occurs_4853_; lean_object* v_ignored_4854_; lean_object* v___x_4856_; uint8_t v_isShared_4857_; uint8_t v_isSharedCheck_4868_; 
v_v_4811_ = lean_array_fget(v_structs_4798_, v_a_4795_);
v_id_4812_ = lean_ctor_get(v_v_4811_, 0);
v_ringId_x3f_4813_ = lean_ctor_get(v_v_4811_, 1);
v_type_4814_ = lean_ctor_get(v_v_4811_, 2);
v_u_4815_ = lean_ctor_get(v_v_4811_, 3);
v_intModuleInst_4816_ = lean_ctor_get(v_v_4811_, 4);
v_leInst_x3f_4817_ = lean_ctor_get(v_v_4811_, 5);
v_ltInst_x3f_4818_ = lean_ctor_get(v_v_4811_, 6);
v_lawfulOrderLTInst_x3f_4819_ = lean_ctor_get(v_v_4811_, 7);
v_isPreorderInst_x3f_4820_ = lean_ctor_get(v_v_4811_, 8);
v_orderedAddInst_x3f_4821_ = lean_ctor_get(v_v_4811_, 9);
v_isLinearInst_x3f_4822_ = lean_ctor_get(v_v_4811_, 10);
v_noNatDivInst_x3f_4823_ = lean_ctor_get(v_v_4811_, 11);
v_ringInst_x3f_4824_ = lean_ctor_get(v_v_4811_, 12);
v_commRingInst_x3f_4825_ = lean_ctor_get(v_v_4811_, 13);
v_orderedRingInst_x3f_4826_ = lean_ctor_get(v_v_4811_, 14);
v_fieldInst_x3f_4827_ = lean_ctor_get(v_v_4811_, 15);
v_charInst_x3f_4828_ = lean_ctor_get(v_v_4811_, 16);
v_zero_4829_ = lean_ctor_get(v_v_4811_, 17);
v_ofNatZero_4830_ = lean_ctor_get(v_v_4811_, 18);
v_one_x3f_4831_ = lean_ctor_get(v_v_4811_, 19);
v_leFn_x3f_4832_ = lean_ctor_get(v_v_4811_, 20);
v_ltFn_x3f_4833_ = lean_ctor_get(v_v_4811_, 21);
v_addFn_4834_ = lean_ctor_get(v_v_4811_, 22);
v_zsmulFn_4835_ = lean_ctor_get(v_v_4811_, 23);
v_nsmulFn_4836_ = lean_ctor_get(v_v_4811_, 24);
v_zsmulFn_x3f_4837_ = lean_ctor_get(v_v_4811_, 25);
v_nsmulFn_x3f_4838_ = lean_ctor_get(v_v_4811_, 26);
v_homomulFn_x3f_4839_ = lean_ctor_get(v_v_4811_, 27);
v_subFn_4840_ = lean_ctor_get(v_v_4811_, 28);
v_negFn_4841_ = lean_ctor_get(v_v_4811_, 29);
v_vars_4842_ = lean_ctor_get(v_v_4811_, 30);
v_varMap_4843_ = lean_ctor_get(v_v_4811_, 31);
v_lowers_4844_ = lean_ctor_get(v_v_4811_, 32);
v_uppers_4845_ = lean_ctor_get(v_v_4811_, 33);
v_diseqs_4846_ = lean_ctor_get(v_v_4811_, 34);
v_assignment_4847_ = lean_ctor_get(v_v_4811_, 35);
v_caseSplits_4848_ = lean_ctor_get_uint8(v_v_4811_, sizeof(void*)*42);
v_conflict_x3f_4849_ = lean_ctor_get(v_v_4811_, 36);
v_diseqSplits_4850_ = lean_ctor_get(v_v_4811_, 37);
v_elimEqs_4851_ = lean_ctor_get(v_v_4811_, 38);
v_elimStack_4852_ = lean_ctor_get(v_v_4811_, 39);
v_occurs_4853_ = lean_ctor_get(v_v_4811_, 40);
v_ignored_4854_ = lean_ctor_get(v_v_4811_, 41);
v_isSharedCheck_4868_ = !lean_is_exclusive(v_v_4811_);
if (v_isSharedCheck_4868_ == 0)
{
v___x_4856_ = v_v_4811_;
v_isShared_4857_ = v_isSharedCheck_4868_;
goto v_resetjp_4855_;
}
else
{
lean_inc(v_ignored_4854_);
lean_inc(v_occurs_4853_);
lean_inc(v_elimStack_4852_);
lean_inc(v_elimEqs_4851_);
lean_inc(v_diseqSplits_4850_);
lean_inc(v_conflict_x3f_4849_);
lean_inc(v_assignment_4847_);
lean_inc(v_diseqs_4846_);
lean_inc(v_uppers_4845_);
lean_inc(v_lowers_4844_);
lean_inc(v_varMap_4843_);
lean_inc(v_vars_4842_);
lean_inc(v_negFn_4841_);
lean_inc(v_subFn_4840_);
lean_inc(v_homomulFn_x3f_4839_);
lean_inc(v_nsmulFn_x3f_4838_);
lean_inc(v_zsmulFn_x3f_4837_);
lean_inc(v_nsmulFn_4836_);
lean_inc(v_zsmulFn_4835_);
lean_inc(v_addFn_4834_);
lean_inc(v_ltFn_x3f_4833_);
lean_inc(v_leFn_x3f_4832_);
lean_inc(v_one_x3f_4831_);
lean_inc(v_ofNatZero_4830_);
lean_inc(v_zero_4829_);
lean_inc(v_charInst_x3f_4828_);
lean_inc(v_fieldInst_x3f_4827_);
lean_inc(v_orderedRingInst_x3f_4826_);
lean_inc(v_commRingInst_x3f_4825_);
lean_inc(v_ringInst_x3f_4824_);
lean_inc(v_noNatDivInst_x3f_4823_);
lean_inc(v_isLinearInst_x3f_4822_);
lean_inc(v_orderedAddInst_x3f_4821_);
lean_inc(v_isPreorderInst_x3f_4820_);
lean_inc(v_lawfulOrderLTInst_x3f_4819_);
lean_inc(v_ltInst_x3f_4818_);
lean_inc(v_leInst_x3f_4817_);
lean_inc(v_intModuleInst_4816_);
lean_inc(v_u_4815_);
lean_inc(v_type_4814_);
lean_inc(v_ringId_x3f_4813_);
lean_inc(v_id_4812_);
lean_dec(v_v_4811_);
v___x_4856_ = lean_box(0);
v_isShared_4857_ = v_isSharedCheck_4868_;
goto v_resetjp_4855_;
}
v_resetjp_4855_:
{
lean_object* v___x_4858_; lean_object* v_xs_x27_4859_; lean_object* v___x_4860_; lean_object* v___x_4862_; 
v___x_4858_ = lean_box(0);
v_xs_x27_4859_ = lean_array_fset(v_structs_4798_, v_a_4795_, v___x_4858_);
v___x_4860_ = l_Lean_PersistentArray_push___redArg(v_ignored_4854_, v_a_4796_);
if (v_isShared_4857_ == 0)
{
lean_ctor_set(v___x_4856_, 41, v___x_4860_);
v___x_4862_ = v___x_4856_;
goto v_reusejp_4861_;
}
else
{
lean_object* v_reuseFailAlloc_4867_; 
v_reuseFailAlloc_4867_ = lean_alloc_ctor(0, 42, 1);
lean_ctor_set(v_reuseFailAlloc_4867_, 0, v_id_4812_);
lean_ctor_set(v_reuseFailAlloc_4867_, 1, v_ringId_x3f_4813_);
lean_ctor_set(v_reuseFailAlloc_4867_, 2, v_type_4814_);
lean_ctor_set(v_reuseFailAlloc_4867_, 3, v_u_4815_);
lean_ctor_set(v_reuseFailAlloc_4867_, 4, v_intModuleInst_4816_);
lean_ctor_set(v_reuseFailAlloc_4867_, 5, v_leInst_x3f_4817_);
lean_ctor_set(v_reuseFailAlloc_4867_, 6, v_ltInst_x3f_4818_);
lean_ctor_set(v_reuseFailAlloc_4867_, 7, v_lawfulOrderLTInst_x3f_4819_);
lean_ctor_set(v_reuseFailAlloc_4867_, 8, v_isPreorderInst_x3f_4820_);
lean_ctor_set(v_reuseFailAlloc_4867_, 9, v_orderedAddInst_x3f_4821_);
lean_ctor_set(v_reuseFailAlloc_4867_, 10, v_isLinearInst_x3f_4822_);
lean_ctor_set(v_reuseFailAlloc_4867_, 11, v_noNatDivInst_x3f_4823_);
lean_ctor_set(v_reuseFailAlloc_4867_, 12, v_ringInst_x3f_4824_);
lean_ctor_set(v_reuseFailAlloc_4867_, 13, v_commRingInst_x3f_4825_);
lean_ctor_set(v_reuseFailAlloc_4867_, 14, v_orderedRingInst_x3f_4826_);
lean_ctor_set(v_reuseFailAlloc_4867_, 15, v_fieldInst_x3f_4827_);
lean_ctor_set(v_reuseFailAlloc_4867_, 16, v_charInst_x3f_4828_);
lean_ctor_set(v_reuseFailAlloc_4867_, 17, v_zero_4829_);
lean_ctor_set(v_reuseFailAlloc_4867_, 18, v_ofNatZero_4830_);
lean_ctor_set(v_reuseFailAlloc_4867_, 19, v_one_x3f_4831_);
lean_ctor_set(v_reuseFailAlloc_4867_, 20, v_leFn_x3f_4832_);
lean_ctor_set(v_reuseFailAlloc_4867_, 21, v_ltFn_x3f_4833_);
lean_ctor_set(v_reuseFailAlloc_4867_, 22, v_addFn_4834_);
lean_ctor_set(v_reuseFailAlloc_4867_, 23, v_zsmulFn_4835_);
lean_ctor_set(v_reuseFailAlloc_4867_, 24, v_nsmulFn_4836_);
lean_ctor_set(v_reuseFailAlloc_4867_, 25, v_zsmulFn_x3f_4837_);
lean_ctor_set(v_reuseFailAlloc_4867_, 26, v_nsmulFn_x3f_4838_);
lean_ctor_set(v_reuseFailAlloc_4867_, 27, v_homomulFn_x3f_4839_);
lean_ctor_set(v_reuseFailAlloc_4867_, 28, v_subFn_4840_);
lean_ctor_set(v_reuseFailAlloc_4867_, 29, v_negFn_4841_);
lean_ctor_set(v_reuseFailAlloc_4867_, 30, v_vars_4842_);
lean_ctor_set(v_reuseFailAlloc_4867_, 31, v_varMap_4843_);
lean_ctor_set(v_reuseFailAlloc_4867_, 32, v_lowers_4844_);
lean_ctor_set(v_reuseFailAlloc_4867_, 33, v_uppers_4845_);
lean_ctor_set(v_reuseFailAlloc_4867_, 34, v_diseqs_4846_);
lean_ctor_set(v_reuseFailAlloc_4867_, 35, v_assignment_4847_);
lean_ctor_set(v_reuseFailAlloc_4867_, 36, v_conflict_x3f_4849_);
lean_ctor_set(v_reuseFailAlloc_4867_, 37, v_diseqSplits_4850_);
lean_ctor_set(v_reuseFailAlloc_4867_, 38, v_elimEqs_4851_);
lean_ctor_set(v_reuseFailAlloc_4867_, 39, v_elimStack_4852_);
lean_ctor_set(v_reuseFailAlloc_4867_, 40, v_occurs_4853_);
lean_ctor_set(v_reuseFailAlloc_4867_, 41, v___x_4860_);
lean_ctor_set_uint8(v_reuseFailAlloc_4867_, sizeof(void*)*42, v_caseSplits_4848_);
v___x_4862_ = v_reuseFailAlloc_4867_;
goto v_reusejp_4861_;
}
v_reusejp_4861_:
{
lean_object* v___x_4863_; lean_object* v___x_4865_; 
v___x_4863_ = lean_array_fset(v_xs_x27_4859_, v_a_4795_, v___x_4862_);
if (v_isShared_4810_ == 0)
{
lean_ctor_set(v___x_4809_, 0, v___x_4863_);
v___x_4865_ = v___x_4809_;
goto v_reusejp_4864_;
}
else
{
lean_object* v_reuseFailAlloc_4866_; 
v_reuseFailAlloc_4866_ = lean_alloc_ctor(0, 8, 0);
lean_ctor_set(v_reuseFailAlloc_4866_, 0, v___x_4863_);
lean_ctor_set(v_reuseFailAlloc_4866_, 1, v_typeIdOf_4799_);
lean_ctor_set(v_reuseFailAlloc_4866_, 2, v_exprToStructId_4800_);
lean_ctor_set(v_reuseFailAlloc_4866_, 3, v_exprToStructIdEntries_4801_);
lean_ctor_set(v_reuseFailAlloc_4866_, 4, v_forbiddenNatModules_4802_);
lean_ctor_set(v_reuseFailAlloc_4866_, 5, v_natStructs_4803_);
lean_ctor_set(v_reuseFailAlloc_4866_, 6, v_natTypeIdOf_4804_);
lean_ctor_set(v_reuseFailAlloc_4866_, 7, v_exprToNatStructId_4805_);
v___x_4865_ = v_reuseFailAlloc_4866_;
goto v_reusejp_4864_;
}
v_reusejp_4864_:
{
return v___x_4865_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___lam__0___boxed(lean_object* v_a_4878_, lean_object* v_a_4879_, lean_object* v_s_4880_){
_start:
{
lean_object* v_res_4881_; 
v_res_4881_ = l_Lean_Meta_Grind_Arith_Linear_processVar___lam__0(v_a_4878_, v_a_4879_, v_s_4880_);
lean_dec(v_a_4878_);
return v_res_4881_;
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0(size_t v_sz_4882_, size_t v_i_4883_, lean_object* v_bs_4884_){
_start:
{
uint8_t v___x_4885_; 
v___x_4885_ = lean_usize_dec_lt(v_i_4883_, v_sz_4882_);
if (v___x_4885_ == 0)
{
return v_bs_4884_;
}
else
{
lean_object* v_v_4886_; lean_object* v_fst_4887_; lean_object* v___x_4888_; lean_object* v_bs_x27_4889_; size_t v___x_4890_; size_t v___x_4891_; lean_object* v___x_4892_; 
v_v_4886_ = lean_array_uget_borrowed(v_bs_4884_, v_i_4883_);
v_fst_4887_ = lean_ctor_get(v_v_4886_, 0);
lean_inc(v_fst_4887_);
v___x_4888_ = lean_unsigned_to_nat(0u);
v_bs_x27_4889_ = lean_array_uset(v_bs_4884_, v_i_4883_, v___x_4888_);
v___x_4890_ = ((size_t)1ULL);
v___x_4891_ = lean_usize_add(v_i_4883_, v___x_4890_);
v___x_4892_ = lean_array_uset(v_bs_x27_4889_, v_i_4883_, v_fst_4887_);
v_i_4883_ = v___x_4891_;
v_bs_4884_ = v___x_4892_;
goto _start;
}
}
}
LEAN_EXPORT lean_object* l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0___boxed(lean_object* v_sz_4894_, lean_object* v_i_4895_, lean_object* v_bs_4896_){
_start:
{
size_t v_sz_boxed_4897_; size_t v_i_boxed_4898_; lean_object* v_res_4899_; 
v_sz_boxed_4897_ = lean_unbox_usize(v_sz_4894_);
lean_dec(v_sz_4894_);
v_i_boxed_4898_ = lean_unbox_usize(v_i_4895_);
lean_dec(v_i_4895_);
v_res_4899_ = l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0(v_sz_boxed_4897_, v_i_boxed_4898_, v_bs_4896_);
return v_res_4899_;
}
}
LEAN_EXPORT lean_object* l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__1(lean_object* v_a_4900_, lean_object* v_a_4901_){
_start:
{
if (lean_obj_tag(v_a_4900_) == 0)
{
lean_object* v___x_4902_; 
v___x_4902_ = l_List_reverse___redArg(v_a_4901_);
return v___x_4902_;
}
else
{
lean_object* v_head_4903_; lean_object* v_tail_4904_; lean_object* v___x_4906_; uint8_t v_isShared_4907_; uint8_t v_isSharedCheck_4946_; 
v_head_4903_ = lean_ctor_get(v_a_4900_, 0);
v_tail_4904_ = lean_ctor_get(v_a_4900_, 1);
v_isSharedCheck_4946_ = !lean_is_exclusive(v_a_4900_);
if (v_isSharedCheck_4946_ == 0)
{
v___x_4906_ = v_a_4900_;
v_isShared_4907_ = v_isSharedCheck_4946_;
goto v_resetjp_4905_;
}
else
{
lean_inc(v_tail_4904_);
lean_inc(v_head_4903_);
lean_dec(v_a_4900_);
v___x_4906_ = lean_box(0);
v_isShared_4907_ = v_isSharedCheck_4946_;
goto v_resetjp_4905_;
}
v_resetjp_4905_:
{
lean_object* v___y_4909_; lean_object* v_num_4916_; lean_object* v_den_4917_; lean_object* v___y_4919_; lean_object* v___x_4924_; uint8_t v___x_4925_; 
v_num_4916_ = lean_ctor_get(v_head_4903_, 0);
lean_inc(v_num_4916_);
v_den_4917_ = lean_ctor_get(v_head_4903_, 1);
lean_inc(v_den_4917_);
lean_dec(v_head_4903_);
v___x_4924_ = lean_unsigned_to_nat(1u);
v___x_4925_ = lean_nat_dec_eq(v_den_4917_, v___x_4924_);
if (v___x_4925_ == 0)
{
lean_object* v_intZero_4926_; uint8_t v_isNeg_4927_; 
v_intZero_4926_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_4927_ = lean_int_dec_lt(v_num_4916_, v_intZero_4926_);
if (v_isNeg_4927_ == 0)
{
lean_object* v_a_4928_; lean_object* v___x_4929_; 
v_a_4928_ = lean_nat_abs(v_num_4916_);
lean_dec(v_num_4916_);
v___x_4929_ = l_Nat_reprFast(v_a_4928_);
v___y_4919_ = v___x_4929_;
goto v___jp_4918_;
}
else
{
lean_object* v_abs_4930_; lean_object* v_a_4931_; lean_object* v___x_4932_; lean_object* v___x_4933_; lean_object* v___x_4934_; lean_object* v___x_4935_; 
v_abs_4930_ = lean_nat_abs(v_num_4916_);
lean_dec(v_num_4916_);
v_a_4931_ = lean_nat_sub(v_abs_4930_, v___x_4924_);
lean_dec(v_abs_4930_);
v___x_4932_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_4933_ = lean_nat_add(v_a_4931_, v___x_4924_);
lean_dec(v_a_4931_);
v___x_4934_ = l_Nat_reprFast(v___x_4933_);
v___x_4935_ = lean_string_append(v___x_4932_, v___x_4934_);
lean_dec_ref(v___x_4934_);
v___y_4919_ = v___x_4935_;
goto v___jp_4918_;
}
}
else
{
lean_object* v_intZero_4936_; uint8_t v_isNeg_4937_; 
lean_dec(v_den_4917_);
v_intZero_4936_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_4937_ = lean_int_dec_lt(v_num_4916_, v_intZero_4936_);
if (v_isNeg_4937_ == 0)
{
lean_object* v_a_4938_; lean_object* v___x_4939_; 
v_a_4938_ = lean_nat_abs(v_num_4916_);
lean_dec(v_num_4916_);
v___x_4939_ = l_Nat_reprFast(v_a_4938_);
v___y_4909_ = v___x_4939_;
goto v___jp_4908_;
}
else
{
lean_object* v_abs_4940_; lean_object* v_a_4941_; lean_object* v___x_4942_; lean_object* v___x_4943_; lean_object* v___x_4944_; lean_object* v___x_4945_; 
v_abs_4940_ = lean_nat_abs(v_num_4916_);
lean_dec(v_num_4916_);
v_a_4941_ = lean_nat_sub(v_abs_4940_, v___x_4924_);
lean_dec(v_abs_4940_);
v___x_4942_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_4943_ = lean_nat_add(v_a_4941_, v___x_4924_);
lean_dec(v_a_4941_);
v___x_4944_ = l_Nat_reprFast(v___x_4943_);
v___x_4945_ = lean_string_append(v___x_4942_, v___x_4944_);
lean_dec_ref(v___x_4944_);
v___y_4909_ = v___x_4945_;
goto v___jp_4908_;
}
}
v___jp_4908_:
{
lean_object* v___x_4910_; lean_object* v___x_4911_; lean_object* v___x_4913_; 
v___x_4910_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v___x_4910_, 0, v___y_4909_);
v___x_4911_ = l_Lean_MessageData_ofFormat(v___x_4910_);
if (v_isShared_4907_ == 0)
{
lean_ctor_set(v___x_4906_, 1, v_a_4901_);
lean_ctor_set(v___x_4906_, 0, v___x_4911_);
v___x_4913_ = v___x_4906_;
goto v_reusejp_4912_;
}
else
{
lean_object* v_reuseFailAlloc_4915_; 
v_reuseFailAlloc_4915_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v_reuseFailAlloc_4915_, 0, v___x_4911_);
lean_ctor_set(v_reuseFailAlloc_4915_, 1, v_a_4901_);
v___x_4913_ = v_reuseFailAlloc_4915_;
goto v_reusejp_4912_;
}
v_reusejp_4912_:
{
v_a_4900_ = v_tail_4904_;
v_a_4901_ = v___x_4913_;
goto _start;
}
}
v___jp_4918_:
{
lean_object* v___x_4920_; lean_object* v___x_4921_; lean_object* v___x_4922_; lean_object* v___x_4923_; 
v___x_4920_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_4921_ = lean_string_append(v___y_4919_, v___x_4920_);
v___x_4922_ = l_Nat_reprFast(v_den_4917_);
v___x_4923_ = lean_string_append(v___x_4921_, v___x_4922_);
lean_dec_ref(v___x_4922_);
v___y_4909_ = v___x_4923_;
goto v___jp_4908_;
}
}
}
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1(void){
_start:
{
lean_object* v___x_4948_; lean_object* v___x_4949_; 
v___x_4948_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__0));
v___x_4949_ = l_Lean_stringToMessageData(v___x_4948_);
return v___x_4949_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__3(void){
_start:
{
lean_object* v___x_4955_; lean_object* v___x_4956_; 
v___x_4955_ = lean_unsigned_to_nat(0u);
v___x_4956_ = l_Nat_cast___at___00Lean_Meta_Grind_Arith_Linear_geAvoiding_spec__0(v___x_4955_);
return v___x_4956_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5(void){
_start:
{
lean_object* v___x_4958_; lean_object* v___x_4959_; 
v___x_4958_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__4));
v___x_4959_ = l_Lean_stringToMessageData(v___x_4958_);
return v___x_4959_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__7(void){
_start:
{
lean_object* v___x_4961_; lean_object* v___x_4962_; 
v___x_4961_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__6));
v___x_4962_ = l_Lean_stringToMessageData(v___x_4961_);
return v___x_4962_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__9(void){
_start:
{
lean_object* v___x_4964_; lean_object* v___x_4965_; 
v___x_4964_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__8));
v___x_4965_ = l_Lean_stringToMessageData(v___x_4964_);
return v___x_4965_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__11(void){
_start:
{
lean_object* v___x_4967_; lean_object* v___x_4968_; 
v___x_4967_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__10));
v___x_4968_ = l_Lean_stringToMessageData(v___x_4967_);
return v___x_4968_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__13(void){
_start:
{
lean_object* v___x_4970_; lean_object* v___x_4971_; 
v___x_4970_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__12));
v___x_4971_ = l_Lean_stringToMessageData(v___x_4970_);
return v___x_4971_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar(lean_object* v_x_4972_, lean_object* v_a_4973_, lean_object* v_a_4974_, lean_object* v_a_4975_, lean_object* v_a_4976_, lean_object* v_a_4977_, lean_object* v_a_4978_, lean_object* v_a_4979_, lean_object* v_a_4980_, lean_object* v_a_4981_, lean_object* v_a_4982_, lean_object* v_a_4983_, lean_object* v_a_4984_){
_start:
{
lean_object* v___x_4986_; 
v___x_4986_ = l_Lean_Meta_Grind_Arith_Linear_getBestLower_x3f(v_x_4972_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_4986_) == 0)
{
lean_object* v_a_4987_; lean_object* v___x_4988_; 
v_a_4987_ = lean_ctor_get(v___x_4986_, 0);
lean_inc(v_a_4987_);
lean_dec_ref(v___x_4986_);
v___x_4988_ = l_Lean_Meta_Grind_Arith_Linear_getBestUpper_x3f(v_x_4972_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_4988_) == 0)
{
lean_object* v_a_4989_; lean_object* v___x_4990_; 
v_a_4989_ = lean_ctor_get(v___x_4988_, 0);
lean_inc(v_a_4989_);
lean_dec_ref(v___x_4988_);
v___x_4990_ = l_Lean_Meta_Grind_Arith_Linear_getDiseqValues(v_x_4972_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_4990_) == 0)
{
lean_object* v_a_4991_; lean_object* v___y_4993_; lean_object* v___y_4994_; lean_object* v___y_4995_; lean_object* v___y_4996_; lean_object* v___y_5013_; lean_object* v___y_5014_; lean_object* v___y_5015_; lean_object* v___y_5016_; lean_object* v___y_5017_; 
v_a_4991_ = lean_ctor_get(v___x_4990_, 0);
lean_inc(v_a_4991_);
lean_dec_ref(v___x_4990_);
if (lean_obj_tag(v_a_4987_) == 0)
{
if (lean_obj_tag(v_a_4989_) == 0)
{
lean_object* v___x_5022_; lean_object* v___x_5023_; lean_object* v_a_5024_; lean_object* v___x_5026_; uint8_t v_isShared_5027_; uint8_t v_isSharedCheck_5082_; 
v___x_5022_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2));
v___x_5023_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v___x_5022_, v_a_4983_);
v_a_5024_ = lean_ctor_get(v___x_5023_, 0);
v_isSharedCheck_5082_ = !lean_is_exclusive(v___x_5023_);
if (v_isSharedCheck_5082_ == 0)
{
v___x_5026_ = v___x_5023_;
v_isShared_5027_ = v_isSharedCheck_5082_;
goto v_resetjp_5025_;
}
else
{
lean_inc(v_a_5024_);
lean_dec(v___x_5023_);
v___x_5026_ = lean_box(0);
v_isShared_5027_ = v_isSharedCheck_5082_;
goto v_resetjp_5025_;
}
v_resetjp_5025_:
{
lean_object* v___x_5028_; lean_object* v___x_5029_; uint8_t v___x_5030_; 
v___x_5028_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__3, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__3_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__3);
v___x_5029_ = l_Lean_Meta_Grind_Arith_Linear_geAvoiding(v___x_5028_, v_a_4991_);
v___x_5030_ = lean_unbox(v_a_5024_);
lean_dec(v_a_5024_);
if (v___x_5030_ == 0)
{
lean_object* v___x_5031_; 
lean_del_object(v___x_5026_);
lean_dec(v_a_4991_);
v___x_5031_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v___x_5029_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5031_;
}
else
{
lean_object* v_num_5032_; lean_object* v_den_5033_; lean_object* v___x_5034_; lean_object* v___y_5036_; lean_object* v___y_5055_; lean_object* v___x_5060_; uint8_t v___x_5061_; 
v_num_5032_ = lean_ctor_get(v___x_5029_, 0);
lean_inc(v_num_5032_);
v_den_5033_ = lean_ctor_get(v___x_5029_, 1);
lean_inc(v_den_5033_);
v___x_5034_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5);
v___x_5060_ = lean_unsigned_to_nat(1u);
v___x_5061_ = lean_nat_dec_eq(v_den_5033_, v___x_5060_);
if (v___x_5061_ == 0)
{
lean_object* v_intZero_5062_; uint8_t v_isNeg_5063_; 
v_intZero_5062_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5063_ = lean_int_dec_lt(v_num_5032_, v_intZero_5062_);
if (v_isNeg_5063_ == 0)
{
lean_object* v_a_5064_; lean_object* v___x_5065_; 
v_a_5064_ = lean_nat_abs(v_num_5032_);
lean_dec(v_num_5032_);
v___x_5065_ = l_Nat_reprFast(v_a_5064_);
v___y_5055_ = v___x_5065_;
goto v___jp_5054_;
}
else
{
lean_object* v_abs_5066_; lean_object* v_a_5067_; lean_object* v___x_5068_; lean_object* v___x_5069_; lean_object* v___x_5070_; lean_object* v___x_5071_; 
v_abs_5066_ = lean_nat_abs(v_num_5032_);
lean_dec(v_num_5032_);
v_a_5067_ = lean_nat_sub(v_abs_5066_, v___x_5060_);
lean_dec(v_abs_5066_);
v___x_5068_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5069_ = lean_nat_add(v_a_5067_, v___x_5060_);
lean_dec(v_a_5067_);
v___x_5070_ = l_Nat_reprFast(v___x_5069_);
v___x_5071_ = lean_string_append(v___x_5068_, v___x_5070_);
lean_dec_ref(v___x_5070_);
v___y_5055_ = v___x_5071_;
goto v___jp_5054_;
}
}
else
{
lean_object* v_intZero_5072_; uint8_t v_isNeg_5073_; 
lean_dec(v_den_5033_);
v_intZero_5072_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5073_ = lean_int_dec_lt(v_num_5032_, v_intZero_5072_);
if (v_isNeg_5073_ == 0)
{
lean_object* v_a_5074_; lean_object* v___x_5075_; 
v_a_5074_ = lean_nat_abs(v_num_5032_);
lean_dec(v_num_5032_);
v___x_5075_ = l_Nat_reprFast(v_a_5074_);
v___y_5036_ = v___x_5075_;
goto v___jp_5035_;
}
else
{
lean_object* v_abs_5076_; lean_object* v_a_5077_; lean_object* v___x_5078_; lean_object* v___x_5079_; lean_object* v___x_5080_; lean_object* v___x_5081_; 
v_abs_5076_ = lean_nat_abs(v_num_5032_);
lean_dec(v_num_5032_);
v_a_5077_ = lean_nat_sub(v_abs_5076_, v___x_5060_);
lean_dec(v_abs_5076_);
v___x_5078_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5079_ = lean_nat_add(v_a_5077_, v___x_5060_);
lean_dec(v_a_5077_);
v___x_5080_ = l_Nat_reprFast(v___x_5079_);
v___x_5081_ = lean_string_append(v___x_5078_, v___x_5080_);
lean_dec_ref(v___x_5080_);
v___y_5036_ = v___x_5081_;
goto v___jp_5035_;
}
}
v___jp_5035_:
{
lean_object* v___x_5038_; 
if (v_isShared_5027_ == 0)
{
lean_ctor_set_tag(v___x_5026_, 3);
lean_ctor_set(v___x_5026_, 0, v___y_5036_);
v___x_5038_ = v___x_5026_;
goto v_reusejp_5037_;
}
else
{
lean_object* v_reuseFailAlloc_5053_; 
v_reuseFailAlloc_5053_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5053_, 0, v___y_5036_);
v___x_5038_ = v_reuseFailAlloc_5053_;
goto v_reusejp_5037_;
}
v_reusejp_5037_:
{
lean_object* v___x_5039_; lean_object* v___x_5040_; lean_object* v___x_5041_; lean_object* v___x_5042_; size_t v_sz_5043_; size_t v___x_5044_; lean_object* v___x_5045_; lean_object* v___x_5046_; lean_object* v___x_5047_; lean_object* v___x_5048_; lean_object* v___x_5049_; lean_object* v___x_5050_; lean_object* v___x_5051_; 
v___x_5039_ = l_Lean_MessageData_ofFormat(v___x_5038_);
v___x_5040_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5040_, 0, v___x_5034_);
lean_ctor_set(v___x_5040_, 1, v___x_5039_);
v___x_5041_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1);
v___x_5042_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5042_, 0, v___x_5040_);
lean_ctor_set(v___x_5042_, 1, v___x_5041_);
v_sz_5043_ = lean_array_size(v_a_4991_);
v___x_5044_ = ((size_t)0ULL);
v___x_5045_ = l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0(v_sz_5043_, v___x_5044_, v_a_4991_);
v___x_5046_ = lean_array_to_list(v___x_5045_);
v___x_5047_ = lean_box(0);
v___x_5048_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__1(v___x_5046_, v___x_5047_);
v___x_5049_ = l_Lean_MessageData_ofList(v___x_5048_);
v___x_5050_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5050_, 0, v___x_5042_);
lean_ctor_set(v___x_5050_, 1, v___x_5049_);
v___x_5051_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v___x_5022_, v___x_5050_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_5051_) == 0)
{
lean_object* v___x_5052_; 
lean_dec_ref(v___x_5051_);
v___x_5052_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v___x_5029_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5052_;
}
else
{
lean_dec_ref(v___x_5029_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
return v___x_5051_;
}
}
}
v___jp_5054_:
{
lean_object* v___x_5056_; lean_object* v___x_5057_; lean_object* v___x_5058_; lean_object* v___x_5059_; 
v___x_5056_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5057_ = lean_string_append(v___y_5055_, v___x_5056_);
v___x_5058_ = l_Nat_reprFast(v_den_5033_);
v___x_5059_ = lean_string_append(v___x_5057_, v___x_5058_);
lean_dec_ref(v___x_5058_);
v___y_5036_ = v___x_5059_;
goto v___jp_5035_;
}
}
}
}
else
{
lean_object* v_val_5083_; lean_object* v___x_5085_; uint8_t v_isShared_5086_; uint8_t v_isSharedCheck_5206_; 
v_val_5083_ = lean_ctor_get(v_a_4989_, 0);
v_isSharedCheck_5206_ = !lean_is_exclusive(v_a_4989_);
if (v_isSharedCheck_5206_ == 0)
{
v___x_5085_ = v_a_4989_;
v_isShared_5086_ = v_isSharedCheck_5206_;
goto v_resetjp_5084_;
}
else
{
lean_inc(v_val_5083_);
lean_dec(v_a_4989_);
v___x_5085_ = lean_box(0);
v_isShared_5086_ = v_isSharedCheck_5206_;
goto v_resetjp_5084_;
}
v_resetjp_5084_:
{
lean_object* v_fst_5087_; lean_object* v___x_5089_; uint8_t v_isShared_5090_; uint8_t v_isSharedCheck_5204_; 
v_fst_5087_ = lean_ctor_get(v_val_5083_, 0);
v_isSharedCheck_5204_ = !lean_is_exclusive(v_val_5083_);
if (v_isSharedCheck_5204_ == 0)
{
lean_object* v_unused_5205_; 
v_unused_5205_ = lean_ctor_get(v_val_5083_, 1);
lean_dec(v_unused_5205_);
v___x_5089_ = v_val_5083_;
v_isShared_5090_ = v_isSharedCheck_5204_;
goto v_resetjp_5088_;
}
else
{
lean_inc(v_fst_5087_);
lean_dec(v_val_5083_);
v___x_5089_ = lean_box(0);
v_isShared_5090_ = v_isSharedCheck_5204_;
goto v_resetjp_5088_;
}
v_resetjp_5088_:
{
lean_object* v___x_5091_; lean_object* v___x_5092_; lean_object* v_a_5093_; lean_object* v___x_5095_; uint8_t v_isShared_5096_; uint8_t v_isSharedCheck_5203_; 
v___x_5091_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2));
v___x_5092_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v___x_5091_, v_a_4983_);
v_a_5093_ = lean_ctor_get(v___x_5092_, 0);
v_isSharedCheck_5203_ = !lean_is_exclusive(v___x_5092_);
if (v_isSharedCheck_5203_ == 0)
{
v___x_5095_ = v___x_5092_;
v_isShared_5096_ = v_isSharedCheck_5203_;
goto v_resetjp_5094_;
}
else
{
lean_inc(v_a_5093_);
lean_dec(v___x_5092_);
v___x_5095_ = lean_box(0);
v_isShared_5096_ = v_isSharedCheck_5203_;
goto v_resetjp_5094_;
}
v_resetjp_5094_:
{
lean_object* v___x_5097_; lean_object* v___x_5098_; lean_object* v___x_5099_; lean_object* v___x_5100_; lean_object* v___x_5101_; lean_object* v___x_5102_; lean_object* v___y_5104_; lean_object* v___y_5105_; lean_object* v___y_5126_; lean_object* v___y_5127_; lean_object* v___y_5128_; uint8_t v___x_5133_; 
lean_inc(v_fst_5087_);
v___x_5097_ = l_Rat_floor(v_fst_5087_);
v___x_5098_ = l_Rat_ofInt(v___x_5097_);
v___x_5099_ = lean_unsigned_to_nat(1u);
v___x_5100_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0, &l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0);
v___x_5101_ = l_Rat_sub(v___x_5098_, v___x_5100_);
v___x_5102_ = l_Lean_Meta_Grind_Arith_Linear_geAvoiding(v___x_5101_, v_a_4991_);
v___x_5133_ = lean_unbox(v_a_5093_);
lean_dec(v_a_5093_);
if (v___x_5133_ == 0)
{
lean_object* v___x_5134_; 
lean_del_object(v___x_5095_);
lean_del_object(v___x_5089_);
lean_dec(v_fst_5087_);
lean_del_object(v___x_5085_);
lean_dec(v_a_4991_);
v___x_5134_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v___x_5102_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5134_;
}
else
{
lean_object* v_num_5135_; lean_object* v_den_5136_; lean_object* v___x_5137_; lean_object* v___y_5139_; lean_object* v___y_5177_; uint8_t v___x_5182_; 
v_num_5135_ = lean_ctor_get(v___x_5102_, 0);
lean_inc(v_num_5135_);
v_den_5136_ = lean_ctor_get(v___x_5102_, 1);
lean_inc(v_den_5136_);
v___x_5137_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5);
v___x_5182_ = lean_nat_dec_eq(v_den_5136_, v___x_5099_);
if (v___x_5182_ == 0)
{
lean_object* v_intZero_5183_; uint8_t v_isNeg_5184_; 
v_intZero_5183_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5184_ = lean_int_dec_lt(v_num_5135_, v_intZero_5183_);
if (v_isNeg_5184_ == 0)
{
lean_object* v_a_5185_; lean_object* v___x_5186_; 
v_a_5185_ = lean_nat_abs(v_num_5135_);
lean_dec(v_num_5135_);
v___x_5186_ = l_Nat_reprFast(v_a_5185_);
v___y_5177_ = v___x_5186_;
goto v___jp_5176_;
}
else
{
lean_object* v_abs_5187_; lean_object* v_a_5188_; lean_object* v___x_5189_; lean_object* v___x_5190_; lean_object* v___x_5191_; lean_object* v___x_5192_; 
v_abs_5187_ = lean_nat_abs(v_num_5135_);
lean_dec(v_num_5135_);
v_a_5188_ = lean_nat_sub(v_abs_5187_, v___x_5099_);
lean_dec(v_abs_5187_);
v___x_5189_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5190_ = lean_nat_add(v_a_5188_, v___x_5099_);
lean_dec(v_a_5188_);
v___x_5191_ = l_Nat_reprFast(v___x_5190_);
v___x_5192_ = lean_string_append(v___x_5189_, v___x_5191_);
lean_dec_ref(v___x_5191_);
v___y_5177_ = v___x_5192_;
goto v___jp_5176_;
}
}
else
{
lean_object* v_intZero_5193_; uint8_t v_isNeg_5194_; 
lean_dec(v_den_5136_);
v_intZero_5193_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5194_ = lean_int_dec_lt(v_num_5135_, v_intZero_5193_);
if (v_isNeg_5194_ == 0)
{
lean_object* v_a_5195_; lean_object* v___x_5196_; 
v_a_5195_ = lean_nat_abs(v_num_5135_);
lean_dec(v_num_5135_);
v___x_5196_ = l_Nat_reprFast(v_a_5195_);
v___y_5139_ = v___x_5196_;
goto v___jp_5138_;
}
else
{
lean_object* v_abs_5197_; lean_object* v_a_5198_; lean_object* v___x_5199_; lean_object* v___x_5200_; lean_object* v___x_5201_; lean_object* v___x_5202_; 
v_abs_5197_ = lean_nat_abs(v_num_5135_);
lean_dec(v_num_5135_);
v_a_5198_ = lean_nat_sub(v_abs_5197_, v___x_5099_);
lean_dec(v_abs_5197_);
v___x_5199_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5200_ = lean_nat_add(v_a_5198_, v___x_5099_);
lean_dec(v_a_5198_);
v___x_5201_ = l_Nat_reprFast(v___x_5200_);
v___x_5202_ = lean_string_append(v___x_5199_, v___x_5201_);
lean_dec_ref(v___x_5201_);
v___y_5139_ = v___x_5202_;
goto v___jp_5138_;
}
}
v___jp_5138_:
{
lean_object* v_num_5140_; lean_object* v_den_5141_; lean_object* v___x_5143_; uint8_t v_isShared_5144_; uint8_t v_isSharedCheck_5175_; 
v_num_5140_ = lean_ctor_get(v_fst_5087_, 0);
v_den_5141_ = lean_ctor_get(v_fst_5087_, 1);
v_isSharedCheck_5175_ = !lean_is_exclusive(v_fst_5087_);
if (v_isSharedCheck_5175_ == 0)
{
v___x_5143_ = v_fst_5087_;
v_isShared_5144_ = v_isSharedCheck_5175_;
goto v_resetjp_5142_;
}
else
{
lean_inc(v_den_5141_);
lean_inc(v_num_5140_);
lean_dec(v_fst_5087_);
v___x_5143_ = lean_box(0);
v_isShared_5144_ = v_isSharedCheck_5175_;
goto v_resetjp_5142_;
}
v_resetjp_5142_:
{
lean_object* v___x_5146_; 
if (v_isShared_5086_ == 0)
{
lean_ctor_set_tag(v___x_5085_, 3);
lean_ctor_set(v___x_5085_, 0, v___y_5139_);
v___x_5146_ = v___x_5085_;
goto v_reusejp_5145_;
}
else
{
lean_object* v_reuseFailAlloc_5174_; 
v_reuseFailAlloc_5174_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5174_, 0, v___y_5139_);
v___x_5146_ = v_reuseFailAlloc_5174_;
goto v_reusejp_5145_;
}
v_reusejp_5145_:
{
lean_object* v___x_5147_; lean_object* v___x_5149_; 
v___x_5147_ = l_Lean_MessageData_ofFormat(v___x_5146_);
if (v_isShared_5144_ == 0)
{
lean_ctor_set_tag(v___x_5143_, 7);
lean_ctor_set(v___x_5143_, 1, v___x_5147_);
lean_ctor_set(v___x_5143_, 0, v___x_5137_);
v___x_5149_ = v___x_5143_;
goto v_reusejp_5148_;
}
else
{
lean_object* v_reuseFailAlloc_5173_; 
v_reuseFailAlloc_5173_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5173_, 0, v___x_5137_);
lean_ctor_set(v_reuseFailAlloc_5173_, 1, v___x_5147_);
v___x_5149_ = v_reuseFailAlloc_5173_;
goto v_reusejp_5148_;
}
v_reusejp_5148_:
{
lean_object* v___x_5150_; lean_object* v___x_5151_; uint8_t v___x_5152_; 
v___x_5150_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__7, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__7_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__7);
v___x_5151_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5151_, 0, v___x_5149_);
lean_ctor_set(v___x_5151_, 1, v___x_5150_);
v___x_5152_ = lean_nat_dec_eq(v_den_5141_, v___x_5099_);
if (v___x_5152_ == 0)
{
lean_object* v_intZero_5153_; uint8_t v_isNeg_5154_; 
v_intZero_5153_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5154_ = lean_int_dec_lt(v_num_5140_, v_intZero_5153_);
if (v_isNeg_5154_ == 0)
{
lean_object* v_a_5155_; lean_object* v___x_5156_; 
v_a_5155_ = lean_nat_abs(v_num_5140_);
lean_dec(v_num_5140_);
v___x_5156_ = l_Nat_reprFast(v_a_5155_);
v___y_5126_ = v_den_5141_;
v___y_5127_ = v___x_5151_;
v___y_5128_ = v___x_5156_;
goto v___jp_5125_;
}
else
{
lean_object* v_abs_5157_; lean_object* v_a_5158_; lean_object* v___x_5159_; lean_object* v___x_5160_; lean_object* v___x_5161_; lean_object* v___x_5162_; 
v_abs_5157_ = lean_nat_abs(v_num_5140_);
lean_dec(v_num_5140_);
v_a_5158_ = lean_nat_sub(v_abs_5157_, v___x_5099_);
lean_dec(v_abs_5157_);
v___x_5159_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5160_ = lean_nat_add(v_a_5158_, v___x_5099_);
lean_dec(v_a_5158_);
v___x_5161_ = l_Nat_reprFast(v___x_5160_);
v___x_5162_ = lean_string_append(v___x_5159_, v___x_5161_);
lean_dec_ref(v___x_5161_);
v___y_5126_ = v_den_5141_;
v___y_5127_ = v___x_5151_;
v___y_5128_ = v___x_5162_;
goto v___jp_5125_;
}
}
else
{
lean_object* v_intZero_5163_; uint8_t v_isNeg_5164_; 
lean_dec(v_den_5141_);
v_intZero_5163_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5164_ = lean_int_dec_lt(v_num_5140_, v_intZero_5163_);
if (v_isNeg_5164_ == 0)
{
lean_object* v_a_5165_; lean_object* v___x_5166_; 
v_a_5165_ = lean_nat_abs(v_num_5140_);
lean_dec(v_num_5140_);
v___x_5166_ = l_Nat_reprFast(v_a_5165_);
v___y_5104_ = v___x_5151_;
v___y_5105_ = v___x_5166_;
goto v___jp_5103_;
}
else
{
lean_object* v_abs_5167_; lean_object* v_a_5168_; lean_object* v___x_5169_; lean_object* v___x_5170_; lean_object* v___x_5171_; lean_object* v___x_5172_; 
v_abs_5167_ = lean_nat_abs(v_num_5140_);
lean_dec(v_num_5140_);
v_a_5168_ = lean_nat_sub(v_abs_5167_, v___x_5099_);
lean_dec(v_abs_5167_);
v___x_5169_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5170_ = lean_nat_add(v_a_5168_, v___x_5099_);
lean_dec(v_a_5168_);
v___x_5171_ = l_Nat_reprFast(v___x_5170_);
v___x_5172_ = lean_string_append(v___x_5169_, v___x_5171_);
lean_dec_ref(v___x_5171_);
v___y_5104_ = v___x_5151_;
v___y_5105_ = v___x_5172_;
goto v___jp_5103_;
}
}
}
}
}
}
v___jp_5176_:
{
lean_object* v___x_5178_; lean_object* v___x_5179_; lean_object* v___x_5180_; lean_object* v___x_5181_; 
v___x_5178_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5179_ = lean_string_append(v___y_5177_, v___x_5178_);
v___x_5180_ = l_Nat_reprFast(v_den_5136_);
v___x_5181_ = lean_string_append(v___x_5179_, v___x_5180_);
lean_dec_ref(v___x_5180_);
v___y_5139_ = v___x_5181_;
goto v___jp_5138_;
}
}
v___jp_5103_:
{
lean_object* v___x_5107_; 
if (v_isShared_5096_ == 0)
{
lean_ctor_set_tag(v___x_5095_, 3);
lean_ctor_set(v___x_5095_, 0, v___y_5105_);
v___x_5107_ = v___x_5095_;
goto v_reusejp_5106_;
}
else
{
lean_object* v_reuseFailAlloc_5124_; 
v_reuseFailAlloc_5124_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5124_, 0, v___y_5105_);
v___x_5107_ = v_reuseFailAlloc_5124_;
goto v_reusejp_5106_;
}
v_reusejp_5106_:
{
lean_object* v___x_5108_; lean_object* v___x_5110_; 
v___x_5108_ = l_Lean_MessageData_ofFormat(v___x_5107_);
if (v_isShared_5090_ == 0)
{
lean_ctor_set_tag(v___x_5089_, 7);
lean_ctor_set(v___x_5089_, 1, v___x_5108_);
lean_ctor_set(v___x_5089_, 0, v___y_5104_);
v___x_5110_ = v___x_5089_;
goto v_reusejp_5109_;
}
else
{
lean_object* v_reuseFailAlloc_5123_; 
v_reuseFailAlloc_5123_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5123_, 0, v___y_5104_);
lean_ctor_set(v_reuseFailAlloc_5123_, 1, v___x_5108_);
v___x_5110_ = v_reuseFailAlloc_5123_;
goto v_reusejp_5109_;
}
v_reusejp_5109_:
{
lean_object* v___x_5111_; lean_object* v___x_5112_; size_t v_sz_5113_; size_t v___x_5114_; lean_object* v___x_5115_; lean_object* v___x_5116_; lean_object* v___x_5117_; lean_object* v___x_5118_; lean_object* v___x_5119_; lean_object* v___x_5120_; lean_object* v___x_5121_; 
v___x_5111_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1);
v___x_5112_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5112_, 0, v___x_5110_);
lean_ctor_set(v___x_5112_, 1, v___x_5111_);
v_sz_5113_ = lean_array_size(v_a_4991_);
v___x_5114_ = ((size_t)0ULL);
v___x_5115_ = l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0(v_sz_5113_, v___x_5114_, v_a_4991_);
v___x_5116_ = lean_array_to_list(v___x_5115_);
v___x_5117_ = lean_box(0);
v___x_5118_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__1(v___x_5116_, v___x_5117_);
v___x_5119_ = l_Lean_MessageData_ofList(v___x_5118_);
v___x_5120_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5120_, 0, v___x_5112_);
lean_ctor_set(v___x_5120_, 1, v___x_5119_);
v___x_5121_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v___x_5091_, v___x_5120_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_5121_) == 0)
{
lean_object* v___x_5122_; 
lean_dec_ref(v___x_5121_);
v___x_5122_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v___x_5102_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5122_;
}
else
{
lean_dec_ref(v___x_5102_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
return v___x_5121_;
}
}
}
}
v___jp_5125_:
{
lean_object* v___x_5129_; lean_object* v___x_5130_; lean_object* v___x_5131_; lean_object* v___x_5132_; 
v___x_5129_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5130_ = lean_string_append(v___y_5128_, v___x_5129_);
v___x_5131_ = l_Nat_reprFast(v___y_5126_);
v___x_5132_ = lean_string_append(v___x_5130_, v___x_5131_);
lean_dec_ref(v___x_5131_);
v___y_5104_ = v___y_5127_;
v___y_5105_ = v___x_5132_;
goto v___jp_5103_;
}
}
}
}
}
}
else
{
lean_object* v_val_5207_; lean_object* v___x_5209_; uint8_t v_isShared_5210_; uint8_t v_isSharedCheck_5640_; 
v_val_5207_ = lean_ctor_get(v_a_4987_, 0);
v_isSharedCheck_5640_ = !lean_is_exclusive(v_a_4987_);
if (v_isSharedCheck_5640_ == 0)
{
v___x_5209_ = v_a_4987_;
v_isShared_5210_ = v_isSharedCheck_5640_;
goto v_resetjp_5208_;
}
else
{
lean_inc(v_val_5207_);
lean_dec(v_a_4987_);
v___x_5209_ = lean_box(0);
v_isShared_5210_ = v_isSharedCheck_5640_;
goto v_resetjp_5208_;
}
v_resetjp_5208_:
{
lean_object* v_fst_5211_; lean_object* v_snd_5212_; lean_object* v___x_5214_; uint8_t v_isShared_5215_; uint8_t v_isSharedCheck_5639_; 
v_fst_5211_ = lean_ctor_get(v_val_5207_, 0);
v_snd_5212_ = lean_ctor_get(v_val_5207_, 1);
v_isSharedCheck_5639_ = !lean_is_exclusive(v_val_5207_);
if (v_isSharedCheck_5639_ == 0)
{
v___x_5214_ = v_val_5207_;
v_isShared_5215_ = v_isSharedCheck_5639_;
goto v_resetjp_5213_;
}
else
{
lean_inc(v_snd_5212_);
lean_inc(v_fst_5211_);
lean_dec(v_val_5207_);
v___x_5214_ = lean_box(0);
v_isShared_5215_ = v_isSharedCheck_5639_;
goto v_resetjp_5213_;
}
v_resetjp_5213_:
{
lean_object* v___y_5217_; lean_object* v___y_5218_; lean_object* v___y_5219_; lean_object* v___y_5243_; lean_object* v___y_5244_; lean_object* v___y_5245_; lean_object* v___y_5246_; lean_object* v___y_5252_; lean_object* v___y_5253_; lean_object* v___y_5254_; lean_object* v___y_5274_; lean_object* v___y_5275_; lean_object* v___y_5276_; lean_object* v___y_5277_; 
if (lean_obj_tag(v_a_4989_) == 0)
{
lean_object* v___x_5282_; lean_object* v___x_5283_; lean_object* v_a_5284_; lean_object* v___x_5286_; uint8_t v_isShared_5287_; uint8_t v_isSharedCheck_5390_; 
lean_del_object(v___x_5214_);
lean_dec(v_snd_5212_);
lean_del_object(v___x_5209_);
v___x_5282_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2));
v___x_5283_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v___x_5282_, v_a_4983_);
v_a_5284_ = lean_ctor_get(v___x_5283_, 0);
v_isSharedCheck_5390_ = !lean_is_exclusive(v___x_5283_);
if (v_isSharedCheck_5390_ == 0)
{
v___x_5286_ = v___x_5283_;
v_isShared_5287_ = v_isSharedCheck_5390_;
goto v_resetjp_5285_;
}
else
{
lean_inc(v_a_5284_);
lean_dec(v___x_5283_);
v___x_5286_ = lean_box(0);
v_isShared_5287_ = v_isSharedCheck_5390_;
goto v_resetjp_5285_;
}
v_resetjp_5285_:
{
lean_object* v___x_5288_; lean_object* v___x_5289_; lean_object* v___x_5290_; lean_object* v___x_5291_; lean_object* v___x_5292_; lean_object* v___x_5293_; lean_object* v___y_5295_; lean_object* v___y_5296_; lean_object* v___y_5315_; lean_object* v___y_5316_; lean_object* v___y_5317_; uint8_t v___x_5322_; 
lean_inc(v_fst_5211_);
v___x_5288_ = l_Rat_ceil(v_fst_5211_);
v___x_5289_ = l_Rat_ofInt(v___x_5288_);
v___x_5290_ = lean_unsigned_to_nat(1u);
v___x_5291_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0, &l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_geAvoiding___closed__0);
v___x_5292_ = l_Rat_add(v___x_5289_, v___x_5291_);
v___x_5293_ = l_Lean_Meta_Grind_Arith_Linear_geAvoiding(v___x_5292_, v_a_4991_);
v___x_5322_ = lean_unbox(v_a_5284_);
lean_dec(v_a_5284_);
if (v___x_5322_ == 0)
{
lean_object* v___x_5323_; 
lean_del_object(v___x_5286_);
lean_dec(v_fst_5211_);
lean_dec(v_a_4991_);
v___x_5323_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v___x_5293_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5323_;
}
else
{
lean_object* v_num_5324_; lean_object* v_den_5325_; lean_object* v___x_5326_; lean_object* v___y_5328_; lean_object* v___y_5364_; uint8_t v___x_5369_; 
v_num_5324_ = lean_ctor_get(v___x_5293_, 0);
lean_inc(v_num_5324_);
v_den_5325_ = lean_ctor_get(v___x_5293_, 1);
lean_inc(v_den_5325_);
v___x_5326_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5);
v___x_5369_ = lean_nat_dec_eq(v_den_5325_, v___x_5290_);
if (v___x_5369_ == 0)
{
lean_object* v_intZero_5370_; uint8_t v_isNeg_5371_; 
v_intZero_5370_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5371_ = lean_int_dec_lt(v_num_5324_, v_intZero_5370_);
if (v_isNeg_5371_ == 0)
{
lean_object* v_a_5372_; lean_object* v___x_5373_; 
v_a_5372_ = lean_nat_abs(v_num_5324_);
lean_dec(v_num_5324_);
v___x_5373_ = l_Nat_reprFast(v_a_5372_);
v___y_5364_ = v___x_5373_;
goto v___jp_5363_;
}
else
{
lean_object* v_abs_5374_; lean_object* v_a_5375_; lean_object* v___x_5376_; lean_object* v___x_5377_; lean_object* v___x_5378_; lean_object* v___x_5379_; 
v_abs_5374_ = lean_nat_abs(v_num_5324_);
lean_dec(v_num_5324_);
v_a_5375_ = lean_nat_sub(v_abs_5374_, v___x_5290_);
lean_dec(v_abs_5374_);
v___x_5376_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5377_ = lean_nat_add(v_a_5375_, v___x_5290_);
lean_dec(v_a_5375_);
v___x_5378_ = l_Nat_reprFast(v___x_5377_);
v___x_5379_ = lean_string_append(v___x_5376_, v___x_5378_);
lean_dec_ref(v___x_5378_);
v___y_5364_ = v___x_5379_;
goto v___jp_5363_;
}
}
else
{
lean_object* v_intZero_5380_; uint8_t v_isNeg_5381_; 
lean_dec(v_den_5325_);
v_intZero_5380_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5381_ = lean_int_dec_lt(v_num_5324_, v_intZero_5380_);
if (v_isNeg_5381_ == 0)
{
lean_object* v_a_5382_; lean_object* v___x_5383_; 
v_a_5382_ = lean_nat_abs(v_num_5324_);
lean_dec(v_num_5324_);
v___x_5383_ = l_Nat_reprFast(v_a_5382_);
v___y_5328_ = v___x_5383_;
goto v___jp_5327_;
}
else
{
lean_object* v_abs_5384_; lean_object* v_a_5385_; lean_object* v___x_5386_; lean_object* v___x_5387_; lean_object* v___x_5388_; lean_object* v___x_5389_; 
v_abs_5384_ = lean_nat_abs(v_num_5324_);
lean_dec(v_num_5324_);
v_a_5385_ = lean_nat_sub(v_abs_5384_, v___x_5290_);
lean_dec(v_abs_5384_);
v___x_5386_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5387_ = lean_nat_add(v_a_5385_, v___x_5290_);
lean_dec(v_a_5385_);
v___x_5388_ = l_Nat_reprFast(v___x_5387_);
v___x_5389_ = lean_string_append(v___x_5386_, v___x_5388_);
lean_dec_ref(v___x_5388_);
v___y_5328_ = v___x_5389_;
goto v___jp_5327_;
}
}
v___jp_5327_:
{
lean_object* v_num_5329_; lean_object* v_den_5330_; lean_object* v___x_5332_; uint8_t v_isShared_5333_; uint8_t v_isSharedCheck_5362_; 
v_num_5329_ = lean_ctor_get(v_fst_5211_, 0);
v_den_5330_ = lean_ctor_get(v_fst_5211_, 1);
v_isSharedCheck_5362_ = !lean_is_exclusive(v_fst_5211_);
if (v_isSharedCheck_5362_ == 0)
{
v___x_5332_ = v_fst_5211_;
v_isShared_5333_ = v_isSharedCheck_5362_;
goto v_resetjp_5331_;
}
else
{
lean_inc(v_den_5330_);
lean_inc(v_num_5329_);
lean_dec(v_fst_5211_);
v___x_5332_ = lean_box(0);
v_isShared_5333_ = v_isSharedCheck_5362_;
goto v_resetjp_5331_;
}
v_resetjp_5331_:
{
lean_object* v___x_5334_; lean_object* v___x_5335_; lean_object* v___x_5337_; 
v___x_5334_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v___x_5334_, 0, v___y_5328_);
v___x_5335_ = l_Lean_MessageData_ofFormat(v___x_5334_);
if (v_isShared_5333_ == 0)
{
lean_ctor_set_tag(v___x_5332_, 7);
lean_ctor_set(v___x_5332_, 1, v___x_5335_);
lean_ctor_set(v___x_5332_, 0, v___x_5326_);
v___x_5337_ = v___x_5332_;
goto v_reusejp_5336_;
}
else
{
lean_object* v_reuseFailAlloc_5361_; 
v_reuseFailAlloc_5361_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5361_, 0, v___x_5326_);
lean_ctor_set(v_reuseFailAlloc_5361_, 1, v___x_5335_);
v___x_5337_ = v_reuseFailAlloc_5361_;
goto v_reusejp_5336_;
}
v_reusejp_5336_:
{
lean_object* v___x_5338_; lean_object* v___x_5339_; uint8_t v___x_5340_; 
v___x_5338_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__13, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__13_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__13);
v___x_5339_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5339_, 0, v___x_5337_);
lean_ctor_set(v___x_5339_, 1, v___x_5338_);
v___x_5340_ = lean_nat_dec_eq(v_den_5330_, v___x_5290_);
if (v___x_5340_ == 0)
{
lean_object* v_intZero_5341_; uint8_t v_isNeg_5342_; 
v_intZero_5341_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5342_ = lean_int_dec_lt(v_num_5329_, v_intZero_5341_);
if (v_isNeg_5342_ == 0)
{
lean_object* v_a_5343_; lean_object* v___x_5344_; 
v_a_5343_ = lean_nat_abs(v_num_5329_);
lean_dec(v_num_5329_);
v___x_5344_ = l_Nat_reprFast(v_a_5343_);
v___y_5315_ = v___x_5339_;
v___y_5316_ = v_den_5330_;
v___y_5317_ = v___x_5344_;
goto v___jp_5314_;
}
else
{
lean_object* v_abs_5345_; lean_object* v_a_5346_; lean_object* v___x_5347_; lean_object* v___x_5348_; lean_object* v___x_5349_; lean_object* v___x_5350_; 
v_abs_5345_ = lean_nat_abs(v_num_5329_);
lean_dec(v_num_5329_);
v_a_5346_ = lean_nat_sub(v_abs_5345_, v___x_5290_);
lean_dec(v_abs_5345_);
v___x_5347_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5348_ = lean_nat_add(v_a_5346_, v___x_5290_);
lean_dec(v_a_5346_);
v___x_5349_ = l_Nat_reprFast(v___x_5348_);
v___x_5350_ = lean_string_append(v___x_5347_, v___x_5349_);
lean_dec_ref(v___x_5349_);
v___y_5315_ = v___x_5339_;
v___y_5316_ = v_den_5330_;
v___y_5317_ = v___x_5350_;
goto v___jp_5314_;
}
}
else
{
lean_object* v_intZero_5351_; uint8_t v_isNeg_5352_; 
lean_dec(v_den_5330_);
v_intZero_5351_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5352_ = lean_int_dec_lt(v_num_5329_, v_intZero_5351_);
if (v_isNeg_5352_ == 0)
{
lean_object* v_a_5353_; lean_object* v___x_5354_; 
v_a_5353_ = lean_nat_abs(v_num_5329_);
lean_dec(v_num_5329_);
v___x_5354_ = l_Nat_reprFast(v_a_5353_);
v___y_5295_ = v___x_5339_;
v___y_5296_ = v___x_5354_;
goto v___jp_5294_;
}
else
{
lean_object* v_abs_5355_; lean_object* v_a_5356_; lean_object* v___x_5357_; lean_object* v___x_5358_; lean_object* v___x_5359_; lean_object* v___x_5360_; 
v_abs_5355_ = lean_nat_abs(v_num_5329_);
lean_dec(v_num_5329_);
v_a_5356_ = lean_nat_sub(v_abs_5355_, v___x_5290_);
lean_dec(v_abs_5355_);
v___x_5357_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5358_ = lean_nat_add(v_a_5356_, v___x_5290_);
lean_dec(v_a_5356_);
v___x_5359_ = l_Nat_reprFast(v___x_5358_);
v___x_5360_ = lean_string_append(v___x_5357_, v___x_5359_);
lean_dec_ref(v___x_5359_);
v___y_5295_ = v___x_5339_;
v___y_5296_ = v___x_5360_;
goto v___jp_5294_;
}
}
}
}
}
v___jp_5363_:
{
lean_object* v___x_5365_; lean_object* v___x_5366_; lean_object* v___x_5367_; lean_object* v___x_5368_; 
v___x_5365_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5366_ = lean_string_append(v___y_5364_, v___x_5365_);
v___x_5367_ = l_Nat_reprFast(v_den_5325_);
v___x_5368_ = lean_string_append(v___x_5366_, v___x_5367_);
lean_dec_ref(v___x_5367_);
v___y_5328_ = v___x_5368_;
goto v___jp_5327_;
}
}
v___jp_5294_:
{
lean_object* v___x_5298_; 
if (v_isShared_5287_ == 0)
{
lean_ctor_set_tag(v___x_5286_, 3);
lean_ctor_set(v___x_5286_, 0, v___y_5296_);
v___x_5298_ = v___x_5286_;
goto v_reusejp_5297_;
}
else
{
lean_object* v_reuseFailAlloc_5313_; 
v_reuseFailAlloc_5313_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5313_, 0, v___y_5296_);
v___x_5298_ = v_reuseFailAlloc_5313_;
goto v_reusejp_5297_;
}
v_reusejp_5297_:
{
lean_object* v___x_5299_; lean_object* v___x_5300_; lean_object* v___x_5301_; lean_object* v___x_5302_; size_t v_sz_5303_; size_t v___x_5304_; lean_object* v___x_5305_; lean_object* v___x_5306_; lean_object* v___x_5307_; lean_object* v___x_5308_; lean_object* v___x_5309_; lean_object* v___x_5310_; lean_object* v___x_5311_; 
v___x_5299_ = l_Lean_MessageData_ofFormat(v___x_5298_);
v___x_5300_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5300_, 0, v___y_5295_);
lean_ctor_set(v___x_5300_, 1, v___x_5299_);
v___x_5301_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1);
v___x_5302_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5302_, 0, v___x_5300_);
lean_ctor_set(v___x_5302_, 1, v___x_5301_);
v_sz_5303_ = lean_array_size(v_a_4991_);
v___x_5304_ = ((size_t)0ULL);
v___x_5305_ = l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0(v_sz_5303_, v___x_5304_, v_a_4991_);
v___x_5306_ = lean_array_to_list(v___x_5305_);
v___x_5307_ = lean_box(0);
v___x_5308_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__1(v___x_5306_, v___x_5307_);
v___x_5309_ = l_Lean_MessageData_ofList(v___x_5308_);
v___x_5310_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5310_, 0, v___x_5302_);
lean_ctor_set(v___x_5310_, 1, v___x_5309_);
v___x_5311_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v___x_5282_, v___x_5310_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_5311_) == 0)
{
lean_object* v___x_5312_; 
lean_dec_ref(v___x_5311_);
v___x_5312_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v___x_5293_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5312_;
}
else
{
lean_dec_ref(v___x_5293_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
return v___x_5311_;
}
}
}
v___jp_5314_:
{
lean_object* v___x_5318_; lean_object* v___x_5319_; lean_object* v___x_5320_; lean_object* v___x_5321_; 
v___x_5318_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5319_ = lean_string_append(v___y_5317_, v___x_5318_);
v___x_5320_ = l_Nat_reprFast(v___y_5316_);
v___x_5321_ = lean_string_append(v___x_5319_, v___x_5320_);
lean_dec_ref(v___x_5320_);
v___y_5295_ = v___y_5315_;
v___y_5296_ = v___x_5321_;
goto v___jp_5294_;
}
}
}
else
{
lean_object* v_val_5391_; lean_object* v___x_5393_; uint8_t v_isShared_5394_; uint8_t v_isSharedCheck_5638_; 
v_val_5391_ = lean_ctor_get(v_a_4989_, 0);
v_isSharedCheck_5638_ = !lean_is_exclusive(v_a_4989_);
if (v_isSharedCheck_5638_ == 0)
{
v___x_5393_ = v_a_4989_;
v_isShared_5394_ = v_isSharedCheck_5638_;
goto v_resetjp_5392_;
}
else
{
lean_inc(v_val_5391_);
lean_dec(v_a_4989_);
v___x_5393_ = lean_box(0);
v_isShared_5394_ = v_isSharedCheck_5638_;
goto v_resetjp_5392_;
}
v_resetjp_5392_:
{
lean_object* v_fst_5395_; lean_object* v_snd_5396_; lean_object* v___x_5398_; uint8_t v_isShared_5399_; uint8_t v_isSharedCheck_5637_; 
v_fst_5395_ = lean_ctor_get(v_val_5391_, 0);
v_snd_5396_ = lean_ctor_get(v_val_5391_, 1);
v_isSharedCheck_5637_ = !lean_is_exclusive(v_val_5391_);
if (v_isSharedCheck_5637_ == 0)
{
v___x_5398_ = v_val_5391_;
v_isShared_5399_ = v_isSharedCheck_5637_;
goto v_resetjp_5397_;
}
else
{
lean_inc(v_snd_5396_);
lean_inc(v_fst_5395_);
lean_dec(v_val_5391_);
v___x_5398_ = lean_box(0);
v_isShared_5399_ = v_isSharedCheck_5637_;
goto v_resetjp_5397_;
}
v_resetjp_5397_:
{
lean_object* v___y_5401_; lean_object* v___y_5402_; lean_object* v___y_5403_; lean_object* v___y_5404_; lean_object* v___y_5445_; lean_object* v___y_5446_; lean_object* v___y_5447_; lean_object* v___y_5448_; lean_object* v___y_5449_; lean_object* v___y_5455_; lean_object* v___y_5456_; lean_object* v___y_5457_; lean_object* v___y_5458_; lean_object* v___y_5495_; lean_object* v___y_5496_; lean_object* v___y_5497_; lean_object* v___y_5498_; lean_object* v___y_5499_; lean_object* v___y_5505_; uint8_t v___y_5537_; uint8_t v___x_5632_; 
lean_inc(v_fst_5211_);
lean_inc(v_fst_5395_);
v___x_5632_ = l_Rat_blt(v_fst_5395_, v_fst_5211_);
if (v___x_5632_ == 0)
{
uint8_t v___x_5633_; 
v___x_5633_ = l_instDecidableEqRat_decEq(v_fst_5211_, v_fst_5395_);
if (v___x_5633_ == 0)
{
v___y_5537_ = v___x_5633_;
goto v___jp_5536_;
}
else
{
uint8_t v_strict_5634_; 
v_strict_5634_ = lean_ctor_get_uint8(v_snd_5212_, sizeof(void*)*2);
if (v_strict_5634_ == 0)
{
uint8_t v_strict_5635_; 
v_strict_5635_ = lean_ctor_get_uint8(v_snd_5396_, sizeof(void*)*2);
v___y_5537_ = v_strict_5635_;
goto v___jp_5536_;
}
else
{
lean_object* v___x_5636_; 
lean_del_object(v___x_5398_);
lean_dec(v_fst_5395_);
lean_del_object(v___x_5393_);
lean_del_object(v___x_5214_);
lean_dec(v_fst_5211_);
lean_del_object(v___x_5209_);
lean_dec(v_a_4991_);
v___x_5636_ = l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict(v_snd_5212_, v_snd_5396_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
return v___x_5636_;
}
}
}
else
{
v___y_5537_ = v___x_5632_;
goto v___jp_5536_;
}
v___jp_5400_:
{
lean_object* v_num_5405_; lean_object* v_den_5406_; lean_object* v___x_5408_; uint8_t v_isShared_5409_; uint8_t v_isSharedCheck_5443_; 
v_num_5405_ = lean_ctor_get(v_fst_5395_, 0);
v_den_5406_ = lean_ctor_get(v_fst_5395_, 1);
v_isSharedCheck_5443_ = !lean_is_exclusive(v_fst_5395_);
if (v_isSharedCheck_5443_ == 0)
{
v___x_5408_ = v_fst_5395_;
v_isShared_5409_ = v_isSharedCheck_5443_;
goto v_resetjp_5407_;
}
else
{
lean_inc(v_den_5406_);
lean_inc(v_num_5405_);
lean_dec(v_fst_5395_);
v___x_5408_ = lean_box(0);
v_isShared_5409_ = v_isSharedCheck_5443_;
goto v_resetjp_5407_;
}
v_resetjp_5407_:
{
lean_object* v___x_5411_; 
if (v_isShared_5394_ == 0)
{
lean_ctor_set_tag(v___x_5393_, 3);
lean_ctor_set(v___x_5393_, 0, v___y_5404_);
v___x_5411_ = v___x_5393_;
goto v_reusejp_5410_;
}
else
{
lean_object* v_reuseFailAlloc_5442_; 
v_reuseFailAlloc_5442_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5442_, 0, v___y_5404_);
v___x_5411_ = v_reuseFailAlloc_5442_;
goto v_reusejp_5410_;
}
v_reusejp_5410_:
{
lean_object* v___x_5412_; lean_object* v___x_5414_; 
v___x_5412_ = l_Lean_MessageData_ofFormat(v___x_5411_);
if (v_isShared_5409_ == 0)
{
lean_ctor_set_tag(v___x_5408_, 7);
lean_ctor_set(v___x_5408_, 1, v___x_5412_);
lean_ctor_set(v___x_5408_, 0, v___y_5403_);
v___x_5414_ = v___x_5408_;
goto v_reusejp_5413_;
}
else
{
lean_object* v_reuseFailAlloc_5441_; 
v_reuseFailAlloc_5441_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5441_, 0, v___y_5403_);
lean_ctor_set(v_reuseFailAlloc_5441_, 1, v___x_5412_);
v___x_5414_ = v_reuseFailAlloc_5441_;
goto v_reusejp_5413_;
}
v_reusejp_5413_:
{
lean_object* v___x_5415_; lean_object* v___x_5417_; 
v___x_5415_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__7, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__7_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__7);
if (v_isShared_5399_ == 0)
{
lean_ctor_set_tag(v___x_5398_, 7);
lean_ctor_set(v___x_5398_, 1, v___x_5415_);
lean_ctor_set(v___x_5398_, 0, v___x_5414_);
v___x_5417_ = v___x_5398_;
goto v_reusejp_5416_;
}
else
{
lean_object* v_reuseFailAlloc_5440_; 
v_reuseFailAlloc_5440_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5440_, 0, v___x_5414_);
lean_ctor_set(v_reuseFailAlloc_5440_, 1, v___x_5415_);
v___x_5417_ = v_reuseFailAlloc_5440_;
goto v_reusejp_5416_;
}
v_reusejp_5416_:
{
lean_object* v___x_5418_; uint8_t v___x_5419_; 
v___x_5418_ = lean_unsigned_to_nat(1u);
v___x_5419_ = lean_nat_dec_eq(v_den_5406_, v___x_5418_);
if (v___x_5419_ == 0)
{
lean_object* v_intZero_5420_; uint8_t v_isNeg_5421_; 
v_intZero_5420_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5421_ = lean_int_dec_lt(v_num_5405_, v_intZero_5420_);
if (v_isNeg_5421_ == 0)
{
lean_object* v_a_5422_; lean_object* v___x_5423_; 
v_a_5422_ = lean_nat_abs(v_num_5405_);
lean_dec(v_num_5405_);
v___x_5423_ = l_Nat_reprFast(v_a_5422_);
v___y_5013_ = v___y_5401_;
v___y_5014_ = v___y_5402_;
v___y_5015_ = v___x_5417_;
v___y_5016_ = v_den_5406_;
v___y_5017_ = v___x_5423_;
goto v___jp_5012_;
}
else
{
lean_object* v_abs_5424_; lean_object* v_a_5425_; lean_object* v___x_5426_; lean_object* v___x_5427_; lean_object* v___x_5428_; lean_object* v___x_5429_; 
v_abs_5424_ = lean_nat_abs(v_num_5405_);
lean_dec(v_num_5405_);
v_a_5425_ = lean_nat_sub(v_abs_5424_, v___x_5418_);
lean_dec(v_abs_5424_);
v___x_5426_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5427_ = lean_nat_add(v_a_5425_, v___x_5418_);
lean_dec(v_a_5425_);
v___x_5428_ = l_Nat_reprFast(v___x_5427_);
v___x_5429_ = lean_string_append(v___x_5426_, v___x_5428_);
lean_dec_ref(v___x_5428_);
v___y_5013_ = v___y_5401_;
v___y_5014_ = v___y_5402_;
v___y_5015_ = v___x_5417_;
v___y_5016_ = v_den_5406_;
v___y_5017_ = v___x_5429_;
goto v___jp_5012_;
}
}
else
{
lean_object* v_intZero_5430_; uint8_t v_isNeg_5431_; 
lean_dec(v_den_5406_);
v_intZero_5430_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5431_ = lean_int_dec_lt(v_num_5405_, v_intZero_5430_);
if (v_isNeg_5431_ == 0)
{
lean_object* v_a_5432_; lean_object* v___x_5433_; 
v_a_5432_ = lean_nat_abs(v_num_5405_);
lean_dec(v_num_5405_);
v___x_5433_ = l_Nat_reprFast(v_a_5432_);
v___y_4993_ = v___y_5402_;
v___y_4994_ = v___y_5401_;
v___y_4995_ = v___x_5417_;
v___y_4996_ = v___x_5433_;
goto v___jp_4992_;
}
else
{
lean_object* v_abs_5434_; lean_object* v_a_5435_; lean_object* v___x_5436_; lean_object* v___x_5437_; lean_object* v___x_5438_; lean_object* v___x_5439_; 
v_abs_5434_ = lean_nat_abs(v_num_5405_);
lean_dec(v_num_5405_);
v_a_5435_ = lean_nat_sub(v_abs_5434_, v___x_5418_);
lean_dec(v_abs_5434_);
v___x_5436_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5437_ = lean_nat_add(v_a_5435_, v___x_5418_);
lean_dec(v_a_5435_);
v___x_5438_ = l_Nat_reprFast(v___x_5437_);
v___x_5439_ = lean_string_append(v___x_5436_, v___x_5438_);
lean_dec_ref(v___x_5438_);
v___y_4993_ = v___y_5402_;
v___y_4994_ = v___y_5401_;
v___y_4995_ = v___x_5417_;
v___y_4996_ = v___x_5439_;
goto v___jp_4992_;
}
}
}
}
}
}
}
v___jp_5444_:
{
lean_object* v___x_5450_; lean_object* v___x_5451_; lean_object* v___x_5452_; lean_object* v___x_5453_; 
v___x_5450_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5451_ = lean_string_append(v___y_5449_, v___x_5450_);
v___x_5452_ = l_Nat_reprFast(v___y_5447_);
v___x_5453_ = lean_string_append(v___x_5451_, v___x_5452_);
lean_dec_ref(v___x_5452_);
v___y_5401_ = v___y_5446_;
v___y_5402_ = v___y_5445_;
v___y_5403_ = v___y_5448_;
v___y_5404_ = v___x_5453_;
goto v___jp_5400_;
}
v___jp_5454_:
{
lean_object* v_num_5459_; lean_object* v_den_5460_; lean_object* v___x_5462_; uint8_t v_isShared_5463_; uint8_t v_isSharedCheck_5493_; 
v_num_5459_ = lean_ctor_get(v_fst_5211_, 0);
v_den_5460_ = lean_ctor_get(v_fst_5211_, 1);
v_isSharedCheck_5493_ = !lean_is_exclusive(v_fst_5211_);
if (v_isSharedCheck_5493_ == 0)
{
v___x_5462_ = v_fst_5211_;
v_isShared_5463_ = v_isSharedCheck_5493_;
goto v_resetjp_5461_;
}
else
{
lean_inc(v_den_5460_);
lean_inc(v_num_5459_);
lean_dec(v_fst_5211_);
v___x_5462_ = lean_box(0);
v_isShared_5463_ = v_isSharedCheck_5493_;
goto v_resetjp_5461_;
}
v_resetjp_5461_:
{
lean_object* v___x_5464_; lean_object* v___x_5465_; lean_object* v___x_5467_; 
v___x_5464_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v___x_5464_, 0, v___y_5458_);
v___x_5465_ = l_Lean_MessageData_ofFormat(v___x_5464_);
if (v_isShared_5463_ == 0)
{
lean_ctor_set_tag(v___x_5462_, 7);
lean_ctor_set(v___x_5462_, 1, v___x_5465_);
lean_ctor_set(v___x_5462_, 0, v___y_5457_);
v___x_5467_ = v___x_5462_;
goto v_reusejp_5466_;
}
else
{
lean_object* v_reuseFailAlloc_5492_; 
v_reuseFailAlloc_5492_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5492_, 0, v___y_5457_);
lean_ctor_set(v_reuseFailAlloc_5492_, 1, v___x_5465_);
v___x_5467_ = v_reuseFailAlloc_5492_;
goto v_reusejp_5466_;
}
v_reusejp_5466_:
{
lean_object* v___x_5468_; lean_object* v___x_5469_; lean_object* v___x_5470_; uint8_t v___x_5471_; 
v___x_5468_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__13, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__13_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__13);
v___x_5469_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5469_, 0, v___x_5467_);
lean_ctor_set(v___x_5469_, 1, v___x_5468_);
v___x_5470_ = lean_unsigned_to_nat(1u);
v___x_5471_ = lean_nat_dec_eq(v_den_5460_, v___x_5470_);
if (v___x_5471_ == 0)
{
lean_object* v_intZero_5472_; uint8_t v_isNeg_5473_; 
v_intZero_5472_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5473_ = lean_int_dec_lt(v_num_5459_, v_intZero_5472_);
if (v_isNeg_5473_ == 0)
{
lean_object* v_a_5474_; lean_object* v___x_5475_; 
v_a_5474_ = lean_nat_abs(v_num_5459_);
lean_dec(v_num_5459_);
v___x_5475_ = l_Nat_reprFast(v_a_5474_);
v___y_5445_ = v___y_5455_;
v___y_5446_ = v___y_5456_;
v___y_5447_ = v_den_5460_;
v___y_5448_ = v___x_5469_;
v___y_5449_ = v___x_5475_;
goto v___jp_5444_;
}
else
{
lean_object* v_abs_5476_; lean_object* v_a_5477_; lean_object* v___x_5478_; lean_object* v___x_5479_; lean_object* v___x_5480_; lean_object* v___x_5481_; 
v_abs_5476_ = lean_nat_abs(v_num_5459_);
lean_dec(v_num_5459_);
v_a_5477_ = lean_nat_sub(v_abs_5476_, v___x_5470_);
lean_dec(v_abs_5476_);
v___x_5478_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5479_ = lean_nat_add(v_a_5477_, v___x_5470_);
lean_dec(v_a_5477_);
v___x_5480_ = l_Nat_reprFast(v___x_5479_);
v___x_5481_ = lean_string_append(v___x_5478_, v___x_5480_);
lean_dec_ref(v___x_5480_);
v___y_5445_ = v___y_5455_;
v___y_5446_ = v___y_5456_;
v___y_5447_ = v_den_5460_;
v___y_5448_ = v___x_5469_;
v___y_5449_ = v___x_5481_;
goto v___jp_5444_;
}
}
else
{
lean_object* v_intZero_5482_; uint8_t v_isNeg_5483_; 
lean_dec(v_den_5460_);
v_intZero_5482_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5483_ = lean_int_dec_lt(v_num_5459_, v_intZero_5482_);
if (v_isNeg_5483_ == 0)
{
lean_object* v_a_5484_; lean_object* v___x_5485_; 
v_a_5484_ = lean_nat_abs(v_num_5459_);
lean_dec(v_num_5459_);
v___x_5485_ = l_Nat_reprFast(v_a_5484_);
v___y_5401_ = v___y_5456_;
v___y_5402_ = v___y_5455_;
v___y_5403_ = v___x_5469_;
v___y_5404_ = v___x_5485_;
goto v___jp_5400_;
}
else
{
lean_object* v_abs_5486_; lean_object* v_a_5487_; lean_object* v___x_5488_; lean_object* v___x_5489_; lean_object* v___x_5490_; lean_object* v___x_5491_; 
v_abs_5486_ = lean_nat_abs(v_num_5459_);
lean_dec(v_num_5459_);
v_a_5487_ = lean_nat_sub(v_abs_5486_, v___x_5470_);
lean_dec(v_abs_5486_);
v___x_5488_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5489_ = lean_nat_add(v_a_5487_, v___x_5470_);
lean_dec(v_a_5487_);
v___x_5490_ = l_Nat_reprFast(v___x_5489_);
v___x_5491_ = lean_string_append(v___x_5488_, v___x_5490_);
lean_dec_ref(v___x_5490_);
v___y_5401_ = v___y_5456_;
v___y_5402_ = v___y_5455_;
v___y_5403_ = v___x_5469_;
v___y_5404_ = v___x_5491_;
goto v___jp_5400_;
}
}
}
}
}
v___jp_5494_:
{
lean_object* v___x_5500_; lean_object* v___x_5501_; lean_object* v___x_5502_; lean_object* v___x_5503_; 
v___x_5500_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5501_ = lean_string_append(v___y_5499_, v___x_5500_);
v___x_5502_ = l_Nat_reprFast(v___y_5497_);
v___x_5503_ = lean_string_append(v___x_5501_, v___x_5502_);
lean_dec_ref(v___x_5502_);
v___y_5455_ = v___y_5496_;
v___y_5456_ = v___y_5495_;
v___y_5457_ = v___y_5498_;
v___y_5458_ = v___x_5503_;
goto v___jp_5454_;
}
v___jp_5504_:
{
lean_object* v___x_5506_; lean_object* v___x_5507_; lean_object* v_a_5508_; uint8_t v___x_5509_; 
v___x_5506_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2));
v___x_5507_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v___x_5506_, v_a_4983_);
v_a_5508_ = lean_ctor_get(v___x_5507_, 0);
lean_inc(v_a_5508_);
lean_dec_ref(v___x_5507_);
v___x_5509_ = lean_unbox(v_a_5508_);
lean_dec(v_a_5508_);
if (v___x_5509_ == 0)
{
lean_object* v___x_5510_; 
lean_del_object(v___x_5398_);
lean_dec(v_fst_5395_);
lean_del_object(v___x_5393_);
lean_dec(v_fst_5211_);
lean_dec(v_a_4991_);
v___x_5510_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v___y_5505_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5510_;
}
else
{
lean_object* v_num_5511_; lean_object* v_den_5512_; lean_object* v___x_5513_; lean_object* v___x_5514_; uint8_t v___x_5515_; 
v_num_5511_ = lean_ctor_get(v___y_5505_, 0);
v_den_5512_ = lean_ctor_get(v___y_5505_, 1);
v___x_5513_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5);
v___x_5514_ = lean_unsigned_to_nat(1u);
v___x_5515_ = lean_nat_dec_eq(v_den_5512_, v___x_5514_);
if (v___x_5515_ == 0)
{
lean_object* v_intZero_5516_; uint8_t v_isNeg_5517_; 
lean_inc(v_den_5512_);
v_intZero_5516_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5517_ = lean_int_dec_lt(v_num_5511_, v_intZero_5516_);
if (v_isNeg_5517_ == 0)
{
lean_object* v_a_5518_; lean_object* v___x_5519_; 
v_a_5518_ = lean_nat_abs(v_num_5511_);
v___x_5519_ = l_Nat_reprFast(v_a_5518_);
v___y_5495_ = v___x_5506_;
v___y_5496_ = v___y_5505_;
v___y_5497_ = v_den_5512_;
v___y_5498_ = v___x_5513_;
v___y_5499_ = v___x_5519_;
goto v___jp_5494_;
}
else
{
lean_object* v_abs_5520_; lean_object* v_a_5521_; lean_object* v___x_5522_; lean_object* v___x_5523_; lean_object* v___x_5524_; lean_object* v___x_5525_; 
v_abs_5520_ = lean_nat_abs(v_num_5511_);
v_a_5521_ = lean_nat_sub(v_abs_5520_, v___x_5514_);
lean_dec(v_abs_5520_);
v___x_5522_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5523_ = lean_nat_add(v_a_5521_, v___x_5514_);
lean_dec(v_a_5521_);
v___x_5524_ = l_Nat_reprFast(v___x_5523_);
v___x_5525_ = lean_string_append(v___x_5522_, v___x_5524_);
lean_dec_ref(v___x_5524_);
v___y_5495_ = v___x_5506_;
v___y_5496_ = v___y_5505_;
v___y_5497_ = v_den_5512_;
v___y_5498_ = v___x_5513_;
v___y_5499_ = v___x_5525_;
goto v___jp_5494_;
}
}
else
{
lean_object* v_intZero_5526_; uint8_t v_isNeg_5527_; 
v_intZero_5526_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5527_ = lean_int_dec_lt(v_num_5511_, v_intZero_5526_);
if (v_isNeg_5527_ == 0)
{
lean_object* v_a_5528_; lean_object* v___x_5529_; 
v_a_5528_ = lean_nat_abs(v_num_5511_);
v___x_5529_ = l_Nat_reprFast(v_a_5528_);
v___y_5455_ = v___y_5505_;
v___y_5456_ = v___x_5506_;
v___y_5457_ = v___x_5513_;
v___y_5458_ = v___x_5529_;
goto v___jp_5454_;
}
else
{
lean_object* v_abs_5530_; lean_object* v_a_5531_; lean_object* v___x_5532_; lean_object* v___x_5533_; lean_object* v___x_5534_; lean_object* v___x_5535_; 
v_abs_5530_ = lean_nat_abs(v_num_5511_);
v_a_5531_ = lean_nat_sub(v_abs_5530_, v___x_5514_);
lean_dec(v_abs_5530_);
v___x_5532_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5533_ = lean_nat_add(v_a_5531_, v___x_5514_);
lean_dec(v_a_5531_);
v___x_5534_ = l_Nat_reprFast(v___x_5533_);
v___x_5535_ = lean_string_append(v___x_5532_, v___x_5534_);
lean_dec_ref(v___x_5534_);
v___y_5455_ = v___y_5505_;
v___y_5456_ = v___x_5506_;
v___y_5457_ = v___x_5513_;
v___y_5458_ = v___x_5535_;
goto v___jp_5454_;
}
}
}
}
v___jp_5536_:
{
if (v___y_5537_ == 0)
{
uint8_t v___x_5538_; 
v___x_5538_ = l_instDecidableEqRat_decEq(v_fst_5211_, v_fst_5395_);
if (v___x_5538_ == 0)
{
uint8_t v_strict_5539_; uint8_t v_strict_5540_; lean_object* v___x_5541_; 
lean_del_object(v___x_5214_);
lean_del_object(v___x_5209_);
v_strict_5539_ = lean_ctor_get_uint8(v_snd_5212_, sizeof(void*)*2);
lean_dec(v_snd_5212_);
v_strict_5540_ = lean_ctor_get_uint8(v_snd_5396_, sizeof(void*)*2);
lean_dec(v_snd_5396_);
lean_inc(v_fst_5395_);
lean_inc(v_fst_5211_);
v___x_5541_ = l_Lean_Meta_Grind_Arith_Linear_findInt_x3f(v_fst_5211_, v_strict_5539_, v_fst_5395_, v_strict_5540_, v_a_4991_);
if (lean_obj_tag(v___x_5541_) == 1)
{
lean_object* v_val_5542_; 
v_val_5542_ = lean_ctor_get(v___x_5541_, 0);
lean_inc(v_val_5542_);
lean_dec_ref(v___x_5541_);
v___y_5505_ = v_val_5542_;
goto v___jp_5504_;
}
else
{
lean_object* v___x_5543_; 
lean_dec(v___x_5541_);
lean_inc(v_fst_5395_);
lean_inc(v_fst_5211_);
v___x_5543_ = l_Lean_Meta_Grind_Arith_Linear_findRat(v_fst_5211_, v_fst_5395_, v_a_4991_);
v___y_5505_ = v___x_5543_;
goto v___jp_5504_;
}
}
else
{
lean_object* v___x_5544_; 
lean_del_object(v___x_5398_);
lean_dec(v_snd_5396_);
lean_dec(v_fst_5395_);
lean_del_object(v___x_5393_);
v___x_5544_ = l_Lean_Meta_Grind_Arith_Linear_findDiseq_x3f(v_fst_5211_, v_a_4991_);
if (lean_obj_tag(v___x_5544_) == 1)
{
lean_object* v_val_5545_; lean_object* v___x_5546_; 
v_val_5545_ = lean_ctor_get(v___x_5544_, 0);
lean_inc(v_val_5545_);
lean_dec_ref(v___x_5544_);
v___x_5546_ = l_Lean_Meta_Grind_Arith_Linear_isLinearOrder(v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_5546_) == 0)
{
lean_object* v_a_5547_; uint8_t v___x_5548_; 
v_a_5547_ = lean_ctor_get(v___x_5546_, 0);
lean_inc(v_a_5547_);
lean_dec_ref(v___x_5546_);
v___x_5548_ = lean_unbox(v_a_5547_);
lean_dec(v_a_5547_);
if (v___x_5548_ == 0)
{
lean_object* v___x_5549_; 
lean_dec(v_snd_5212_);
v___x_5549_ = l_Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2(v_val_5545_, v_a_4973_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_val_5545_);
if (lean_obj_tag(v___x_5549_) == 0)
{
lean_object* v_a_5550_; lean_object* v___f_5551_; lean_object* v___x_5552_; lean_object* v___x_5553_; 
v_a_5550_ = lean_ctor_get(v___x_5549_, 0);
lean_inc(v_a_5550_);
lean_dec_ref(v___x_5549_);
lean_inc(v_a_4974_);
v___f_5551_ = lean_alloc_closure((void*)(l_Lean_Meta_Grind_Arith_Linear_processVar___lam__0___boxed), 3, 2);
lean_closure_set(v___f_5551_, 0, v_a_4974_);
lean_closure_set(v___f_5551_, 1, v_a_5550_);
v___x_5552_ = l_Lean_Meta_Grind_Arith_Linear_linearExt;
v___x_5553_ = l___private_Lean_Meta_Tactic_Grind_Types_0__Lean_Meta_Grind_SolverExtension_modifyStateImpl___redArg(v___x_5552_, v___f_5551_, v_a_4975_);
if (lean_obj_tag(v___x_5553_) == 0)
{
lean_object* v___x_5554_; lean_object* v___x_5555_; lean_object* v_a_5556_; uint8_t v___x_5557_; 
lean_dec_ref(v___x_5553_);
v___x_5554_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2));
v___x_5555_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v___x_5554_, v_a_4983_);
v_a_5556_ = lean_ctor_get(v___x_5555_, 0);
lean_inc(v_a_5556_);
lean_dec_ref(v___x_5555_);
v___x_5557_ = lean_unbox(v_a_5556_);
lean_dec(v_a_5556_);
if (v___x_5557_ == 0)
{
lean_object* v___x_5558_; 
lean_del_object(v___x_5214_);
lean_del_object(v___x_5209_);
lean_dec(v_a_4991_);
v___x_5558_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v_fst_5211_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5558_;
}
else
{
lean_object* v_num_5559_; lean_object* v_den_5560_; lean_object* v___x_5561_; lean_object* v___x_5562_; uint8_t v___x_5563_; 
v_num_5559_ = lean_ctor_get(v_fst_5211_, 0);
v_den_5560_ = lean_ctor_get(v_fst_5211_, 1);
v___x_5561_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5);
v___x_5562_ = lean_unsigned_to_nat(1u);
v___x_5563_ = lean_nat_dec_eq(v_den_5560_, v___x_5562_);
if (v___x_5563_ == 0)
{
lean_object* v_intZero_5564_; uint8_t v_isNeg_5565_; 
v_intZero_5564_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5565_ = lean_int_dec_lt(v_num_5559_, v_intZero_5564_);
if (v_isNeg_5565_ == 0)
{
lean_object* v_a_5566_; lean_object* v___x_5567_; 
v_a_5566_ = lean_nat_abs(v_num_5559_);
v___x_5567_ = l_Nat_reprFast(v_a_5566_);
lean_inc(v_den_5560_);
v___y_5243_ = v_den_5560_;
v___y_5244_ = v___x_5561_;
v___y_5245_ = v___x_5554_;
v___y_5246_ = v___x_5567_;
goto v___jp_5242_;
}
else
{
lean_object* v_abs_5568_; lean_object* v_a_5569_; lean_object* v___x_5570_; lean_object* v___x_5571_; lean_object* v___x_5572_; lean_object* v___x_5573_; 
v_abs_5568_ = lean_nat_abs(v_num_5559_);
v_a_5569_ = lean_nat_sub(v_abs_5568_, v___x_5562_);
lean_dec(v_abs_5568_);
v___x_5570_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5571_ = lean_nat_add(v_a_5569_, v___x_5562_);
lean_dec(v_a_5569_);
v___x_5572_ = l_Nat_reprFast(v___x_5571_);
v___x_5573_ = lean_string_append(v___x_5570_, v___x_5572_);
lean_dec_ref(v___x_5572_);
lean_inc(v_den_5560_);
v___y_5243_ = v_den_5560_;
v___y_5244_ = v___x_5561_;
v___y_5245_ = v___x_5554_;
v___y_5246_ = v___x_5573_;
goto v___jp_5242_;
}
}
else
{
lean_object* v_intZero_5574_; uint8_t v_isNeg_5575_; 
v_intZero_5574_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5575_ = lean_int_dec_lt(v_num_5559_, v_intZero_5574_);
if (v_isNeg_5575_ == 0)
{
lean_object* v_a_5576_; lean_object* v___x_5577_; 
v_a_5576_ = lean_nat_abs(v_num_5559_);
v___x_5577_ = l_Nat_reprFast(v_a_5576_);
v___y_5217_ = v___x_5554_;
v___y_5218_ = v___x_5561_;
v___y_5219_ = v___x_5577_;
goto v___jp_5216_;
}
else
{
lean_object* v_abs_5578_; lean_object* v_a_5579_; lean_object* v___x_5580_; lean_object* v___x_5581_; lean_object* v___x_5582_; lean_object* v___x_5583_; 
v_abs_5578_ = lean_nat_abs(v_num_5559_);
v_a_5579_ = lean_nat_sub(v_abs_5578_, v___x_5562_);
lean_dec(v_abs_5578_);
v___x_5580_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5581_ = lean_nat_add(v_a_5579_, v___x_5562_);
lean_dec(v_a_5579_);
v___x_5582_ = l_Nat_reprFast(v___x_5581_);
v___x_5583_ = lean_string_append(v___x_5580_, v___x_5582_);
lean_dec_ref(v___x_5582_);
v___y_5217_ = v___x_5554_;
v___y_5218_ = v___x_5561_;
v___y_5219_ = v___x_5583_;
goto v___jp_5216_;
}
}
}
}
else
{
lean_del_object(v___x_5214_);
lean_dec(v_fst_5211_);
lean_del_object(v___x_5209_);
lean_dec(v_a_4991_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
return v___x_5553_;
}
}
else
{
lean_object* v_a_5584_; lean_object* v___x_5586_; uint8_t v_isShared_5587_; uint8_t v_isSharedCheck_5591_; 
lean_del_object(v___x_5214_);
lean_dec(v_fst_5211_);
lean_del_object(v___x_5209_);
lean_dec(v_a_4991_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
v_a_5584_ = lean_ctor_get(v___x_5549_, 0);
v_isSharedCheck_5591_ = !lean_is_exclusive(v___x_5549_);
if (v_isSharedCheck_5591_ == 0)
{
v___x_5586_ = v___x_5549_;
v_isShared_5587_ = v_isSharedCheck_5591_;
goto v_resetjp_5585_;
}
else
{
lean_inc(v_a_5584_);
lean_dec(v___x_5549_);
v___x_5586_ = lean_box(0);
v_isShared_5587_ = v_isSharedCheck_5591_;
goto v_resetjp_5585_;
}
v_resetjp_5585_:
{
lean_object* v___x_5589_; 
if (v_isShared_5587_ == 0)
{
v___x_5589_ = v___x_5586_;
goto v_reusejp_5588_;
}
else
{
lean_object* v_reuseFailAlloc_5590_; 
v_reuseFailAlloc_5590_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5590_, 0, v_a_5584_);
v___x_5589_ = v_reuseFailAlloc_5590_;
goto v_reusejp_5588_;
}
v_reusejp_5588_:
{
return v___x_5589_;
}
}
}
}
else
{
lean_object* v___x_5592_; 
lean_del_object(v___x_5214_);
lean_dec(v_fst_5211_);
lean_del_object(v___x_5209_);
lean_dec(v_a_4991_);
v___x_5592_ = l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict(v_snd_5212_, v_val_5545_, v_a_4973_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
return v___x_5592_;
}
}
else
{
lean_object* v_a_5593_; lean_object* v___x_5595_; uint8_t v_isShared_5596_; uint8_t v_isSharedCheck_5600_; 
lean_dec(v_val_5545_);
lean_del_object(v___x_5214_);
lean_dec(v_snd_5212_);
lean_dec(v_fst_5211_);
lean_del_object(v___x_5209_);
lean_dec(v_a_4991_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
v_a_5593_ = lean_ctor_get(v___x_5546_, 0);
v_isSharedCheck_5600_ = !lean_is_exclusive(v___x_5546_);
if (v_isSharedCheck_5600_ == 0)
{
v___x_5595_ = v___x_5546_;
v_isShared_5596_ = v_isSharedCheck_5600_;
goto v_resetjp_5594_;
}
else
{
lean_inc(v_a_5593_);
lean_dec(v___x_5546_);
v___x_5595_ = lean_box(0);
v_isShared_5596_ = v_isSharedCheck_5600_;
goto v_resetjp_5594_;
}
v_resetjp_5594_:
{
lean_object* v___x_5598_; 
if (v_isShared_5596_ == 0)
{
v___x_5598_ = v___x_5595_;
goto v_reusejp_5597_;
}
else
{
lean_object* v_reuseFailAlloc_5599_; 
v_reuseFailAlloc_5599_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5599_, 0, v_a_5593_);
v___x_5598_ = v_reuseFailAlloc_5599_;
goto v_reusejp_5597_;
}
v_reusejp_5597_:
{
return v___x_5598_;
}
}
}
}
else
{
lean_object* v___x_5601_; lean_object* v___x_5602_; lean_object* v_a_5603_; uint8_t v___x_5604_; 
lean_dec(v___x_5544_);
lean_del_object(v___x_5214_);
lean_dec(v_snd_5212_);
lean_del_object(v___x_5209_);
v___x_5601_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2));
v___x_5602_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v___x_5601_, v_a_4983_);
v_a_5603_ = lean_ctor_get(v___x_5602_, 0);
lean_inc(v_a_5603_);
lean_dec_ref(v___x_5602_);
v___x_5604_ = lean_unbox(v_a_5603_);
lean_dec(v_a_5603_);
if (v___x_5604_ == 0)
{
lean_object* v___x_5605_; 
lean_dec(v_a_4991_);
v___x_5605_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v_fst_5211_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5605_;
}
else
{
lean_object* v_num_5606_; lean_object* v_den_5607_; lean_object* v___x_5608_; lean_object* v___x_5609_; uint8_t v___x_5610_; 
v_num_5606_ = lean_ctor_get(v_fst_5211_, 0);
v_den_5607_ = lean_ctor_get(v_fst_5211_, 1);
v___x_5608_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__5);
v___x_5609_ = lean_unsigned_to_nat(1u);
v___x_5610_ = lean_nat_dec_eq(v_den_5607_, v___x_5609_);
if (v___x_5610_ == 0)
{
lean_object* v_intZero_5611_; uint8_t v_isNeg_5612_; 
v_intZero_5611_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5612_ = lean_int_dec_lt(v_num_5606_, v_intZero_5611_);
if (v_isNeg_5612_ == 0)
{
lean_object* v_a_5613_; lean_object* v___x_5614_; 
v_a_5613_ = lean_nat_abs(v_num_5606_);
v___x_5614_ = l_Nat_reprFast(v_a_5613_);
lean_inc(v_den_5607_);
v___y_5274_ = v___x_5601_;
v___y_5275_ = v_den_5607_;
v___y_5276_ = v___x_5608_;
v___y_5277_ = v___x_5614_;
goto v___jp_5273_;
}
else
{
lean_object* v_abs_5615_; lean_object* v_a_5616_; lean_object* v___x_5617_; lean_object* v___x_5618_; lean_object* v___x_5619_; lean_object* v___x_5620_; 
v_abs_5615_ = lean_nat_abs(v_num_5606_);
v_a_5616_ = lean_nat_sub(v_abs_5615_, v___x_5609_);
lean_dec(v_abs_5615_);
v___x_5617_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5618_ = lean_nat_add(v_a_5616_, v___x_5609_);
lean_dec(v_a_5616_);
v___x_5619_ = l_Nat_reprFast(v___x_5618_);
v___x_5620_ = lean_string_append(v___x_5617_, v___x_5619_);
lean_dec_ref(v___x_5619_);
lean_inc(v_den_5607_);
v___y_5274_ = v___x_5601_;
v___y_5275_ = v_den_5607_;
v___y_5276_ = v___x_5608_;
v___y_5277_ = v___x_5620_;
goto v___jp_5273_;
}
}
else
{
lean_object* v_intZero_5621_; uint8_t v_isNeg_5622_; 
v_intZero_5621_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v_isNeg_5622_ = lean_int_dec_lt(v_num_5606_, v_intZero_5621_);
if (v_isNeg_5622_ == 0)
{
lean_object* v_a_5623_; lean_object* v___x_5624_; 
v_a_5623_ = lean_nat_abs(v_num_5606_);
v___x_5624_ = l_Nat_reprFast(v_a_5623_);
v___y_5252_ = v___x_5601_;
v___y_5253_ = v___x_5608_;
v___y_5254_ = v___x_5624_;
goto v___jp_5251_;
}
else
{
lean_object* v_abs_5625_; lean_object* v_a_5626_; lean_object* v___x_5627_; lean_object* v___x_5628_; lean_object* v___x_5629_; lean_object* v___x_5630_; 
v_abs_5625_ = lean_nat_abs(v_num_5606_);
v_a_5626_ = lean_nat_sub(v_abs_5625_, v___x_5609_);
lean_dec(v_abs_5625_);
v___x_5627_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__10));
v___x_5628_ = lean_nat_add(v_a_5626_, v___x_5609_);
lean_dec(v_a_5626_);
v___x_5629_ = l_Nat_reprFast(v___x_5628_);
v___x_5630_ = lean_string_append(v___x_5627_, v___x_5629_);
lean_dec_ref(v___x_5629_);
v___y_5252_ = v___x_5601_;
v___y_5253_ = v___x_5608_;
v___y_5254_ = v___x_5630_;
goto v___jp_5251_;
}
}
}
}
}
}
else
{
lean_object* v___x_5631_; 
lean_del_object(v___x_5398_);
lean_dec(v_fst_5395_);
lean_del_object(v___x_5393_);
lean_del_object(v___x_5214_);
lean_dec(v_fst_5211_);
lean_del_object(v___x_5209_);
lean_dec(v_a_4991_);
v___x_5631_ = l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict(v_snd_5212_, v_snd_5396_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
return v___x_5631_;
}
}
}
}
}
v___jp_5216_:
{
lean_object* v___x_5221_; 
if (v_isShared_5210_ == 0)
{
lean_ctor_set_tag(v___x_5209_, 3);
lean_ctor_set(v___x_5209_, 0, v___y_5219_);
v___x_5221_ = v___x_5209_;
goto v_reusejp_5220_;
}
else
{
lean_object* v_reuseFailAlloc_5241_; 
v_reuseFailAlloc_5241_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5241_, 0, v___y_5219_);
v___x_5221_ = v_reuseFailAlloc_5241_;
goto v_reusejp_5220_;
}
v_reusejp_5220_:
{
lean_object* v___x_5222_; lean_object* v___x_5224_; 
v___x_5222_ = l_Lean_MessageData_ofFormat(v___x_5221_);
lean_inc_ref(v___x_5222_);
if (v_isShared_5215_ == 0)
{
lean_ctor_set_tag(v___x_5214_, 7);
lean_ctor_set(v___x_5214_, 1, v___x_5222_);
lean_ctor_set(v___x_5214_, 0, v___y_5218_);
v___x_5224_ = v___x_5214_;
goto v_reusejp_5223_;
}
else
{
lean_object* v_reuseFailAlloc_5240_; 
v_reuseFailAlloc_5240_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5240_, 0, v___y_5218_);
lean_ctor_set(v_reuseFailAlloc_5240_, 1, v___x_5222_);
v___x_5224_ = v_reuseFailAlloc_5240_;
goto v_reusejp_5223_;
}
v_reusejp_5223_:
{
lean_object* v___x_5225_; lean_object* v___x_5226_; lean_object* v___x_5227_; lean_object* v___x_5228_; lean_object* v___x_5229_; size_t v_sz_5230_; size_t v___x_5231_; lean_object* v___x_5232_; lean_object* v___x_5233_; lean_object* v___x_5234_; lean_object* v___x_5235_; lean_object* v___x_5236_; lean_object* v___x_5237_; lean_object* v___x_5238_; 
v___x_5225_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__9, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__9_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__9);
v___x_5226_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5226_, 0, v___x_5224_);
lean_ctor_set(v___x_5226_, 1, v___x_5225_);
v___x_5227_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5227_, 0, v___x_5226_);
lean_ctor_set(v___x_5227_, 1, v___x_5222_);
v___x_5228_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__11, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__11_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__11);
v___x_5229_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5229_, 0, v___x_5227_);
lean_ctor_set(v___x_5229_, 1, v___x_5228_);
v_sz_5230_ = lean_array_size(v_a_4991_);
v___x_5231_ = ((size_t)0ULL);
v___x_5232_ = l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0(v_sz_5230_, v___x_5231_, v_a_4991_);
v___x_5233_ = lean_array_to_list(v___x_5232_);
v___x_5234_ = lean_box(0);
v___x_5235_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__1(v___x_5233_, v___x_5234_);
v___x_5236_ = l_Lean_MessageData_ofList(v___x_5235_);
v___x_5237_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5237_, 0, v___x_5229_);
lean_ctor_set(v___x_5237_, 1, v___x_5236_);
v___x_5238_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v___y_5217_, v___x_5237_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_5238_) == 0)
{
lean_object* v___x_5239_; 
lean_dec_ref(v___x_5238_);
v___x_5239_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v_fst_5211_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5239_;
}
else
{
lean_dec(v_fst_5211_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
return v___x_5238_;
}
}
}
}
v___jp_5242_:
{
lean_object* v___x_5247_; lean_object* v___x_5248_; lean_object* v___x_5249_; lean_object* v___x_5250_; 
v___x_5247_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5248_ = lean_string_append(v___y_5246_, v___x_5247_);
v___x_5249_ = l_Nat_reprFast(v___y_5243_);
v___x_5250_ = lean_string_append(v___x_5248_, v___x_5249_);
lean_dec_ref(v___x_5249_);
v___y_5217_ = v___y_5245_;
v___y_5218_ = v___y_5244_;
v___y_5219_ = v___x_5250_;
goto v___jp_5216_;
}
v___jp_5251_:
{
lean_object* v___x_5255_; lean_object* v___x_5256_; lean_object* v___x_5257_; lean_object* v___x_5258_; lean_object* v___x_5259_; lean_object* v___x_5260_; lean_object* v___x_5261_; lean_object* v___x_5262_; size_t v_sz_5263_; size_t v___x_5264_; lean_object* v___x_5265_; lean_object* v___x_5266_; lean_object* v___x_5267_; lean_object* v___x_5268_; lean_object* v___x_5269_; lean_object* v___x_5270_; lean_object* v___x_5271_; 
v___x_5255_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v___x_5255_, 0, v___y_5254_);
v___x_5256_ = l_Lean_MessageData_ofFormat(v___x_5255_);
lean_inc_ref(v___x_5256_);
v___x_5257_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5257_, 0, v___y_5253_);
lean_ctor_set(v___x_5257_, 1, v___x_5256_);
v___x_5258_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__9, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__9_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__9);
v___x_5259_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5259_, 0, v___x_5257_);
lean_ctor_set(v___x_5259_, 1, v___x_5258_);
v___x_5260_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5260_, 0, v___x_5259_);
lean_ctor_set(v___x_5260_, 1, v___x_5256_);
v___x_5261_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1);
v___x_5262_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5262_, 0, v___x_5260_);
lean_ctor_set(v___x_5262_, 1, v___x_5261_);
v_sz_5263_ = lean_array_size(v_a_4991_);
v___x_5264_ = ((size_t)0ULL);
v___x_5265_ = l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0(v_sz_5263_, v___x_5264_, v_a_4991_);
v___x_5266_ = lean_array_to_list(v___x_5265_);
v___x_5267_ = lean_box(0);
v___x_5268_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__1(v___x_5266_, v___x_5267_);
v___x_5269_ = l_Lean_MessageData_ofList(v___x_5268_);
v___x_5270_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5270_, 0, v___x_5262_);
lean_ctor_set(v___x_5270_, 1, v___x_5269_);
v___x_5271_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v___y_5252_, v___x_5270_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_5271_) == 0)
{
lean_object* v___x_5272_; 
lean_dec_ref(v___x_5271_);
v___x_5272_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v_fst_5211_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5272_;
}
else
{
lean_dec(v_fst_5211_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
return v___x_5271_;
}
}
v___jp_5273_:
{
lean_object* v___x_5278_; lean_object* v___x_5279_; lean_object* v___x_5280_; lean_object* v___x_5281_; 
v___x_5278_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5279_ = lean_string_append(v___y_5277_, v___x_5278_);
v___x_5280_ = l_Nat_reprFast(v___y_5275_);
v___x_5281_ = lean_string_append(v___x_5279_, v___x_5280_);
lean_dec_ref(v___x_5280_);
v___y_5252_ = v___y_5274_;
v___y_5253_ = v___y_5276_;
v___y_5254_ = v___x_5281_;
goto v___jp_5251_;
}
}
}
}
v___jp_4992_:
{
lean_object* v___x_4997_; lean_object* v___x_4998_; lean_object* v___x_4999_; lean_object* v___x_5000_; lean_object* v___x_5001_; size_t v_sz_5002_; size_t v___x_5003_; lean_object* v___x_5004_; lean_object* v___x_5005_; lean_object* v___x_5006_; lean_object* v___x_5007_; lean_object* v___x_5008_; lean_object* v___x_5009_; lean_object* v___x_5010_; 
v___x_4997_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v___x_4997_, 0, v___y_4996_);
v___x_4998_ = l_Lean_MessageData_ofFormat(v___x_4997_);
v___x_4999_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_4999_, 0, v___y_4995_);
lean_ctor_set(v___x_4999_, 1, v___x_4998_);
v___x_5000_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__1);
v___x_5001_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5001_, 0, v___x_4999_);
lean_ctor_set(v___x_5001_, 1, v___x_5000_);
v_sz_5002_ = lean_array_size(v_a_4991_);
v___x_5003_ = ((size_t)0ULL);
v___x_5004_ = l___private_Init_Data_Array_Basic_0__Array_mapMUnsafe_map___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__0(v_sz_5002_, v___x_5003_, v_a_4991_);
v___x_5005_ = lean_array_to_list(v___x_5004_);
v___x_5006_ = lean_box(0);
v___x_5007_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__1(v___x_5005_, v___x_5006_);
v___x_5008_ = l_Lean_MessageData_ofList(v___x_5007_);
v___x_5009_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_5009_, 0, v___x_5001_);
lean_ctor_set(v___x_5009_, 1, v___x_5008_);
v___x_5010_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v___y_4994_, v___x_5009_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
if (lean_obj_tag(v___x_5010_) == 0)
{
lean_object* v___x_5011_; 
lean_dec_ref(v___x_5010_);
v___x_5011_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_setAssignment(v_x_4972_, v___y_4993_, v_a_4974_, v_a_4975_, v_a_4976_, v_a_4977_, v_a_4978_, v_a_4979_, v_a_4980_, v_a_4981_, v_a_4982_, v_a_4983_, v_a_4984_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
return v___x_5011_;
}
else
{
lean_dec_ref(v___y_4993_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
return v___x_5010_;
}
}
v___jp_5012_:
{
lean_object* v___x_5018_; lean_object* v___x_5019_; lean_object* v___x_5020_; lean_object* v___x_5021_; 
v___x_5018_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__8));
v___x_5019_ = lean_string_append(v___y_5017_, v___x_5018_);
v___x_5020_ = l_Nat_reprFast(v___y_5016_);
v___x_5021_ = lean_string_append(v___x_5019_, v___x_5020_);
lean_dec_ref(v___x_5020_);
v___y_4993_ = v___y_5014_;
v___y_4994_ = v___y_5013_;
v___y_4995_ = v___y_5015_;
v___y_4996_ = v___x_5021_;
goto v___jp_4992_;
}
}
else
{
lean_object* v_a_5641_; lean_object* v___x_5643_; uint8_t v_isShared_5644_; uint8_t v_isSharedCheck_5648_; 
lean_dec(v_a_4989_);
lean_dec(v_a_4987_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
v_a_5641_ = lean_ctor_get(v___x_4990_, 0);
v_isSharedCheck_5648_ = !lean_is_exclusive(v___x_4990_);
if (v_isSharedCheck_5648_ == 0)
{
v___x_5643_ = v___x_4990_;
v_isShared_5644_ = v_isSharedCheck_5648_;
goto v_resetjp_5642_;
}
else
{
lean_inc(v_a_5641_);
lean_dec(v___x_4990_);
v___x_5643_ = lean_box(0);
v_isShared_5644_ = v_isSharedCheck_5648_;
goto v_resetjp_5642_;
}
v_resetjp_5642_:
{
lean_object* v___x_5646_; 
if (v_isShared_5644_ == 0)
{
v___x_5646_ = v___x_5643_;
goto v_reusejp_5645_;
}
else
{
lean_object* v_reuseFailAlloc_5647_; 
v_reuseFailAlloc_5647_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5647_, 0, v_a_5641_);
v___x_5646_ = v_reuseFailAlloc_5647_;
goto v_reusejp_5645_;
}
v_reusejp_5645_:
{
return v___x_5646_;
}
}
}
}
else
{
lean_object* v_a_5649_; lean_object* v___x_5651_; uint8_t v_isShared_5652_; uint8_t v_isSharedCheck_5656_; 
lean_dec(v_a_4987_);
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
v_a_5649_ = lean_ctor_get(v___x_4988_, 0);
v_isSharedCheck_5656_ = !lean_is_exclusive(v___x_4988_);
if (v_isSharedCheck_5656_ == 0)
{
v___x_5651_ = v___x_4988_;
v_isShared_5652_ = v_isSharedCheck_5656_;
goto v_resetjp_5650_;
}
else
{
lean_inc(v_a_5649_);
lean_dec(v___x_4988_);
v___x_5651_ = lean_box(0);
v_isShared_5652_ = v_isSharedCheck_5656_;
goto v_resetjp_5650_;
}
v_resetjp_5650_:
{
lean_object* v___x_5654_; 
if (v_isShared_5652_ == 0)
{
v___x_5654_ = v___x_5651_;
goto v_reusejp_5653_;
}
else
{
lean_object* v_reuseFailAlloc_5655_; 
v_reuseFailAlloc_5655_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5655_, 0, v_a_5649_);
v___x_5654_ = v_reuseFailAlloc_5655_;
goto v_reusejp_5653_;
}
v_reusejp_5653_:
{
return v___x_5654_;
}
}
}
}
else
{
lean_object* v_a_5657_; lean_object* v___x_5659_; uint8_t v_isShared_5660_; uint8_t v_isSharedCheck_5664_; 
lean_dec(v_a_4984_);
lean_dec_ref(v_a_4983_);
lean_dec(v_a_4982_);
lean_dec_ref(v_a_4981_);
lean_dec(v_a_4980_);
lean_dec_ref(v_a_4979_);
lean_dec(v_a_4978_);
lean_dec_ref(v_a_4977_);
lean_dec(v_a_4976_);
lean_dec(v_a_4975_);
lean_dec(v_a_4974_);
v_a_5657_ = lean_ctor_get(v___x_4986_, 0);
v_isSharedCheck_5664_ = !lean_is_exclusive(v___x_4986_);
if (v_isSharedCheck_5664_ == 0)
{
v___x_5659_ = v___x_4986_;
v_isShared_5660_ = v_isSharedCheck_5664_;
goto v_resetjp_5658_;
}
else
{
lean_inc(v_a_5657_);
lean_dec(v___x_4986_);
v___x_5659_ = lean_box(0);
v_isShared_5660_ = v_isSharedCheck_5664_;
goto v_resetjp_5658_;
}
v_resetjp_5658_:
{
lean_object* v___x_5662_; 
if (v_isShared_5660_ == 0)
{
v___x_5662_ = v___x_5659_;
goto v_reusejp_5661_;
}
else
{
lean_object* v_reuseFailAlloc_5663_; 
v_reuseFailAlloc_5663_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5663_, 0, v_a_5657_);
v___x_5662_ = v_reuseFailAlloc_5663_;
goto v_reusejp_5661_;
}
v_reusejp_5661_:
{
return v___x_5662_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_processVar___boxed(lean_object* v_x_5665_, lean_object* v_a_5666_, lean_object* v_a_5667_, lean_object* v_a_5668_, lean_object* v_a_5669_, lean_object* v_a_5670_, lean_object* v_a_5671_, lean_object* v_a_5672_, lean_object* v_a_5673_, lean_object* v_a_5674_, lean_object* v_a_5675_, lean_object* v_a_5676_, lean_object* v_a_5677_, lean_object* v_a_5678_){
_start:
{
lean_object* v_res_5679_; 
v_res_5679_ = l_Lean_Meta_Grind_Arith_Linear_processVar(v_x_5665_, v_a_5666_, v_a_5667_, v_a_5668_, v_a_5669_, v_a_5670_, v_a_5671_, v_a_5672_, v_a_5673_, v_a_5674_, v_a_5675_, v_a_5676_, v_a_5677_);
lean_dec(v_a_5666_);
lean_dec(v_x_5665_);
return v_res_5679_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_hasAssignment(lean_object* v_a_5680_, lean_object* v_a_5681_, lean_object* v_a_5682_, lean_object* v_a_5683_, lean_object* v_a_5684_, lean_object* v_a_5685_, lean_object* v_a_5686_, lean_object* v_a_5687_, lean_object* v_a_5688_, lean_object* v_a_5689_, lean_object* v_a_5690_){
_start:
{
lean_object* v___x_5692_; 
v___x_5692_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v_a_5680_, v_a_5681_, v_a_5682_, v_a_5683_, v_a_5684_, v_a_5685_, v_a_5686_, v_a_5687_, v_a_5688_, v_a_5689_, v_a_5690_);
if (lean_obj_tag(v___x_5692_) == 0)
{
lean_object* v_a_5693_; lean_object* v___x_5694_; 
v_a_5693_ = lean_ctor_get(v___x_5692_, 0);
lean_inc(v_a_5693_);
lean_dec_ref(v___x_5692_);
v___x_5694_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v_a_5680_, v_a_5681_, v_a_5682_, v_a_5683_, v_a_5684_, v_a_5685_, v_a_5686_, v_a_5687_, v_a_5688_, v_a_5689_, v_a_5690_);
if (lean_obj_tag(v___x_5694_) == 0)
{
lean_object* v_vars_5695_; lean_object* v_a_5696_; lean_object* v___x_5698_; uint8_t v_isShared_5699_; uint8_t v_isSharedCheck_5708_; 
v_vars_5695_ = lean_ctor_get(v_a_5693_, 30);
lean_inc_ref(v_vars_5695_);
lean_dec(v_a_5693_);
v_a_5696_ = lean_ctor_get(v___x_5694_, 0);
v_isSharedCheck_5708_ = !lean_is_exclusive(v___x_5694_);
if (v_isSharedCheck_5708_ == 0)
{
v___x_5698_ = v___x_5694_;
v_isShared_5699_ = v_isSharedCheck_5708_;
goto v_resetjp_5697_;
}
else
{
lean_inc(v_a_5696_);
lean_dec(v___x_5694_);
v___x_5698_ = lean_box(0);
v_isShared_5699_ = v_isSharedCheck_5708_;
goto v_resetjp_5697_;
}
v_resetjp_5697_:
{
lean_object* v_assignment_5700_; lean_object* v_size_5701_; lean_object* v_size_5702_; uint8_t v___x_5703_; lean_object* v___x_5704_; lean_object* v___x_5706_; 
v_assignment_5700_ = lean_ctor_get(v_a_5696_, 35);
lean_inc_ref(v_assignment_5700_);
lean_dec(v_a_5696_);
v_size_5701_ = lean_ctor_get(v_vars_5695_, 2);
lean_inc(v_size_5701_);
lean_dec_ref(v_vars_5695_);
v_size_5702_ = lean_ctor_get(v_assignment_5700_, 2);
lean_inc(v_size_5702_);
lean_dec_ref(v_assignment_5700_);
v___x_5703_ = lean_nat_dec_eq(v_size_5701_, v_size_5702_);
lean_dec(v_size_5702_);
lean_dec(v_size_5701_);
v___x_5704_ = lean_box(v___x_5703_);
if (v_isShared_5699_ == 0)
{
lean_ctor_set(v___x_5698_, 0, v___x_5704_);
v___x_5706_ = v___x_5698_;
goto v_reusejp_5705_;
}
else
{
lean_object* v_reuseFailAlloc_5707_; 
v_reuseFailAlloc_5707_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5707_, 0, v___x_5704_);
v___x_5706_ = v_reuseFailAlloc_5707_;
goto v_reusejp_5705_;
}
v_reusejp_5705_:
{
return v___x_5706_;
}
}
}
else
{
lean_object* v_a_5709_; lean_object* v___x_5711_; uint8_t v_isShared_5712_; uint8_t v_isSharedCheck_5716_; 
lean_dec(v_a_5693_);
v_a_5709_ = lean_ctor_get(v___x_5694_, 0);
v_isSharedCheck_5716_ = !lean_is_exclusive(v___x_5694_);
if (v_isSharedCheck_5716_ == 0)
{
v___x_5711_ = v___x_5694_;
v_isShared_5712_ = v_isSharedCheck_5716_;
goto v_resetjp_5710_;
}
else
{
lean_inc(v_a_5709_);
lean_dec(v___x_5694_);
v___x_5711_ = lean_box(0);
v_isShared_5712_ = v_isSharedCheck_5716_;
goto v_resetjp_5710_;
}
v_resetjp_5710_:
{
lean_object* v___x_5714_; 
if (v_isShared_5712_ == 0)
{
v___x_5714_ = v___x_5711_;
goto v_reusejp_5713_;
}
else
{
lean_object* v_reuseFailAlloc_5715_; 
v_reuseFailAlloc_5715_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5715_, 0, v_a_5709_);
v___x_5714_ = v_reuseFailAlloc_5715_;
goto v_reusejp_5713_;
}
v_reusejp_5713_:
{
return v___x_5714_;
}
}
}
}
else
{
lean_object* v_a_5717_; lean_object* v___x_5719_; uint8_t v_isShared_5720_; uint8_t v_isSharedCheck_5724_; 
v_a_5717_ = lean_ctor_get(v___x_5692_, 0);
v_isSharedCheck_5724_ = !lean_is_exclusive(v___x_5692_);
if (v_isSharedCheck_5724_ == 0)
{
v___x_5719_ = v___x_5692_;
v_isShared_5720_ = v_isSharedCheck_5724_;
goto v_resetjp_5718_;
}
else
{
lean_inc(v_a_5717_);
lean_dec(v___x_5692_);
v___x_5719_ = lean_box(0);
v_isShared_5720_ = v_isSharedCheck_5724_;
goto v_resetjp_5718_;
}
v_resetjp_5718_:
{
lean_object* v___x_5722_; 
if (v_isShared_5720_ == 0)
{
v___x_5722_ = v___x_5719_;
goto v_reusejp_5721_;
}
else
{
lean_object* v_reuseFailAlloc_5723_; 
v_reuseFailAlloc_5723_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5723_, 0, v_a_5717_);
v___x_5722_ = v_reuseFailAlloc_5723_;
goto v_reusejp_5721_;
}
v_reusejp_5721_:
{
return v___x_5722_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_hasAssignment___boxed(lean_object* v_a_5725_, lean_object* v_a_5726_, lean_object* v_a_5727_, lean_object* v_a_5728_, lean_object* v_a_5729_, lean_object* v_a_5730_, lean_object* v_a_5731_, lean_object* v_a_5732_, lean_object* v_a_5733_, lean_object* v_a_5734_, lean_object* v_a_5735_, lean_object* v_a_5736_){
_start:
{
lean_object* v_res_5737_; 
v_res_5737_ = l_Lean_Meta_Grind_Arith_Linear_hasAssignment(v_a_5725_, v_a_5726_, v_a_5727_, v_a_5728_, v_a_5729_, v_a_5730_, v_a_5731_, v_a_5732_, v_a_5733_, v_a_5734_, v_a_5735_);
lean_dec(v_a_5735_);
lean_dec_ref(v_a_5734_);
lean_dec(v_a_5733_);
lean_dec_ref(v_a_5732_);
lean_dec(v_a_5731_);
lean_dec_ref(v_a_5730_);
lean_dec(v_a_5729_);
lean_dec_ref(v_a_5728_);
lean_dec(v_a_5727_);
lean_dec(v_a_5726_);
lean_dec(v_a_5725_);
return v_res_5737_;
}
}
static lean_object* _init_l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__0(void){
_start:
{
lean_object* v___x_5738_; 
v___x_5738_ = l_instMonadEST(lean_box(0), lean_box(0));
return v___x_5738_;
}
}
LEAN_EXPORT lean_object* l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3(lean_object* v_msg_5743_, lean_object* v___y_5744_, lean_object* v___y_5745_, lean_object* v___y_5746_, lean_object* v___y_5747_, lean_object* v___y_5748_, lean_object* v___y_5749_, lean_object* v___y_5750_, lean_object* v___y_5751_, lean_object* v___y_5752_, lean_object* v___y_5753_, lean_object* v___y_5754_, lean_object* v___y_5755_){
_start:
{
lean_object* v___x_5757_; lean_object* v___x_5758_; lean_object* v_toApplicative_5759_; lean_object* v___x_5761_; uint8_t v_isShared_5762_; uint8_t v_isSharedCheck_5828_; 
v___x_5757_ = lean_obj_once(&l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__0, &l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__0_once, _init_l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__0);
v___x_5758_ = l_ReaderT_instMonad___redArg(v___x_5757_);
v_toApplicative_5759_ = lean_ctor_get(v___x_5758_, 0);
v_isSharedCheck_5828_ = !lean_is_exclusive(v___x_5758_);
if (v_isSharedCheck_5828_ == 0)
{
lean_object* v_unused_5829_; 
v_unused_5829_ = lean_ctor_get(v___x_5758_, 1);
lean_dec(v_unused_5829_);
v___x_5761_ = v___x_5758_;
v_isShared_5762_ = v_isSharedCheck_5828_;
goto v_resetjp_5760_;
}
else
{
lean_inc(v_toApplicative_5759_);
lean_dec(v___x_5758_);
v___x_5761_ = lean_box(0);
v_isShared_5762_ = v_isSharedCheck_5828_;
goto v_resetjp_5760_;
}
v_resetjp_5760_:
{
lean_object* v_toFunctor_5763_; lean_object* v_toSeq_5764_; lean_object* v_toSeqLeft_5765_; lean_object* v_toSeqRight_5766_; lean_object* v___x_5768_; uint8_t v_isShared_5769_; uint8_t v_isSharedCheck_5826_; 
v_toFunctor_5763_ = lean_ctor_get(v_toApplicative_5759_, 0);
v_toSeq_5764_ = lean_ctor_get(v_toApplicative_5759_, 2);
v_toSeqLeft_5765_ = lean_ctor_get(v_toApplicative_5759_, 3);
v_toSeqRight_5766_ = lean_ctor_get(v_toApplicative_5759_, 4);
v_isSharedCheck_5826_ = !lean_is_exclusive(v_toApplicative_5759_);
if (v_isSharedCheck_5826_ == 0)
{
lean_object* v_unused_5827_; 
v_unused_5827_ = lean_ctor_get(v_toApplicative_5759_, 1);
lean_dec(v_unused_5827_);
v___x_5768_ = v_toApplicative_5759_;
v_isShared_5769_ = v_isSharedCheck_5826_;
goto v_resetjp_5767_;
}
else
{
lean_inc(v_toSeqRight_5766_);
lean_inc(v_toSeqLeft_5765_);
lean_inc(v_toSeq_5764_);
lean_inc(v_toFunctor_5763_);
lean_dec(v_toApplicative_5759_);
v___x_5768_ = lean_box(0);
v_isShared_5769_ = v_isSharedCheck_5826_;
goto v_resetjp_5767_;
}
v_resetjp_5767_:
{
lean_object* v___f_5770_; lean_object* v___f_5771_; lean_object* v___f_5772_; lean_object* v___f_5773_; lean_object* v___x_5774_; lean_object* v___f_5775_; lean_object* v___f_5776_; lean_object* v___f_5777_; lean_object* v___x_5779_; 
v___f_5770_ = ((lean_object*)(l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__1));
v___f_5771_ = ((lean_object*)(l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__2));
lean_inc_ref(v_toFunctor_5763_);
v___f_5772_ = lean_alloc_closure((void*)(l_ReaderT_instFunctorOfMonad___redArg___lam__0), 6, 1);
lean_closure_set(v___f_5772_, 0, v_toFunctor_5763_);
v___f_5773_ = lean_alloc_closure((void*)(l_ReaderT_instFunctorOfMonad___redArg___lam__1), 6, 1);
lean_closure_set(v___f_5773_, 0, v_toFunctor_5763_);
v___x_5774_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_5774_, 0, v___f_5772_);
lean_ctor_set(v___x_5774_, 1, v___f_5773_);
v___f_5775_ = lean_alloc_closure((void*)(l_ReaderT_instApplicativeOfMonad___redArg___lam__1), 6, 1);
lean_closure_set(v___f_5775_, 0, v_toSeqRight_5766_);
v___f_5776_ = lean_alloc_closure((void*)(l_ReaderT_instApplicativeOfMonad___redArg___lam__3), 6, 1);
lean_closure_set(v___f_5776_, 0, v_toSeqLeft_5765_);
v___f_5777_ = lean_alloc_closure((void*)(l_ReaderT_instApplicativeOfMonad___redArg___lam__4), 6, 1);
lean_closure_set(v___f_5777_, 0, v_toSeq_5764_);
if (v_isShared_5769_ == 0)
{
lean_ctor_set(v___x_5768_, 4, v___f_5775_);
lean_ctor_set(v___x_5768_, 3, v___f_5776_);
lean_ctor_set(v___x_5768_, 2, v___f_5777_);
lean_ctor_set(v___x_5768_, 1, v___f_5770_);
lean_ctor_set(v___x_5768_, 0, v___x_5774_);
v___x_5779_ = v___x_5768_;
goto v_reusejp_5778_;
}
else
{
lean_object* v_reuseFailAlloc_5825_; 
v_reuseFailAlloc_5825_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_5825_, 0, v___x_5774_);
lean_ctor_set(v_reuseFailAlloc_5825_, 1, v___f_5770_);
lean_ctor_set(v_reuseFailAlloc_5825_, 2, v___f_5777_);
lean_ctor_set(v_reuseFailAlloc_5825_, 3, v___f_5776_);
lean_ctor_set(v_reuseFailAlloc_5825_, 4, v___f_5775_);
v___x_5779_ = v_reuseFailAlloc_5825_;
goto v_reusejp_5778_;
}
v_reusejp_5778_:
{
lean_object* v___x_5781_; 
if (v_isShared_5762_ == 0)
{
lean_ctor_set(v___x_5761_, 1, v___f_5771_);
lean_ctor_set(v___x_5761_, 0, v___x_5779_);
v___x_5781_ = v___x_5761_;
goto v_reusejp_5780_;
}
else
{
lean_object* v_reuseFailAlloc_5824_; 
v_reuseFailAlloc_5824_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5824_, 0, v___x_5779_);
lean_ctor_set(v_reuseFailAlloc_5824_, 1, v___f_5771_);
v___x_5781_ = v_reuseFailAlloc_5824_;
goto v_reusejp_5780_;
}
v_reusejp_5780_:
{
lean_object* v___x_5782_; lean_object* v_toApplicative_5783_; lean_object* v___x_5785_; uint8_t v_isShared_5786_; uint8_t v_isSharedCheck_5822_; 
v___x_5782_ = l_ReaderT_instMonad___redArg(v___x_5781_);
v_toApplicative_5783_ = lean_ctor_get(v___x_5782_, 0);
v_isSharedCheck_5822_ = !lean_is_exclusive(v___x_5782_);
if (v_isSharedCheck_5822_ == 0)
{
lean_object* v_unused_5823_; 
v_unused_5823_ = lean_ctor_get(v___x_5782_, 1);
lean_dec(v_unused_5823_);
v___x_5785_ = v___x_5782_;
v_isShared_5786_ = v_isSharedCheck_5822_;
goto v_resetjp_5784_;
}
else
{
lean_inc(v_toApplicative_5783_);
lean_dec(v___x_5782_);
v___x_5785_ = lean_box(0);
v_isShared_5786_ = v_isSharedCheck_5822_;
goto v_resetjp_5784_;
}
v_resetjp_5784_:
{
lean_object* v_toFunctor_5787_; lean_object* v_toSeq_5788_; lean_object* v_toSeqLeft_5789_; lean_object* v_toSeqRight_5790_; lean_object* v___x_5792_; uint8_t v_isShared_5793_; uint8_t v_isSharedCheck_5820_; 
v_toFunctor_5787_ = lean_ctor_get(v_toApplicative_5783_, 0);
v_toSeq_5788_ = lean_ctor_get(v_toApplicative_5783_, 2);
v_toSeqLeft_5789_ = lean_ctor_get(v_toApplicative_5783_, 3);
v_toSeqRight_5790_ = lean_ctor_get(v_toApplicative_5783_, 4);
v_isSharedCheck_5820_ = !lean_is_exclusive(v_toApplicative_5783_);
if (v_isSharedCheck_5820_ == 0)
{
lean_object* v_unused_5821_; 
v_unused_5821_ = lean_ctor_get(v_toApplicative_5783_, 1);
lean_dec(v_unused_5821_);
v___x_5792_ = v_toApplicative_5783_;
v_isShared_5793_ = v_isSharedCheck_5820_;
goto v_resetjp_5791_;
}
else
{
lean_inc(v_toSeqRight_5790_);
lean_inc(v_toSeqLeft_5789_);
lean_inc(v_toSeq_5788_);
lean_inc(v_toFunctor_5787_);
lean_dec(v_toApplicative_5783_);
v___x_5792_ = lean_box(0);
v_isShared_5793_ = v_isSharedCheck_5820_;
goto v_resetjp_5791_;
}
v_resetjp_5791_:
{
lean_object* v___f_5794_; lean_object* v___f_5795_; lean_object* v___f_5796_; lean_object* v___f_5797_; lean_object* v___x_5798_; lean_object* v___f_5799_; lean_object* v___f_5800_; lean_object* v___f_5801_; lean_object* v___x_5803_; 
v___f_5794_ = ((lean_object*)(l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__3));
v___f_5795_ = ((lean_object*)(l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___closed__4));
lean_inc_ref(v_toFunctor_5787_);
v___f_5796_ = lean_alloc_closure((void*)(l_ReaderT_instFunctorOfMonad___redArg___lam__0), 6, 1);
lean_closure_set(v___f_5796_, 0, v_toFunctor_5787_);
v___f_5797_ = lean_alloc_closure((void*)(l_ReaderT_instFunctorOfMonad___redArg___lam__1), 6, 1);
lean_closure_set(v___f_5797_, 0, v_toFunctor_5787_);
v___x_5798_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_5798_, 0, v___f_5796_);
lean_ctor_set(v___x_5798_, 1, v___f_5797_);
v___f_5799_ = lean_alloc_closure((void*)(l_ReaderT_instApplicativeOfMonad___redArg___lam__1), 6, 1);
lean_closure_set(v___f_5799_, 0, v_toSeqRight_5790_);
v___f_5800_ = lean_alloc_closure((void*)(l_ReaderT_instApplicativeOfMonad___redArg___lam__3), 6, 1);
lean_closure_set(v___f_5800_, 0, v_toSeqLeft_5789_);
v___f_5801_ = lean_alloc_closure((void*)(l_ReaderT_instApplicativeOfMonad___redArg___lam__4), 6, 1);
lean_closure_set(v___f_5801_, 0, v_toSeq_5788_);
if (v_isShared_5793_ == 0)
{
lean_ctor_set(v___x_5792_, 4, v___f_5799_);
lean_ctor_set(v___x_5792_, 3, v___f_5800_);
lean_ctor_set(v___x_5792_, 2, v___f_5801_);
lean_ctor_set(v___x_5792_, 1, v___f_5794_);
lean_ctor_set(v___x_5792_, 0, v___x_5798_);
v___x_5803_ = v___x_5792_;
goto v_reusejp_5802_;
}
else
{
lean_object* v_reuseFailAlloc_5819_; 
v_reuseFailAlloc_5819_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_5819_, 0, v___x_5798_);
lean_ctor_set(v_reuseFailAlloc_5819_, 1, v___f_5794_);
lean_ctor_set(v_reuseFailAlloc_5819_, 2, v___f_5801_);
lean_ctor_set(v_reuseFailAlloc_5819_, 3, v___f_5800_);
lean_ctor_set(v_reuseFailAlloc_5819_, 4, v___f_5799_);
v___x_5803_ = v_reuseFailAlloc_5819_;
goto v_reusejp_5802_;
}
v_reusejp_5802_:
{
lean_object* v___x_5805_; 
if (v_isShared_5786_ == 0)
{
lean_ctor_set(v___x_5785_, 1, v___f_5795_);
lean_ctor_set(v___x_5785_, 0, v___x_5803_);
v___x_5805_ = v___x_5785_;
goto v_reusejp_5804_;
}
else
{
lean_object* v_reuseFailAlloc_5818_; 
v_reuseFailAlloc_5818_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5818_, 0, v___x_5803_);
lean_ctor_set(v_reuseFailAlloc_5818_, 1, v___f_5795_);
v___x_5805_ = v_reuseFailAlloc_5818_;
goto v_reusejp_5804_;
}
v_reusejp_5804_:
{
lean_object* v___x_5806_; lean_object* v___x_5807_; lean_object* v___x_5808_; lean_object* v___x_5809_; lean_object* v___x_5810_; lean_object* v___x_5811_; lean_object* v___x_5812_; lean_object* v___x_5813_; lean_object* v___x_5814_; lean_object* v___x_5815_; lean_object* v___x_33540__overap_5816_; lean_object* v___x_5817_; 
v___x_5806_ = l_ReaderT_instMonad___redArg(v___x_5805_);
v___x_5807_ = l_ReaderT_instMonad___redArg(v___x_5806_);
v___x_5808_ = l_ReaderT_instMonad___redArg(v___x_5807_);
v___x_5809_ = l_ReaderT_instMonad___redArg(v___x_5808_);
v___x_5810_ = l_ReaderT_instMonad___redArg(v___x_5809_);
v___x_5811_ = l_ReaderT_instMonad___redArg(v___x_5810_);
v___x_5812_ = l_ReaderT_instMonad___redArg(v___x_5811_);
v___x_5813_ = l_ReaderT_instMonad___redArg(v___x_5812_);
v___x_5814_ = l_Lean_Meta_Grind_Arith_Linear_instInhabitedCase_default;
v___x_5815_ = l_instInhabitedOfMonad___redArg(v___x_5813_, v___x_5814_);
v___x_33540__overap_5816_ = lean_panic_fn(v___x_5815_, v_msg_5743_);
v___x_5817_ = lean_apply_13(v___x_33540__overap_5816_, v___y_5744_, v___y_5745_, v___y_5746_, v___y_5747_, v___y_5748_, v___y_5749_, v___y_5750_, v___y_5751_, v___y_5752_, v___y_5753_, v___y_5754_, v___y_5755_, lean_box(0));
return v___x_5817_;
}
}
}
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3___boxed(lean_object* v_msg_5830_, lean_object* v___y_5831_, lean_object* v___y_5832_, lean_object* v___y_5833_, lean_object* v___y_5834_, lean_object* v___y_5835_, lean_object* v___y_5836_, lean_object* v___y_5837_, lean_object* v___y_5838_, lean_object* v___y_5839_, lean_object* v___y_5840_, lean_object* v___y_5841_, lean_object* v___y_5842_, lean_object* v___y_5843_){
_start:
{
lean_object* v_res_5844_; 
v_res_5844_ = l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3(v_msg_5830_, v___y_5831_, v___y_5832_, v___y_5833_, v___y_5834_, v___y_5835_, v___y_5836_, v___y_5837_, v___y_5838_, v___y_5839_, v___y_5840_, v___y_5841_, v___y_5842_);
return v_res_5844_;
}
}
LEAN_EXPORT lean_object* l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg(lean_object* v_msg_5845_, lean_object* v___y_5846_, lean_object* v___y_5847_, lean_object* v___y_5848_, lean_object* v___y_5849_){
_start:
{
lean_object* v_ref_5851_; lean_object* v___x_5852_; lean_object* v_a_5853_; lean_object* v___x_5855_; uint8_t v_isShared_5856_; uint8_t v_isSharedCheck_5861_; 
v_ref_5851_ = lean_ctor_get(v___y_5848_, 5);
v___x_5852_ = l_Lean_addMessageContextFull___at___00Lean_throwError___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__1_spec__2(v_msg_5845_, v___y_5846_, v___y_5847_, v___y_5848_, v___y_5849_);
v_a_5853_ = lean_ctor_get(v___x_5852_, 0);
v_isSharedCheck_5861_ = !lean_is_exclusive(v___x_5852_);
if (v_isSharedCheck_5861_ == 0)
{
v___x_5855_ = v___x_5852_;
v_isShared_5856_ = v_isSharedCheck_5861_;
goto v_resetjp_5854_;
}
else
{
lean_inc(v_a_5853_);
lean_dec(v___x_5852_);
v___x_5855_ = lean_box(0);
v_isShared_5856_ = v_isSharedCheck_5861_;
goto v_resetjp_5854_;
}
v_resetjp_5854_:
{
lean_object* v___x_5857_; lean_object* v___x_5859_; 
lean_inc(v_ref_5851_);
v___x_5857_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_5857_, 0, v_ref_5851_);
lean_ctor_set(v___x_5857_, 1, v_a_5853_);
if (v_isShared_5856_ == 0)
{
lean_ctor_set_tag(v___x_5855_, 1);
lean_ctor_set(v___x_5855_, 0, v___x_5857_);
v___x_5859_ = v___x_5855_;
goto v_reusejp_5858_;
}
else
{
lean_object* v_reuseFailAlloc_5860_; 
v_reuseFailAlloc_5860_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5860_, 0, v___x_5857_);
v___x_5859_ = v_reuseFailAlloc_5860_;
goto v_reusejp_5858_;
}
v_reusejp_5858_:
{
return v___x_5859_;
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg___boxed(lean_object* v_msg_5862_, lean_object* v___y_5863_, lean_object* v___y_5864_, lean_object* v___y_5865_, lean_object* v___y_5866_, lean_object* v___y_5867_){
_start:
{
lean_object* v_res_5868_; 
v_res_5868_ = l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg(v_msg_5862_, v___y_5863_, v___y_5864_, v___y_5865_, v___y_5866_);
lean_dec(v___y_5866_);
lean_dec_ref(v___y_5865_);
lean_dec(v___y_5864_);
lean_dec_ref(v___y_5863_);
return v_res_5868_;
}
}
LEAN_EXPORT uint8_t l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0___redArg(lean_object* v_k_5869_, lean_object* v_t_5870_){
_start:
{
if (lean_obj_tag(v_t_5870_) == 0)
{
lean_object* v_k_5871_; lean_object* v_l_5872_; lean_object* v_r_5873_; uint8_t v___x_5874_; 
v_k_5871_ = lean_ctor_get(v_t_5870_, 1);
v_l_5872_ = lean_ctor_get(v_t_5870_, 3);
v_r_5873_ = lean_ctor_get(v_t_5870_, 4);
v___x_5874_ = l___private_Lean_Data_Name_0__Lean_Name_quickCmpImpl(v_k_5869_, v_k_5871_);
switch(v___x_5874_)
{
case 0:
{
v_t_5870_ = v_l_5872_;
goto _start;
}
case 1:
{
uint8_t v___x_5876_; 
v___x_5876_ = 1;
return v___x_5876_;
}
default: 
{
v_t_5870_ = v_r_5873_;
goto _start;
}
}
}
else
{
uint8_t v___x_5878_; 
v___x_5878_ = 0;
return v___x_5878_;
}
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0___redArg___boxed(lean_object* v_k_5879_, lean_object* v_t_5880_){
_start:
{
uint8_t v_res_5881_; lean_object* v_r_5882_; 
v_res_5881_ = l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0___redArg(v_k_5879_, v_t_5880_);
lean_dec(v_t_5880_);
lean_dec(v_k_5879_);
v_r_5882_ = lean_box(v_res_5881_);
return v_r_5882_;
}
}
static lean_object* _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__3(void){
_start:
{
lean_object* v___x_5891_; lean_object* v___x_5892_; 
v___x_5891_ = ((lean_object*)(l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__2));
v___x_5892_ = l_Lean_stringToMessageData(v___x_5891_);
return v___x_5892_;
}
}
static lean_object* _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__5(void){
_start:
{
lean_object* v___x_5894_; lean_object* v___x_5895_; 
v___x_5894_ = ((lean_object*)(l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__4));
v___x_5895_ = l_Lean_stringToMessageData(v___x_5894_);
return v___x_5895_;
}
}
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg(lean_object* v_decVars_5896_, lean_object* v___y_5897_, lean_object* v___y_5898_, lean_object* v___y_5899_, lean_object* v___y_5900_, lean_object* v___y_5901_, lean_object* v___y_5902_, lean_object* v___y_5903_, lean_object* v___y_5904_, lean_object* v___y_5905_, lean_object* v___y_5906_, lean_object* v___y_5907_, lean_object* v___y_5908_){
_start:
{
lean_object* v___x_5910_; lean_object* v_cases_5911_; lean_object* v___x_5913_; uint8_t v_isShared_5914_; uint8_t v_isSharedCheck_5998_; 
v___x_5910_ = lean_st_ref_get(v___y_5897_);
v_cases_5911_ = lean_ctor_get(v___x_5910_, 0);
v_isSharedCheck_5998_ = !lean_is_exclusive(v___x_5910_);
if (v_isSharedCheck_5998_ == 0)
{
lean_object* v_unused_5999_; 
v_unused_5999_ = lean_ctor_get(v___x_5910_, 1);
lean_dec(v_unused_5999_);
v___x_5913_ = v___x_5910_;
v_isShared_5914_ = v_isSharedCheck_5998_;
goto v_resetjp_5912_;
}
else
{
lean_inc(v_cases_5911_);
lean_dec(v___x_5910_);
v___x_5913_ = lean_box(0);
v_isShared_5914_ = v_isSharedCheck_5998_;
goto v_resetjp_5912_;
}
v_resetjp_5912_:
{
lean_object* v_size_5915_; lean_object* v___x_5916_; lean_object* v___y_5918_; lean_object* v___y_5919_; lean_object* v___y_5920_; lean_object* v___y_5921_; lean_object* v___y_5922_; lean_object* v___y_5923_; lean_object* v___x_5971_; lean_object* v___y_5973_; lean_object* v___y_5974_; lean_object* v___y_5975_; lean_object* v___y_5976_; lean_object* v___y_5977_; lean_object* v___x_5986_; uint8_t v___x_5987_; 
v_size_5915_ = lean_ctor_get(v_cases_5911_, 2);
lean_inc(v_size_5915_);
lean_dec_ref(v_cases_5911_);
v___x_5916_ = lean_box(0);
v___x_5971_ = l_Lean_Meta_Grind_Arith_Linear_instInhabitedCase_default;
v___x_5986_ = lean_unsigned_to_nat(0u);
v___x_5987_ = lean_nat_dec_lt(v___x_5986_, v_size_5915_);
if (v___x_5987_ == 0)
{
lean_object* v___x_5988_; lean_object* v___x_5989_; 
v___x_5988_ = lean_obj_once(&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__5, &l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__5_once, _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__5);
v___x_5989_ = l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg(v___x_5988_, v___y_5905_, v___y_5906_, v___y_5907_, v___y_5908_);
if (lean_obj_tag(v___x_5989_) == 0)
{
lean_dec_ref(v___x_5989_);
v___y_5973_ = v___y_5897_;
v___y_5974_ = v___y_5905_;
v___y_5975_ = v___y_5906_;
v___y_5976_ = v___y_5907_;
v___y_5977_ = v___y_5908_;
goto v___jp_5972_;
}
else
{
lean_object* v_a_5990_; lean_object* v___x_5992_; uint8_t v_isShared_5993_; uint8_t v_isSharedCheck_5997_; 
lean_dec(v_size_5915_);
lean_del_object(v___x_5913_);
v_a_5990_ = lean_ctor_get(v___x_5989_, 0);
v_isSharedCheck_5997_ = !lean_is_exclusive(v___x_5989_);
if (v_isSharedCheck_5997_ == 0)
{
v___x_5992_ = v___x_5989_;
v_isShared_5993_ = v_isSharedCheck_5997_;
goto v_resetjp_5991_;
}
else
{
lean_inc(v_a_5990_);
lean_dec(v___x_5989_);
v___x_5992_ = lean_box(0);
v_isShared_5993_ = v_isSharedCheck_5997_;
goto v_resetjp_5991_;
}
v_resetjp_5991_:
{
lean_object* v___x_5995_; 
if (v_isShared_5993_ == 0)
{
v___x_5995_ = v___x_5992_;
goto v_reusejp_5994_;
}
else
{
lean_object* v_reuseFailAlloc_5996_; 
v_reuseFailAlloc_5996_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5996_, 0, v_a_5990_);
v___x_5995_ = v_reuseFailAlloc_5996_;
goto v_reusejp_5994_;
}
v_reusejp_5994_:
{
return v___x_5995_;
}
}
}
}
else
{
v___y_5973_ = v___y_5897_;
v___y_5974_ = v___y_5905_;
v___y_5975_ = v___y_5906_;
v___y_5976_ = v___y_5907_;
v___y_5977_ = v___y_5908_;
goto v___jp_5972_;
}
v___jp_5917_:
{
lean_object* v___x_5924_; lean_object* v_cases_5925_; lean_object* v_decVars_5926_; lean_object* v___x_5928_; uint8_t v_isShared_5929_; uint8_t v_isSharedCheck_5970_; 
v___x_5924_ = lean_st_ref_take(v___y_5919_);
v_cases_5925_ = lean_ctor_get(v___x_5924_, 0);
v_decVars_5926_ = lean_ctor_get(v___x_5924_, 1);
v_isSharedCheck_5970_ = !lean_is_exclusive(v___x_5924_);
if (v_isSharedCheck_5970_ == 0)
{
v___x_5928_ = v___x_5924_;
v_isShared_5929_ = v_isSharedCheck_5970_;
goto v_resetjp_5927_;
}
else
{
lean_inc(v_decVars_5926_);
lean_inc(v_cases_5925_);
lean_dec(v___x_5924_);
v___x_5928_ = lean_box(0);
v_isShared_5929_ = v_isSharedCheck_5970_;
goto v_resetjp_5927_;
}
v_resetjp_5927_:
{
lean_object* v___x_5930_; lean_object* v___x_5932_; 
v___x_5930_ = l_Lean_PersistentArray_pop___redArg(v_cases_5925_);
if (v_isShared_5929_ == 0)
{
lean_ctor_set(v___x_5928_, 0, v___x_5930_);
v___x_5932_ = v___x_5928_;
goto v_reusejp_5931_;
}
else
{
lean_object* v_reuseFailAlloc_5969_; 
v_reuseFailAlloc_5969_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5969_, 0, v___x_5930_);
lean_ctor_set(v_reuseFailAlloc_5969_, 1, v_decVars_5926_);
v___x_5932_ = v_reuseFailAlloc_5969_;
goto v_reusejp_5931_;
}
v_reusejp_5931_:
{
lean_object* v___x_5933_; lean_object* v_fvarId_5934_; uint8_t v___x_5935_; 
v___x_5933_ = lean_st_ref_set(v___y_5919_, v___x_5932_);
v_fvarId_5934_ = lean_ctor_get(v___y_5923_, 1);
v___x_5935_ = l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0___redArg(v_fvarId_5934_, v_decVars_5896_);
if (v___x_5935_ == 0)
{
lean_object* v___x_5936_; lean_object* v___x_5937_; 
lean_inc(v_fvarId_5934_);
lean_dec_ref(v___y_5923_);
v___x_5936_ = ((lean_object*)(l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1));
v___x_5937_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v___x_5936_, v___y_5921_);
if (lean_obj_tag(v___x_5937_) == 0)
{
lean_object* v_a_5938_; uint8_t v___x_5939_; 
v_a_5938_ = lean_ctor_get(v___x_5937_, 0);
lean_inc(v_a_5938_);
lean_dec_ref(v___x_5937_);
v___x_5939_ = lean_unbox(v_a_5938_);
lean_dec(v_a_5938_);
if (v___x_5939_ == 0)
{
lean_dec(v_fvarId_5934_);
lean_del_object(v___x_5913_);
goto _start;
}
else
{
lean_object* v___x_5941_; lean_object* v___x_5942_; lean_object* v___x_5944_; 
v___x_5941_ = lean_obj_once(&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__3, &l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__3_once, _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__3);
v___x_5942_ = l_Lean_MessageData_ofName(v_fvarId_5934_);
if (v_isShared_5914_ == 0)
{
lean_ctor_set_tag(v___x_5913_, 7);
lean_ctor_set(v___x_5913_, 1, v___x_5942_);
lean_ctor_set(v___x_5913_, 0, v___x_5941_);
v___x_5944_ = v___x_5913_;
goto v_reusejp_5943_;
}
else
{
lean_object* v_reuseFailAlloc_5955_; 
v_reuseFailAlloc_5955_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5955_, 0, v___x_5941_);
lean_ctor_set(v_reuseFailAlloc_5955_, 1, v___x_5942_);
v___x_5944_ = v_reuseFailAlloc_5955_;
goto v_reusejp_5943_;
}
v_reusejp_5943_:
{
lean_object* v___x_5945_; 
v___x_5945_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v___x_5936_, v___x_5944_, v___y_5918_, v___y_5920_, v___y_5921_, v___y_5922_);
if (lean_obj_tag(v___x_5945_) == 0)
{
lean_dec_ref(v___x_5945_);
goto _start;
}
else
{
lean_object* v_a_5947_; lean_object* v___x_5949_; uint8_t v_isShared_5950_; uint8_t v_isSharedCheck_5954_; 
v_a_5947_ = lean_ctor_get(v___x_5945_, 0);
v_isSharedCheck_5954_ = !lean_is_exclusive(v___x_5945_);
if (v_isSharedCheck_5954_ == 0)
{
v___x_5949_ = v___x_5945_;
v_isShared_5950_ = v_isSharedCheck_5954_;
goto v_resetjp_5948_;
}
else
{
lean_inc(v_a_5947_);
lean_dec(v___x_5945_);
v___x_5949_ = lean_box(0);
v_isShared_5950_ = v_isSharedCheck_5954_;
goto v_resetjp_5948_;
}
v_resetjp_5948_:
{
lean_object* v___x_5952_; 
if (v_isShared_5950_ == 0)
{
v___x_5952_ = v___x_5949_;
goto v_reusejp_5951_;
}
else
{
lean_object* v_reuseFailAlloc_5953_; 
v_reuseFailAlloc_5953_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5953_, 0, v_a_5947_);
v___x_5952_ = v_reuseFailAlloc_5953_;
goto v_reusejp_5951_;
}
v_reusejp_5951_:
{
return v___x_5952_;
}
}
}
}
}
}
else
{
lean_object* v_a_5956_; lean_object* v___x_5958_; uint8_t v_isShared_5959_; uint8_t v_isSharedCheck_5963_; 
lean_dec(v_fvarId_5934_);
lean_del_object(v___x_5913_);
v_a_5956_ = lean_ctor_get(v___x_5937_, 0);
v_isSharedCheck_5963_ = !lean_is_exclusive(v___x_5937_);
if (v_isSharedCheck_5963_ == 0)
{
v___x_5958_ = v___x_5937_;
v_isShared_5959_ = v_isSharedCheck_5963_;
goto v_resetjp_5957_;
}
else
{
lean_inc(v_a_5956_);
lean_dec(v___x_5937_);
v___x_5958_ = lean_box(0);
v_isShared_5959_ = v_isSharedCheck_5963_;
goto v_resetjp_5957_;
}
v_resetjp_5957_:
{
lean_object* v___x_5961_; 
if (v_isShared_5959_ == 0)
{
v___x_5961_ = v___x_5958_;
goto v_reusejp_5960_;
}
else
{
lean_object* v_reuseFailAlloc_5962_; 
v_reuseFailAlloc_5962_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5962_, 0, v_a_5956_);
v___x_5961_ = v_reuseFailAlloc_5962_;
goto v_reusejp_5960_;
}
v_reusejp_5960_:
{
return v___x_5961_;
}
}
}
}
else
{
lean_object* v___x_5964_; lean_object* v___x_5966_; 
v___x_5964_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_5964_, 0, v___y_5923_);
if (v_isShared_5914_ == 0)
{
lean_ctor_set(v___x_5913_, 1, v___x_5916_);
lean_ctor_set(v___x_5913_, 0, v___x_5964_);
v___x_5966_ = v___x_5913_;
goto v_reusejp_5965_;
}
else
{
lean_object* v_reuseFailAlloc_5968_; 
v_reuseFailAlloc_5968_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_5968_, 0, v___x_5964_);
lean_ctor_set(v_reuseFailAlloc_5968_, 1, v___x_5916_);
v___x_5966_ = v_reuseFailAlloc_5968_;
goto v_reusejp_5965_;
}
v_reusejp_5965_:
{
lean_object* v___x_5967_; 
v___x_5967_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_5967_, 0, v___x_5966_);
return v___x_5967_;
}
}
}
}
}
v___jp_5972_:
{
lean_object* v___x_5978_; lean_object* v_cases_5979_; lean_object* v_size_5980_; lean_object* v___x_5981_; lean_object* v___x_5982_; uint8_t v___x_5983_; 
v___x_5978_ = lean_st_ref_get(v___y_5973_);
v_cases_5979_ = lean_ctor_get(v___x_5978_, 0);
lean_inc_ref(v_cases_5979_);
lean_dec(v___x_5978_);
v_size_5980_ = lean_ctor_get(v_cases_5979_, 2);
v___x_5981_ = lean_unsigned_to_nat(1u);
v___x_5982_ = lean_nat_sub(v_size_5915_, v___x_5981_);
lean_dec(v_size_5915_);
v___x_5983_ = lean_nat_dec_lt(v___x_5982_, v_size_5980_);
if (v___x_5983_ == 0)
{
lean_object* v___x_5984_; 
lean_dec(v___x_5982_);
lean_dec_ref(v_cases_5979_);
v___x_5984_ = l_outOfBounds___redArg(v___x_5971_);
v___y_5918_ = v___y_5974_;
v___y_5919_ = v___y_5973_;
v___y_5920_ = v___y_5975_;
v___y_5921_ = v___y_5976_;
v___y_5922_ = v___y_5977_;
v___y_5923_ = v___x_5984_;
goto v___jp_5917_;
}
else
{
lean_object* v___x_5985_; 
v___x_5985_ = l_Lean_PersistentArray_get_x21___redArg(v___x_5971_, v_cases_5979_, v___x_5982_);
lean_dec(v___x_5982_);
v___y_5918_ = v___y_5974_;
v___y_5919_ = v___y_5973_;
v___y_5920_ = v___y_5975_;
v___y_5921_ = v___y_5976_;
v___y_5922_ = v___y_5977_;
v___y_5923_ = v___x_5985_;
goto v___jp_5917_;
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___boxed(lean_object* v_decVars_6000_, lean_object* v___y_6001_, lean_object* v___y_6002_, lean_object* v___y_6003_, lean_object* v___y_6004_, lean_object* v___y_6005_, lean_object* v___y_6006_, lean_object* v___y_6007_, lean_object* v___y_6008_, lean_object* v___y_6009_, lean_object* v___y_6010_, lean_object* v___y_6011_, lean_object* v___y_6012_, lean_object* v___y_6013_){
_start:
{
lean_object* v_res_6014_; 
v_res_6014_ = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg(v_decVars_6000_, v___y_6001_, v___y_6002_, v___y_6003_, v___y_6004_, v___y_6005_, v___y_6006_, v___y_6007_, v___y_6008_, v___y_6009_, v___y_6010_, v___y_6011_, v___y_6012_);
lean_dec(v___y_6012_);
lean_dec_ref(v___y_6011_);
lean_dec(v___y_6010_);
lean_dec_ref(v___y_6009_);
lean_dec(v___y_6008_);
lean_dec_ref(v___y_6007_);
lean_dec(v___y_6006_);
lean_dec_ref(v___y_6005_);
lean_dec(v___y_6004_);
lean_dec(v___y_6003_);
lean_dec(v___y_6002_);
lean_dec(v___y_6001_);
lean_dec(v_decVars_6000_);
return v_res_6014_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__3(void){
_start:
{
lean_object* v___x_6018_; lean_object* v___x_6019_; lean_object* v___x_6020_; lean_object* v___x_6021_; lean_object* v___x_6022_; lean_object* v___x_6023_; 
v___x_6018_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__2));
v___x_6019_ = lean_unsigned_to_nat(2u);
v___x_6020_ = lean_unsigned_to_nat(224u);
v___x_6021_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__1));
v___x_6022_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__0));
v___x_6023_ = l_mkPanicMessageWithDecl(v___x_6022_, v___x_6021_, v___x_6020_, v___x_6019_, v___x_6018_);
return v___x_6023_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase(lean_object* v_decVars_6024_, lean_object* v_a_6025_, lean_object* v_a_6026_, lean_object* v_a_6027_, lean_object* v_a_6028_, lean_object* v_a_6029_, lean_object* v_a_6030_, lean_object* v_a_6031_, lean_object* v_a_6032_, lean_object* v_a_6033_, lean_object* v_a_6034_, lean_object* v_a_6035_, lean_object* v_a_6036_){
_start:
{
lean_object* v___x_6038_; 
v___x_6038_ = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg(v_decVars_6024_, v_a_6025_, v_a_6026_, v_a_6027_, v_a_6028_, v_a_6029_, v_a_6030_, v_a_6031_, v_a_6032_, v_a_6033_, v_a_6034_, v_a_6035_, v_a_6036_);
if (lean_obj_tag(v___x_6038_) == 0)
{
lean_object* v_a_6039_; lean_object* v___x_6041_; uint8_t v_isShared_6042_; uint8_t v_isSharedCheck_6050_; 
v_a_6039_ = lean_ctor_get(v___x_6038_, 0);
v_isSharedCheck_6050_ = !lean_is_exclusive(v___x_6038_);
if (v_isSharedCheck_6050_ == 0)
{
v___x_6041_ = v___x_6038_;
v_isShared_6042_ = v_isSharedCheck_6050_;
goto v_resetjp_6040_;
}
else
{
lean_inc(v_a_6039_);
lean_dec(v___x_6038_);
v___x_6041_ = lean_box(0);
v_isShared_6042_ = v_isSharedCheck_6050_;
goto v_resetjp_6040_;
}
v_resetjp_6040_:
{
lean_object* v_fst_6043_; 
v_fst_6043_ = lean_ctor_get(v_a_6039_, 0);
lean_inc(v_fst_6043_);
lean_dec(v_a_6039_);
if (lean_obj_tag(v_fst_6043_) == 0)
{
lean_object* v___x_6044_; lean_object* v___x_6045_; 
lean_del_object(v___x_6041_);
v___x_6044_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__3, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__3_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___closed__3);
v___x_6045_ = l_panic___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__3(v___x_6044_, v_a_6025_, v_a_6026_, v_a_6027_, v_a_6028_, v_a_6029_, v_a_6030_, v_a_6031_, v_a_6032_, v_a_6033_, v_a_6034_, v_a_6035_, v_a_6036_);
return v___x_6045_;
}
else
{
lean_object* v_val_6046_; lean_object* v___x_6048_; 
lean_dec(v_a_6036_);
lean_dec_ref(v_a_6035_);
lean_dec(v_a_6034_);
lean_dec_ref(v_a_6033_);
lean_dec(v_a_6032_);
lean_dec_ref(v_a_6031_);
lean_dec(v_a_6030_);
lean_dec_ref(v_a_6029_);
lean_dec(v_a_6028_);
lean_dec(v_a_6027_);
lean_dec(v_a_6026_);
lean_dec(v_a_6025_);
v_val_6046_ = lean_ctor_get(v_fst_6043_, 0);
lean_inc(v_val_6046_);
lean_dec_ref(v_fst_6043_);
if (v_isShared_6042_ == 0)
{
lean_ctor_set(v___x_6041_, 0, v_val_6046_);
v___x_6048_ = v___x_6041_;
goto v_reusejp_6047_;
}
else
{
lean_object* v_reuseFailAlloc_6049_; 
v_reuseFailAlloc_6049_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6049_, 0, v_val_6046_);
v___x_6048_ = v_reuseFailAlloc_6049_;
goto v_reusejp_6047_;
}
v_reusejp_6047_:
{
return v___x_6048_;
}
}
}
}
else
{
lean_object* v_a_6051_; lean_object* v___x_6053_; uint8_t v_isShared_6054_; uint8_t v_isSharedCheck_6058_; 
lean_dec(v_a_6036_);
lean_dec_ref(v_a_6035_);
lean_dec(v_a_6034_);
lean_dec_ref(v_a_6033_);
lean_dec(v_a_6032_);
lean_dec_ref(v_a_6031_);
lean_dec(v_a_6030_);
lean_dec_ref(v_a_6029_);
lean_dec(v_a_6028_);
lean_dec(v_a_6027_);
lean_dec(v_a_6026_);
lean_dec(v_a_6025_);
v_a_6051_ = lean_ctor_get(v___x_6038_, 0);
v_isSharedCheck_6058_ = !lean_is_exclusive(v___x_6038_);
if (v_isSharedCheck_6058_ == 0)
{
v___x_6053_ = v___x_6038_;
v_isShared_6054_ = v_isSharedCheck_6058_;
goto v_resetjp_6052_;
}
else
{
lean_inc(v_a_6051_);
lean_dec(v___x_6038_);
v___x_6053_ = lean_box(0);
v_isShared_6054_ = v_isSharedCheck_6058_;
goto v_resetjp_6052_;
}
v_resetjp_6052_:
{
lean_object* v___x_6056_; 
if (v_isShared_6054_ == 0)
{
v___x_6056_ = v___x_6053_;
goto v_reusejp_6055_;
}
else
{
lean_object* v_reuseFailAlloc_6057_; 
v_reuseFailAlloc_6057_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6057_, 0, v_a_6051_);
v___x_6056_ = v_reuseFailAlloc_6057_;
goto v_reusejp_6055_;
}
v_reusejp_6055_:
{
return v___x_6056_;
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase___boxed(lean_object* v_decVars_6059_, lean_object* v_a_6060_, lean_object* v_a_6061_, lean_object* v_a_6062_, lean_object* v_a_6063_, lean_object* v_a_6064_, lean_object* v_a_6065_, lean_object* v_a_6066_, lean_object* v_a_6067_, lean_object* v_a_6068_, lean_object* v_a_6069_, lean_object* v_a_6070_, lean_object* v_a_6071_, lean_object* v_a_6072_){
_start:
{
lean_object* v_res_6073_; 
v_res_6073_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase(v_decVars_6059_, v_a_6060_, v_a_6061_, v_a_6062_, v_a_6063_, v_a_6064_, v_a_6065_, v_a_6066_, v_a_6067_, v_a_6068_, v_a_6069_, v_a_6070_, v_a_6071_);
lean_dec(v_decVars_6059_);
return v_res_6073_;
}
}
LEAN_EXPORT uint8_t l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0(lean_object* v_00_u03b2_6074_, lean_object* v_k_6075_, lean_object* v_t_6076_){
_start:
{
uint8_t v___x_6077_; 
v___x_6077_ = l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0___redArg(v_k_6075_, v_t_6076_);
return v___x_6077_;
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0___boxed(lean_object* v_00_u03b2_6078_, lean_object* v_k_6079_, lean_object* v_t_6080_){
_start:
{
uint8_t v_res_6081_; lean_object* v_r_6082_; 
v_res_6081_ = l_Std_DTreeMap_Internal_Impl_contains___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__0(v_00_u03b2_6078_, v_k_6079_, v_t_6080_);
lean_dec(v_t_6080_);
lean_dec(v_k_6079_);
v_r_6082_ = lean_box(v_res_6081_);
return v_r_6082_;
}
}
LEAN_EXPORT lean_object* l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1(lean_object* v_00_u03b1_6083_, lean_object* v_msg_6084_, lean_object* v___y_6085_, lean_object* v___y_6086_, lean_object* v___y_6087_, lean_object* v___y_6088_, lean_object* v___y_6089_, lean_object* v___y_6090_, lean_object* v___y_6091_, lean_object* v___y_6092_, lean_object* v___y_6093_, lean_object* v___y_6094_, lean_object* v___y_6095_, lean_object* v___y_6096_){
_start:
{
lean_object* v___x_6098_; 
v___x_6098_ = l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg(v_msg_6084_, v___y_6093_, v___y_6094_, v___y_6095_, v___y_6096_);
return v___x_6098_;
}
}
LEAN_EXPORT lean_object* l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___boxed(lean_object* v_00_u03b1_6099_, lean_object* v_msg_6100_, lean_object* v___y_6101_, lean_object* v___y_6102_, lean_object* v___y_6103_, lean_object* v___y_6104_, lean_object* v___y_6105_, lean_object* v___y_6106_, lean_object* v___y_6107_, lean_object* v___y_6108_, lean_object* v___y_6109_, lean_object* v___y_6110_, lean_object* v___y_6111_, lean_object* v___y_6112_, lean_object* v___y_6113_){
_start:
{
lean_object* v_res_6114_; 
v_res_6114_ = l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1(v_00_u03b1_6099_, v_msg_6100_, v___y_6101_, v___y_6102_, v___y_6103_, v___y_6104_, v___y_6105_, v___y_6106_, v___y_6107_, v___y_6108_, v___y_6109_, v___y_6110_, v___y_6111_, v___y_6112_);
lean_dec(v___y_6112_);
lean_dec_ref(v___y_6111_);
lean_dec(v___y_6110_);
lean_dec_ref(v___y_6109_);
lean_dec(v___y_6108_);
lean_dec_ref(v___y_6107_);
lean_dec(v___y_6106_);
lean_dec_ref(v___y_6105_);
lean_dec(v___y_6104_);
lean_dec(v___y_6103_);
lean_dec(v___y_6102_);
lean_dec(v___y_6101_);
return v_res_6114_;
}
}
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2(lean_object* v_decVars_6115_, lean_object* v_b_6116_, lean_object* v___y_6117_, lean_object* v___y_6118_, lean_object* v___y_6119_, lean_object* v___y_6120_, lean_object* v___y_6121_, lean_object* v___y_6122_, lean_object* v___y_6123_, lean_object* v___y_6124_, lean_object* v___y_6125_, lean_object* v___y_6126_, lean_object* v___y_6127_, lean_object* v___y_6128_){
_start:
{
lean_object* v___x_6130_; 
v___x_6130_ = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg(v_decVars_6115_, v___y_6117_, v___y_6118_, v___y_6119_, v___y_6120_, v___y_6121_, v___y_6122_, v___y_6123_, v___y_6124_, v___y_6125_, v___y_6126_, v___y_6127_, v___y_6128_);
return v___x_6130_;
}
}
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___boxed(lean_object* v_decVars_6131_, lean_object* v_b_6132_, lean_object* v___y_6133_, lean_object* v___y_6134_, lean_object* v___y_6135_, lean_object* v___y_6136_, lean_object* v___y_6137_, lean_object* v___y_6138_, lean_object* v___y_6139_, lean_object* v___y_6140_, lean_object* v___y_6141_, lean_object* v___y_6142_, lean_object* v___y_6143_, lean_object* v___y_6144_, lean_object* v___y_6145_){
_start:
{
lean_object* v_res_6146_; 
v_res_6146_ = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2(v_decVars_6131_, v_b_6132_, v___y_6133_, v___y_6134_, v___y_6135_, v___y_6136_, v___y_6137_, v___y_6138_, v___y_6139_, v___y_6140_, v___y_6141_, v___y_6142_, v___y_6143_, v___y_6144_);
lean_dec(v___y_6144_);
lean_dec_ref(v___y_6143_);
lean_dec(v___y_6142_);
lean_dec_ref(v___y_6141_);
lean_dec(v___y_6140_);
lean_dec_ref(v___y_6139_);
lean_dec(v___y_6138_);
lean_dec_ref(v___y_6137_);
lean_dec(v___y_6136_);
lean_dec(v___y_6135_);
lean_dec(v___y_6134_);
lean_dec(v___y_6133_);
lean_dec_ref(v_b_6132_);
lean_dec(v_decVars_6131_);
return v_res_6146_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___lam__0(lean_object* v___y_6147_, lean_object* v_a_6148_, lean_object* v_s_6149_){
_start:
{
lean_object* v_structs_6150_; lean_object* v_typeIdOf_6151_; lean_object* v_exprToStructId_6152_; lean_object* v_exprToStructIdEntries_6153_; lean_object* v_forbiddenNatModules_6154_; lean_object* v_natStructs_6155_; lean_object* v_natTypeIdOf_6156_; lean_object* v_exprToNatStructId_6157_; lean_object* v___x_6158_; uint8_t v___x_6159_; 
v_structs_6150_ = lean_ctor_get(v_s_6149_, 0);
v_typeIdOf_6151_ = lean_ctor_get(v_s_6149_, 1);
v_exprToStructId_6152_ = lean_ctor_get(v_s_6149_, 2);
v_exprToStructIdEntries_6153_ = lean_ctor_get(v_s_6149_, 3);
v_forbiddenNatModules_6154_ = lean_ctor_get(v_s_6149_, 4);
v_natStructs_6155_ = lean_ctor_get(v_s_6149_, 5);
v_natTypeIdOf_6156_ = lean_ctor_get(v_s_6149_, 6);
v_exprToNatStructId_6157_ = lean_ctor_get(v_s_6149_, 7);
v___x_6158_ = lean_array_get_size(v_structs_6150_);
v___x_6159_ = lean_nat_dec_lt(v___y_6147_, v___x_6158_);
if (v___x_6159_ == 0)
{
lean_dec_ref(v_a_6148_);
return v_s_6149_;
}
else
{
lean_object* v___x_6161_; uint8_t v_isShared_6162_; uint8_t v_isSharedCheck_6170_; 
lean_inc_ref(v_exprToNatStructId_6157_);
lean_inc_ref(v_natTypeIdOf_6156_);
lean_inc_ref(v_natStructs_6155_);
lean_inc_ref(v_forbiddenNatModules_6154_);
lean_inc_ref(v_exprToStructIdEntries_6153_);
lean_inc_ref(v_exprToStructId_6152_);
lean_inc_ref(v_typeIdOf_6151_);
lean_inc_ref(v_structs_6150_);
v_isSharedCheck_6170_ = !lean_is_exclusive(v_s_6149_);
if (v_isSharedCheck_6170_ == 0)
{
lean_object* v_unused_6171_; lean_object* v_unused_6172_; lean_object* v_unused_6173_; lean_object* v_unused_6174_; lean_object* v_unused_6175_; lean_object* v_unused_6176_; lean_object* v_unused_6177_; lean_object* v_unused_6178_; 
v_unused_6171_ = lean_ctor_get(v_s_6149_, 7);
lean_dec(v_unused_6171_);
v_unused_6172_ = lean_ctor_get(v_s_6149_, 6);
lean_dec(v_unused_6172_);
v_unused_6173_ = lean_ctor_get(v_s_6149_, 5);
lean_dec(v_unused_6173_);
v_unused_6174_ = lean_ctor_get(v_s_6149_, 4);
lean_dec(v_unused_6174_);
v_unused_6175_ = lean_ctor_get(v_s_6149_, 3);
lean_dec(v_unused_6175_);
v_unused_6176_ = lean_ctor_get(v_s_6149_, 2);
lean_dec(v_unused_6176_);
v_unused_6177_ = lean_ctor_get(v_s_6149_, 1);
lean_dec(v_unused_6177_);
v_unused_6178_ = lean_ctor_get(v_s_6149_, 0);
lean_dec(v_unused_6178_);
v___x_6161_ = v_s_6149_;
v_isShared_6162_ = v_isSharedCheck_6170_;
goto v_resetjp_6160_;
}
else
{
lean_dec(v_s_6149_);
v___x_6161_ = lean_box(0);
v_isShared_6162_ = v_isSharedCheck_6170_;
goto v_resetjp_6160_;
}
v_resetjp_6160_:
{
lean_object* v_saved_6163_; lean_object* v___x_6164_; lean_object* v_xs_x27_6165_; lean_object* v___x_6166_; lean_object* v___x_6168_; 
v_saved_6163_ = lean_ctor_get(v_a_6148_, 2);
lean_inc_ref(v_saved_6163_);
lean_dec_ref(v_a_6148_);
v___x_6164_ = lean_box(0);
v_xs_x27_6165_ = lean_array_fset(v_structs_6150_, v___y_6147_, v___x_6164_);
v___x_6166_ = lean_array_fset(v_xs_x27_6165_, v___y_6147_, v_saved_6163_);
if (v_isShared_6162_ == 0)
{
lean_ctor_set(v___x_6161_, 0, v___x_6166_);
v___x_6168_ = v___x_6161_;
goto v_reusejp_6167_;
}
else
{
lean_object* v_reuseFailAlloc_6169_; 
v_reuseFailAlloc_6169_ = lean_alloc_ctor(0, 8, 0);
lean_ctor_set(v_reuseFailAlloc_6169_, 0, v___x_6166_);
lean_ctor_set(v_reuseFailAlloc_6169_, 1, v_typeIdOf_6151_);
lean_ctor_set(v_reuseFailAlloc_6169_, 2, v_exprToStructId_6152_);
lean_ctor_set(v_reuseFailAlloc_6169_, 3, v_exprToStructIdEntries_6153_);
lean_ctor_set(v_reuseFailAlloc_6169_, 4, v_forbiddenNatModules_6154_);
lean_ctor_set(v_reuseFailAlloc_6169_, 5, v_natStructs_6155_);
lean_ctor_set(v_reuseFailAlloc_6169_, 6, v_natTypeIdOf_6156_);
lean_ctor_set(v_reuseFailAlloc_6169_, 7, v_exprToNatStructId_6157_);
v___x_6168_ = v_reuseFailAlloc_6169_;
goto v_reusejp_6167_;
}
v_reusejp_6167_:
{
return v___x_6168_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___lam__0___boxed(lean_object* v___y_6179_, lean_object* v_a_6180_, lean_object* v_s_6181_){
_start:
{
lean_object* v_res_6182_; 
v_res_6182_ = l_Lean_Meta_Grind_Arith_Linear_resolveConflict___lam__0(v___y_6179_, v_a_6180_, v_s_6181_);
lean_dec(v___y_6179_);
return v_res_6182_;
}
}
LEAN_EXPORT lean_object* l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__4(lean_object* v_a_6183_, lean_object* v_a_6184_){
_start:
{
if (lean_obj_tag(v_a_6183_) == 0)
{
lean_object* v___x_6185_; 
v___x_6185_ = l_List_reverse___redArg(v_a_6184_);
return v___x_6185_;
}
else
{
lean_object* v_head_6186_; lean_object* v_tail_6187_; lean_object* v___x_6189_; uint8_t v_isShared_6190_; uint8_t v_isSharedCheck_6195_; 
v_head_6186_ = lean_ctor_get(v_a_6183_, 0);
v_tail_6187_ = lean_ctor_get(v_a_6183_, 1);
v_isSharedCheck_6195_ = !lean_is_exclusive(v_a_6183_);
if (v_isSharedCheck_6195_ == 0)
{
v___x_6189_ = v_a_6183_;
v_isShared_6190_ = v_isSharedCheck_6195_;
goto v_resetjp_6188_;
}
else
{
lean_inc(v_tail_6187_);
lean_inc(v_head_6186_);
lean_dec(v_a_6183_);
v___x_6189_ = lean_box(0);
v_isShared_6190_ = v_isSharedCheck_6195_;
goto v_resetjp_6188_;
}
v_resetjp_6188_:
{
lean_object* v___x_6192_; 
if (v_isShared_6190_ == 0)
{
lean_ctor_set(v___x_6189_, 1, v_a_6184_);
v___x_6192_ = v___x_6189_;
goto v_reusejp_6191_;
}
else
{
lean_object* v_reuseFailAlloc_6194_; 
v_reuseFailAlloc_6194_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v_reuseFailAlloc_6194_, 0, v_head_6186_);
lean_ctor_set(v_reuseFailAlloc_6194_, 1, v_a_6184_);
v___x_6192_ = v_reuseFailAlloc_6194_;
goto v_reusejp_6191_;
}
v_reusejp_6191_:
{
v_a_6183_ = v_tail_6187_;
v_a_6184_ = v___x_6192_;
goto _start;
}
}
}
}
}
LEAN_EXPORT lean_object* l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__6(lean_object* v_a_6196_, lean_object* v_a_6197_){
_start:
{
if (lean_obj_tag(v_a_6196_) == 0)
{
lean_object* v___x_6198_; 
v___x_6198_ = l_List_reverse___redArg(v_a_6197_);
return v___x_6198_;
}
else
{
lean_object* v_head_6199_; lean_object* v_tail_6200_; lean_object* v___x_6202_; uint8_t v_isShared_6203_; uint8_t v_isSharedCheck_6209_; 
v_head_6199_ = lean_ctor_get(v_a_6196_, 0);
v_tail_6200_ = lean_ctor_get(v_a_6196_, 1);
v_isSharedCheck_6209_ = !lean_is_exclusive(v_a_6196_);
if (v_isSharedCheck_6209_ == 0)
{
v___x_6202_ = v_a_6196_;
v_isShared_6203_ = v_isSharedCheck_6209_;
goto v_resetjp_6201_;
}
else
{
lean_inc(v_tail_6200_);
lean_inc(v_head_6199_);
lean_dec(v_a_6196_);
v___x_6202_ = lean_box(0);
v_isShared_6203_ = v_isSharedCheck_6209_;
goto v_resetjp_6201_;
}
v_resetjp_6201_:
{
lean_object* v_fvarId_6204_; lean_object* v___x_6206_; 
v_fvarId_6204_ = lean_ctor_get(v_head_6199_, 1);
lean_inc(v_fvarId_6204_);
lean_dec(v_head_6199_);
if (v_isShared_6203_ == 0)
{
lean_ctor_set(v___x_6202_, 1, v_a_6197_);
lean_ctor_set(v___x_6202_, 0, v_fvarId_6204_);
v___x_6206_ = v___x_6202_;
goto v_reusejp_6205_;
}
else
{
lean_object* v_reuseFailAlloc_6208_; 
v_reuseFailAlloc_6208_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v_reuseFailAlloc_6208_, 0, v_fvarId_6204_);
lean_ctor_set(v_reuseFailAlloc_6208_, 1, v_a_6197_);
v___x_6206_ = v_reuseFailAlloc_6208_;
goto v_reusejp_6205_;
}
v_reusejp_6205_:
{
v_a_6196_ = v_tail_6200_;
v_a_6197_ = v___x_6206_;
goto _start;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_foldlM___at___00Std_DTreeMap_Internal_Impl_foldl___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__1_spec__1(lean_object* v_init_6210_, lean_object* v_x_6211_){
_start:
{
if (lean_obj_tag(v_x_6211_) == 0)
{
lean_object* v_k_6212_; lean_object* v_l_6213_; lean_object* v_r_6214_; lean_object* v___x_6215_; lean_object* v___x_6216_; 
v_k_6212_ = lean_ctor_get(v_x_6211_, 1);
lean_inc(v_k_6212_);
v_l_6213_ = lean_ctor_get(v_x_6211_, 3);
lean_inc(v_l_6213_);
v_r_6214_ = lean_ctor_get(v_x_6211_, 4);
lean_inc(v_r_6214_);
lean_dec_ref(v_x_6211_);
v___x_6215_ = l_Std_DTreeMap_Internal_Impl_foldlM___at___00Std_DTreeMap_Internal_Impl_foldl___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__1_spec__1(v_init_6210_, v_l_6213_);
v___x_6216_ = lean_array_push(v___x_6215_, v_k_6212_);
v_init_6210_ = v___x_6216_;
v_x_6211_ = v_r_6214_;
goto _start;
}
else
{
return v_init_6210_;
}
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___redArg(lean_object* v_k_6218_, lean_object* v_t_6219_){
_start:
{
if (lean_obj_tag(v_t_6219_) == 0)
{
lean_object* v_k_6220_; lean_object* v_v_6221_; lean_object* v_l_6222_; lean_object* v_r_6223_; lean_object* v___x_6225_; uint8_t v_isShared_6226_; uint8_t v_isSharedCheck_6877_; 
v_k_6220_ = lean_ctor_get(v_t_6219_, 1);
v_v_6221_ = lean_ctor_get(v_t_6219_, 2);
v_l_6222_ = lean_ctor_get(v_t_6219_, 3);
v_r_6223_ = lean_ctor_get(v_t_6219_, 4);
v_isSharedCheck_6877_ = !lean_is_exclusive(v_t_6219_);
if (v_isSharedCheck_6877_ == 0)
{
lean_object* v_unused_6878_; 
v_unused_6878_ = lean_ctor_get(v_t_6219_, 0);
lean_dec(v_unused_6878_);
v___x_6225_ = v_t_6219_;
v_isShared_6226_ = v_isSharedCheck_6877_;
goto v_resetjp_6224_;
}
else
{
lean_inc(v_r_6223_);
lean_inc(v_l_6222_);
lean_inc(v_v_6221_);
lean_inc(v_k_6220_);
lean_dec(v_t_6219_);
v___x_6225_ = lean_box(0);
v_isShared_6226_ = v_isSharedCheck_6877_;
goto v_resetjp_6224_;
}
v_resetjp_6224_:
{
uint8_t v___x_6227_; 
v___x_6227_ = l___private_Lean_Data_Name_0__Lean_Name_quickCmpImpl(v_k_6218_, v_k_6220_);
switch(v___x_6227_)
{
case 0:
{
lean_object* v_impl_6228_; lean_object* v___x_6229_; 
v_impl_6228_ = l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___redArg(v_k_6218_, v_l_6222_);
v___x_6229_ = lean_unsigned_to_nat(1u);
if (lean_obj_tag(v_impl_6228_) == 0)
{
if (lean_obj_tag(v_r_6223_) == 0)
{
lean_object* v_size_6230_; lean_object* v_size_6231_; lean_object* v_k_6232_; lean_object* v_v_6233_; lean_object* v_l_6234_; lean_object* v_r_6235_; lean_object* v___x_6236_; lean_object* v___x_6237_; uint8_t v___x_6238_; 
v_size_6230_ = lean_ctor_get(v_impl_6228_, 0);
lean_inc(v_size_6230_);
v_size_6231_ = lean_ctor_get(v_r_6223_, 0);
v_k_6232_ = lean_ctor_get(v_r_6223_, 1);
v_v_6233_ = lean_ctor_get(v_r_6223_, 2);
v_l_6234_ = lean_ctor_get(v_r_6223_, 3);
lean_inc(v_l_6234_);
v_r_6235_ = lean_ctor_get(v_r_6223_, 4);
v___x_6236_ = lean_unsigned_to_nat(3u);
v___x_6237_ = lean_nat_mul(v___x_6236_, v_size_6230_);
v___x_6238_ = lean_nat_dec_lt(v___x_6237_, v_size_6231_);
lean_dec(v___x_6237_);
if (v___x_6238_ == 0)
{
lean_object* v___x_6239_; lean_object* v___x_6240_; lean_object* v___x_6242_; 
lean_dec(v_l_6234_);
v___x_6239_ = lean_nat_add(v___x_6229_, v_size_6230_);
lean_dec(v_size_6230_);
v___x_6240_ = lean_nat_add(v___x_6239_, v_size_6231_);
lean_dec(v___x_6239_);
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 3, v_impl_6228_);
lean_ctor_set(v___x_6225_, 0, v___x_6240_);
v___x_6242_ = v___x_6225_;
goto v_reusejp_6241_;
}
else
{
lean_object* v_reuseFailAlloc_6243_; 
v_reuseFailAlloc_6243_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6243_, 0, v___x_6240_);
lean_ctor_set(v_reuseFailAlloc_6243_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6243_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6243_, 3, v_impl_6228_);
lean_ctor_set(v_reuseFailAlloc_6243_, 4, v_r_6223_);
v___x_6242_ = v_reuseFailAlloc_6243_;
goto v_reusejp_6241_;
}
v_reusejp_6241_:
{
return v___x_6242_;
}
}
else
{
lean_object* v___x_6245_; uint8_t v_isShared_6246_; uint8_t v_isSharedCheck_6307_; 
lean_inc(v_r_6235_);
lean_inc(v_v_6233_);
lean_inc(v_k_6232_);
lean_inc(v_size_6231_);
v_isSharedCheck_6307_ = !lean_is_exclusive(v_r_6223_);
if (v_isSharedCheck_6307_ == 0)
{
lean_object* v_unused_6308_; lean_object* v_unused_6309_; lean_object* v_unused_6310_; lean_object* v_unused_6311_; lean_object* v_unused_6312_; 
v_unused_6308_ = lean_ctor_get(v_r_6223_, 4);
lean_dec(v_unused_6308_);
v_unused_6309_ = lean_ctor_get(v_r_6223_, 3);
lean_dec(v_unused_6309_);
v_unused_6310_ = lean_ctor_get(v_r_6223_, 2);
lean_dec(v_unused_6310_);
v_unused_6311_ = lean_ctor_get(v_r_6223_, 1);
lean_dec(v_unused_6311_);
v_unused_6312_ = lean_ctor_get(v_r_6223_, 0);
lean_dec(v_unused_6312_);
v___x_6245_ = v_r_6223_;
v_isShared_6246_ = v_isSharedCheck_6307_;
goto v_resetjp_6244_;
}
else
{
lean_dec(v_r_6223_);
v___x_6245_ = lean_box(0);
v_isShared_6246_ = v_isSharedCheck_6307_;
goto v_resetjp_6244_;
}
v_resetjp_6244_:
{
lean_object* v_size_6247_; lean_object* v_k_6248_; lean_object* v_v_6249_; lean_object* v_l_6250_; lean_object* v_r_6251_; lean_object* v_size_6252_; lean_object* v___x_6253_; lean_object* v___x_6254_; uint8_t v___x_6255_; 
v_size_6247_ = lean_ctor_get(v_l_6234_, 0);
v_k_6248_ = lean_ctor_get(v_l_6234_, 1);
v_v_6249_ = lean_ctor_get(v_l_6234_, 2);
v_l_6250_ = lean_ctor_get(v_l_6234_, 3);
v_r_6251_ = lean_ctor_get(v_l_6234_, 4);
v_size_6252_ = lean_ctor_get(v_r_6235_, 0);
v___x_6253_ = lean_unsigned_to_nat(2u);
v___x_6254_ = lean_nat_mul(v___x_6253_, v_size_6252_);
v___x_6255_ = lean_nat_dec_lt(v_size_6247_, v___x_6254_);
lean_dec(v___x_6254_);
if (v___x_6255_ == 0)
{
lean_object* v___x_6257_; uint8_t v_isShared_6258_; uint8_t v_isSharedCheck_6283_; 
lean_inc(v_r_6251_);
lean_inc(v_l_6250_);
lean_inc(v_v_6249_);
lean_inc(v_k_6248_);
v_isSharedCheck_6283_ = !lean_is_exclusive(v_l_6234_);
if (v_isSharedCheck_6283_ == 0)
{
lean_object* v_unused_6284_; lean_object* v_unused_6285_; lean_object* v_unused_6286_; lean_object* v_unused_6287_; lean_object* v_unused_6288_; 
v_unused_6284_ = lean_ctor_get(v_l_6234_, 4);
lean_dec(v_unused_6284_);
v_unused_6285_ = lean_ctor_get(v_l_6234_, 3);
lean_dec(v_unused_6285_);
v_unused_6286_ = lean_ctor_get(v_l_6234_, 2);
lean_dec(v_unused_6286_);
v_unused_6287_ = lean_ctor_get(v_l_6234_, 1);
lean_dec(v_unused_6287_);
v_unused_6288_ = lean_ctor_get(v_l_6234_, 0);
lean_dec(v_unused_6288_);
v___x_6257_ = v_l_6234_;
v_isShared_6258_ = v_isSharedCheck_6283_;
goto v_resetjp_6256_;
}
else
{
lean_dec(v_l_6234_);
v___x_6257_ = lean_box(0);
v_isShared_6258_ = v_isSharedCheck_6283_;
goto v_resetjp_6256_;
}
v_resetjp_6256_:
{
lean_object* v___x_6259_; lean_object* v___x_6260_; lean_object* v___y_6262_; lean_object* v___y_6263_; lean_object* v___y_6264_; lean_object* v___y_6273_; 
v___x_6259_ = lean_nat_add(v___x_6229_, v_size_6230_);
lean_dec(v_size_6230_);
v___x_6260_ = lean_nat_add(v___x_6259_, v_size_6231_);
lean_dec(v_size_6231_);
if (lean_obj_tag(v_l_6250_) == 0)
{
lean_object* v_size_6281_; 
v_size_6281_ = lean_ctor_get(v_l_6250_, 0);
lean_inc(v_size_6281_);
v___y_6273_ = v_size_6281_;
goto v___jp_6272_;
}
else
{
lean_object* v___x_6282_; 
v___x_6282_ = lean_unsigned_to_nat(0u);
v___y_6273_ = v___x_6282_;
goto v___jp_6272_;
}
v___jp_6261_:
{
lean_object* v___x_6265_; lean_object* v___x_6267_; 
v___x_6265_ = lean_nat_add(v___y_6262_, v___y_6264_);
lean_dec(v___y_6264_);
lean_dec(v___y_6262_);
if (v_isShared_6258_ == 0)
{
lean_ctor_set(v___x_6257_, 4, v_r_6235_);
lean_ctor_set(v___x_6257_, 3, v_r_6251_);
lean_ctor_set(v___x_6257_, 2, v_v_6233_);
lean_ctor_set(v___x_6257_, 1, v_k_6232_);
lean_ctor_set(v___x_6257_, 0, v___x_6265_);
v___x_6267_ = v___x_6257_;
goto v_reusejp_6266_;
}
else
{
lean_object* v_reuseFailAlloc_6271_; 
v_reuseFailAlloc_6271_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6271_, 0, v___x_6265_);
lean_ctor_set(v_reuseFailAlloc_6271_, 1, v_k_6232_);
lean_ctor_set(v_reuseFailAlloc_6271_, 2, v_v_6233_);
lean_ctor_set(v_reuseFailAlloc_6271_, 3, v_r_6251_);
lean_ctor_set(v_reuseFailAlloc_6271_, 4, v_r_6235_);
v___x_6267_ = v_reuseFailAlloc_6271_;
goto v_reusejp_6266_;
}
v_reusejp_6266_:
{
lean_object* v___x_6269_; 
if (v_isShared_6246_ == 0)
{
lean_ctor_set(v___x_6245_, 4, v___x_6267_);
lean_ctor_set(v___x_6245_, 3, v___y_6263_);
lean_ctor_set(v___x_6245_, 2, v_v_6249_);
lean_ctor_set(v___x_6245_, 1, v_k_6248_);
lean_ctor_set(v___x_6245_, 0, v___x_6260_);
v___x_6269_ = v___x_6245_;
goto v_reusejp_6268_;
}
else
{
lean_object* v_reuseFailAlloc_6270_; 
v_reuseFailAlloc_6270_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6270_, 0, v___x_6260_);
lean_ctor_set(v_reuseFailAlloc_6270_, 1, v_k_6248_);
lean_ctor_set(v_reuseFailAlloc_6270_, 2, v_v_6249_);
lean_ctor_set(v_reuseFailAlloc_6270_, 3, v___y_6263_);
lean_ctor_set(v_reuseFailAlloc_6270_, 4, v___x_6267_);
v___x_6269_ = v_reuseFailAlloc_6270_;
goto v_reusejp_6268_;
}
v_reusejp_6268_:
{
return v___x_6269_;
}
}
}
v___jp_6272_:
{
lean_object* v___x_6274_; lean_object* v___x_6276_; 
v___x_6274_ = lean_nat_add(v___x_6259_, v___y_6273_);
lean_dec(v___y_6273_);
lean_dec(v___x_6259_);
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v_l_6250_);
lean_ctor_set(v___x_6225_, 3, v_impl_6228_);
lean_ctor_set(v___x_6225_, 0, v___x_6274_);
v___x_6276_ = v___x_6225_;
goto v_reusejp_6275_;
}
else
{
lean_object* v_reuseFailAlloc_6280_; 
v_reuseFailAlloc_6280_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6280_, 0, v___x_6274_);
lean_ctor_set(v_reuseFailAlloc_6280_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6280_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6280_, 3, v_impl_6228_);
lean_ctor_set(v_reuseFailAlloc_6280_, 4, v_l_6250_);
v___x_6276_ = v_reuseFailAlloc_6280_;
goto v_reusejp_6275_;
}
v_reusejp_6275_:
{
lean_object* v___x_6277_; 
v___x_6277_ = lean_nat_add(v___x_6229_, v_size_6252_);
if (lean_obj_tag(v_r_6251_) == 0)
{
lean_object* v_size_6278_; 
v_size_6278_ = lean_ctor_get(v_r_6251_, 0);
lean_inc(v_size_6278_);
v___y_6262_ = v___x_6277_;
v___y_6263_ = v___x_6276_;
v___y_6264_ = v_size_6278_;
goto v___jp_6261_;
}
else
{
lean_object* v___x_6279_; 
v___x_6279_ = lean_unsigned_to_nat(0u);
v___y_6262_ = v___x_6277_;
v___y_6263_ = v___x_6276_;
v___y_6264_ = v___x_6279_;
goto v___jp_6261_;
}
}
}
}
}
else
{
lean_object* v___x_6289_; lean_object* v___x_6290_; lean_object* v___x_6291_; lean_object* v___x_6293_; 
lean_del_object(v___x_6225_);
v___x_6289_ = lean_nat_add(v___x_6229_, v_size_6230_);
lean_dec(v_size_6230_);
v___x_6290_ = lean_nat_add(v___x_6289_, v_size_6231_);
lean_dec(v_size_6231_);
v___x_6291_ = lean_nat_add(v___x_6289_, v_size_6247_);
lean_dec(v___x_6289_);
lean_inc_ref(v_impl_6228_);
if (v_isShared_6246_ == 0)
{
lean_ctor_set(v___x_6245_, 4, v_l_6234_);
lean_ctor_set(v___x_6245_, 3, v_impl_6228_);
lean_ctor_set(v___x_6245_, 2, v_v_6221_);
lean_ctor_set(v___x_6245_, 1, v_k_6220_);
lean_ctor_set(v___x_6245_, 0, v___x_6291_);
v___x_6293_ = v___x_6245_;
goto v_reusejp_6292_;
}
else
{
lean_object* v_reuseFailAlloc_6306_; 
v_reuseFailAlloc_6306_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6306_, 0, v___x_6291_);
lean_ctor_set(v_reuseFailAlloc_6306_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6306_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6306_, 3, v_impl_6228_);
lean_ctor_set(v_reuseFailAlloc_6306_, 4, v_l_6234_);
v___x_6293_ = v_reuseFailAlloc_6306_;
goto v_reusejp_6292_;
}
v_reusejp_6292_:
{
lean_object* v___x_6295_; uint8_t v_isShared_6296_; uint8_t v_isSharedCheck_6300_; 
v_isSharedCheck_6300_ = !lean_is_exclusive(v_impl_6228_);
if (v_isSharedCheck_6300_ == 0)
{
lean_object* v_unused_6301_; lean_object* v_unused_6302_; lean_object* v_unused_6303_; lean_object* v_unused_6304_; lean_object* v_unused_6305_; 
v_unused_6301_ = lean_ctor_get(v_impl_6228_, 4);
lean_dec(v_unused_6301_);
v_unused_6302_ = lean_ctor_get(v_impl_6228_, 3);
lean_dec(v_unused_6302_);
v_unused_6303_ = lean_ctor_get(v_impl_6228_, 2);
lean_dec(v_unused_6303_);
v_unused_6304_ = lean_ctor_get(v_impl_6228_, 1);
lean_dec(v_unused_6304_);
v_unused_6305_ = lean_ctor_get(v_impl_6228_, 0);
lean_dec(v_unused_6305_);
v___x_6295_ = v_impl_6228_;
v_isShared_6296_ = v_isSharedCheck_6300_;
goto v_resetjp_6294_;
}
else
{
lean_dec(v_impl_6228_);
v___x_6295_ = lean_box(0);
v_isShared_6296_ = v_isSharedCheck_6300_;
goto v_resetjp_6294_;
}
v_resetjp_6294_:
{
lean_object* v___x_6298_; 
if (v_isShared_6296_ == 0)
{
lean_ctor_set(v___x_6295_, 4, v_r_6235_);
lean_ctor_set(v___x_6295_, 3, v___x_6293_);
lean_ctor_set(v___x_6295_, 2, v_v_6233_);
lean_ctor_set(v___x_6295_, 1, v_k_6232_);
lean_ctor_set(v___x_6295_, 0, v___x_6290_);
v___x_6298_ = v___x_6295_;
goto v_reusejp_6297_;
}
else
{
lean_object* v_reuseFailAlloc_6299_; 
v_reuseFailAlloc_6299_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6299_, 0, v___x_6290_);
lean_ctor_set(v_reuseFailAlloc_6299_, 1, v_k_6232_);
lean_ctor_set(v_reuseFailAlloc_6299_, 2, v_v_6233_);
lean_ctor_set(v_reuseFailAlloc_6299_, 3, v___x_6293_);
lean_ctor_set(v_reuseFailAlloc_6299_, 4, v_r_6235_);
v___x_6298_ = v_reuseFailAlloc_6299_;
goto v_reusejp_6297_;
}
v_reusejp_6297_:
{
return v___x_6298_;
}
}
}
}
}
}
}
else
{
lean_object* v_size_6313_; lean_object* v___x_6314_; lean_object* v___x_6316_; 
v_size_6313_ = lean_ctor_get(v_impl_6228_, 0);
lean_inc(v_size_6313_);
v___x_6314_ = lean_nat_add(v___x_6229_, v_size_6313_);
lean_dec(v_size_6313_);
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 3, v_impl_6228_);
lean_ctor_set(v___x_6225_, 0, v___x_6314_);
v___x_6316_ = v___x_6225_;
goto v_reusejp_6315_;
}
else
{
lean_object* v_reuseFailAlloc_6317_; 
v_reuseFailAlloc_6317_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6317_, 0, v___x_6314_);
lean_ctor_set(v_reuseFailAlloc_6317_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6317_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6317_, 3, v_impl_6228_);
lean_ctor_set(v_reuseFailAlloc_6317_, 4, v_r_6223_);
v___x_6316_ = v_reuseFailAlloc_6317_;
goto v_reusejp_6315_;
}
v_reusejp_6315_:
{
return v___x_6316_;
}
}
}
else
{
if (lean_obj_tag(v_r_6223_) == 0)
{
lean_object* v_l_6318_; 
v_l_6318_ = lean_ctor_get(v_r_6223_, 3);
lean_inc(v_l_6318_);
if (lean_obj_tag(v_l_6318_) == 0)
{
lean_object* v_r_6319_; 
v_r_6319_ = lean_ctor_get(v_r_6223_, 4);
lean_inc(v_r_6319_);
if (lean_obj_tag(v_r_6319_) == 0)
{
lean_object* v_size_6320_; lean_object* v_k_6321_; lean_object* v_v_6322_; lean_object* v___x_6324_; uint8_t v_isShared_6325_; uint8_t v_isSharedCheck_6335_; 
v_size_6320_ = lean_ctor_get(v_r_6223_, 0);
v_k_6321_ = lean_ctor_get(v_r_6223_, 1);
v_v_6322_ = lean_ctor_get(v_r_6223_, 2);
v_isSharedCheck_6335_ = !lean_is_exclusive(v_r_6223_);
if (v_isSharedCheck_6335_ == 0)
{
lean_object* v_unused_6336_; lean_object* v_unused_6337_; 
v_unused_6336_ = lean_ctor_get(v_r_6223_, 4);
lean_dec(v_unused_6336_);
v_unused_6337_ = lean_ctor_get(v_r_6223_, 3);
lean_dec(v_unused_6337_);
v___x_6324_ = v_r_6223_;
v_isShared_6325_ = v_isSharedCheck_6335_;
goto v_resetjp_6323_;
}
else
{
lean_inc(v_v_6322_);
lean_inc(v_k_6321_);
lean_inc(v_size_6320_);
lean_dec(v_r_6223_);
v___x_6324_ = lean_box(0);
v_isShared_6325_ = v_isSharedCheck_6335_;
goto v_resetjp_6323_;
}
v_resetjp_6323_:
{
lean_object* v_size_6326_; lean_object* v___x_6327_; lean_object* v___x_6328_; lean_object* v___x_6330_; 
v_size_6326_ = lean_ctor_get(v_l_6318_, 0);
v___x_6327_ = lean_nat_add(v___x_6229_, v_size_6320_);
lean_dec(v_size_6320_);
v___x_6328_ = lean_nat_add(v___x_6229_, v_size_6326_);
if (v_isShared_6325_ == 0)
{
lean_ctor_set(v___x_6324_, 4, v_l_6318_);
lean_ctor_set(v___x_6324_, 3, v_impl_6228_);
lean_ctor_set(v___x_6324_, 2, v_v_6221_);
lean_ctor_set(v___x_6324_, 1, v_k_6220_);
lean_ctor_set(v___x_6324_, 0, v___x_6328_);
v___x_6330_ = v___x_6324_;
goto v_reusejp_6329_;
}
else
{
lean_object* v_reuseFailAlloc_6334_; 
v_reuseFailAlloc_6334_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6334_, 0, v___x_6328_);
lean_ctor_set(v_reuseFailAlloc_6334_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6334_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6334_, 3, v_impl_6228_);
lean_ctor_set(v_reuseFailAlloc_6334_, 4, v_l_6318_);
v___x_6330_ = v_reuseFailAlloc_6334_;
goto v_reusejp_6329_;
}
v_reusejp_6329_:
{
lean_object* v___x_6332_; 
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v_r_6319_);
lean_ctor_set(v___x_6225_, 3, v___x_6330_);
lean_ctor_set(v___x_6225_, 2, v_v_6322_);
lean_ctor_set(v___x_6225_, 1, v_k_6321_);
lean_ctor_set(v___x_6225_, 0, v___x_6327_);
v___x_6332_ = v___x_6225_;
goto v_reusejp_6331_;
}
else
{
lean_object* v_reuseFailAlloc_6333_; 
v_reuseFailAlloc_6333_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6333_, 0, v___x_6327_);
lean_ctor_set(v_reuseFailAlloc_6333_, 1, v_k_6321_);
lean_ctor_set(v_reuseFailAlloc_6333_, 2, v_v_6322_);
lean_ctor_set(v_reuseFailAlloc_6333_, 3, v___x_6330_);
lean_ctor_set(v_reuseFailAlloc_6333_, 4, v_r_6319_);
v___x_6332_ = v_reuseFailAlloc_6333_;
goto v_reusejp_6331_;
}
v_reusejp_6331_:
{
return v___x_6332_;
}
}
}
}
else
{
lean_object* v_k_6338_; lean_object* v_v_6339_; lean_object* v___x_6341_; uint8_t v_isShared_6342_; uint8_t v_isSharedCheck_6362_; 
v_k_6338_ = lean_ctor_get(v_r_6223_, 1);
v_v_6339_ = lean_ctor_get(v_r_6223_, 2);
v_isSharedCheck_6362_ = !lean_is_exclusive(v_r_6223_);
if (v_isSharedCheck_6362_ == 0)
{
lean_object* v_unused_6363_; lean_object* v_unused_6364_; lean_object* v_unused_6365_; 
v_unused_6363_ = lean_ctor_get(v_r_6223_, 4);
lean_dec(v_unused_6363_);
v_unused_6364_ = lean_ctor_get(v_r_6223_, 3);
lean_dec(v_unused_6364_);
v_unused_6365_ = lean_ctor_get(v_r_6223_, 0);
lean_dec(v_unused_6365_);
v___x_6341_ = v_r_6223_;
v_isShared_6342_ = v_isSharedCheck_6362_;
goto v_resetjp_6340_;
}
else
{
lean_inc(v_v_6339_);
lean_inc(v_k_6338_);
lean_dec(v_r_6223_);
v___x_6341_ = lean_box(0);
v_isShared_6342_ = v_isSharedCheck_6362_;
goto v_resetjp_6340_;
}
v_resetjp_6340_:
{
lean_object* v_k_6343_; lean_object* v_v_6344_; lean_object* v___x_6346_; uint8_t v_isShared_6347_; uint8_t v_isSharedCheck_6358_; 
v_k_6343_ = lean_ctor_get(v_l_6318_, 1);
v_v_6344_ = lean_ctor_get(v_l_6318_, 2);
v_isSharedCheck_6358_ = !lean_is_exclusive(v_l_6318_);
if (v_isSharedCheck_6358_ == 0)
{
lean_object* v_unused_6359_; lean_object* v_unused_6360_; lean_object* v_unused_6361_; 
v_unused_6359_ = lean_ctor_get(v_l_6318_, 4);
lean_dec(v_unused_6359_);
v_unused_6360_ = lean_ctor_get(v_l_6318_, 3);
lean_dec(v_unused_6360_);
v_unused_6361_ = lean_ctor_get(v_l_6318_, 0);
lean_dec(v_unused_6361_);
v___x_6346_ = v_l_6318_;
v_isShared_6347_ = v_isSharedCheck_6358_;
goto v_resetjp_6345_;
}
else
{
lean_inc(v_v_6344_);
lean_inc(v_k_6343_);
lean_dec(v_l_6318_);
v___x_6346_ = lean_box(0);
v_isShared_6347_ = v_isSharedCheck_6358_;
goto v_resetjp_6345_;
}
v_resetjp_6345_:
{
lean_object* v___x_6348_; lean_object* v___x_6350_; 
v___x_6348_ = lean_unsigned_to_nat(3u);
if (v_isShared_6347_ == 0)
{
lean_ctor_set(v___x_6346_, 4, v_r_6319_);
lean_ctor_set(v___x_6346_, 3, v_r_6319_);
lean_ctor_set(v___x_6346_, 2, v_v_6221_);
lean_ctor_set(v___x_6346_, 1, v_k_6220_);
lean_ctor_set(v___x_6346_, 0, v___x_6229_);
v___x_6350_ = v___x_6346_;
goto v_reusejp_6349_;
}
else
{
lean_object* v_reuseFailAlloc_6357_; 
v_reuseFailAlloc_6357_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6357_, 0, v___x_6229_);
lean_ctor_set(v_reuseFailAlloc_6357_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6357_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6357_, 3, v_r_6319_);
lean_ctor_set(v_reuseFailAlloc_6357_, 4, v_r_6319_);
v___x_6350_ = v_reuseFailAlloc_6357_;
goto v_reusejp_6349_;
}
v_reusejp_6349_:
{
lean_object* v___x_6352_; 
if (v_isShared_6342_ == 0)
{
lean_ctor_set(v___x_6341_, 3, v_r_6319_);
lean_ctor_set(v___x_6341_, 0, v___x_6229_);
v___x_6352_ = v___x_6341_;
goto v_reusejp_6351_;
}
else
{
lean_object* v_reuseFailAlloc_6356_; 
v_reuseFailAlloc_6356_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6356_, 0, v___x_6229_);
lean_ctor_set(v_reuseFailAlloc_6356_, 1, v_k_6338_);
lean_ctor_set(v_reuseFailAlloc_6356_, 2, v_v_6339_);
lean_ctor_set(v_reuseFailAlloc_6356_, 3, v_r_6319_);
lean_ctor_set(v_reuseFailAlloc_6356_, 4, v_r_6319_);
v___x_6352_ = v_reuseFailAlloc_6356_;
goto v_reusejp_6351_;
}
v_reusejp_6351_:
{
lean_object* v___x_6354_; 
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v___x_6352_);
lean_ctor_set(v___x_6225_, 3, v___x_6350_);
lean_ctor_set(v___x_6225_, 2, v_v_6344_);
lean_ctor_set(v___x_6225_, 1, v_k_6343_);
lean_ctor_set(v___x_6225_, 0, v___x_6348_);
v___x_6354_ = v___x_6225_;
goto v_reusejp_6353_;
}
else
{
lean_object* v_reuseFailAlloc_6355_; 
v_reuseFailAlloc_6355_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6355_, 0, v___x_6348_);
lean_ctor_set(v_reuseFailAlloc_6355_, 1, v_k_6343_);
lean_ctor_set(v_reuseFailAlloc_6355_, 2, v_v_6344_);
lean_ctor_set(v_reuseFailAlloc_6355_, 3, v___x_6350_);
lean_ctor_set(v_reuseFailAlloc_6355_, 4, v___x_6352_);
v___x_6354_ = v_reuseFailAlloc_6355_;
goto v_reusejp_6353_;
}
v_reusejp_6353_:
{
return v___x_6354_;
}
}
}
}
}
}
}
else
{
lean_object* v_r_6366_; 
v_r_6366_ = lean_ctor_get(v_r_6223_, 4);
lean_inc(v_r_6366_);
if (lean_obj_tag(v_r_6366_) == 0)
{
lean_object* v_k_6367_; lean_object* v_v_6368_; lean_object* v___x_6370_; uint8_t v_isShared_6371_; uint8_t v_isSharedCheck_6379_; 
v_k_6367_ = lean_ctor_get(v_r_6223_, 1);
v_v_6368_ = lean_ctor_get(v_r_6223_, 2);
v_isSharedCheck_6379_ = !lean_is_exclusive(v_r_6223_);
if (v_isSharedCheck_6379_ == 0)
{
lean_object* v_unused_6380_; lean_object* v_unused_6381_; lean_object* v_unused_6382_; 
v_unused_6380_ = lean_ctor_get(v_r_6223_, 4);
lean_dec(v_unused_6380_);
v_unused_6381_ = lean_ctor_get(v_r_6223_, 3);
lean_dec(v_unused_6381_);
v_unused_6382_ = lean_ctor_get(v_r_6223_, 0);
lean_dec(v_unused_6382_);
v___x_6370_ = v_r_6223_;
v_isShared_6371_ = v_isSharedCheck_6379_;
goto v_resetjp_6369_;
}
else
{
lean_inc(v_v_6368_);
lean_inc(v_k_6367_);
lean_dec(v_r_6223_);
v___x_6370_ = lean_box(0);
v_isShared_6371_ = v_isSharedCheck_6379_;
goto v_resetjp_6369_;
}
v_resetjp_6369_:
{
lean_object* v___x_6372_; lean_object* v___x_6374_; 
v___x_6372_ = lean_unsigned_to_nat(3u);
if (v_isShared_6371_ == 0)
{
lean_ctor_set(v___x_6370_, 4, v_l_6318_);
lean_ctor_set(v___x_6370_, 2, v_v_6221_);
lean_ctor_set(v___x_6370_, 1, v_k_6220_);
lean_ctor_set(v___x_6370_, 0, v___x_6229_);
v___x_6374_ = v___x_6370_;
goto v_reusejp_6373_;
}
else
{
lean_object* v_reuseFailAlloc_6378_; 
v_reuseFailAlloc_6378_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6378_, 0, v___x_6229_);
lean_ctor_set(v_reuseFailAlloc_6378_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6378_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6378_, 3, v_l_6318_);
lean_ctor_set(v_reuseFailAlloc_6378_, 4, v_l_6318_);
v___x_6374_ = v_reuseFailAlloc_6378_;
goto v_reusejp_6373_;
}
v_reusejp_6373_:
{
lean_object* v___x_6376_; 
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v_r_6366_);
lean_ctor_set(v___x_6225_, 3, v___x_6374_);
lean_ctor_set(v___x_6225_, 2, v_v_6368_);
lean_ctor_set(v___x_6225_, 1, v_k_6367_);
lean_ctor_set(v___x_6225_, 0, v___x_6372_);
v___x_6376_ = v___x_6225_;
goto v_reusejp_6375_;
}
else
{
lean_object* v_reuseFailAlloc_6377_; 
v_reuseFailAlloc_6377_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6377_, 0, v___x_6372_);
lean_ctor_set(v_reuseFailAlloc_6377_, 1, v_k_6367_);
lean_ctor_set(v_reuseFailAlloc_6377_, 2, v_v_6368_);
lean_ctor_set(v_reuseFailAlloc_6377_, 3, v___x_6374_);
lean_ctor_set(v_reuseFailAlloc_6377_, 4, v_r_6366_);
v___x_6376_ = v_reuseFailAlloc_6377_;
goto v_reusejp_6375_;
}
v_reusejp_6375_:
{
return v___x_6376_;
}
}
}
}
else
{
lean_object* v_size_6383_; lean_object* v_k_6384_; lean_object* v_v_6385_; lean_object* v___x_6387_; uint8_t v_isShared_6388_; uint8_t v_isSharedCheck_6396_; 
v_size_6383_ = lean_ctor_get(v_r_6223_, 0);
v_k_6384_ = lean_ctor_get(v_r_6223_, 1);
v_v_6385_ = lean_ctor_get(v_r_6223_, 2);
v_isSharedCheck_6396_ = !lean_is_exclusive(v_r_6223_);
if (v_isSharedCheck_6396_ == 0)
{
lean_object* v_unused_6397_; lean_object* v_unused_6398_; 
v_unused_6397_ = lean_ctor_get(v_r_6223_, 4);
lean_dec(v_unused_6397_);
v_unused_6398_ = lean_ctor_get(v_r_6223_, 3);
lean_dec(v_unused_6398_);
v___x_6387_ = v_r_6223_;
v_isShared_6388_ = v_isSharedCheck_6396_;
goto v_resetjp_6386_;
}
else
{
lean_inc(v_v_6385_);
lean_inc(v_k_6384_);
lean_inc(v_size_6383_);
lean_dec(v_r_6223_);
v___x_6387_ = lean_box(0);
v_isShared_6388_ = v_isSharedCheck_6396_;
goto v_resetjp_6386_;
}
v_resetjp_6386_:
{
lean_object* v___x_6390_; 
if (v_isShared_6388_ == 0)
{
lean_ctor_set(v___x_6387_, 3, v_r_6366_);
v___x_6390_ = v___x_6387_;
goto v_reusejp_6389_;
}
else
{
lean_object* v_reuseFailAlloc_6395_; 
v_reuseFailAlloc_6395_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6395_, 0, v_size_6383_);
lean_ctor_set(v_reuseFailAlloc_6395_, 1, v_k_6384_);
lean_ctor_set(v_reuseFailAlloc_6395_, 2, v_v_6385_);
lean_ctor_set(v_reuseFailAlloc_6395_, 3, v_r_6366_);
lean_ctor_set(v_reuseFailAlloc_6395_, 4, v_r_6366_);
v___x_6390_ = v_reuseFailAlloc_6395_;
goto v_reusejp_6389_;
}
v_reusejp_6389_:
{
lean_object* v___x_6391_; lean_object* v___x_6393_; 
v___x_6391_ = lean_unsigned_to_nat(2u);
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v___x_6390_);
lean_ctor_set(v___x_6225_, 3, v_r_6366_);
lean_ctor_set(v___x_6225_, 0, v___x_6391_);
v___x_6393_ = v___x_6225_;
goto v_reusejp_6392_;
}
else
{
lean_object* v_reuseFailAlloc_6394_; 
v_reuseFailAlloc_6394_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6394_, 0, v___x_6391_);
lean_ctor_set(v_reuseFailAlloc_6394_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6394_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6394_, 3, v_r_6366_);
lean_ctor_set(v_reuseFailAlloc_6394_, 4, v___x_6390_);
v___x_6393_ = v_reuseFailAlloc_6394_;
goto v_reusejp_6392_;
}
v_reusejp_6392_:
{
return v___x_6393_;
}
}
}
}
}
}
else
{
lean_object* v___x_6400_; 
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 3, v_r_6223_);
lean_ctor_set(v___x_6225_, 0, v___x_6229_);
v___x_6400_ = v___x_6225_;
goto v_reusejp_6399_;
}
else
{
lean_object* v_reuseFailAlloc_6401_; 
v_reuseFailAlloc_6401_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6401_, 0, v___x_6229_);
lean_ctor_set(v_reuseFailAlloc_6401_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6401_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6401_, 3, v_r_6223_);
lean_ctor_set(v_reuseFailAlloc_6401_, 4, v_r_6223_);
v___x_6400_ = v_reuseFailAlloc_6401_;
goto v_reusejp_6399_;
}
v_reusejp_6399_:
{
return v___x_6400_;
}
}
}
}
case 1:
{
lean_del_object(v___x_6225_);
lean_dec(v_v_6221_);
lean_dec(v_k_6220_);
if (lean_obj_tag(v_l_6222_) == 0)
{
if (lean_obj_tag(v_r_6223_) == 0)
{
lean_object* v_size_6402_; lean_object* v_k_6403_; lean_object* v_v_6404_; lean_object* v_l_6405_; lean_object* v_r_6406_; lean_object* v_size_6407_; lean_object* v_k_6408_; lean_object* v_v_6409_; lean_object* v_l_6410_; lean_object* v_r_6411_; lean_object* v___x_6412_; uint8_t v___x_6413_; 
v_size_6402_ = lean_ctor_get(v_l_6222_, 0);
v_k_6403_ = lean_ctor_get(v_l_6222_, 1);
v_v_6404_ = lean_ctor_get(v_l_6222_, 2);
v_l_6405_ = lean_ctor_get(v_l_6222_, 3);
v_r_6406_ = lean_ctor_get(v_l_6222_, 4);
lean_inc(v_r_6406_);
v_size_6407_ = lean_ctor_get(v_r_6223_, 0);
v_k_6408_ = lean_ctor_get(v_r_6223_, 1);
v_v_6409_ = lean_ctor_get(v_r_6223_, 2);
v_l_6410_ = lean_ctor_get(v_r_6223_, 3);
lean_inc(v_l_6410_);
v_r_6411_ = lean_ctor_get(v_r_6223_, 4);
v___x_6412_ = lean_unsigned_to_nat(1u);
v___x_6413_ = lean_nat_dec_lt(v_size_6402_, v_size_6407_);
if (v___x_6413_ == 0)
{
lean_object* v___x_6415_; uint8_t v_isShared_6416_; uint8_t v_isSharedCheck_6549_; 
lean_inc(v_l_6405_);
lean_inc(v_v_6404_);
lean_inc(v_k_6403_);
v_isSharedCheck_6549_ = !lean_is_exclusive(v_l_6222_);
if (v_isSharedCheck_6549_ == 0)
{
lean_object* v_unused_6550_; lean_object* v_unused_6551_; lean_object* v_unused_6552_; lean_object* v_unused_6553_; lean_object* v_unused_6554_; 
v_unused_6550_ = lean_ctor_get(v_l_6222_, 4);
lean_dec(v_unused_6550_);
v_unused_6551_ = lean_ctor_get(v_l_6222_, 3);
lean_dec(v_unused_6551_);
v_unused_6552_ = lean_ctor_get(v_l_6222_, 2);
lean_dec(v_unused_6552_);
v_unused_6553_ = lean_ctor_get(v_l_6222_, 1);
lean_dec(v_unused_6553_);
v_unused_6554_ = lean_ctor_get(v_l_6222_, 0);
lean_dec(v_unused_6554_);
v___x_6415_ = v_l_6222_;
v_isShared_6416_ = v_isSharedCheck_6549_;
goto v_resetjp_6414_;
}
else
{
lean_dec(v_l_6222_);
v___x_6415_ = lean_box(0);
v_isShared_6416_ = v_isSharedCheck_6549_;
goto v_resetjp_6414_;
}
v_resetjp_6414_:
{
lean_object* v___x_6417_; lean_object* v_tree_6418_; 
v___x_6417_ = l_Std_DTreeMap_Internal_Impl_maxView___redArg(v_k_6403_, v_v_6404_, v_l_6405_, v_r_6406_);
v_tree_6418_ = lean_ctor_get(v___x_6417_, 2);
lean_inc(v_tree_6418_);
if (lean_obj_tag(v_tree_6418_) == 0)
{
lean_object* v_k_6419_; lean_object* v_v_6420_; lean_object* v_size_6421_; lean_object* v___x_6422_; lean_object* v___x_6423_; uint8_t v___x_6424_; 
v_k_6419_ = lean_ctor_get(v___x_6417_, 0);
lean_inc(v_k_6419_);
v_v_6420_ = lean_ctor_get(v___x_6417_, 1);
lean_inc(v_v_6420_);
lean_dec_ref(v___x_6417_);
v_size_6421_ = lean_ctor_get(v_tree_6418_, 0);
v___x_6422_ = lean_unsigned_to_nat(3u);
v___x_6423_ = lean_nat_mul(v___x_6422_, v_size_6421_);
v___x_6424_ = lean_nat_dec_lt(v___x_6423_, v_size_6407_);
lean_dec(v___x_6423_);
if (v___x_6424_ == 0)
{
lean_object* v___x_6425_; lean_object* v___x_6426_; lean_object* v___x_6428_; 
lean_dec(v_l_6410_);
v___x_6425_ = lean_nat_add(v___x_6412_, v_size_6421_);
v___x_6426_ = lean_nat_add(v___x_6425_, v_size_6407_);
lean_dec(v___x_6425_);
if (v_isShared_6416_ == 0)
{
lean_ctor_set(v___x_6415_, 4, v_r_6223_);
lean_ctor_set(v___x_6415_, 3, v_tree_6418_);
lean_ctor_set(v___x_6415_, 2, v_v_6420_);
lean_ctor_set(v___x_6415_, 1, v_k_6419_);
lean_ctor_set(v___x_6415_, 0, v___x_6426_);
v___x_6428_ = v___x_6415_;
goto v_reusejp_6427_;
}
else
{
lean_object* v_reuseFailAlloc_6429_; 
v_reuseFailAlloc_6429_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6429_, 0, v___x_6426_);
lean_ctor_set(v_reuseFailAlloc_6429_, 1, v_k_6419_);
lean_ctor_set(v_reuseFailAlloc_6429_, 2, v_v_6420_);
lean_ctor_set(v_reuseFailAlloc_6429_, 3, v_tree_6418_);
lean_ctor_set(v_reuseFailAlloc_6429_, 4, v_r_6223_);
v___x_6428_ = v_reuseFailAlloc_6429_;
goto v_reusejp_6427_;
}
v_reusejp_6427_:
{
return v___x_6428_;
}
}
else
{
lean_object* v___x_6431_; uint8_t v_isShared_6432_; uint8_t v_isSharedCheck_6484_; 
lean_inc(v_r_6411_);
lean_inc(v_v_6409_);
lean_inc(v_k_6408_);
lean_inc(v_size_6407_);
v_isSharedCheck_6484_ = !lean_is_exclusive(v_r_6223_);
if (v_isSharedCheck_6484_ == 0)
{
lean_object* v_unused_6485_; lean_object* v_unused_6486_; lean_object* v_unused_6487_; lean_object* v_unused_6488_; lean_object* v_unused_6489_; 
v_unused_6485_ = lean_ctor_get(v_r_6223_, 4);
lean_dec(v_unused_6485_);
v_unused_6486_ = lean_ctor_get(v_r_6223_, 3);
lean_dec(v_unused_6486_);
v_unused_6487_ = lean_ctor_get(v_r_6223_, 2);
lean_dec(v_unused_6487_);
v_unused_6488_ = lean_ctor_get(v_r_6223_, 1);
lean_dec(v_unused_6488_);
v_unused_6489_ = lean_ctor_get(v_r_6223_, 0);
lean_dec(v_unused_6489_);
v___x_6431_ = v_r_6223_;
v_isShared_6432_ = v_isSharedCheck_6484_;
goto v_resetjp_6430_;
}
else
{
lean_dec(v_r_6223_);
v___x_6431_ = lean_box(0);
v_isShared_6432_ = v_isSharedCheck_6484_;
goto v_resetjp_6430_;
}
v_resetjp_6430_:
{
lean_object* v_size_6433_; lean_object* v_k_6434_; lean_object* v_v_6435_; lean_object* v_l_6436_; lean_object* v_r_6437_; lean_object* v_size_6438_; lean_object* v___x_6439_; lean_object* v___x_6440_; uint8_t v___x_6441_; 
v_size_6433_ = lean_ctor_get(v_l_6410_, 0);
v_k_6434_ = lean_ctor_get(v_l_6410_, 1);
v_v_6435_ = lean_ctor_get(v_l_6410_, 2);
v_l_6436_ = lean_ctor_get(v_l_6410_, 3);
v_r_6437_ = lean_ctor_get(v_l_6410_, 4);
v_size_6438_ = lean_ctor_get(v_r_6411_, 0);
v___x_6439_ = lean_unsigned_to_nat(2u);
v___x_6440_ = lean_nat_mul(v___x_6439_, v_size_6438_);
v___x_6441_ = lean_nat_dec_lt(v_size_6433_, v___x_6440_);
lean_dec(v___x_6440_);
if (v___x_6441_ == 0)
{
lean_object* v___x_6443_; uint8_t v_isShared_6444_; uint8_t v_isSharedCheck_6469_; 
lean_inc(v_r_6437_);
lean_inc(v_l_6436_);
lean_inc(v_v_6435_);
lean_inc(v_k_6434_);
v_isSharedCheck_6469_ = !lean_is_exclusive(v_l_6410_);
if (v_isSharedCheck_6469_ == 0)
{
lean_object* v_unused_6470_; lean_object* v_unused_6471_; lean_object* v_unused_6472_; lean_object* v_unused_6473_; lean_object* v_unused_6474_; 
v_unused_6470_ = lean_ctor_get(v_l_6410_, 4);
lean_dec(v_unused_6470_);
v_unused_6471_ = lean_ctor_get(v_l_6410_, 3);
lean_dec(v_unused_6471_);
v_unused_6472_ = lean_ctor_get(v_l_6410_, 2);
lean_dec(v_unused_6472_);
v_unused_6473_ = lean_ctor_get(v_l_6410_, 1);
lean_dec(v_unused_6473_);
v_unused_6474_ = lean_ctor_get(v_l_6410_, 0);
lean_dec(v_unused_6474_);
v___x_6443_ = v_l_6410_;
v_isShared_6444_ = v_isSharedCheck_6469_;
goto v_resetjp_6442_;
}
else
{
lean_dec(v_l_6410_);
v___x_6443_ = lean_box(0);
v_isShared_6444_ = v_isSharedCheck_6469_;
goto v_resetjp_6442_;
}
v_resetjp_6442_:
{
lean_object* v___x_6445_; lean_object* v___x_6446_; lean_object* v___y_6448_; lean_object* v___y_6449_; lean_object* v___y_6450_; lean_object* v___y_6459_; 
v___x_6445_ = lean_nat_add(v___x_6412_, v_size_6421_);
v___x_6446_ = lean_nat_add(v___x_6445_, v_size_6407_);
lean_dec(v_size_6407_);
if (lean_obj_tag(v_l_6436_) == 0)
{
lean_object* v_size_6467_; 
v_size_6467_ = lean_ctor_get(v_l_6436_, 0);
lean_inc(v_size_6467_);
v___y_6459_ = v_size_6467_;
goto v___jp_6458_;
}
else
{
lean_object* v___x_6468_; 
v___x_6468_ = lean_unsigned_to_nat(0u);
v___y_6459_ = v___x_6468_;
goto v___jp_6458_;
}
v___jp_6447_:
{
lean_object* v___x_6451_; lean_object* v___x_6453_; 
v___x_6451_ = lean_nat_add(v___y_6449_, v___y_6450_);
lean_dec(v___y_6450_);
lean_dec(v___y_6449_);
if (v_isShared_6444_ == 0)
{
lean_ctor_set(v___x_6443_, 4, v_r_6411_);
lean_ctor_set(v___x_6443_, 3, v_r_6437_);
lean_ctor_set(v___x_6443_, 2, v_v_6409_);
lean_ctor_set(v___x_6443_, 1, v_k_6408_);
lean_ctor_set(v___x_6443_, 0, v___x_6451_);
v___x_6453_ = v___x_6443_;
goto v_reusejp_6452_;
}
else
{
lean_object* v_reuseFailAlloc_6457_; 
v_reuseFailAlloc_6457_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6457_, 0, v___x_6451_);
lean_ctor_set(v_reuseFailAlloc_6457_, 1, v_k_6408_);
lean_ctor_set(v_reuseFailAlloc_6457_, 2, v_v_6409_);
lean_ctor_set(v_reuseFailAlloc_6457_, 3, v_r_6437_);
lean_ctor_set(v_reuseFailAlloc_6457_, 4, v_r_6411_);
v___x_6453_ = v_reuseFailAlloc_6457_;
goto v_reusejp_6452_;
}
v_reusejp_6452_:
{
lean_object* v___x_6455_; 
if (v_isShared_6432_ == 0)
{
lean_ctor_set(v___x_6431_, 4, v___x_6453_);
lean_ctor_set(v___x_6431_, 3, v___y_6448_);
lean_ctor_set(v___x_6431_, 2, v_v_6435_);
lean_ctor_set(v___x_6431_, 1, v_k_6434_);
lean_ctor_set(v___x_6431_, 0, v___x_6446_);
v___x_6455_ = v___x_6431_;
goto v_reusejp_6454_;
}
else
{
lean_object* v_reuseFailAlloc_6456_; 
v_reuseFailAlloc_6456_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6456_, 0, v___x_6446_);
lean_ctor_set(v_reuseFailAlloc_6456_, 1, v_k_6434_);
lean_ctor_set(v_reuseFailAlloc_6456_, 2, v_v_6435_);
lean_ctor_set(v_reuseFailAlloc_6456_, 3, v___y_6448_);
lean_ctor_set(v_reuseFailAlloc_6456_, 4, v___x_6453_);
v___x_6455_ = v_reuseFailAlloc_6456_;
goto v_reusejp_6454_;
}
v_reusejp_6454_:
{
return v___x_6455_;
}
}
}
v___jp_6458_:
{
lean_object* v___x_6460_; lean_object* v___x_6462_; 
v___x_6460_ = lean_nat_add(v___x_6445_, v___y_6459_);
lean_dec(v___y_6459_);
lean_dec(v___x_6445_);
if (v_isShared_6416_ == 0)
{
lean_ctor_set(v___x_6415_, 4, v_l_6436_);
lean_ctor_set(v___x_6415_, 3, v_tree_6418_);
lean_ctor_set(v___x_6415_, 2, v_v_6420_);
lean_ctor_set(v___x_6415_, 1, v_k_6419_);
lean_ctor_set(v___x_6415_, 0, v___x_6460_);
v___x_6462_ = v___x_6415_;
goto v_reusejp_6461_;
}
else
{
lean_object* v_reuseFailAlloc_6466_; 
v_reuseFailAlloc_6466_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6466_, 0, v___x_6460_);
lean_ctor_set(v_reuseFailAlloc_6466_, 1, v_k_6419_);
lean_ctor_set(v_reuseFailAlloc_6466_, 2, v_v_6420_);
lean_ctor_set(v_reuseFailAlloc_6466_, 3, v_tree_6418_);
lean_ctor_set(v_reuseFailAlloc_6466_, 4, v_l_6436_);
v___x_6462_ = v_reuseFailAlloc_6466_;
goto v_reusejp_6461_;
}
v_reusejp_6461_:
{
lean_object* v___x_6463_; 
v___x_6463_ = lean_nat_add(v___x_6412_, v_size_6438_);
if (lean_obj_tag(v_r_6437_) == 0)
{
lean_object* v_size_6464_; 
v_size_6464_ = lean_ctor_get(v_r_6437_, 0);
lean_inc(v_size_6464_);
v___y_6448_ = v___x_6462_;
v___y_6449_ = v___x_6463_;
v___y_6450_ = v_size_6464_;
goto v___jp_6447_;
}
else
{
lean_object* v___x_6465_; 
v___x_6465_ = lean_unsigned_to_nat(0u);
v___y_6448_ = v___x_6462_;
v___y_6449_ = v___x_6463_;
v___y_6450_ = v___x_6465_;
goto v___jp_6447_;
}
}
}
}
}
else
{
lean_object* v___x_6475_; lean_object* v___x_6476_; lean_object* v___x_6477_; lean_object* v___x_6479_; 
v___x_6475_ = lean_nat_add(v___x_6412_, v_size_6421_);
v___x_6476_ = lean_nat_add(v___x_6475_, v_size_6407_);
lean_dec(v_size_6407_);
v___x_6477_ = lean_nat_add(v___x_6475_, v_size_6433_);
lean_dec(v___x_6475_);
if (v_isShared_6432_ == 0)
{
lean_ctor_set(v___x_6431_, 4, v_l_6410_);
lean_ctor_set(v___x_6431_, 3, v_tree_6418_);
lean_ctor_set(v___x_6431_, 2, v_v_6420_);
lean_ctor_set(v___x_6431_, 1, v_k_6419_);
lean_ctor_set(v___x_6431_, 0, v___x_6477_);
v___x_6479_ = v___x_6431_;
goto v_reusejp_6478_;
}
else
{
lean_object* v_reuseFailAlloc_6483_; 
v_reuseFailAlloc_6483_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6483_, 0, v___x_6477_);
lean_ctor_set(v_reuseFailAlloc_6483_, 1, v_k_6419_);
lean_ctor_set(v_reuseFailAlloc_6483_, 2, v_v_6420_);
lean_ctor_set(v_reuseFailAlloc_6483_, 3, v_tree_6418_);
lean_ctor_set(v_reuseFailAlloc_6483_, 4, v_l_6410_);
v___x_6479_ = v_reuseFailAlloc_6483_;
goto v_reusejp_6478_;
}
v_reusejp_6478_:
{
lean_object* v___x_6481_; 
if (v_isShared_6416_ == 0)
{
lean_ctor_set(v___x_6415_, 4, v_r_6411_);
lean_ctor_set(v___x_6415_, 3, v___x_6479_);
lean_ctor_set(v___x_6415_, 2, v_v_6409_);
lean_ctor_set(v___x_6415_, 1, v_k_6408_);
lean_ctor_set(v___x_6415_, 0, v___x_6476_);
v___x_6481_ = v___x_6415_;
goto v_reusejp_6480_;
}
else
{
lean_object* v_reuseFailAlloc_6482_; 
v_reuseFailAlloc_6482_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6482_, 0, v___x_6476_);
lean_ctor_set(v_reuseFailAlloc_6482_, 1, v_k_6408_);
lean_ctor_set(v_reuseFailAlloc_6482_, 2, v_v_6409_);
lean_ctor_set(v_reuseFailAlloc_6482_, 3, v___x_6479_);
lean_ctor_set(v_reuseFailAlloc_6482_, 4, v_r_6411_);
v___x_6481_ = v_reuseFailAlloc_6482_;
goto v_reusejp_6480_;
}
v_reusejp_6480_:
{
return v___x_6481_;
}
}
}
}
}
}
else
{
lean_object* v___x_6491_; uint8_t v_isShared_6492_; uint8_t v_isSharedCheck_6543_; 
lean_inc(v_r_6411_);
lean_inc(v_v_6409_);
lean_inc(v_k_6408_);
lean_inc(v_size_6407_);
v_isSharedCheck_6543_ = !lean_is_exclusive(v_r_6223_);
if (v_isSharedCheck_6543_ == 0)
{
lean_object* v_unused_6544_; lean_object* v_unused_6545_; lean_object* v_unused_6546_; lean_object* v_unused_6547_; lean_object* v_unused_6548_; 
v_unused_6544_ = lean_ctor_get(v_r_6223_, 4);
lean_dec(v_unused_6544_);
v_unused_6545_ = lean_ctor_get(v_r_6223_, 3);
lean_dec(v_unused_6545_);
v_unused_6546_ = lean_ctor_get(v_r_6223_, 2);
lean_dec(v_unused_6546_);
v_unused_6547_ = lean_ctor_get(v_r_6223_, 1);
lean_dec(v_unused_6547_);
v_unused_6548_ = lean_ctor_get(v_r_6223_, 0);
lean_dec(v_unused_6548_);
v___x_6491_ = v_r_6223_;
v_isShared_6492_ = v_isSharedCheck_6543_;
goto v_resetjp_6490_;
}
else
{
lean_dec(v_r_6223_);
v___x_6491_ = lean_box(0);
v_isShared_6492_ = v_isSharedCheck_6543_;
goto v_resetjp_6490_;
}
v_resetjp_6490_:
{
if (lean_obj_tag(v_l_6410_) == 0)
{
if (lean_obj_tag(v_r_6411_) == 0)
{
lean_object* v_k_6493_; lean_object* v_v_6494_; lean_object* v_size_6495_; lean_object* v___x_6496_; lean_object* v___x_6497_; lean_object* v___x_6499_; 
v_k_6493_ = lean_ctor_get(v___x_6417_, 0);
lean_inc(v_k_6493_);
v_v_6494_ = lean_ctor_get(v___x_6417_, 1);
lean_inc(v_v_6494_);
lean_dec_ref(v___x_6417_);
v_size_6495_ = lean_ctor_get(v_l_6410_, 0);
v___x_6496_ = lean_nat_add(v___x_6412_, v_size_6407_);
lean_dec(v_size_6407_);
v___x_6497_ = lean_nat_add(v___x_6412_, v_size_6495_);
if (v_isShared_6492_ == 0)
{
lean_ctor_set(v___x_6491_, 4, v_l_6410_);
lean_ctor_set(v___x_6491_, 3, v_tree_6418_);
lean_ctor_set(v___x_6491_, 2, v_v_6494_);
lean_ctor_set(v___x_6491_, 1, v_k_6493_);
lean_ctor_set(v___x_6491_, 0, v___x_6497_);
v___x_6499_ = v___x_6491_;
goto v_reusejp_6498_;
}
else
{
lean_object* v_reuseFailAlloc_6503_; 
v_reuseFailAlloc_6503_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6503_, 0, v___x_6497_);
lean_ctor_set(v_reuseFailAlloc_6503_, 1, v_k_6493_);
lean_ctor_set(v_reuseFailAlloc_6503_, 2, v_v_6494_);
lean_ctor_set(v_reuseFailAlloc_6503_, 3, v_tree_6418_);
lean_ctor_set(v_reuseFailAlloc_6503_, 4, v_l_6410_);
v___x_6499_ = v_reuseFailAlloc_6503_;
goto v_reusejp_6498_;
}
v_reusejp_6498_:
{
lean_object* v___x_6501_; 
if (v_isShared_6416_ == 0)
{
lean_ctor_set(v___x_6415_, 4, v_r_6411_);
lean_ctor_set(v___x_6415_, 3, v___x_6499_);
lean_ctor_set(v___x_6415_, 2, v_v_6409_);
lean_ctor_set(v___x_6415_, 1, v_k_6408_);
lean_ctor_set(v___x_6415_, 0, v___x_6496_);
v___x_6501_ = v___x_6415_;
goto v_reusejp_6500_;
}
else
{
lean_object* v_reuseFailAlloc_6502_; 
v_reuseFailAlloc_6502_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6502_, 0, v___x_6496_);
lean_ctor_set(v_reuseFailAlloc_6502_, 1, v_k_6408_);
lean_ctor_set(v_reuseFailAlloc_6502_, 2, v_v_6409_);
lean_ctor_set(v_reuseFailAlloc_6502_, 3, v___x_6499_);
lean_ctor_set(v_reuseFailAlloc_6502_, 4, v_r_6411_);
v___x_6501_ = v_reuseFailAlloc_6502_;
goto v_reusejp_6500_;
}
v_reusejp_6500_:
{
return v___x_6501_;
}
}
}
else
{
lean_object* v_k_6504_; lean_object* v_v_6505_; lean_object* v_k_6506_; lean_object* v_v_6507_; lean_object* v___x_6509_; uint8_t v_isShared_6510_; uint8_t v_isSharedCheck_6521_; 
lean_dec(v_size_6407_);
v_k_6504_ = lean_ctor_get(v___x_6417_, 0);
lean_inc(v_k_6504_);
v_v_6505_ = lean_ctor_get(v___x_6417_, 1);
lean_inc(v_v_6505_);
lean_dec_ref(v___x_6417_);
v_k_6506_ = lean_ctor_get(v_l_6410_, 1);
v_v_6507_ = lean_ctor_get(v_l_6410_, 2);
v_isSharedCheck_6521_ = !lean_is_exclusive(v_l_6410_);
if (v_isSharedCheck_6521_ == 0)
{
lean_object* v_unused_6522_; lean_object* v_unused_6523_; lean_object* v_unused_6524_; 
v_unused_6522_ = lean_ctor_get(v_l_6410_, 4);
lean_dec(v_unused_6522_);
v_unused_6523_ = lean_ctor_get(v_l_6410_, 3);
lean_dec(v_unused_6523_);
v_unused_6524_ = lean_ctor_get(v_l_6410_, 0);
lean_dec(v_unused_6524_);
v___x_6509_ = v_l_6410_;
v_isShared_6510_ = v_isSharedCheck_6521_;
goto v_resetjp_6508_;
}
else
{
lean_inc(v_v_6507_);
lean_inc(v_k_6506_);
lean_dec(v_l_6410_);
v___x_6509_ = lean_box(0);
v_isShared_6510_ = v_isSharedCheck_6521_;
goto v_resetjp_6508_;
}
v_resetjp_6508_:
{
lean_object* v___x_6511_; lean_object* v___x_6513_; 
v___x_6511_ = lean_unsigned_to_nat(3u);
if (v_isShared_6510_ == 0)
{
lean_ctor_set(v___x_6509_, 4, v_r_6411_);
lean_ctor_set(v___x_6509_, 3, v_r_6411_);
lean_ctor_set(v___x_6509_, 2, v_v_6505_);
lean_ctor_set(v___x_6509_, 1, v_k_6504_);
lean_ctor_set(v___x_6509_, 0, v___x_6412_);
v___x_6513_ = v___x_6509_;
goto v_reusejp_6512_;
}
else
{
lean_object* v_reuseFailAlloc_6520_; 
v_reuseFailAlloc_6520_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6520_, 0, v___x_6412_);
lean_ctor_set(v_reuseFailAlloc_6520_, 1, v_k_6504_);
lean_ctor_set(v_reuseFailAlloc_6520_, 2, v_v_6505_);
lean_ctor_set(v_reuseFailAlloc_6520_, 3, v_r_6411_);
lean_ctor_set(v_reuseFailAlloc_6520_, 4, v_r_6411_);
v___x_6513_ = v_reuseFailAlloc_6520_;
goto v_reusejp_6512_;
}
v_reusejp_6512_:
{
lean_object* v___x_6515_; 
if (v_isShared_6492_ == 0)
{
lean_ctor_set(v___x_6491_, 3, v_r_6411_);
lean_ctor_set(v___x_6491_, 0, v___x_6412_);
v___x_6515_ = v___x_6491_;
goto v_reusejp_6514_;
}
else
{
lean_object* v_reuseFailAlloc_6519_; 
v_reuseFailAlloc_6519_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6519_, 0, v___x_6412_);
lean_ctor_set(v_reuseFailAlloc_6519_, 1, v_k_6408_);
lean_ctor_set(v_reuseFailAlloc_6519_, 2, v_v_6409_);
lean_ctor_set(v_reuseFailAlloc_6519_, 3, v_r_6411_);
lean_ctor_set(v_reuseFailAlloc_6519_, 4, v_r_6411_);
v___x_6515_ = v_reuseFailAlloc_6519_;
goto v_reusejp_6514_;
}
v_reusejp_6514_:
{
lean_object* v___x_6517_; 
if (v_isShared_6416_ == 0)
{
lean_ctor_set(v___x_6415_, 4, v___x_6515_);
lean_ctor_set(v___x_6415_, 3, v___x_6513_);
lean_ctor_set(v___x_6415_, 2, v_v_6507_);
lean_ctor_set(v___x_6415_, 1, v_k_6506_);
lean_ctor_set(v___x_6415_, 0, v___x_6511_);
v___x_6517_ = v___x_6415_;
goto v_reusejp_6516_;
}
else
{
lean_object* v_reuseFailAlloc_6518_; 
v_reuseFailAlloc_6518_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6518_, 0, v___x_6511_);
lean_ctor_set(v_reuseFailAlloc_6518_, 1, v_k_6506_);
lean_ctor_set(v_reuseFailAlloc_6518_, 2, v_v_6507_);
lean_ctor_set(v_reuseFailAlloc_6518_, 3, v___x_6513_);
lean_ctor_set(v_reuseFailAlloc_6518_, 4, v___x_6515_);
v___x_6517_ = v_reuseFailAlloc_6518_;
goto v_reusejp_6516_;
}
v_reusejp_6516_:
{
return v___x_6517_;
}
}
}
}
}
}
else
{
if (lean_obj_tag(v_r_6411_) == 0)
{
lean_object* v_k_6525_; lean_object* v_v_6526_; lean_object* v___x_6527_; lean_object* v___x_6529_; 
lean_dec(v_size_6407_);
v_k_6525_ = lean_ctor_get(v___x_6417_, 0);
lean_inc(v_k_6525_);
v_v_6526_ = lean_ctor_get(v___x_6417_, 1);
lean_inc(v_v_6526_);
lean_dec_ref(v___x_6417_);
v___x_6527_ = lean_unsigned_to_nat(3u);
if (v_isShared_6492_ == 0)
{
lean_ctor_set(v___x_6491_, 4, v_l_6410_);
lean_ctor_set(v___x_6491_, 2, v_v_6526_);
lean_ctor_set(v___x_6491_, 1, v_k_6525_);
lean_ctor_set(v___x_6491_, 0, v___x_6412_);
v___x_6529_ = v___x_6491_;
goto v_reusejp_6528_;
}
else
{
lean_object* v_reuseFailAlloc_6533_; 
v_reuseFailAlloc_6533_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6533_, 0, v___x_6412_);
lean_ctor_set(v_reuseFailAlloc_6533_, 1, v_k_6525_);
lean_ctor_set(v_reuseFailAlloc_6533_, 2, v_v_6526_);
lean_ctor_set(v_reuseFailAlloc_6533_, 3, v_l_6410_);
lean_ctor_set(v_reuseFailAlloc_6533_, 4, v_l_6410_);
v___x_6529_ = v_reuseFailAlloc_6533_;
goto v_reusejp_6528_;
}
v_reusejp_6528_:
{
lean_object* v___x_6531_; 
if (v_isShared_6416_ == 0)
{
lean_ctor_set(v___x_6415_, 4, v_r_6411_);
lean_ctor_set(v___x_6415_, 3, v___x_6529_);
lean_ctor_set(v___x_6415_, 2, v_v_6409_);
lean_ctor_set(v___x_6415_, 1, v_k_6408_);
lean_ctor_set(v___x_6415_, 0, v___x_6527_);
v___x_6531_ = v___x_6415_;
goto v_reusejp_6530_;
}
else
{
lean_object* v_reuseFailAlloc_6532_; 
v_reuseFailAlloc_6532_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6532_, 0, v___x_6527_);
lean_ctor_set(v_reuseFailAlloc_6532_, 1, v_k_6408_);
lean_ctor_set(v_reuseFailAlloc_6532_, 2, v_v_6409_);
lean_ctor_set(v_reuseFailAlloc_6532_, 3, v___x_6529_);
lean_ctor_set(v_reuseFailAlloc_6532_, 4, v_r_6411_);
v___x_6531_ = v_reuseFailAlloc_6532_;
goto v_reusejp_6530_;
}
v_reusejp_6530_:
{
return v___x_6531_;
}
}
}
else
{
lean_object* v_k_6534_; lean_object* v_v_6535_; lean_object* v___x_6537_; 
v_k_6534_ = lean_ctor_get(v___x_6417_, 0);
lean_inc(v_k_6534_);
v_v_6535_ = lean_ctor_get(v___x_6417_, 1);
lean_inc(v_v_6535_);
lean_dec_ref(v___x_6417_);
if (v_isShared_6492_ == 0)
{
lean_ctor_set(v___x_6491_, 3, v_r_6411_);
v___x_6537_ = v___x_6491_;
goto v_reusejp_6536_;
}
else
{
lean_object* v_reuseFailAlloc_6542_; 
v_reuseFailAlloc_6542_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6542_, 0, v_size_6407_);
lean_ctor_set(v_reuseFailAlloc_6542_, 1, v_k_6408_);
lean_ctor_set(v_reuseFailAlloc_6542_, 2, v_v_6409_);
lean_ctor_set(v_reuseFailAlloc_6542_, 3, v_r_6411_);
lean_ctor_set(v_reuseFailAlloc_6542_, 4, v_r_6411_);
v___x_6537_ = v_reuseFailAlloc_6542_;
goto v_reusejp_6536_;
}
v_reusejp_6536_:
{
lean_object* v___x_6538_; lean_object* v___x_6540_; 
v___x_6538_ = lean_unsigned_to_nat(2u);
if (v_isShared_6416_ == 0)
{
lean_ctor_set(v___x_6415_, 4, v___x_6537_);
lean_ctor_set(v___x_6415_, 3, v_r_6411_);
lean_ctor_set(v___x_6415_, 2, v_v_6535_);
lean_ctor_set(v___x_6415_, 1, v_k_6534_);
lean_ctor_set(v___x_6415_, 0, v___x_6538_);
v___x_6540_ = v___x_6415_;
goto v_reusejp_6539_;
}
else
{
lean_object* v_reuseFailAlloc_6541_; 
v_reuseFailAlloc_6541_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6541_, 0, v___x_6538_);
lean_ctor_set(v_reuseFailAlloc_6541_, 1, v_k_6534_);
lean_ctor_set(v_reuseFailAlloc_6541_, 2, v_v_6535_);
lean_ctor_set(v_reuseFailAlloc_6541_, 3, v_r_6411_);
lean_ctor_set(v_reuseFailAlloc_6541_, 4, v___x_6537_);
v___x_6540_ = v_reuseFailAlloc_6541_;
goto v_reusejp_6539_;
}
v_reusejp_6539_:
{
return v___x_6540_;
}
}
}
}
}
}
}
}
else
{
lean_object* v___x_6556_; uint8_t v_isShared_6557_; uint8_t v_isSharedCheck_6707_; 
lean_inc(v_r_6411_);
lean_inc(v_v_6409_);
lean_inc(v_k_6408_);
v_isSharedCheck_6707_ = !lean_is_exclusive(v_r_6223_);
if (v_isSharedCheck_6707_ == 0)
{
lean_object* v_unused_6708_; lean_object* v_unused_6709_; lean_object* v_unused_6710_; lean_object* v_unused_6711_; lean_object* v_unused_6712_; 
v_unused_6708_ = lean_ctor_get(v_r_6223_, 4);
lean_dec(v_unused_6708_);
v_unused_6709_ = lean_ctor_get(v_r_6223_, 3);
lean_dec(v_unused_6709_);
v_unused_6710_ = lean_ctor_get(v_r_6223_, 2);
lean_dec(v_unused_6710_);
v_unused_6711_ = lean_ctor_get(v_r_6223_, 1);
lean_dec(v_unused_6711_);
v_unused_6712_ = lean_ctor_get(v_r_6223_, 0);
lean_dec(v_unused_6712_);
v___x_6556_ = v_r_6223_;
v_isShared_6557_ = v_isSharedCheck_6707_;
goto v_resetjp_6555_;
}
else
{
lean_dec(v_r_6223_);
v___x_6556_ = lean_box(0);
v_isShared_6557_ = v_isSharedCheck_6707_;
goto v_resetjp_6555_;
}
v_resetjp_6555_:
{
lean_object* v___x_6558_; lean_object* v_tree_6559_; 
v___x_6558_ = l_Std_DTreeMap_Internal_Impl_minView___redArg(v_k_6408_, v_v_6409_, v_l_6410_, v_r_6411_);
v_tree_6559_ = lean_ctor_get(v___x_6558_, 2);
lean_inc(v_tree_6559_);
if (lean_obj_tag(v_tree_6559_) == 0)
{
lean_object* v_k_6560_; lean_object* v_v_6561_; lean_object* v_size_6562_; lean_object* v___x_6563_; lean_object* v___x_6564_; uint8_t v___x_6565_; 
v_k_6560_ = lean_ctor_get(v___x_6558_, 0);
lean_inc(v_k_6560_);
v_v_6561_ = lean_ctor_get(v___x_6558_, 1);
lean_inc(v_v_6561_);
lean_dec_ref(v___x_6558_);
v_size_6562_ = lean_ctor_get(v_tree_6559_, 0);
v___x_6563_ = lean_unsigned_to_nat(3u);
v___x_6564_ = lean_nat_mul(v___x_6563_, v_size_6562_);
v___x_6565_ = lean_nat_dec_lt(v___x_6564_, v_size_6402_);
lean_dec(v___x_6564_);
if (v___x_6565_ == 0)
{
lean_object* v___x_6566_; lean_object* v___x_6567_; lean_object* v___x_6569_; 
lean_dec(v_r_6406_);
v___x_6566_ = lean_nat_add(v___x_6412_, v_size_6402_);
v___x_6567_ = lean_nat_add(v___x_6566_, v_size_6562_);
lean_dec(v___x_6566_);
if (v_isShared_6557_ == 0)
{
lean_ctor_set(v___x_6556_, 4, v_tree_6559_);
lean_ctor_set(v___x_6556_, 3, v_l_6222_);
lean_ctor_set(v___x_6556_, 2, v_v_6561_);
lean_ctor_set(v___x_6556_, 1, v_k_6560_);
lean_ctor_set(v___x_6556_, 0, v___x_6567_);
v___x_6569_ = v___x_6556_;
goto v_reusejp_6568_;
}
else
{
lean_object* v_reuseFailAlloc_6570_; 
v_reuseFailAlloc_6570_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6570_, 0, v___x_6567_);
lean_ctor_set(v_reuseFailAlloc_6570_, 1, v_k_6560_);
lean_ctor_set(v_reuseFailAlloc_6570_, 2, v_v_6561_);
lean_ctor_set(v_reuseFailAlloc_6570_, 3, v_l_6222_);
lean_ctor_set(v_reuseFailAlloc_6570_, 4, v_tree_6559_);
v___x_6569_ = v_reuseFailAlloc_6570_;
goto v_reusejp_6568_;
}
v_reusejp_6568_:
{
return v___x_6569_;
}
}
else
{
lean_object* v___x_6572_; uint8_t v_isShared_6573_; uint8_t v_isSharedCheck_6636_; 
lean_inc(v_l_6405_);
lean_inc(v_v_6404_);
lean_inc(v_k_6403_);
lean_inc(v_size_6402_);
v_isSharedCheck_6636_ = !lean_is_exclusive(v_l_6222_);
if (v_isSharedCheck_6636_ == 0)
{
lean_object* v_unused_6637_; lean_object* v_unused_6638_; lean_object* v_unused_6639_; lean_object* v_unused_6640_; lean_object* v_unused_6641_; 
v_unused_6637_ = lean_ctor_get(v_l_6222_, 4);
lean_dec(v_unused_6637_);
v_unused_6638_ = lean_ctor_get(v_l_6222_, 3);
lean_dec(v_unused_6638_);
v_unused_6639_ = lean_ctor_get(v_l_6222_, 2);
lean_dec(v_unused_6639_);
v_unused_6640_ = lean_ctor_get(v_l_6222_, 1);
lean_dec(v_unused_6640_);
v_unused_6641_ = lean_ctor_get(v_l_6222_, 0);
lean_dec(v_unused_6641_);
v___x_6572_ = v_l_6222_;
v_isShared_6573_ = v_isSharedCheck_6636_;
goto v_resetjp_6571_;
}
else
{
lean_dec(v_l_6222_);
v___x_6572_ = lean_box(0);
v_isShared_6573_ = v_isSharedCheck_6636_;
goto v_resetjp_6571_;
}
v_resetjp_6571_:
{
lean_object* v_size_6574_; lean_object* v_size_6575_; lean_object* v_k_6576_; lean_object* v_v_6577_; lean_object* v_l_6578_; lean_object* v_r_6579_; lean_object* v___x_6580_; lean_object* v___x_6581_; uint8_t v___x_6582_; 
v_size_6574_ = lean_ctor_get(v_l_6405_, 0);
v_size_6575_ = lean_ctor_get(v_r_6406_, 0);
v_k_6576_ = lean_ctor_get(v_r_6406_, 1);
v_v_6577_ = lean_ctor_get(v_r_6406_, 2);
v_l_6578_ = lean_ctor_get(v_r_6406_, 3);
v_r_6579_ = lean_ctor_get(v_r_6406_, 4);
v___x_6580_ = lean_unsigned_to_nat(2u);
v___x_6581_ = lean_nat_mul(v___x_6580_, v_size_6574_);
v___x_6582_ = lean_nat_dec_lt(v_size_6575_, v___x_6581_);
lean_dec(v___x_6581_);
if (v___x_6582_ == 0)
{
lean_object* v___x_6584_; uint8_t v_isShared_6585_; uint8_t v_isSharedCheck_6620_; 
lean_inc(v_r_6579_);
lean_inc(v_l_6578_);
lean_inc(v_v_6577_);
lean_inc(v_k_6576_);
lean_del_object(v___x_6572_);
v_isSharedCheck_6620_ = !lean_is_exclusive(v_r_6406_);
if (v_isSharedCheck_6620_ == 0)
{
lean_object* v_unused_6621_; lean_object* v_unused_6622_; lean_object* v_unused_6623_; lean_object* v_unused_6624_; lean_object* v_unused_6625_; 
v_unused_6621_ = lean_ctor_get(v_r_6406_, 4);
lean_dec(v_unused_6621_);
v_unused_6622_ = lean_ctor_get(v_r_6406_, 3);
lean_dec(v_unused_6622_);
v_unused_6623_ = lean_ctor_get(v_r_6406_, 2);
lean_dec(v_unused_6623_);
v_unused_6624_ = lean_ctor_get(v_r_6406_, 1);
lean_dec(v_unused_6624_);
v_unused_6625_ = lean_ctor_get(v_r_6406_, 0);
lean_dec(v_unused_6625_);
v___x_6584_ = v_r_6406_;
v_isShared_6585_ = v_isSharedCheck_6620_;
goto v_resetjp_6583_;
}
else
{
lean_dec(v_r_6406_);
v___x_6584_ = lean_box(0);
v_isShared_6585_ = v_isSharedCheck_6620_;
goto v_resetjp_6583_;
}
v_resetjp_6583_:
{
lean_object* v___x_6586_; lean_object* v___x_6587_; lean_object* v___y_6589_; lean_object* v___y_6590_; lean_object* v___y_6591_; lean_object* v___x_6608_; lean_object* v___y_6610_; 
v___x_6586_ = lean_nat_add(v___x_6412_, v_size_6402_);
lean_dec(v_size_6402_);
v___x_6587_ = lean_nat_add(v___x_6586_, v_size_6562_);
lean_dec(v___x_6586_);
v___x_6608_ = lean_nat_add(v___x_6412_, v_size_6574_);
if (lean_obj_tag(v_l_6578_) == 0)
{
lean_object* v_size_6618_; 
v_size_6618_ = lean_ctor_get(v_l_6578_, 0);
lean_inc(v_size_6618_);
v___y_6610_ = v_size_6618_;
goto v___jp_6609_;
}
else
{
lean_object* v___x_6619_; 
v___x_6619_ = lean_unsigned_to_nat(0u);
v___y_6610_ = v___x_6619_;
goto v___jp_6609_;
}
v___jp_6588_:
{
lean_object* v___x_6592_; lean_object* v___x_6594_; 
v___x_6592_ = lean_nat_add(v___y_6589_, v___y_6591_);
lean_dec(v___y_6591_);
lean_dec(v___y_6589_);
lean_inc_ref(v_tree_6559_);
if (v_isShared_6585_ == 0)
{
lean_ctor_set(v___x_6584_, 4, v_tree_6559_);
lean_ctor_set(v___x_6584_, 3, v_r_6579_);
lean_ctor_set(v___x_6584_, 2, v_v_6561_);
lean_ctor_set(v___x_6584_, 1, v_k_6560_);
lean_ctor_set(v___x_6584_, 0, v___x_6592_);
v___x_6594_ = v___x_6584_;
goto v_reusejp_6593_;
}
else
{
lean_object* v_reuseFailAlloc_6607_; 
v_reuseFailAlloc_6607_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6607_, 0, v___x_6592_);
lean_ctor_set(v_reuseFailAlloc_6607_, 1, v_k_6560_);
lean_ctor_set(v_reuseFailAlloc_6607_, 2, v_v_6561_);
lean_ctor_set(v_reuseFailAlloc_6607_, 3, v_r_6579_);
lean_ctor_set(v_reuseFailAlloc_6607_, 4, v_tree_6559_);
v___x_6594_ = v_reuseFailAlloc_6607_;
goto v_reusejp_6593_;
}
v_reusejp_6593_:
{
lean_object* v___x_6596_; uint8_t v_isShared_6597_; uint8_t v_isSharedCheck_6601_; 
v_isSharedCheck_6601_ = !lean_is_exclusive(v_tree_6559_);
if (v_isSharedCheck_6601_ == 0)
{
lean_object* v_unused_6602_; lean_object* v_unused_6603_; lean_object* v_unused_6604_; lean_object* v_unused_6605_; lean_object* v_unused_6606_; 
v_unused_6602_ = lean_ctor_get(v_tree_6559_, 4);
lean_dec(v_unused_6602_);
v_unused_6603_ = lean_ctor_get(v_tree_6559_, 3);
lean_dec(v_unused_6603_);
v_unused_6604_ = lean_ctor_get(v_tree_6559_, 2);
lean_dec(v_unused_6604_);
v_unused_6605_ = lean_ctor_get(v_tree_6559_, 1);
lean_dec(v_unused_6605_);
v_unused_6606_ = lean_ctor_get(v_tree_6559_, 0);
lean_dec(v_unused_6606_);
v___x_6596_ = v_tree_6559_;
v_isShared_6597_ = v_isSharedCheck_6601_;
goto v_resetjp_6595_;
}
else
{
lean_dec(v_tree_6559_);
v___x_6596_ = lean_box(0);
v_isShared_6597_ = v_isSharedCheck_6601_;
goto v_resetjp_6595_;
}
v_resetjp_6595_:
{
lean_object* v___x_6599_; 
if (v_isShared_6597_ == 0)
{
lean_ctor_set(v___x_6596_, 4, v___x_6594_);
lean_ctor_set(v___x_6596_, 3, v___y_6590_);
lean_ctor_set(v___x_6596_, 2, v_v_6577_);
lean_ctor_set(v___x_6596_, 1, v_k_6576_);
lean_ctor_set(v___x_6596_, 0, v___x_6587_);
v___x_6599_ = v___x_6596_;
goto v_reusejp_6598_;
}
else
{
lean_object* v_reuseFailAlloc_6600_; 
v_reuseFailAlloc_6600_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6600_, 0, v___x_6587_);
lean_ctor_set(v_reuseFailAlloc_6600_, 1, v_k_6576_);
lean_ctor_set(v_reuseFailAlloc_6600_, 2, v_v_6577_);
lean_ctor_set(v_reuseFailAlloc_6600_, 3, v___y_6590_);
lean_ctor_set(v_reuseFailAlloc_6600_, 4, v___x_6594_);
v___x_6599_ = v_reuseFailAlloc_6600_;
goto v_reusejp_6598_;
}
v_reusejp_6598_:
{
return v___x_6599_;
}
}
}
}
v___jp_6609_:
{
lean_object* v___x_6611_; lean_object* v___x_6613_; 
v___x_6611_ = lean_nat_add(v___x_6608_, v___y_6610_);
lean_dec(v___y_6610_);
lean_dec(v___x_6608_);
if (v_isShared_6557_ == 0)
{
lean_ctor_set(v___x_6556_, 4, v_l_6578_);
lean_ctor_set(v___x_6556_, 3, v_l_6405_);
lean_ctor_set(v___x_6556_, 2, v_v_6404_);
lean_ctor_set(v___x_6556_, 1, v_k_6403_);
lean_ctor_set(v___x_6556_, 0, v___x_6611_);
v___x_6613_ = v___x_6556_;
goto v_reusejp_6612_;
}
else
{
lean_object* v_reuseFailAlloc_6617_; 
v_reuseFailAlloc_6617_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6617_, 0, v___x_6611_);
lean_ctor_set(v_reuseFailAlloc_6617_, 1, v_k_6403_);
lean_ctor_set(v_reuseFailAlloc_6617_, 2, v_v_6404_);
lean_ctor_set(v_reuseFailAlloc_6617_, 3, v_l_6405_);
lean_ctor_set(v_reuseFailAlloc_6617_, 4, v_l_6578_);
v___x_6613_ = v_reuseFailAlloc_6617_;
goto v_reusejp_6612_;
}
v_reusejp_6612_:
{
lean_object* v___x_6614_; 
v___x_6614_ = lean_nat_add(v___x_6412_, v_size_6562_);
if (lean_obj_tag(v_r_6579_) == 0)
{
lean_object* v_size_6615_; 
v_size_6615_ = lean_ctor_get(v_r_6579_, 0);
lean_inc(v_size_6615_);
v___y_6589_ = v___x_6614_;
v___y_6590_ = v___x_6613_;
v___y_6591_ = v_size_6615_;
goto v___jp_6588_;
}
else
{
lean_object* v___x_6616_; 
v___x_6616_ = lean_unsigned_to_nat(0u);
v___y_6589_ = v___x_6614_;
v___y_6590_ = v___x_6613_;
v___y_6591_ = v___x_6616_;
goto v___jp_6588_;
}
}
}
}
}
else
{
lean_object* v___x_6626_; lean_object* v___x_6627_; lean_object* v___x_6628_; lean_object* v___x_6629_; lean_object* v___x_6631_; 
v___x_6626_ = lean_nat_add(v___x_6412_, v_size_6402_);
lean_dec(v_size_6402_);
v___x_6627_ = lean_nat_add(v___x_6626_, v_size_6562_);
lean_dec(v___x_6626_);
v___x_6628_ = lean_nat_add(v___x_6412_, v_size_6562_);
v___x_6629_ = lean_nat_add(v___x_6628_, v_size_6575_);
lean_dec(v___x_6628_);
if (v_isShared_6557_ == 0)
{
lean_ctor_set(v___x_6556_, 4, v_tree_6559_);
lean_ctor_set(v___x_6556_, 3, v_r_6406_);
lean_ctor_set(v___x_6556_, 2, v_v_6561_);
lean_ctor_set(v___x_6556_, 1, v_k_6560_);
lean_ctor_set(v___x_6556_, 0, v___x_6629_);
v___x_6631_ = v___x_6556_;
goto v_reusejp_6630_;
}
else
{
lean_object* v_reuseFailAlloc_6635_; 
v_reuseFailAlloc_6635_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6635_, 0, v___x_6629_);
lean_ctor_set(v_reuseFailAlloc_6635_, 1, v_k_6560_);
lean_ctor_set(v_reuseFailAlloc_6635_, 2, v_v_6561_);
lean_ctor_set(v_reuseFailAlloc_6635_, 3, v_r_6406_);
lean_ctor_set(v_reuseFailAlloc_6635_, 4, v_tree_6559_);
v___x_6631_ = v_reuseFailAlloc_6635_;
goto v_reusejp_6630_;
}
v_reusejp_6630_:
{
lean_object* v___x_6633_; 
if (v_isShared_6573_ == 0)
{
lean_ctor_set(v___x_6572_, 4, v___x_6631_);
lean_ctor_set(v___x_6572_, 0, v___x_6627_);
v___x_6633_ = v___x_6572_;
goto v_reusejp_6632_;
}
else
{
lean_object* v_reuseFailAlloc_6634_; 
v_reuseFailAlloc_6634_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6634_, 0, v___x_6627_);
lean_ctor_set(v_reuseFailAlloc_6634_, 1, v_k_6403_);
lean_ctor_set(v_reuseFailAlloc_6634_, 2, v_v_6404_);
lean_ctor_set(v_reuseFailAlloc_6634_, 3, v_l_6405_);
lean_ctor_set(v_reuseFailAlloc_6634_, 4, v___x_6631_);
v___x_6633_ = v_reuseFailAlloc_6634_;
goto v_reusejp_6632_;
}
v_reusejp_6632_:
{
return v___x_6633_;
}
}
}
}
}
}
else
{
if (lean_obj_tag(v_l_6405_) == 0)
{
lean_object* v___x_6643_; uint8_t v_isShared_6644_; uint8_t v_isSharedCheck_6665_; 
lean_inc_ref(v_l_6405_);
lean_inc(v_v_6404_);
lean_inc(v_k_6403_);
lean_inc(v_size_6402_);
v_isSharedCheck_6665_ = !lean_is_exclusive(v_l_6222_);
if (v_isSharedCheck_6665_ == 0)
{
lean_object* v_unused_6666_; lean_object* v_unused_6667_; lean_object* v_unused_6668_; lean_object* v_unused_6669_; lean_object* v_unused_6670_; 
v_unused_6666_ = lean_ctor_get(v_l_6222_, 4);
lean_dec(v_unused_6666_);
v_unused_6667_ = lean_ctor_get(v_l_6222_, 3);
lean_dec(v_unused_6667_);
v_unused_6668_ = lean_ctor_get(v_l_6222_, 2);
lean_dec(v_unused_6668_);
v_unused_6669_ = lean_ctor_get(v_l_6222_, 1);
lean_dec(v_unused_6669_);
v_unused_6670_ = lean_ctor_get(v_l_6222_, 0);
lean_dec(v_unused_6670_);
v___x_6643_ = v_l_6222_;
v_isShared_6644_ = v_isSharedCheck_6665_;
goto v_resetjp_6642_;
}
else
{
lean_dec(v_l_6222_);
v___x_6643_ = lean_box(0);
v_isShared_6644_ = v_isSharedCheck_6665_;
goto v_resetjp_6642_;
}
v_resetjp_6642_:
{
if (lean_obj_tag(v_r_6406_) == 0)
{
lean_object* v_k_6645_; lean_object* v_v_6646_; lean_object* v_size_6647_; lean_object* v___x_6648_; lean_object* v___x_6649_; lean_object* v___x_6651_; 
v_k_6645_ = lean_ctor_get(v___x_6558_, 0);
lean_inc(v_k_6645_);
v_v_6646_ = lean_ctor_get(v___x_6558_, 1);
lean_inc(v_v_6646_);
lean_dec_ref(v___x_6558_);
v_size_6647_ = lean_ctor_get(v_r_6406_, 0);
v___x_6648_ = lean_nat_add(v___x_6412_, v_size_6402_);
lean_dec(v_size_6402_);
v___x_6649_ = lean_nat_add(v___x_6412_, v_size_6647_);
if (v_isShared_6557_ == 0)
{
lean_ctor_set(v___x_6556_, 4, v_tree_6559_);
lean_ctor_set(v___x_6556_, 3, v_r_6406_);
lean_ctor_set(v___x_6556_, 2, v_v_6646_);
lean_ctor_set(v___x_6556_, 1, v_k_6645_);
lean_ctor_set(v___x_6556_, 0, v___x_6649_);
v___x_6651_ = v___x_6556_;
goto v_reusejp_6650_;
}
else
{
lean_object* v_reuseFailAlloc_6655_; 
v_reuseFailAlloc_6655_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6655_, 0, v___x_6649_);
lean_ctor_set(v_reuseFailAlloc_6655_, 1, v_k_6645_);
lean_ctor_set(v_reuseFailAlloc_6655_, 2, v_v_6646_);
lean_ctor_set(v_reuseFailAlloc_6655_, 3, v_r_6406_);
lean_ctor_set(v_reuseFailAlloc_6655_, 4, v_tree_6559_);
v___x_6651_ = v_reuseFailAlloc_6655_;
goto v_reusejp_6650_;
}
v_reusejp_6650_:
{
lean_object* v___x_6653_; 
if (v_isShared_6644_ == 0)
{
lean_ctor_set(v___x_6643_, 4, v___x_6651_);
lean_ctor_set(v___x_6643_, 0, v___x_6648_);
v___x_6653_ = v___x_6643_;
goto v_reusejp_6652_;
}
else
{
lean_object* v_reuseFailAlloc_6654_; 
v_reuseFailAlloc_6654_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6654_, 0, v___x_6648_);
lean_ctor_set(v_reuseFailAlloc_6654_, 1, v_k_6403_);
lean_ctor_set(v_reuseFailAlloc_6654_, 2, v_v_6404_);
lean_ctor_set(v_reuseFailAlloc_6654_, 3, v_l_6405_);
lean_ctor_set(v_reuseFailAlloc_6654_, 4, v___x_6651_);
v___x_6653_ = v_reuseFailAlloc_6654_;
goto v_reusejp_6652_;
}
v_reusejp_6652_:
{
return v___x_6653_;
}
}
}
else
{
lean_object* v_k_6656_; lean_object* v_v_6657_; lean_object* v___x_6658_; lean_object* v___x_6660_; 
lean_dec(v_size_6402_);
v_k_6656_ = lean_ctor_get(v___x_6558_, 0);
lean_inc(v_k_6656_);
v_v_6657_ = lean_ctor_get(v___x_6558_, 1);
lean_inc(v_v_6657_);
lean_dec_ref(v___x_6558_);
v___x_6658_ = lean_unsigned_to_nat(3u);
if (v_isShared_6557_ == 0)
{
lean_ctor_set(v___x_6556_, 4, v_r_6406_);
lean_ctor_set(v___x_6556_, 3, v_r_6406_);
lean_ctor_set(v___x_6556_, 2, v_v_6657_);
lean_ctor_set(v___x_6556_, 1, v_k_6656_);
lean_ctor_set(v___x_6556_, 0, v___x_6412_);
v___x_6660_ = v___x_6556_;
goto v_reusejp_6659_;
}
else
{
lean_object* v_reuseFailAlloc_6664_; 
v_reuseFailAlloc_6664_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6664_, 0, v___x_6412_);
lean_ctor_set(v_reuseFailAlloc_6664_, 1, v_k_6656_);
lean_ctor_set(v_reuseFailAlloc_6664_, 2, v_v_6657_);
lean_ctor_set(v_reuseFailAlloc_6664_, 3, v_r_6406_);
lean_ctor_set(v_reuseFailAlloc_6664_, 4, v_r_6406_);
v___x_6660_ = v_reuseFailAlloc_6664_;
goto v_reusejp_6659_;
}
v_reusejp_6659_:
{
lean_object* v___x_6662_; 
if (v_isShared_6644_ == 0)
{
lean_ctor_set(v___x_6643_, 4, v___x_6660_);
lean_ctor_set(v___x_6643_, 0, v___x_6658_);
v___x_6662_ = v___x_6643_;
goto v_reusejp_6661_;
}
else
{
lean_object* v_reuseFailAlloc_6663_; 
v_reuseFailAlloc_6663_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6663_, 0, v___x_6658_);
lean_ctor_set(v_reuseFailAlloc_6663_, 1, v_k_6403_);
lean_ctor_set(v_reuseFailAlloc_6663_, 2, v_v_6404_);
lean_ctor_set(v_reuseFailAlloc_6663_, 3, v_l_6405_);
lean_ctor_set(v_reuseFailAlloc_6663_, 4, v___x_6660_);
v___x_6662_ = v_reuseFailAlloc_6663_;
goto v_reusejp_6661_;
}
v_reusejp_6661_:
{
return v___x_6662_;
}
}
}
}
}
else
{
if (lean_obj_tag(v_r_6406_) == 0)
{
lean_object* v___x_6672_; uint8_t v_isShared_6673_; uint8_t v_isSharedCheck_6695_; 
lean_inc(v_l_6405_);
lean_inc(v_v_6404_);
lean_inc(v_k_6403_);
v_isSharedCheck_6695_ = !lean_is_exclusive(v_l_6222_);
if (v_isSharedCheck_6695_ == 0)
{
lean_object* v_unused_6696_; lean_object* v_unused_6697_; lean_object* v_unused_6698_; lean_object* v_unused_6699_; lean_object* v_unused_6700_; 
v_unused_6696_ = lean_ctor_get(v_l_6222_, 4);
lean_dec(v_unused_6696_);
v_unused_6697_ = lean_ctor_get(v_l_6222_, 3);
lean_dec(v_unused_6697_);
v_unused_6698_ = lean_ctor_get(v_l_6222_, 2);
lean_dec(v_unused_6698_);
v_unused_6699_ = lean_ctor_get(v_l_6222_, 1);
lean_dec(v_unused_6699_);
v_unused_6700_ = lean_ctor_get(v_l_6222_, 0);
lean_dec(v_unused_6700_);
v___x_6672_ = v_l_6222_;
v_isShared_6673_ = v_isSharedCheck_6695_;
goto v_resetjp_6671_;
}
else
{
lean_dec(v_l_6222_);
v___x_6672_ = lean_box(0);
v_isShared_6673_ = v_isSharedCheck_6695_;
goto v_resetjp_6671_;
}
v_resetjp_6671_:
{
lean_object* v_k_6674_; lean_object* v_v_6675_; lean_object* v_k_6676_; lean_object* v_v_6677_; lean_object* v___x_6679_; uint8_t v_isShared_6680_; uint8_t v_isSharedCheck_6691_; 
v_k_6674_ = lean_ctor_get(v___x_6558_, 0);
lean_inc(v_k_6674_);
v_v_6675_ = lean_ctor_get(v___x_6558_, 1);
lean_inc(v_v_6675_);
lean_dec_ref(v___x_6558_);
v_k_6676_ = lean_ctor_get(v_r_6406_, 1);
v_v_6677_ = lean_ctor_get(v_r_6406_, 2);
v_isSharedCheck_6691_ = !lean_is_exclusive(v_r_6406_);
if (v_isSharedCheck_6691_ == 0)
{
lean_object* v_unused_6692_; lean_object* v_unused_6693_; lean_object* v_unused_6694_; 
v_unused_6692_ = lean_ctor_get(v_r_6406_, 4);
lean_dec(v_unused_6692_);
v_unused_6693_ = lean_ctor_get(v_r_6406_, 3);
lean_dec(v_unused_6693_);
v_unused_6694_ = lean_ctor_get(v_r_6406_, 0);
lean_dec(v_unused_6694_);
v___x_6679_ = v_r_6406_;
v_isShared_6680_ = v_isSharedCheck_6691_;
goto v_resetjp_6678_;
}
else
{
lean_inc(v_v_6677_);
lean_inc(v_k_6676_);
lean_dec(v_r_6406_);
v___x_6679_ = lean_box(0);
v_isShared_6680_ = v_isSharedCheck_6691_;
goto v_resetjp_6678_;
}
v_resetjp_6678_:
{
lean_object* v___x_6681_; lean_object* v___x_6683_; 
v___x_6681_ = lean_unsigned_to_nat(3u);
if (v_isShared_6680_ == 0)
{
lean_ctor_set(v___x_6679_, 4, v_l_6405_);
lean_ctor_set(v___x_6679_, 3, v_l_6405_);
lean_ctor_set(v___x_6679_, 2, v_v_6404_);
lean_ctor_set(v___x_6679_, 1, v_k_6403_);
lean_ctor_set(v___x_6679_, 0, v___x_6412_);
v___x_6683_ = v___x_6679_;
goto v_reusejp_6682_;
}
else
{
lean_object* v_reuseFailAlloc_6690_; 
v_reuseFailAlloc_6690_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6690_, 0, v___x_6412_);
lean_ctor_set(v_reuseFailAlloc_6690_, 1, v_k_6403_);
lean_ctor_set(v_reuseFailAlloc_6690_, 2, v_v_6404_);
lean_ctor_set(v_reuseFailAlloc_6690_, 3, v_l_6405_);
lean_ctor_set(v_reuseFailAlloc_6690_, 4, v_l_6405_);
v___x_6683_ = v_reuseFailAlloc_6690_;
goto v_reusejp_6682_;
}
v_reusejp_6682_:
{
lean_object* v___x_6685_; 
if (v_isShared_6557_ == 0)
{
lean_ctor_set(v___x_6556_, 4, v_l_6405_);
lean_ctor_set(v___x_6556_, 3, v_l_6405_);
lean_ctor_set(v___x_6556_, 2, v_v_6675_);
lean_ctor_set(v___x_6556_, 1, v_k_6674_);
lean_ctor_set(v___x_6556_, 0, v___x_6412_);
v___x_6685_ = v___x_6556_;
goto v_reusejp_6684_;
}
else
{
lean_object* v_reuseFailAlloc_6689_; 
v_reuseFailAlloc_6689_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6689_, 0, v___x_6412_);
lean_ctor_set(v_reuseFailAlloc_6689_, 1, v_k_6674_);
lean_ctor_set(v_reuseFailAlloc_6689_, 2, v_v_6675_);
lean_ctor_set(v_reuseFailAlloc_6689_, 3, v_l_6405_);
lean_ctor_set(v_reuseFailAlloc_6689_, 4, v_l_6405_);
v___x_6685_ = v_reuseFailAlloc_6689_;
goto v_reusejp_6684_;
}
v_reusejp_6684_:
{
lean_object* v___x_6687_; 
if (v_isShared_6673_ == 0)
{
lean_ctor_set(v___x_6672_, 4, v___x_6685_);
lean_ctor_set(v___x_6672_, 3, v___x_6683_);
lean_ctor_set(v___x_6672_, 2, v_v_6677_);
lean_ctor_set(v___x_6672_, 1, v_k_6676_);
lean_ctor_set(v___x_6672_, 0, v___x_6681_);
v___x_6687_ = v___x_6672_;
goto v_reusejp_6686_;
}
else
{
lean_object* v_reuseFailAlloc_6688_; 
v_reuseFailAlloc_6688_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6688_, 0, v___x_6681_);
lean_ctor_set(v_reuseFailAlloc_6688_, 1, v_k_6676_);
lean_ctor_set(v_reuseFailAlloc_6688_, 2, v_v_6677_);
lean_ctor_set(v_reuseFailAlloc_6688_, 3, v___x_6683_);
lean_ctor_set(v_reuseFailAlloc_6688_, 4, v___x_6685_);
v___x_6687_ = v_reuseFailAlloc_6688_;
goto v_reusejp_6686_;
}
v_reusejp_6686_:
{
return v___x_6687_;
}
}
}
}
}
}
else
{
lean_object* v_k_6701_; lean_object* v_v_6702_; lean_object* v___x_6703_; lean_object* v___x_6705_; 
v_k_6701_ = lean_ctor_get(v___x_6558_, 0);
lean_inc(v_k_6701_);
v_v_6702_ = lean_ctor_get(v___x_6558_, 1);
lean_inc(v_v_6702_);
lean_dec_ref(v___x_6558_);
v___x_6703_ = lean_unsigned_to_nat(2u);
if (v_isShared_6557_ == 0)
{
lean_ctor_set(v___x_6556_, 4, v_r_6406_);
lean_ctor_set(v___x_6556_, 3, v_l_6222_);
lean_ctor_set(v___x_6556_, 2, v_v_6702_);
lean_ctor_set(v___x_6556_, 1, v_k_6701_);
lean_ctor_set(v___x_6556_, 0, v___x_6703_);
v___x_6705_ = v___x_6556_;
goto v_reusejp_6704_;
}
else
{
lean_object* v_reuseFailAlloc_6706_; 
v_reuseFailAlloc_6706_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6706_, 0, v___x_6703_);
lean_ctor_set(v_reuseFailAlloc_6706_, 1, v_k_6701_);
lean_ctor_set(v_reuseFailAlloc_6706_, 2, v_v_6702_);
lean_ctor_set(v_reuseFailAlloc_6706_, 3, v_l_6222_);
lean_ctor_set(v_reuseFailAlloc_6706_, 4, v_r_6406_);
v___x_6705_ = v_reuseFailAlloc_6706_;
goto v_reusejp_6704_;
}
v_reusejp_6704_:
{
return v___x_6705_;
}
}
}
}
}
}
}
else
{
return v_l_6222_;
}
}
else
{
return v_r_6223_;
}
}
default: 
{
lean_object* v_impl_6713_; lean_object* v___x_6714_; 
v_impl_6713_ = l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___redArg(v_k_6218_, v_r_6223_);
v___x_6714_ = lean_unsigned_to_nat(1u);
if (lean_obj_tag(v_impl_6713_) == 0)
{
if (lean_obj_tag(v_l_6222_) == 0)
{
lean_object* v_size_6715_; lean_object* v_size_6716_; lean_object* v_k_6717_; lean_object* v_v_6718_; lean_object* v_l_6719_; lean_object* v_r_6720_; lean_object* v___x_6721_; lean_object* v___x_6722_; uint8_t v___x_6723_; 
v_size_6715_ = lean_ctor_get(v_impl_6713_, 0);
lean_inc(v_size_6715_);
v_size_6716_ = lean_ctor_get(v_l_6222_, 0);
v_k_6717_ = lean_ctor_get(v_l_6222_, 1);
v_v_6718_ = lean_ctor_get(v_l_6222_, 2);
v_l_6719_ = lean_ctor_get(v_l_6222_, 3);
v_r_6720_ = lean_ctor_get(v_l_6222_, 4);
lean_inc(v_r_6720_);
v___x_6721_ = lean_unsigned_to_nat(3u);
v___x_6722_ = lean_nat_mul(v___x_6721_, v_size_6715_);
v___x_6723_ = lean_nat_dec_lt(v___x_6722_, v_size_6716_);
lean_dec(v___x_6722_);
if (v___x_6723_ == 0)
{
lean_object* v___x_6724_; lean_object* v___x_6725_; lean_object* v___x_6727_; 
lean_dec(v_r_6720_);
v___x_6724_ = lean_nat_add(v___x_6714_, v_size_6716_);
v___x_6725_ = lean_nat_add(v___x_6724_, v_size_6715_);
lean_dec(v_size_6715_);
lean_dec(v___x_6724_);
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v_impl_6713_);
lean_ctor_set(v___x_6225_, 0, v___x_6725_);
v___x_6727_ = v___x_6225_;
goto v_reusejp_6726_;
}
else
{
lean_object* v_reuseFailAlloc_6728_; 
v_reuseFailAlloc_6728_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6728_, 0, v___x_6725_);
lean_ctor_set(v_reuseFailAlloc_6728_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6728_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6728_, 3, v_l_6222_);
lean_ctor_set(v_reuseFailAlloc_6728_, 4, v_impl_6713_);
v___x_6727_ = v_reuseFailAlloc_6728_;
goto v_reusejp_6726_;
}
v_reusejp_6726_:
{
return v___x_6727_;
}
}
else
{
lean_object* v___x_6730_; uint8_t v_isShared_6731_; uint8_t v_isSharedCheck_6794_; 
lean_inc(v_l_6719_);
lean_inc(v_v_6718_);
lean_inc(v_k_6717_);
lean_inc(v_size_6716_);
v_isSharedCheck_6794_ = !lean_is_exclusive(v_l_6222_);
if (v_isSharedCheck_6794_ == 0)
{
lean_object* v_unused_6795_; lean_object* v_unused_6796_; lean_object* v_unused_6797_; lean_object* v_unused_6798_; lean_object* v_unused_6799_; 
v_unused_6795_ = lean_ctor_get(v_l_6222_, 4);
lean_dec(v_unused_6795_);
v_unused_6796_ = lean_ctor_get(v_l_6222_, 3);
lean_dec(v_unused_6796_);
v_unused_6797_ = lean_ctor_get(v_l_6222_, 2);
lean_dec(v_unused_6797_);
v_unused_6798_ = lean_ctor_get(v_l_6222_, 1);
lean_dec(v_unused_6798_);
v_unused_6799_ = lean_ctor_get(v_l_6222_, 0);
lean_dec(v_unused_6799_);
v___x_6730_ = v_l_6222_;
v_isShared_6731_ = v_isSharedCheck_6794_;
goto v_resetjp_6729_;
}
else
{
lean_dec(v_l_6222_);
v___x_6730_ = lean_box(0);
v_isShared_6731_ = v_isSharedCheck_6794_;
goto v_resetjp_6729_;
}
v_resetjp_6729_:
{
lean_object* v_size_6732_; lean_object* v_size_6733_; lean_object* v_k_6734_; lean_object* v_v_6735_; lean_object* v_l_6736_; lean_object* v_r_6737_; lean_object* v___x_6738_; lean_object* v___x_6739_; uint8_t v___x_6740_; 
v_size_6732_ = lean_ctor_get(v_l_6719_, 0);
v_size_6733_ = lean_ctor_get(v_r_6720_, 0);
v_k_6734_ = lean_ctor_get(v_r_6720_, 1);
v_v_6735_ = lean_ctor_get(v_r_6720_, 2);
v_l_6736_ = lean_ctor_get(v_r_6720_, 3);
v_r_6737_ = lean_ctor_get(v_r_6720_, 4);
v___x_6738_ = lean_unsigned_to_nat(2u);
v___x_6739_ = lean_nat_mul(v___x_6738_, v_size_6732_);
v___x_6740_ = lean_nat_dec_lt(v_size_6733_, v___x_6739_);
lean_dec(v___x_6739_);
if (v___x_6740_ == 0)
{
lean_object* v___x_6742_; uint8_t v_isShared_6743_; uint8_t v_isSharedCheck_6769_; 
lean_inc(v_r_6737_);
lean_inc(v_l_6736_);
lean_inc(v_v_6735_);
lean_inc(v_k_6734_);
v_isSharedCheck_6769_ = !lean_is_exclusive(v_r_6720_);
if (v_isSharedCheck_6769_ == 0)
{
lean_object* v_unused_6770_; lean_object* v_unused_6771_; lean_object* v_unused_6772_; lean_object* v_unused_6773_; lean_object* v_unused_6774_; 
v_unused_6770_ = lean_ctor_get(v_r_6720_, 4);
lean_dec(v_unused_6770_);
v_unused_6771_ = lean_ctor_get(v_r_6720_, 3);
lean_dec(v_unused_6771_);
v_unused_6772_ = lean_ctor_get(v_r_6720_, 2);
lean_dec(v_unused_6772_);
v_unused_6773_ = lean_ctor_get(v_r_6720_, 1);
lean_dec(v_unused_6773_);
v_unused_6774_ = lean_ctor_get(v_r_6720_, 0);
lean_dec(v_unused_6774_);
v___x_6742_ = v_r_6720_;
v_isShared_6743_ = v_isSharedCheck_6769_;
goto v_resetjp_6741_;
}
else
{
lean_dec(v_r_6720_);
v___x_6742_ = lean_box(0);
v_isShared_6743_ = v_isSharedCheck_6769_;
goto v_resetjp_6741_;
}
v_resetjp_6741_:
{
lean_object* v___x_6744_; lean_object* v___x_6745_; lean_object* v___y_6747_; lean_object* v___y_6748_; lean_object* v___y_6749_; lean_object* v___x_6757_; lean_object* v___y_6759_; 
v___x_6744_ = lean_nat_add(v___x_6714_, v_size_6716_);
lean_dec(v_size_6716_);
v___x_6745_ = lean_nat_add(v___x_6744_, v_size_6715_);
lean_dec(v___x_6744_);
v___x_6757_ = lean_nat_add(v___x_6714_, v_size_6732_);
if (lean_obj_tag(v_l_6736_) == 0)
{
lean_object* v_size_6767_; 
v_size_6767_ = lean_ctor_get(v_l_6736_, 0);
lean_inc(v_size_6767_);
v___y_6759_ = v_size_6767_;
goto v___jp_6758_;
}
else
{
lean_object* v___x_6768_; 
v___x_6768_ = lean_unsigned_to_nat(0u);
v___y_6759_ = v___x_6768_;
goto v___jp_6758_;
}
v___jp_6746_:
{
lean_object* v___x_6750_; lean_object* v___x_6752_; 
v___x_6750_ = lean_nat_add(v___y_6747_, v___y_6749_);
lean_dec(v___y_6749_);
lean_dec(v___y_6747_);
if (v_isShared_6743_ == 0)
{
lean_ctor_set(v___x_6742_, 4, v_impl_6713_);
lean_ctor_set(v___x_6742_, 3, v_r_6737_);
lean_ctor_set(v___x_6742_, 2, v_v_6221_);
lean_ctor_set(v___x_6742_, 1, v_k_6220_);
lean_ctor_set(v___x_6742_, 0, v___x_6750_);
v___x_6752_ = v___x_6742_;
goto v_reusejp_6751_;
}
else
{
lean_object* v_reuseFailAlloc_6756_; 
v_reuseFailAlloc_6756_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6756_, 0, v___x_6750_);
lean_ctor_set(v_reuseFailAlloc_6756_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6756_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6756_, 3, v_r_6737_);
lean_ctor_set(v_reuseFailAlloc_6756_, 4, v_impl_6713_);
v___x_6752_ = v_reuseFailAlloc_6756_;
goto v_reusejp_6751_;
}
v_reusejp_6751_:
{
lean_object* v___x_6754_; 
if (v_isShared_6731_ == 0)
{
lean_ctor_set(v___x_6730_, 4, v___x_6752_);
lean_ctor_set(v___x_6730_, 3, v___y_6748_);
lean_ctor_set(v___x_6730_, 2, v_v_6735_);
lean_ctor_set(v___x_6730_, 1, v_k_6734_);
lean_ctor_set(v___x_6730_, 0, v___x_6745_);
v___x_6754_ = v___x_6730_;
goto v_reusejp_6753_;
}
else
{
lean_object* v_reuseFailAlloc_6755_; 
v_reuseFailAlloc_6755_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6755_, 0, v___x_6745_);
lean_ctor_set(v_reuseFailAlloc_6755_, 1, v_k_6734_);
lean_ctor_set(v_reuseFailAlloc_6755_, 2, v_v_6735_);
lean_ctor_set(v_reuseFailAlloc_6755_, 3, v___y_6748_);
lean_ctor_set(v_reuseFailAlloc_6755_, 4, v___x_6752_);
v___x_6754_ = v_reuseFailAlloc_6755_;
goto v_reusejp_6753_;
}
v_reusejp_6753_:
{
return v___x_6754_;
}
}
}
v___jp_6758_:
{
lean_object* v___x_6760_; lean_object* v___x_6762_; 
v___x_6760_ = lean_nat_add(v___x_6757_, v___y_6759_);
lean_dec(v___y_6759_);
lean_dec(v___x_6757_);
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v_l_6736_);
lean_ctor_set(v___x_6225_, 3, v_l_6719_);
lean_ctor_set(v___x_6225_, 2, v_v_6718_);
lean_ctor_set(v___x_6225_, 1, v_k_6717_);
lean_ctor_set(v___x_6225_, 0, v___x_6760_);
v___x_6762_ = v___x_6225_;
goto v_reusejp_6761_;
}
else
{
lean_object* v_reuseFailAlloc_6766_; 
v_reuseFailAlloc_6766_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6766_, 0, v___x_6760_);
lean_ctor_set(v_reuseFailAlloc_6766_, 1, v_k_6717_);
lean_ctor_set(v_reuseFailAlloc_6766_, 2, v_v_6718_);
lean_ctor_set(v_reuseFailAlloc_6766_, 3, v_l_6719_);
lean_ctor_set(v_reuseFailAlloc_6766_, 4, v_l_6736_);
v___x_6762_ = v_reuseFailAlloc_6766_;
goto v_reusejp_6761_;
}
v_reusejp_6761_:
{
lean_object* v___x_6763_; 
v___x_6763_ = lean_nat_add(v___x_6714_, v_size_6715_);
lean_dec(v_size_6715_);
if (lean_obj_tag(v_r_6737_) == 0)
{
lean_object* v_size_6764_; 
v_size_6764_ = lean_ctor_get(v_r_6737_, 0);
lean_inc(v_size_6764_);
v___y_6747_ = v___x_6763_;
v___y_6748_ = v___x_6762_;
v___y_6749_ = v_size_6764_;
goto v___jp_6746_;
}
else
{
lean_object* v___x_6765_; 
v___x_6765_ = lean_unsigned_to_nat(0u);
v___y_6747_ = v___x_6763_;
v___y_6748_ = v___x_6762_;
v___y_6749_ = v___x_6765_;
goto v___jp_6746_;
}
}
}
}
}
else
{
lean_object* v___x_6775_; lean_object* v___x_6776_; lean_object* v___x_6777_; lean_object* v___x_6778_; lean_object* v___x_6780_; 
lean_del_object(v___x_6225_);
v___x_6775_ = lean_nat_add(v___x_6714_, v_size_6716_);
lean_dec(v_size_6716_);
v___x_6776_ = lean_nat_add(v___x_6775_, v_size_6715_);
lean_dec(v___x_6775_);
v___x_6777_ = lean_nat_add(v___x_6714_, v_size_6715_);
lean_dec(v_size_6715_);
v___x_6778_ = lean_nat_add(v___x_6777_, v_size_6733_);
lean_dec(v___x_6777_);
lean_inc_ref(v_impl_6713_);
if (v_isShared_6731_ == 0)
{
lean_ctor_set(v___x_6730_, 4, v_impl_6713_);
lean_ctor_set(v___x_6730_, 3, v_r_6720_);
lean_ctor_set(v___x_6730_, 2, v_v_6221_);
lean_ctor_set(v___x_6730_, 1, v_k_6220_);
lean_ctor_set(v___x_6730_, 0, v___x_6778_);
v___x_6780_ = v___x_6730_;
goto v_reusejp_6779_;
}
else
{
lean_object* v_reuseFailAlloc_6793_; 
v_reuseFailAlloc_6793_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6793_, 0, v___x_6778_);
lean_ctor_set(v_reuseFailAlloc_6793_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6793_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6793_, 3, v_r_6720_);
lean_ctor_set(v_reuseFailAlloc_6793_, 4, v_impl_6713_);
v___x_6780_ = v_reuseFailAlloc_6793_;
goto v_reusejp_6779_;
}
v_reusejp_6779_:
{
lean_object* v___x_6782_; uint8_t v_isShared_6783_; uint8_t v_isSharedCheck_6787_; 
v_isSharedCheck_6787_ = !lean_is_exclusive(v_impl_6713_);
if (v_isSharedCheck_6787_ == 0)
{
lean_object* v_unused_6788_; lean_object* v_unused_6789_; lean_object* v_unused_6790_; lean_object* v_unused_6791_; lean_object* v_unused_6792_; 
v_unused_6788_ = lean_ctor_get(v_impl_6713_, 4);
lean_dec(v_unused_6788_);
v_unused_6789_ = lean_ctor_get(v_impl_6713_, 3);
lean_dec(v_unused_6789_);
v_unused_6790_ = lean_ctor_get(v_impl_6713_, 2);
lean_dec(v_unused_6790_);
v_unused_6791_ = lean_ctor_get(v_impl_6713_, 1);
lean_dec(v_unused_6791_);
v_unused_6792_ = lean_ctor_get(v_impl_6713_, 0);
lean_dec(v_unused_6792_);
v___x_6782_ = v_impl_6713_;
v_isShared_6783_ = v_isSharedCheck_6787_;
goto v_resetjp_6781_;
}
else
{
lean_dec(v_impl_6713_);
v___x_6782_ = lean_box(0);
v_isShared_6783_ = v_isSharedCheck_6787_;
goto v_resetjp_6781_;
}
v_resetjp_6781_:
{
lean_object* v___x_6785_; 
if (v_isShared_6783_ == 0)
{
lean_ctor_set(v___x_6782_, 4, v___x_6780_);
lean_ctor_set(v___x_6782_, 3, v_l_6719_);
lean_ctor_set(v___x_6782_, 2, v_v_6718_);
lean_ctor_set(v___x_6782_, 1, v_k_6717_);
lean_ctor_set(v___x_6782_, 0, v___x_6776_);
v___x_6785_ = v___x_6782_;
goto v_reusejp_6784_;
}
else
{
lean_object* v_reuseFailAlloc_6786_; 
v_reuseFailAlloc_6786_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6786_, 0, v___x_6776_);
lean_ctor_set(v_reuseFailAlloc_6786_, 1, v_k_6717_);
lean_ctor_set(v_reuseFailAlloc_6786_, 2, v_v_6718_);
lean_ctor_set(v_reuseFailAlloc_6786_, 3, v_l_6719_);
lean_ctor_set(v_reuseFailAlloc_6786_, 4, v___x_6780_);
v___x_6785_ = v_reuseFailAlloc_6786_;
goto v_reusejp_6784_;
}
v_reusejp_6784_:
{
return v___x_6785_;
}
}
}
}
}
}
}
else
{
lean_object* v_size_6800_; lean_object* v___x_6801_; lean_object* v___x_6803_; 
v_size_6800_ = lean_ctor_get(v_impl_6713_, 0);
lean_inc(v_size_6800_);
v___x_6801_ = lean_nat_add(v___x_6714_, v_size_6800_);
lean_dec(v_size_6800_);
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v_impl_6713_);
lean_ctor_set(v___x_6225_, 0, v___x_6801_);
v___x_6803_ = v___x_6225_;
goto v_reusejp_6802_;
}
else
{
lean_object* v_reuseFailAlloc_6804_; 
v_reuseFailAlloc_6804_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6804_, 0, v___x_6801_);
lean_ctor_set(v_reuseFailAlloc_6804_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6804_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6804_, 3, v_l_6222_);
lean_ctor_set(v_reuseFailAlloc_6804_, 4, v_impl_6713_);
v___x_6803_ = v_reuseFailAlloc_6804_;
goto v_reusejp_6802_;
}
v_reusejp_6802_:
{
return v___x_6803_;
}
}
}
else
{
if (lean_obj_tag(v_l_6222_) == 0)
{
lean_object* v_l_6805_; 
v_l_6805_ = lean_ctor_get(v_l_6222_, 3);
if (lean_obj_tag(v_l_6805_) == 0)
{
lean_object* v_r_6806_; 
lean_inc_ref(v_l_6805_);
v_r_6806_ = lean_ctor_get(v_l_6222_, 4);
lean_inc(v_r_6806_);
if (lean_obj_tag(v_r_6806_) == 0)
{
lean_object* v_size_6807_; lean_object* v_k_6808_; lean_object* v_v_6809_; lean_object* v___x_6811_; uint8_t v_isShared_6812_; uint8_t v_isSharedCheck_6822_; 
v_size_6807_ = lean_ctor_get(v_l_6222_, 0);
v_k_6808_ = lean_ctor_get(v_l_6222_, 1);
v_v_6809_ = lean_ctor_get(v_l_6222_, 2);
v_isSharedCheck_6822_ = !lean_is_exclusive(v_l_6222_);
if (v_isSharedCheck_6822_ == 0)
{
lean_object* v_unused_6823_; lean_object* v_unused_6824_; 
v_unused_6823_ = lean_ctor_get(v_l_6222_, 4);
lean_dec(v_unused_6823_);
v_unused_6824_ = lean_ctor_get(v_l_6222_, 3);
lean_dec(v_unused_6824_);
v___x_6811_ = v_l_6222_;
v_isShared_6812_ = v_isSharedCheck_6822_;
goto v_resetjp_6810_;
}
else
{
lean_inc(v_v_6809_);
lean_inc(v_k_6808_);
lean_inc(v_size_6807_);
lean_dec(v_l_6222_);
v___x_6811_ = lean_box(0);
v_isShared_6812_ = v_isSharedCheck_6822_;
goto v_resetjp_6810_;
}
v_resetjp_6810_:
{
lean_object* v_size_6813_; lean_object* v___x_6814_; lean_object* v___x_6815_; lean_object* v___x_6817_; 
v_size_6813_ = lean_ctor_get(v_r_6806_, 0);
v___x_6814_ = lean_nat_add(v___x_6714_, v_size_6807_);
lean_dec(v_size_6807_);
v___x_6815_ = lean_nat_add(v___x_6714_, v_size_6813_);
if (v_isShared_6812_ == 0)
{
lean_ctor_set(v___x_6811_, 4, v_impl_6713_);
lean_ctor_set(v___x_6811_, 3, v_r_6806_);
lean_ctor_set(v___x_6811_, 2, v_v_6221_);
lean_ctor_set(v___x_6811_, 1, v_k_6220_);
lean_ctor_set(v___x_6811_, 0, v___x_6815_);
v___x_6817_ = v___x_6811_;
goto v_reusejp_6816_;
}
else
{
lean_object* v_reuseFailAlloc_6821_; 
v_reuseFailAlloc_6821_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6821_, 0, v___x_6815_);
lean_ctor_set(v_reuseFailAlloc_6821_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6821_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6821_, 3, v_r_6806_);
lean_ctor_set(v_reuseFailAlloc_6821_, 4, v_impl_6713_);
v___x_6817_ = v_reuseFailAlloc_6821_;
goto v_reusejp_6816_;
}
v_reusejp_6816_:
{
lean_object* v___x_6819_; 
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v___x_6817_);
lean_ctor_set(v___x_6225_, 3, v_l_6805_);
lean_ctor_set(v___x_6225_, 2, v_v_6809_);
lean_ctor_set(v___x_6225_, 1, v_k_6808_);
lean_ctor_set(v___x_6225_, 0, v___x_6814_);
v___x_6819_ = v___x_6225_;
goto v_reusejp_6818_;
}
else
{
lean_object* v_reuseFailAlloc_6820_; 
v_reuseFailAlloc_6820_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6820_, 0, v___x_6814_);
lean_ctor_set(v_reuseFailAlloc_6820_, 1, v_k_6808_);
lean_ctor_set(v_reuseFailAlloc_6820_, 2, v_v_6809_);
lean_ctor_set(v_reuseFailAlloc_6820_, 3, v_l_6805_);
lean_ctor_set(v_reuseFailAlloc_6820_, 4, v___x_6817_);
v___x_6819_ = v_reuseFailAlloc_6820_;
goto v_reusejp_6818_;
}
v_reusejp_6818_:
{
return v___x_6819_;
}
}
}
}
else
{
lean_object* v_k_6825_; lean_object* v_v_6826_; lean_object* v___x_6828_; uint8_t v_isShared_6829_; uint8_t v_isSharedCheck_6837_; 
v_k_6825_ = lean_ctor_get(v_l_6222_, 1);
v_v_6826_ = lean_ctor_get(v_l_6222_, 2);
v_isSharedCheck_6837_ = !lean_is_exclusive(v_l_6222_);
if (v_isSharedCheck_6837_ == 0)
{
lean_object* v_unused_6838_; lean_object* v_unused_6839_; lean_object* v_unused_6840_; 
v_unused_6838_ = lean_ctor_get(v_l_6222_, 4);
lean_dec(v_unused_6838_);
v_unused_6839_ = lean_ctor_get(v_l_6222_, 3);
lean_dec(v_unused_6839_);
v_unused_6840_ = lean_ctor_get(v_l_6222_, 0);
lean_dec(v_unused_6840_);
v___x_6828_ = v_l_6222_;
v_isShared_6829_ = v_isSharedCheck_6837_;
goto v_resetjp_6827_;
}
else
{
lean_inc(v_v_6826_);
lean_inc(v_k_6825_);
lean_dec(v_l_6222_);
v___x_6828_ = lean_box(0);
v_isShared_6829_ = v_isSharedCheck_6837_;
goto v_resetjp_6827_;
}
v_resetjp_6827_:
{
lean_object* v___x_6830_; lean_object* v___x_6832_; 
v___x_6830_ = lean_unsigned_to_nat(3u);
if (v_isShared_6829_ == 0)
{
lean_ctor_set(v___x_6828_, 3, v_r_6806_);
lean_ctor_set(v___x_6828_, 2, v_v_6221_);
lean_ctor_set(v___x_6828_, 1, v_k_6220_);
lean_ctor_set(v___x_6828_, 0, v___x_6714_);
v___x_6832_ = v___x_6828_;
goto v_reusejp_6831_;
}
else
{
lean_object* v_reuseFailAlloc_6836_; 
v_reuseFailAlloc_6836_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6836_, 0, v___x_6714_);
lean_ctor_set(v_reuseFailAlloc_6836_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6836_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6836_, 3, v_r_6806_);
lean_ctor_set(v_reuseFailAlloc_6836_, 4, v_r_6806_);
v___x_6832_ = v_reuseFailAlloc_6836_;
goto v_reusejp_6831_;
}
v_reusejp_6831_:
{
lean_object* v___x_6834_; 
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v___x_6832_);
lean_ctor_set(v___x_6225_, 3, v_l_6805_);
lean_ctor_set(v___x_6225_, 2, v_v_6826_);
lean_ctor_set(v___x_6225_, 1, v_k_6825_);
lean_ctor_set(v___x_6225_, 0, v___x_6830_);
v___x_6834_ = v___x_6225_;
goto v_reusejp_6833_;
}
else
{
lean_object* v_reuseFailAlloc_6835_; 
v_reuseFailAlloc_6835_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6835_, 0, v___x_6830_);
lean_ctor_set(v_reuseFailAlloc_6835_, 1, v_k_6825_);
lean_ctor_set(v_reuseFailAlloc_6835_, 2, v_v_6826_);
lean_ctor_set(v_reuseFailAlloc_6835_, 3, v_l_6805_);
lean_ctor_set(v_reuseFailAlloc_6835_, 4, v___x_6832_);
v___x_6834_ = v_reuseFailAlloc_6835_;
goto v_reusejp_6833_;
}
v_reusejp_6833_:
{
return v___x_6834_;
}
}
}
}
}
else
{
lean_object* v_r_6841_; 
v_r_6841_ = lean_ctor_get(v_l_6222_, 4);
lean_inc(v_r_6841_);
if (lean_obj_tag(v_r_6841_) == 0)
{
lean_object* v_k_6842_; lean_object* v_v_6843_; lean_object* v___x_6845_; uint8_t v_isShared_6846_; uint8_t v_isSharedCheck_6866_; 
lean_inc(v_l_6805_);
v_k_6842_ = lean_ctor_get(v_l_6222_, 1);
v_v_6843_ = lean_ctor_get(v_l_6222_, 2);
v_isSharedCheck_6866_ = !lean_is_exclusive(v_l_6222_);
if (v_isSharedCheck_6866_ == 0)
{
lean_object* v_unused_6867_; lean_object* v_unused_6868_; lean_object* v_unused_6869_; 
v_unused_6867_ = lean_ctor_get(v_l_6222_, 4);
lean_dec(v_unused_6867_);
v_unused_6868_ = lean_ctor_get(v_l_6222_, 3);
lean_dec(v_unused_6868_);
v_unused_6869_ = lean_ctor_get(v_l_6222_, 0);
lean_dec(v_unused_6869_);
v___x_6845_ = v_l_6222_;
v_isShared_6846_ = v_isSharedCheck_6866_;
goto v_resetjp_6844_;
}
else
{
lean_inc(v_v_6843_);
lean_inc(v_k_6842_);
lean_dec(v_l_6222_);
v___x_6845_ = lean_box(0);
v_isShared_6846_ = v_isSharedCheck_6866_;
goto v_resetjp_6844_;
}
v_resetjp_6844_:
{
lean_object* v_k_6847_; lean_object* v_v_6848_; lean_object* v___x_6850_; uint8_t v_isShared_6851_; uint8_t v_isSharedCheck_6862_; 
v_k_6847_ = lean_ctor_get(v_r_6841_, 1);
v_v_6848_ = lean_ctor_get(v_r_6841_, 2);
v_isSharedCheck_6862_ = !lean_is_exclusive(v_r_6841_);
if (v_isSharedCheck_6862_ == 0)
{
lean_object* v_unused_6863_; lean_object* v_unused_6864_; lean_object* v_unused_6865_; 
v_unused_6863_ = lean_ctor_get(v_r_6841_, 4);
lean_dec(v_unused_6863_);
v_unused_6864_ = lean_ctor_get(v_r_6841_, 3);
lean_dec(v_unused_6864_);
v_unused_6865_ = lean_ctor_get(v_r_6841_, 0);
lean_dec(v_unused_6865_);
v___x_6850_ = v_r_6841_;
v_isShared_6851_ = v_isSharedCheck_6862_;
goto v_resetjp_6849_;
}
else
{
lean_inc(v_v_6848_);
lean_inc(v_k_6847_);
lean_dec(v_r_6841_);
v___x_6850_ = lean_box(0);
v_isShared_6851_ = v_isSharedCheck_6862_;
goto v_resetjp_6849_;
}
v_resetjp_6849_:
{
lean_object* v___x_6852_; lean_object* v___x_6854_; 
v___x_6852_ = lean_unsigned_to_nat(3u);
if (v_isShared_6851_ == 0)
{
lean_ctor_set(v___x_6850_, 4, v_l_6805_);
lean_ctor_set(v___x_6850_, 3, v_l_6805_);
lean_ctor_set(v___x_6850_, 2, v_v_6843_);
lean_ctor_set(v___x_6850_, 1, v_k_6842_);
lean_ctor_set(v___x_6850_, 0, v___x_6714_);
v___x_6854_ = v___x_6850_;
goto v_reusejp_6853_;
}
else
{
lean_object* v_reuseFailAlloc_6861_; 
v_reuseFailAlloc_6861_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6861_, 0, v___x_6714_);
lean_ctor_set(v_reuseFailAlloc_6861_, 1, v_k_6842_);
lean_ctor_set(v_reuseFailAlloc_6861_, 2, v_v_6843_);
lean_ctor_set(v_reuseFailAlloc_6861_, 3, v_l_6805_);
lean_ctor_set(v_reuseFailAlloc_6861_, 4, v_l_6805_);
v___x_6854_ = v_reuseFailAlloc_6861_;
goto v_reusejp_6853_;
}
v_reusejp_6853_:
{
lean_object* v___x_6856_; 
if (v_isShared_6846_ == 0)
{
lean_ctor_set(v___x_6845_, 4, v_l_6805_);
lean_ctor_set(v___x_6845_, 2, v_v_6221_);
lean_ctor_set(v___x_6845_, 1, v_k_6220_);
lean_ctor_set(v___x_6845_, 0, v___x_6714_);
v___x_6856_ = v___x_6845_;
goto v_reusejp_6855_;
}
else
{
lean_object* v_reuseFailAlloc_6860_; 
v_reuseFailAlloc_6860_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6860_, 0, v___x_6714_);
lean_ctor_set(v_reuseFailAlloc_6860_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6860_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6860_, 3, v_l_6805_);
lean_ctor_set(v_reuseFailAlloc_6860_, 4, v_l_6805_);
v___x_6856_ = v_reuseFailAlloc_6860_;
goto v_reusejp_6855_;
}
v_reusejp_6855_:
{
lean_object* v___x_6858_; 
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v___x_6856_);
lean_ctor_set(v___x_6225_, 3, v___x_6854_);
lean_ctor_set(v___x_6225_, 2, v_v_6848_);
lean_ctor_set(v___x_6225_, 1, v_k_6847_);
lean_ctor_set(v___x_6225_, 0, v___x_6852_);
v___x_6858_ = v___x_6225_;
goto v_reusejp_6857_;
}
else
{
lean_object* v_reuseFailAlloc_6859_; 
v_reuseFailAlloc_6859_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6859_, 0, v___x_6852_);
lean_ctor_set(v_reuseFailAlloc_6859_, 1, v_k_6847_);
lean_ctor_set(v_reuseFailAlloc_6859_, 2, v_v_6848_);
lean_ctor_set(v_reuseFailAlloc_6859_, 3, v___x_6854_);
lean_ctor_set(v_reuseFailAlloc_6859_, 4, v___x_6856_);
v___x_6858_ = v_reuseFailAlloc_6859_;
goto v_reusejp_6857_;
}
v_reusejp_6857_:
{
return v___x_6858_;
}
}
}
}
}
}
else
{
lean_object* v___x_6870_; lean_object* v___x_6872_; 
v___x_6870_ = lean_unsigned_to_nat(2u);
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v_r_6841_);
lean_ctor_set(v___x_6225_, 0, v___x_6870_);
v___x_6872_ = v___x_6225_;
goto v_reusejp_6871_;
}
else
{
lean_object* v_reuseFailAlloc_6873_; 
v_reuseFailAlloc_6873_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6873_, 0, v___x_6870_);
lean_ctor_set(v_reuseFailAlloc_6873_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6873_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6873_, 3, v_l_6222_);
lean_ctor_set(v_reuseFailAlloc_6873_, 4, v_r_6841_);
v___x_6872_ = v_reuseFailAlloc_6873_;
goto v_reusejp_6871_;
}
v_reusejp_6871_:
{
return v___x_6872_;
}
}
}
}
else
{
lean_object* v___x_6875_; 
if (v_isShared_6226_ == 0)
{
lean_ctor_set(v___x_6225_, 4, v_l_6222_);
lean_ctor_set(v___x_6225_, 0, v___x_6714_);
v___x_6875_ = v___x_6225_;
goto v_reusejp_6874_;
}
else
{
lean_object* v_reuseFailAlloc_6876_; 
v_reuseFailAlloc_6876_ = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(v_reuseFailAlloc_6876_, 0, v___x_6714_);
lean_ctor_set(v_reuseFailAlloc_6876_, 1, v_k_6220_);
lean_ctor_set(v_reuseFailAlloc_6876_, 2, v_v_6221_);
lean_ctor_set(v_reuseFailAlloc_6876_, 3, v_l_6222_);
lean_ctor_set(v_reuseFailAlloc_6876_, 4, v_l_6222_);
v___x_6875_ = v_reuseFailAlloc_6876_;
goto v_reusejp_6874_;
}
v_reusejp_6874_:
{
return v___x_6875_;
}
}
}
}
}
}
}
else
{
return v_t_6219_;
}
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___redArg___boxed(lean_object* v_k_6879_, lean_object* v_t_6880_){
_start:
{
lean_object* v_res_6881_; 
v_res_6881_ = l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___redArg(v_k_6879_, v_t_6880_);
lean_dec(v_k_6879_);
return v_res_6881_;
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_foldrM___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__3(lean_object* v_init_6882_, lean_object* v_x_6883_){
_start:
{
if (lean_obj_tag(v_x_6883_) == 0)
{
lean_object* v_k_6884_; lean_object* v_l_6885_; lean_object* v_r_6886_; lean_object* v___x_6887_; lean_object* v___x_6888_; 
v_k_6884_ = lean_ctor_get(v_x_6883_, 1);
v_l_6885_ = lean_ctor_get(v_x_6883_, 3);
v_r_6886_ = lean_ctor_get(v_x_6883_, 4);
v___x_6887_ = l_Std_DTreeMap_Internal_Impl_foldrM___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__3(v_init_6882_, v_r_6886_);
lean_inc(v_k_6884_);
v___x_6888_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v___x_6888_, 0, v_k_6884_);
lean_ctor_set(v___x_6888_, 1, v___x_6887_);
v_init_6882_ = v___x_6888_;
v_x_6883_ = v_l_6885_;
goto _start;
}
else
{
return v_init_6882_;
}
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_foldrM___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__3___boxed(lean_object* v_init_6890_, lean_object* v_x_6891_){
_start:
{
lean_object* v_res_6892_; 
v_res_6892_ = l_Std_DTreeMap_Internal_Impl_foldrM___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__3(v_init_6890_, v_x_6891_);
lean_dec(v_x_6891_);
return v_res_6892_;
}
}
LEAN_EXPORT lean_object* l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__5(lean_object* v_a_6893_, lean_object* v_a_6894_){
_start:
{
if (lean_obj_tag(v_a_6893_) == 0)
{
lean_object* v___x_6895_; 
v___x_6895_ = l_List_reverse___redArg(v_a_6894_);
return v___x_6895_;
}
else
{
lean_object* v_head_6896_; lean_object* v_tail_6897_; lean_object* v___x_6899_; uint8_t v_isShared_6900_; uint8_t v_isSharedCheck_6906_; 
v_head_6896_ = lean_ctor_get(v_a_6893_, 0);
v_tail_6897_ = lean_ctor_get(v_a_6893_, 1);
v_isSharedCheck_6906_ = !lean_is_exclusive(v_a_6893_);
if (v_isSharedCheck_6906_ == 0)
{
v___x_6899_ = v_a_6893_;
v_isShared_6900_ = v_isSharedCheck_6906_;
goto v_resetjp_6898_;
}
else
{
lean_inc(v_tail_6897_);
lean_inc(v_head_6896_);
lean_dec(v_a_6893_);
v___x_6899_ = lean_box(0);
v_isShared_6900_ = v_isSharedCheck_6906_;
goto v_resetjp_6898_;
}
v_resetjp_6898_:
{
lean_object* v___x_6901_; lean_object* v___x_6903_; 
v___x_6901_ = l_Lean_MessageData_ofName(v_head_6896_);
if (v_isShared_6900_ == 0)
{
lean_ctor_set(v___x_6899_, 1, v_a_6894_);
lean_ctor_set(v___x_6899_, 0, v___x_6901_);
v___x_6903_ = v___x_6899_;
goto v_reusejp_6902_;
}
else
{
lean_object* v_reuseFailAlloc_6905_; 
v_reuseFailAlloc_6905_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v_reuseFailAlloc_6905_, 0, v___x_6901_);
lean_ctor_set(v_reuseFailAlloc_6905_, 1, v_a_6894_);
v___x_6903_ = v_reuseFailAlloc_6905_;
goto v_reusejp_6902_;
}
v_reusejp_6902_:
{
v_a_6893_ = v_tail_6897_;
v_a_6894_ = v___x_6903_;
goto _start;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5___redArg(lean_object* v___y_6907_, lean_object* v___y_6908_, lean_object* v___y_6909_, lean_object* v___y_6910_, lean_object* v___y_6911_, lean_object* v___y_6912_, lean_object* v___y_6913_, lean_object* v___y_6914_, lean_object* v___y_6915_, lean_object* v___y_6916_, lean_object* v___y_6917_){
_start:
{
lean_object* v___x_6919_; 
v___x_6919_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_6907_, v___y_6908_, v___y_6909_, v___y_6910_, v___y_6911_, v___y_6912_, v___y_6913_, v___y_6914_, v___y_6915_, v___y_6916_, v___y_6917_);
if (lean_obj_tag(v___x_6919_) == 0)
{
lean_object* v_a_6920_; lean_object* v___x_6922_; uint8_t v_isShared_6923_; uint8_t v_isSharedCheck_6931_; 
v_a_6920_ = lean_ctor_get(v___x_6919_, 0);
v_isSharedCheck_6931_ = !lean_is_exclusive(v___x_6919_);
if (v_isSharedCheck_6931_ == 0)
{
v___x_6922_ = v___x_6919_;
v_isShared_6923_ = v_isSharedCheck_6931_;
goto v_resetjp_6921_;
}
else
{
lean_inc(v_a_6920_);
lean_dec(v___x_6919_);
v___x_6922_ = lean_box(0);
v_isShared_6923_ = v_isSharedCheck_6931_;
goto v_resetjp_6921_;
}
v_resetjp_6921_:
{
lean_object* v_ltFn_x3f_6924_; 
v_ltFn_x3f_6924_ = lean_ctor_get(v_a_6920_, 21);
lean_inc(v_ltFn_x3f_6924_);
lean_dec(v_a_6920_);
if (lean_obj_tag(v_ltFn_x3f_6924_) == 1)
{
lean_object* v_val_6925_; lean_object* v___x_6927_; 
v_val_6925_ = lean_ctor_get(v_ltFn_x3f_6924_, 0);
lean_inc(v_val_6925_);
lean_dec_ref(v_ltFn_x3f_6924_);
if (v_isShared_6923_ == 0)
{
lean_ctor_set(v___x_6922_, 0, v_val_6925_);
v___x_6927_ = v___x_6922_;
goto v_reusejp_6926_;
}
else
{
lean_object* v_reuseFailAlloc_6928_; 
v_reuseFailAlloc_6928_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6928_, 0, v_val_6925_);
v___x_6927_ = v_reuseFailAlloc_6928_;
goto v_reusejp_6926_;
}
v_reusejp_6926_:
{
return v___x_6927_;
}
}
else
{
lean_object* v___x_6929_; lean_object* v___x_6930_; 
lean_dec(v_ltFn_x3f_6924_);
lean_del_object(v___x_6922_);
v___x_6929_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__1, &l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__3___closed__1);
v___x_6930_ = l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg(v___x_6929_, v___y_6914_, v___y_6915_, v___y_6916_, v___y_6917_);
return v___x_6930_;
}
}
}
else
{
lean_object* v_a_6932_; lean_object* v___x_6934_; uint8_t v_isShared_6935_; uint8_t v_isSharedCheck_6939_; 
v_a_6932_ = lean_ctor_get(v___x_6919_, 0);
v_isSharedCheck_6939_ = !lean_is_exclusive(v___x_6919_);
if (v_isSharedCheck_6939_ == 0)
{
v___x_6934_ = v___x_6919_;
v_isShared_6935_ = v_isSharedCheck_6939_;
goto v_resetjp_6933_;
}
else
{
lean_inc(v_a_6932_);
lean_dec(v___x_6919_);
v___x_6934_ = lean_box(0);
v_isShared_6935_ = v_isSharedCheck_6939_;
goto v_resetjp_6933_;
}
v_resetjp_6933_:
{
lean_object* v___x_6937_; 
if (v_isShared_6935_ == 0)
{
v___x_6937_ = v___x_6934_;
goto v_reusejp_6936_;
}
else
{
lean_object* v_reuseFailAlloc_6938_; 
v_reuseFailAlloc_6938_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6938_, 0, v_a_6932_);
v___x_6937_ = v_reuseFailAlloc_6938_;
goto v_reusejp_6936_;
}
v_reusejp_6936_:
{
return v___x_6937_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5___redArg___boxed(lean_object* v___y_6940_, lean_object* v___y_6941_, lean_object* v___y_6942_, lean_object* v___y_6943_, lean_object* v___y_6944_, lean_object* v___y_6945_, lean_object* v___y_6946_, lean_object* v___y_6947_, lean_object* v___y_6948_, lean_object* v___y_6949_, lean_object* v___y_6950_, lean_object* v___y_6951_){
_start:
{
lean_object* v_res_6952_; 
v_res_6952_ = l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5___redArg(v___y_6940_, v___y_6941_, v___y_6942_, v___y_6943_, v___y_6944_, v___y_6945_, v___y_6946_, v___y_6947_, v___y_6948_, v___y_6949_, v___y_6950_);
lean_dec(v___y_6950_);
lean_dec_ref(v___y_6949_);
lean_dec(v___y_6948_);
lean_dec_ref(v___y_6947_);
lean_dec(v___y_6946_);
lean_dec_ref(v___y_6945_);
lean_dec(v___y_6944_);
lean_dec_ref(v___y_6943_);
lean_dec(v___y_6942_);
lean_dec(v___y_6941_);
lean_dec(v___y_6940_);
return v_res_6952_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4___redArg(lean_object* v___y_6953_, lean_object* v___y_6954_, lean_object* v___y_6955_, lean_object* v___y_6956_, lean_object* v___y_6957_, lean_object* v___y_6958_, lean_object* v___y_6959_, lean_object* v___y_6960_, lean_object* v___y_6961_, lean_object* v___y_6962_, lean_object* v___y_6963_){
_start:
{
lean_object* v___x_6965_; 
v___x_6965_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_6953_, v___y_6954_, v___y_6955_, v___y_6956_, v___y_6957_, v___y_6958_, v___y_6959_, v___y_6960_, v___y_6961_, v___y_6962_, v___y_6963_);
if (lean_obj_tag(v___x_6965_) == 0)
{
lean_object* v_a_6966_; lean_object* v___x_6968_; uint8_t v_isShared_6969_; uint8_t v_isSharedCheck_6977_; 
v_a_6966_ = lean_ctor_get(v___x_6965_, 0);
v_isSharedCheck_6977_ = !lean_is_exclusive(v___x_6965_);
if (v_isSharedCheck_6977_ == 0)
{
v___x_6968_ = v___x_6965_;
v_isShared_6969_ = v_isSharedCheck_6977_;
goto v_resetjp_6967_;
}
else
{
lean_inc(v_a_6966_);
lean_dec(v___x_6965_);
v___x_6968_ = lean_box(0);
v_isShared_6969_ = v_isSharedCheck_6977_;
goto v_resetjp_6967_;
}
v_resetjp_6967_:
{
lean_object* v_leFn_x3f_6970_; 
v_leFn_x3f_6970_ = lean_ctor_get(v_a_6966_, 20);
lean_inc(v_leFn_x3f_6970_);
lean_dec(v_a_6966_);
if (lean_obj_tag(v_leFn_x3f_6970_) == 1)
{
lean_object* v_val_6971_; lean_object* v___x_6973_; 
v_val_6971_ = lean_ctor_get(v_leFn_x3f_6970_, 0);
lean_inc(v_val_6971_);
lean_dec_ref(v_leFn_x3f_6970_);
if (v_isShared_6969_ == 0)
{
lean_ctor_set(v___x_6968_, 0, v_val_6971_);
v___x_6973_ = v___x_6968_;
goto v_reusejp_6972_;
}
else
{
lean_object* v_reuseFailAlloc_6974_; 
v_reuseFailAlloc_6974_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6974_, 0, v_val_6971_);
v___x_6973_ = v_reuseFailAlloc_6974_;
goto v_reusejp_6972_;
}
v_reusejp_6972_:
{
return v___x_6973_;
}
}
else
{
lean_object* v___x_6975_; lean_object* v___x_6976_; 
lean_dec(v_leFn_x3f_6970_);
lean_del_object(v___x_6968_);
v___x_6975_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__1, &l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_throwUnexpected_spec__0_spec__0_spec__1___closed__1);
v___x_6976_ = l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg(v___x_6975_, v___y_6960_, v___y_6961_, v___y_6962_, v___y_6963_);
return v___x_6976_;
}
}
}
else
{
lean_object* v_a_6978_; lean_object* v___x_6980_; uint8_t v_isShared_6981_; uint8_t v_isSharedCheck_6985_; 
v_a_6978_ = lean_ctor_get(v___x_6965_, 0);
v_isSharedCheck_6985_ = !lean_is_exclusive(v___x_6965_);
if (v_isSharedCheck_6985_ == 0)
{
v___x_6980_ = v___x_6965_;
v_isShared_6981_ = v_isSharedCheck_6985_;
goto v_resetjp_6979_;
}
else
{
lean_inc(v_a_6978_);
lean_dec(v___x_6965_);
v___x_6980_ = lean_box(0);
v_isShared_6981_ = v_isSharedCheck_6985_;
goto v_resetjp_6979_;
}
v_resetjp_6979_:
{
lean_object* v___x_6983_; 
if (v_isShared_6981_ == 0)
{
v___x_6983_ = v___x_6980_;
goto v_reusejp_6982_;
}
else
{
lean_object* v_reuseFailAlloc_6984_; 
v_reuseFailAlloc_6984_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6984_, 0, v_a_6978_);
v___x_6983_ = v_reuseFailAlloc_6984_;
goto v_reusejp_6982_;
}
v_reusejp_6982_:
{
return v___x_6983_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4___redArg___boxed(lean_object* v___y_6986_, lean_object* v___y_6987_, lean_object* v___y_6988_, lean_object* v___y_6989_, lean_object* v___y_6990_, lean_object* v___y_6991_, lean_object* v___y_6992_, lean_object* v___y_6993_, lean_object* v___y_6994_, lean_object* v___y_6995_, lean_object* v___y_6996_, lean_object* v___y_6997_){
_start:
{
lean_object* v_res_6998_; 
v_res_6998_ = l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4___redArg(v___y_6986_, v___y_6987_, v___y_6988_, v___y_6989_, v___y_6990_, v___y_6991_, v___y_6992_, v___y_6993_, v___y_6994_, v___y_6995_, v___y_6996_);
lean_dec(v___y_6996_);
lean_dec_ref(v___y_6995_);
lean_dec(v___y_6994_);
lean_dec_ref(v___y_6993_);
lean_dec(v___y_6992_);
lean_dec_ref(v___y_6991_);
lean_dec(v___y_6990_);
lean_dec_ref(v___y_6989_);
lean_dec(v___y_6988_);
lean_dec(v___y_6987_);
lean_dec(v___y_6986_);
return v_res_6998_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3(lean_object* v_p_6999_, uint8_t v_strict_7000_, lean_object* v___y_7001_, lean_object* v___y_7002_, lean_object* v___y_7003_, lean_object* v___y_7004_, lean_object* v___y_7005_, lean_object* v___y_7006_, lean_object* v___y_7007_, lean_object* v___y_7008_, lean_object* v___y_7009_, lean_object* v___y_7010_, lean_object* v___y_7011_, lean_object* v___y_7012_){
_start:
{
if (v_strict_7000_ == 0)
{
lean_object* v___x_7014_; 
v___x_7014_ = l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4___redArg(v___y_7002_, v___y_7003_, v___y_7004_, v___y_7005_, v___y_7006_, v___y_7007_, v___y_7008_, v___y_7009_, v___y_7010_, v___y_7011_, v___y_7012_);
if (lean_obj_tag(v___x_7014_) == 0)
{
lean_object* v_a_7015_; lean_object* v___x_7016_; 
v_a_7015_ = lean_ctor_get(v___x_7014_, 0);
lean_inc(v_a_7015_);
lean_dec_ref(v___x_7014_);
v___x_7016_ = l_Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3(v_p_6999_, v___y_7001_, v___y_7002_, v___y_7003_, v___y_7004_, v___y_7005_, v___y_7006_, v___y_7007_, v___y_7008_, v___y_7009_, v___y_7010_, v___y_7011_, v___y_7012_);
if (lean_obj_tag(v___x_7016_) == 0)
{
lean_object* v_a_7017_; lean_object* v___x_7018_; 
v_a_7017_ = lean_ctor_get(v___x_7016_, 0);
lean_inc(v_a_7017_);
lean_dec_ref(v___x_7016_);
v___x_7018_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_7002_, v___y_7003_, v___y_7004_, v___y_7005_, v___y_7006_, v___y_7007_, v___y_7008_, v___y_7009_, v___y_7010_, v___y_7011_, v___y_7012_);
if (lean_obj_tag(v___x_7018_) == 0)
{
lean_object* v_a_7019_; lean_object* v___x_7021_; uint8_t v_isShared_7022_; uint8_t v_isSharedCheck_7028_; 
v_a_7019_ = lean_ctor_get(v___x_7018_, 0);
v_isSharedCheck_7028_ = !lean_is_exclusive(v___x_7018_);
if (v_isSharedCheck_7028_ == 0)
{
v___x_7021_ = v___x_7018_;
v_isShared_7022_ = v_isSharedCheck_7028_;
goto v_resetjp_7020_;
}
else
{
lean_inc(v_a_7019_);
lean_dec(v___x_7018_);
v___x_7021_ = lean_box(0);
v_isShared_7022_ = v_isSharedCheck_7028_;
goto v_resetjp_7020_;
}
v_resetjp_7020_:
{
lean_object* v_ofNatZero_7023_; lean_object* v___x_7024_; lean_object* v___x_7026_; 
v_ofNatZero_7023_ = lean_ctor_get(v_a_7019_, 18);
lean_inc_ref(v_ofNatZero_7023_);
lean_dec(v_a_7019_);
v___x_7024_ = l_Lean_mkAppB(v_a_7015_, v_a_7017_, v_ofNatZero_7023_);
if (v_isShared_7022_ == 0)
{
lean_ctor_set(v___x_7021_, 0, v___x_7024_);
v___x_7026_ = v___x_7021_;
goto v_reusejp_7025_;
}
else
{
lean_object* v_reuseFailAlloc_7027_; 
v_reuseFailAlloc_7027_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7027_, 0, v___x_7024_);
v___x_7026_ = v_reuseFailAlloc_7027_;
goto v_reusejp_7025_;
}
v_reusejp_7025_:
{
return v___x_7026_;
}
}
}
else
{
lean_object* v_a_7029_; lean_object* v___x_7031_; uint8_t v_isShared_7032_; uint8_t v_isSharedCheck_7036_; 
lean_dec(v_a_7017_);
lean_dec(v_a_7015_);
v_a_7029_ = lean_ctor_get(v___x_7018_, 0);
v_isSharedCheck_7036_ = !lean_is_exclusive(v___x_7018_);
if (v_isSharedCheck_7036_ == 0)
{
v___x_7031_ = v___x_7018_;
v_isShared_7032_ = v_isSharedCheck_7036_;
goto v_resetjp_7030_;
}
else
{
lean_inc(v_a_7029_);
lean_dec(v___x_7018_);
v___x_7031_ = lean_box(0);
v_isShared_7032_ = v_isSharedCheck_7036_;
goto v_resetjp_7030_;
}
v_resetjp_7030_:
{
lean_object* v___x_7034_; 
if (v_isShared_7032_ == 0)
{
v___x_7034_ = v___x_7031_;
goto v_reusejp_7033_;
}
else
{
lean_object* v_reuseFailAlloc_7035_; 
v_reuseFailAlloc_7035_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7035_, 0, v_a_7029_);
v___x_7034_ = v_reuseFailAlloc_7035_;
goto v_reusejp_7033_;
}
v_reusejp_7033_:
{
return v___x_7034_;
}
}
}
}
else
{
lean_dec(v_a_7015_);
return v___x_7016_;
}
}
else
{
return v___x_7014_;
}
}
else
{
lean_object* v___x_7037_; 
v___x_7037_ = l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5___redArg(v___y_7002_, v___y_7003_, v___y_7004_, v___y_7005_, v___y_7006_, v___y_7007_, v___y_7008_, v___y_7009_, v___y_7010_, v___y_7011_, v___y_7012_);
if (lean_obj_tag(v___x_7037_) == 0)
{
lean_object* v_a_7038_; lean_object* v___x_7039_; 
v_a_7038_ = lean_ctor_get(v___x_7037_, 0);
lean_inc(v_a_7038_);
lean_dec_ref(v___x_7037_);
v___x_7039_ = l_Lean_Grind_Linarith_Poly_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__2_spec__3(v_p_6999_, v___y_7001_, v___y_7002_, v___y_7003_, v___y_7004_, v___y_7005_, v___y_7006_, v___y_7007_, v___y_7008_, v___y_7009_, v___y_7010_, v___y_7011_, v___y_7012_);
if (lean_obj_tag(v___x_7039_) == 0)
{
lean_object* v_a_7040_; lean_object* v___x_7041_; 
v_a_7040_ = lean_ctor_get(v___x_7039_, 0);
lean_inc(v_a_7040_);
lean_dec_ref(v___x_7039_);
v___x_7041_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_7002_, v___y_7003_, v___y_7004_, v___y_7005_, v___y_7006_, v___y_7007_, v___y_7008_, v___y_7009_, v___y_7010_, v___y_7011_, v___y_7012_);
if (lean_obj_tag(v___x_7041_) == 0)
{
lean_object* v_a_7042_; lean_object* v___x_7044_; uint8_t v_isShared_7045_; uint8_t v_isSharedCheck_7051_; 
v_a_7042_ = lean_ctor_get(v___x_7041_, 0);
v_isSharedCheck_7051_ = !lean_is_exclusive(v___x_7041_);
if (v_isSharedCheck_7051_ == 0)
{
v___x_7044_ = v___x_7041_;
v_isShared_7045_ = v_isSharedCheck_7051_;
goto v_resetjp_7043_;
}
else
{
lean_inc(v_a_7042_);
lean_dec(v___x_7041_);
v___x_7044_ = lean_box(0);
v_isShared_7045_ = v_isSharedCheck_7051_;
goto v_resetjp_7043_;
}
v_resetjp_7043_:
{
lean_object* v_ofNatZero_7046_; lean_object* v___x_7047_; lean_object* v___x_7049_; 
v_ofNatZero_7046_ = lean_ctor_get(v_a_7042_, 18);
lean_inc_ref(v_ofNatZero_7046_);
lean_dec(v_a_7042_);
v___x_7047_ = l_Lean_mkAppB(v_a_7038_, v_a_7040_, v_ofNatZero_7046_);
if (v_isShared_7045_ == 0)
{
lean_ctor_set(v___x_7044_, 0, v___x_7047_);
v___x_7049_ = v___x_7044_;
goto v_reusejp_7048_;
}
else
{
lean_object* v_reuseFailAlloc_7050_; 
v_reuseFailAlloc_7050_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7050_, 0, v___x_7047_);
v___x_7049_ = v_reuseFailAlloc_7050_;
goto v_reusejp_7048_;
}
v_reusejp_7048_:
{
return v___x_7049_;
}
}
}
else
{
lean_object* v_a_7052_; lean_object* v___x_7054_; uint8_t v_isShared_7055_; uint8_t v_isSharedCheck_7059_; 
lean_dec(v_a_7040_);
lean_dec(v_a_7038_);
v_a_7052_ = lean_ctor_get(v___x_7041_, 0);
v_isSharedCheck_7059_ = !lean_is_exclusive(v___x_7041_);
if (v_isSharedCheck_7059_ == 0)
{
v___x_7054_ = v___x_7041_;
v_isShared_7055_ = v_isSharedCheck_7059_;
goto v_resetjp_7053_;
}
else
{
lean_inc(v_a_7052_);
lean_dec(v___x_7041_);
v___x_7054_ = lean_box(0);
v_isShared_7055_ = v_isSharedCheck_7059_;
goto v_resetjp_7053_;
}
v_resetjp_7053_:
{
lean_object* v___x_7057_; 
if (v_isShared_7055_ == 0)
{
v___x_7057_ = v___x_7054_;
goto v_reusejp_7056_;
}
else
{
lean_object* v_reuseFailAlloc_7058_; 
v_reuseFailAlloc_7058_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7058_, 0, v_a_7052_);
v___x_7057_ = v_reuseFailAlloc_7058_;
goto v_reusejp_7056_;
}
v_reusejp_7056_:
{
return v___x_7057_;
}
}
}
}
else
{
lean_dec(v_a_7038_);
return v___x_7039_;
}
}
else
{
return v___x_7037_;
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3___boxed(lean_object* v_p_7060_, lean_object* v_strict_7061_, lean_object* v___y_7062_, lean_object* v___y_7063_, lean_object* v___y_7064_, lean_object* v___y_7065_, lean_object* v___y_7066_, lean_object* v___y_7067_, lean_object* v___y_7068_, lean_object* v___y_7069_, lean_object* v___y_7070_, lean_object* v___y_7071_, lean_object* v___y_7072_, lean_object* v___y_7073_, lean_object* v___y_7074_){
_start:
{
uint8_t v_strict_boxed_7075_; lean_object* v_res_7076_; 
v_strict_boxed_7075_ = lean_unbox(v_strict_7061_);
v_res_7076_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3(v_p_7060_, v_strict_boxed_7075_, v___y_7062_, v___y_7063_, v___y_7064_, v___y_7065_, v___y_7066_, v___y_7067_, v___y_7068_, v___y_7069_, v___y_7070_, v___y_7071_, v___y_7072_, v___y_7073_);
lean_dec(v___y_7073_);
lean_dec_ref(v___y_7072_);
lean_dec(v___y_7071_);
lean_dec_ref(v___y_7070_);
lean_dec(v___y_7069_);
lean_dec_ref(v___y_7068_);
lean_dec(v___y_7067_);
lean_dec_ref(v___y_7066_);
lean_dec(v___y_7065_);
lean_dec(v___y_7064_);
lean_dec(v___y_7063_);
lean_dec(v___y_7062_);
lean_dec(v_p_7060_);
return v_res_7076_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2(lean_object* v_c_7077_, lean_object* v___y_7078_, lean_object* v___y_7079_, lean_object* v___y_7080_, lean_object* v___y_7081_, lean_object* v___y_7082_, lean_object* v___y_7083_, lean_object* v___y_7084_, lean_object* v___y_7085_, lean_object* v___y_7086_, lean_object* v___y_7087_, lean_object* v___y_7088_, lean_object* v___y_7089_){
_start:
{
lean_object* v_p_7091_; uint8_t v_strict_7092_; lean_object* v___x_7093_; 
v_p_7091_ = lean_ctor_get(v_c_7077_, 0);
v_strict_7092_ = lean_ctor_get_uint8(v_c_7077_, sizeof(void*)*2);
v___x_7093_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3(v_p_7091_, v_strict_7092_, v___y_7078_, v___y_7079_, v___y_7080_, v___y_7081_, v___y_7082_, v___y_7083_, v___y_7084_, v___y_7085_, v___y_7086_, v___y_7087_, v___y_7088_, v___y_7089_);
return v___x_7093_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2___boxed(lean_object* v_c_7094_, lean_object* v___y_7095_, lean_object* v___y_7096_, lean_object* v___y_7097_, lean_object* v___y_7098_, lean_object* v___y_7099_, lean_object* v___y_7100_, lean_object* v___y_7101_, lean_object* v___y_7102_, lean_object* v___y_7103_, lean_object* v___y_7104_, lean_object* v___y_7105_, lean_object* v___y_7106_, lean_object* v___y_7107_){
_start:
{
lean_object* v_res_7108_; 
v_res_7108_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2(v_c_7094_, v___y_7095_, v___y_7096_, v___y_7097_, v___y_7098_, v___y_7099_, v___y_7100_, v___y_7101_, v___y_7102_, v___y_7103_, v___y_7104_, v___y_7105_, v___y_7106_);
lean_dec(v___y_7106_);
lean_dec_ref(v___y_7105_);
lean_dec(v___y_7104_);
lean_dec_ref(v___y_7103_);
lean_dec(v___y_7102_);
lean_dec_ref(v___y_7101_);
lean_dec(v___y_7100_);
lean_dec_ref(v___y_7099_);
lean_dec(v___y_7098_);
lean_dec(v___y_7097_);
lean_dec(v___y_7096_);
lean_dec(v___y_7095_);
lean_dec_ref(v_c_7094_);
return v_res_7108_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__1(void){
_start:
{
lean_object* v___x_7110_; lean_object* v___x_7111_; 
v___x_7110_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__0));
v___x_7111_ = l_Lean_stringToMessageData(v___x_7110_);
return v___x_7111_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__3(void){
_start:
{
lean_object* v___x_7113_; lean_object* v___x_7114_; 
v___x_7113_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__2));
v___x_7114_ = l_Lean_stringToMessageData(v___x_7113_);
return v___x_7114_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__4(void){
_start:
{
lean_object* v___x_7115_; lean_object* v___x_7116_; lean_object* v___x_7117_; 
v___x_7115_ = lean_box(0);
v___x_7116_ = lean_unsigned_to_nat(16u);
v___x_7117_ = lean_mk_array(v___x_7116_, v___x_7115_);
return v___x_7117_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__5(void){
_start:
{
lean_object* v___x_7118_; lean_object* v___x_7119_; lean_object* v___x_7120_; 
v___x_7118_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__4, &l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__4_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__4);
v___x_7119_ = lean_unsigned_to_nat(0u);
v___x_7120_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_7120_, 0, v___x_7119_);
lean_ctor_set(v___x_7120_, 1, v___x_7118_);
return v___x_7120_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__6(void){
_start:
{
lean_object* v___x_7121_; lean_object* v___x_7122_; lean_object* v___x_7123_; 
v___x_7121_ = lean_box(1);
v___x_7122_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__5, &l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__5_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__5);
v___x_7123_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_7123_, 0, v___x_7122_);
lean_ctor_set(v___x_7123_, 1, v___x_7121_);
return v___x_7123_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__8(void){
_start:
{
lean_object* v___x_7125_; lean_object* v___x_7126_; 
v___x_7125_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__7));
v___x_7126_ = l_Lean_stringToMessageData(v___x_7125_);
return v___x_7126_;
}
}
static lean_object* _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__10(void){
_start:
{
lean_object* v___x_7128_; lean_object* v___x_7129_; 
v___x_7128_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__9));
v___x_7129_ = l_Lean_stringToMessageData(v___x_7128_);
return v___x_7129_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict(lean_object* v_h_7130_, lean_object* v_a_7131_, lean_object* v_a_7132_, lean_object* v_a_7133_, lean_object* v_a_7134_, lean_object* v_a_7135_, lean_object* v_a_7136_, lean_object* v_a_7137_, lean_object* v_a_7138_, lean_object* v_a_7139_, lean_object* v_a_7140_, lean_object* v_a_7141_, lean_object* v_a_7142_){
_start:
{
lean_object* v_cls_7144_; lean_object* v___y_7146_; lean_object* v___y_7147_; lean_object* v___y_7148_; lean_object* v___y_7149_; lean_object* v___y_7150_; lean_object* v___y_7151_; lean_object* v___y_7152_; lean_object* v___y_7153_; lean_object* v___y_7154_; lean_object* v___y_7155_; lean_object* v___y_7156_; lean_object* v___y_7157_; lean_object* v___y_7158_; lean_object* v___y_7159_; lean_object* v___y_7160_; uint8_t v___y_7161_; lean_object* v___y_7162_; lean_object* v_c_7190_; lean_object* v_fvarId_7191_; lean_object* v___y_7192_; lean_object* v___y_7193_; uint8_t v___y_7194_; lean_object* v___y_7195_; lean_object* v___y_7196_; lean_object* v___y_7197_; lean_object* v___y_7198_; lean_object* v___y_7199_; lean_object* v___y_7200_; lean_object* v___y_7201_; lean_object* v___y_7202_; lean_object* v___y_7203_; lean_object* v___y_7204_; lean_object* v___y_7205_; lean_object* v___y_7206_; lean_object* v___y_7210_; lean_object* v___y_7211_; lean_object* v___y_7212_; lean_object* v___y_7213_; lean_object* v___y_7214_; lean_object* v___y_7215_; lean_object* v___y_7216_; lean_object* v___y_7217_; lean_object* v___y_7218_; lean_object* v___y_7219_; lean_object* v___y_7220_; lean_object* v___y_7221_; lean_object* v___y_7222_; lean_object* v___y_7223_; lean_object* v___y_7270_; lean_object* v___y_7271_; lean_object* v___y_7272_; lean_object* v___y_7273_; lean_object* v___y_7274_; lean_object* v___y_7275_; lean_object* v___y_7276_; lean_object* v___y_7277_; lean_object* v___y_7278_; lean_object* v___y_7279_; lean_object* v___y_7280_; lean_object* v___y_7281_; lean_object* v___x_7308_; lean_object* v_a_7309_; uint8_t v___x_7310_; 
v_cls_7144_ = ((lean_object*)(l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__2___redArg___closed__1));
v___x_7308_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v_cls_7144_, v_a_7141_);
v_a_7309_ = lean_ctor_get(v___x_7308_, 0);
lean_inc(v_a_7309_);
lean_dec_ref(v___x_7308_);
v___x_7310_ = lean_unbox(v_a_7309_);
lean_dec(v_a_7309_);
if (v___x_7310_ == 0)
{
v___y_7270_ = v_a_7131_;
v___y_7271_ = v_a_7132_;
v___y_7272_ = v_a_7133_;
v___y_7273_ = v_a_7134_;
v___y_7274_ = v_a_7135_;
v___y_7275_ = v_a_7136_;
v___y_7276_ = v_a_7137_;
v___y_7277_ = v_a_7138_;
v___y_7278_ = v_a_7139_;
v___y_7279_ = v_a_7140_;
v___y_7280_ = v_a_7141_;
v___y_7281_ = v_a_7142_;
goto v___jp_7269_;
}
else
{
lean_object* v___x_7311_; lean_object* v_cases_7312_; lean_object* v___x_7314_; uint8_t v_isShared_7315_; uint8_t v_isSharedCheck_7326_; 
v___x_7311_ = lean_st_ref_get(v_a_7131_);
v_cases_7312_ = lean_ctor_get(v___x_7311_, 0);
v_isSharedCheck_7326_ = !lean_is_exclusive(v___x_7311_);
if (v_isSharedCheck_7326_ == 0)
{
lean_object* v_unused_7327_; 
v_unused_7327_ = lean_ctor_get(v___x_7311_, 1);
lean_dec(v_unused_7327_);
v___x_7314_ = v___x_7311_;
v_isShared_7315_ = v_isSharedCheck_7326_;
goto v_resetjp_7313_;
}
else
{
lean_inc(v_cases_7312_);
lean_dec(v___x_7311_);
v___x_7314_ = lean_box(0);
v_isShared_7315_ = v_isSharedCheck_7326_;
goto v_resetjp_7313_;
}
v_resetjp_7313_:
{
lean_object* v___x_7316_; lean_object* v___x_7317_; lean_object* v___x_7318_; lean_object* v___x_7319_; lean_object* v___x_7320_; lean_object* v___x_7321_; lean_object* v___x_7323_; 
v___x_7316_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__10, &l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__10_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__10);
v___x_7317_ = l_Lean_PersistentArray_toList___redArg(v_cases_7312_);
lean_dec_ref(v_cases_7312_);
v___x_7318_ = lean_box(0);
v___x_7319_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__6(v___x_7317_, v___x_7318_);
v___x_7320_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__5(v___x_7319_, v___x_7318_);
v___x_7321_ = l_Lean_MessageData_ofList(v___x_7320_);
if (v_isShared_7315_ == 0)
{
lean_ctor_set_tag(v___x_7314_, 7);
lean_ctor_set(v___x_7314_, 1, v___x_7321_);
lean_ctor_set(v___x_7314_, 0, v___x_7316_);
v___x_7323_ = v___x_7314_;
goto v_reusejp_7322_;
}
else
{
lean_object* v_reuseFailAlloc_7325_; 
v_reuseFailAlloc_7325_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_7325_, 0, v___x_7316_);
lean_ctor_set(v_reuseFailAlloc_7325_, 1, v___x_7321_);
v___x_7323_ = v_reuseFailAlloc_7325_;
goto v_reusejp_7322_;
}
v_reusejp_7322_:
{
lean_object* v___x_7324_; 
v___x_7324_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v_cls_7144_, v___x_7323_, v_a_7139_, v_a_7140_, v_a_7141_, v_a_7142_);
if (lean_obj_tag(v___x_7324_) == 0)
{
lean_dec_ref(v___x_7324_);
v___y_7270_ = v_a_7131_;
v___y_7271_ = v_a_7132_;
v___y_7272_ = v_a_7133_;
v___y_7273_ = v_a_7134_;
v___y_7274_ = v_a_7135_;
v___y_7275_ = v_a_7136_;
v___y_7276_ = v_a_7137_;
v___y_7277_ = v_a_7138_;
v___y_7278_ = v_a_7139_;
v___y_7279_ = v_a_7140_;
v___y_7280_ = v_a_7141_;
v___y_7281_ = v_a_7142_;
goto v___jp_7269_;
}
else
{
lean_dec(v_a_7142_);
lean_dec_ref(v_a_7141_);
lean_dec(v_a_7140_);
lean_dec_ref(v_a_7139_);
lean_dec(v_a_7138_);
lean_dec_ref(v_a_7137_);
lean_dec(v_a_7136_);
lean_dec_ref(v_a_7135_);
lean_dec(v_a_7134_);
lean_dec(v_a_7133_);
lean_dec(v_a_7132_);
lean_dec(v_a_7131_);
lean_dec_ref(v_h_7130_);
return v___x_7324_;
}
}
}
}
v___jp_7145_:
{
lean_object* v_p_7163_; lean_object* v___x_7164_; lean_object* v_a_7165_; lean_object* v___x_7166_; lean_object* v___x_7167_; lean_object* v___x_7168_; lean_object* v___x_7169_; lean_object* v___x_7170_; lean_object* v___x_7171_; uint8_t v___x_7172_; 
v_p_7163_ = lean_ctor_get(v___y_7160_, 0);
v___x_7164_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v_cls_7144_, v___y_7157_);
v_a_7165_ = lean_ctor_get(v___x_7164_, 0);
lean_inc(v_a_7165_);
lean_dec_ref(v___x_7164_);
v___x_7166_ = lean_mk_empty_array_with_capacity(v___y_7162_);
lean_dec(v___y_7162_);
v___x_7167_ = l_Std_DTreeMap_Internal_Impl_foldlM___at___00Std_DTreeMap_Internal_Impl_foldl___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__1_spec__1(v___x_7166_, v___y_7146_);
v___x_7168_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___closed__0, &l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___closed__0_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveLowerDiseqConflict___closed__0);
lean_inc(v_p_7163_);
v___x_7169_ = l_Lean_Grind_Linarith_Poly_mul(v_p_7163_, v___x_7168_);
v___x_7170_ = lean_alloc_ctor(8, 4, 0);
lean_ctor_set(v___x_7170_, 0, v___y_7160_);
lean_ctor_set(v___x_7170_, 1, v___y_7154_);
lean_ctor_set(v___x_7170_, 2, v_h_7130_);
lean_ctor_set(v___x_7170_, 3, v___x_7167_);
v___x_7171_ = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(v___x_7171_, 0, v___x_7169_);
lean_ctor_set(v___x_7171_, 1, v___x_7170_);
lean_ctor_set_uint8(v___x_7171_, sizeof(void*)*2, v___y_7161_);
v___x_7172_ = lean_unbox(v_a_7165_);
lean_dec(v_a_7165_);
if (v___x_7172_ == 0)
{
lean_object* v___x_7173_; 
lean_dec(v___y_7155_);
v___x_7173_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_assert(v___x_7171_, v___y_7159_, v___y_7148_, v___y_7153_, v___y_7150_, v___y_7152_, v___y_7147_, v___y_7149_, v___y_7158_, v___y_7156_, v___y_7157_, v___y_7151_);
return v___x_7173_;
}
else
{
lean_object* v___x_7174_; 
v___x_7174_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2(v___x_7171_, v___y_7155_, v___y_7159_, v___y_7148_, v___y_7153_, v___y_7150_, v___y_7152_, v___y_7147_, v___y_7149_, v___y_7158_, v___y_7156_, v___y_7157_, v___y_7151_);
lean_dec(v___y_7155_);
if (lean_obj_tag(v___x_7174_) == 0)
{
lean_object* v_a_7175_; lean_object* v___x_7176_; lean_object* v___x_7177_; lean_object* v___x_7178_; lean_object* v___x_7179_; 
v_a_7175_ = lean_ctor_get(v___x_7174_, 0);
lean_inc(v_a_7175_);
lean_dec_ref(v___x_7174_);
v___x_7176_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__1, &l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__1_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__1);
v___x_7177_ = l_Lean_MessageData_ofExpr(v_a_7175_);
v___x_7178_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_7178_, 0, v___x_7176_);
lean_ctor_set(v___x_7178_, 1, v___x_7177_);
v___x_7179_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v_cls_7144_, v___x_7178_, v___y_7158_, v___y_7156_, v___y_7157_, v___y_7151_);
if (lean_obj_tag(v___x_7179_) == 0)
{
lean_object* v___x_7180_; 
lean_dec_ref(v___x_7179_);
v___x_7180_ = l_Lean_Meta_Grind_Arith_Linear_IneqCnstr_assert(v___x_7171_, v___y_7159_, v___y_7148_, v___y_7153_, v___y_7150_, v___y_7152_, v___y_7147_, v___y_7149_, v___y_7158_, v___y_7156_, v___y_7157_, v___y_7151_);
return v___x_7180_;
}
else
{
lean_dec_ref(v___x_7171_);
lean_dec(v___y_7159_);
lean_dec_ref(v___y_7158_);
lean_dec_ref(v___y_7157_);
lean_dec(v___y_7156_);
lean_dec(v___y_7153_);
lean_dec(v___y_7152_);
lean_dec(v___y_7151_);
lean_dec_ref(v___y_7150_);
lean_dec(v___y_7149_);
lean_dec(v___y_7148_);
lean_dec_ref(v___y_7147_);
return v___x_7179_;
}
}
else
{
lean_object* v_a_7181_; lean_object* v___x_7183_; uint8_t v_isShared_7184_; uint8_t v_isSharedCheck_7188_; 
lean_dec_ref(v___x_7171_);
lean_dec(v___y_7159_);
lean_dec_ref(v___y_7158_);
lean_dec_ref(v___y_7157_);
lean_dec(v___y_7156_);
lean_dec(v___y_7153_);
lean_dec(v___y_7152_);
lean_dec(v___y_7151_);
lean_dec_ref(v___y_7150_);
lean_dec(v___y_7149_);
lean_dec(v___y_7148_);
lean_dec_ref(v___y_7147_);
v_a_7181_ = lean_ctor_get(v___x_7174_, 0);
v_isSharedCheck_7188_ = !lean_is_exclusive(v___x_7174_);
if (v_isSharedCheck_7188_ == 0)
{
v___x_7183_ = v___x_7174_;
v_isShared_7184_ = v_isSharedCheck_7188_;
goto v_resetjp_7182_;
}
else
{
lean_inc(v_a_7181_);
lean_dec(v___x_7174_);
v___x_7183_ = lean_box(0);
v_isShared_7184_ = v_isSharedCheck_7188_;
goto v_resetjp_7182_;
}
v_resetjp_7182_:
{
lean_object* v___x_7186_; 
if (v_isShared_7184_ == 0)
{
v___x_7186_ = v___x_7183_;
goto v_reusejp_7185_;
}
else
{
lean_object* v_reuseFailAlloc_7187_; 
v_reuseFailAlloc_7187_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7187_, 0, v_a_7181_);
v___x_7186_ = v_reuseFailAlloc_7187_;
goto v_reusejp_7185_;
}
v_reusejp_7185_:
{
return v___x_7186_;
}
}
}
}
}
v___jp_7189_:
{
lean_object* v___x_7207_; 
v___x_7207_ = l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___redArg(v_fvarId_7191_, v___y_7193_);
if (lean_obj_tag(v___x_7207_) == 0)
{
lean_object* v_size_7208_; 
lean_dec(v___y_7192_);
v_size_7208_ = lean_ctor_get(v___x_7207_, 0);
lean_inc(v_size_7208_);
v___y_7146_ = v___x_7207_;
v___y_7147_ = v___y_7201_;
v___y_7148_ = v___y_7197_;
v___y_7149_ = v___y_7202_;
v___y_7150_ = v___y_7199_;
v___y_7151_ = v___y_7206_;
v___y_7152_ = v___y_7200_;
v___y_7153_ = v___y_7198_;
v___y_7154_ = v_fvarId_7191_;
v___y_7155_ = v___y_7195_;
v___y_7156_ = v___y_7204_;
v___y_7157_ = v___y_7205_;
v___y_7158_ = v___y_7203_;
v___y_7159_ = v___y_7196_;
v___y_7160_ = v_c_7190_;
v___y_7161_ = v___y_7194_;
v___y_7162_ = v_size_7208_;
goto v___jp_7145_;
}
else
{
v___y_7146_ = v___x_7207_;
v___y_7147_ = v___y_7201_;
v___y_7148_ = v___y_7197_;
v___y_7149_ = v___y_7202_;
v___y_7150_ = v___y_7199_;
v___y_7151_ = v___y_7206_;
v___y_7152_ = v___y_7200_;
v___y_7153_ = v___y_7198_;
v___y_7154_ = v_fvarId_7191_;
v___y_7155_ = v___y_7195_;
v___y_7156_ = v___y_7204_;
v___y_7157_ = v___y_7205_;
v___y_7158_ = v___y_7203_;
v___y_7159_ = v___y_7196_;
v___y_7160_ = v_c_7190_;
v___y_7161_ = v___y_7194_;
v___y_7162_ = v___y_7192_;
goto v___jp_7145_;
}
}
v___jp_7209_:
{
if (lean_obj_tag(v___y_7211_) == 0)
{
lean_object* v___x_7224_; 
lean_inc(v___y_7223_);
lean_inc_ref(v___y_7222_);
lean_inc(v___y_7221_);
lean_inc_ref(v___y_7220_);
lean_inc(v___y_7219_);
lean_inc_ref(v___y_7218_);
lean_inc(v___y_7217_);
lean_inc_ref(v___y_7216_);
lean_inc(v___y_7215_);
lean_inc(v___y_7214_);
lean_inc(v___y_7213_);
lean_inc(v___y_7212_);
v___x_7224_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase(v___y_7211_, v___y_7212_, v___y_7213_, v___y_7214_, v___y_7215_, v___y_7216_, v___y_7217_, v___y_7218_, v___y_7219_, v___y_7220_, v___y_7221_, v___y_7222_, v___y_7223_);
if (lean_obj_tag(v___x_7224_) == 0)
{
lean_object* v_a_7225_; lean_object* v___f_7226_; lean_object* v___x_7227_; lean_object* v___x_7228_; 
v_a_7225_ = lean_ctor_get(v___x_7224_, 0);
lean_inc(v_a_7225_);
lean_dec_ref(v___x_7224_);
lean_inc(v_a_7225_);
lean_inc(v___y_7213_);
v___f_7226_ = lean_alloc_closure((void*)(l_Lean_Meta_Grind_Arith_Linear_resolveConflict___lam__0___boxed), 3, 2);
lean_closure_set(v___f_7226_, 0, v___y_7213_);
lean_closure_set(v___f_7226_, 1, v_a_7225_);
v___x_7227_ = l_Lean_Meta_Grind_Arith_Linear_linearExt;
v___x_7228_ = l___private_Lean_Meta_Tactic_Grind_Types_0__Lean_Meta_Grind_SolverExtension_modifyStateImpl___redArg(v___x_7227_, v___f_7226_, v___y_7214_);
if (lean_obj_tag(v___x_7228_) == 0)
{
lean_object* v___x_7229_; lean_object* v_a_7230_; uint8_t v___x_7231_; uint8_t v___x_7232_; 
lean_dec_ref(v___x_7228_);
v___x_7229_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v_cls_7144_, v___y_7222_);
v_a_7230_ = lean_ctor_get(v___x_7229_, 0);
lean_inc(v_a_7230_);
lean_dec_ref(v___x_7229_);
v___x_7231_ = 1;
v___x_7232_ = lean_unbox(v_a_7230_);
lean_dec(v_a_7230_);
if (v___x_7232_ == 0)
{
lean_object* v_c_7233_; lean_object* v_fvarId_7234_; 
v_c_7233_ = lean_ctor_get(v_a_7225_, 0);
lean_inc_ref(v_c_7233_);
v_fvarId_7234_ = lean_ctor_get(v_a_7225_, 1);
lean_inc(v_fvarId_7234_);
lean_dec(v_a_7225_);
v_c_7190_ = v_c_7233_;
v_fvarId_7191_ = v_fvarId_7234_;
v___y_7192_ = v___y_7210_;
v___y_7193_ = v___y_7211_;
v___y_7194_ = v___x_7231_;
v___y_7195_ = v___y_7212_;
v___y_7196_ = v___y_7213_;
v___y_7197_ = v___y_7214_;
v___y_7198_ = v___y_7215_;
v___y_7199_ = v___y_7216_;
v___y_7200_ = v___y_7217_;
v___y_7201_ = v___y_7218_;
v___y_7202_ = v___y_7219_;
v___y_7203_ = v___y_7220_;
v___y_7204_ = v___y_7221_;
v___y_7205_ = v___y_7222_;
v___y_7206_ = v___y_7223_;
goto v___jp_7189_;
}
else
{
lean_object* v_c_7235_; lean_object* v_fvarId_7236_; lean_object* v___x_7237_; lean_object* v___x_7238_; lean_object* v___x_7239_; lean_object* v___x_7240_; 
v_c_7235_ = lean_ctor_get(v_a_7225_, 0);
lean_inc_ref(v_c_7235_);
v_fvarId_7236_ = lean_ctor_get(v_a_7225_, 1);
lean_inc(v_fvarId_7236_);
lean_dec(v_a_7225_);
v___x_7237_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__3, &l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__3_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__3);
lean_inc(v_fvarId_7236_);
v___x_7238_ = l_Lean_MessageData_ofName(v_fvarId_7236_);
v___x_7239_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_7239_, 0, v___x_7237_);
lean_ctor_set(v___x_7239_, 1, v___x_7238_);
v___x_7240_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v_cls_7144_, v___x_7239_, v___y_7220_, v___y_7221_, v___y_7222_, v___y_7223_);
if (lean_obj_tag(v___x_7240_) == 0)
{
lean_dec_ref(v___x_7240_);
v_c_7190_ = v_c_7235_;
v_fvarId_7191_ = v_fvarId_7236_;
v___y_7192_ = v___y_7210_;
v___y_7193_ = v___y_7211_;
v___y_7194_ = v___x_7231_;
v___y_7195_ = v___y_7212_;
v___y_7196_ = v___y_7213_;
v___y_7197_ = v___y_7214_;
v___y_7198_ = v___y_7215_;
v___y_7199_ = v___y_7216_;
v___y_7200_ = v___y_7217_;
v___y_7201_ = v___y_7218_;
v___y_7202_ = v___y_7219_;
v___y_7203_ = v___y_7220_;
v___y_7204_ = v___y_7221_;
v___y_7205_ = v___y_7222_;
v___y_7206_ = v___y_7223_;
goto v___jp_7189_;
}
else
{
lean_dec(v_fvarId_7236_);
lean_dec_ref(v_c_7235_);
lean_dec_ref(v___y_7211_);
lean_dec(v___y_7223_);
lean_dec_ref(v___y_7222_);
lean_dec(v___y_7221_);
lean_dec_ref(v___y_7220_);
lean_dec(v___y_7219_);
lean_dec_ref(v___y_7218_);
lean_dec(v___y_7217_);
lean_dec_ref(v___y_7216_);
lean_dec(v___y_7215_);
lean_dec(v___y_7214_);
lean_dec(v___y_7213_);
lean_dec(v___y_7212_);
lean_dec(v___y_7210_);
lean_dec_ref(v_h_7130_);
return v___x_7240_;
}
}
}
else
{
lean_dec(v_a_7225_);
lean_dec_ref(v___y_7211_);
lean_dec(v___y_7223_);
lean_dec_ref(v___y_7222_);
lean_dec(v___y_7221_);
lean_dec_ref(v___y_7220_);
lean_dec(v___y_7219_);
lean_dec_ref(v___y_7218_);
lean_dec(v___y_7217_);
lean_dec_ref(v___y_7216_);
lean_dec(v___y_7215_);
lean_dec(v___y_7214_);
lean_dec(v___y_7213_);
lean_dec(v___y_7212_);
lean_dec(v___y_7210_);
lean_dec_ref(v_h_7130_);
return v___x_7228_;
}
}
else
{
lean_object* v_a_7241_; lean_object* v___x_7243_; uint8_t v_isShared_7244_; uint8_t v_isSharedCheck_7248_; 
lean_dec_ref(v___y_7211_);
lean_dec(v___y_7223_);
lean_dec_ref(v___y_7222_);
lean_dec(v___y_7221_);
lean_dec_ref(v___y_7220_);
lean_dec(v___y_7219_);
lean_dec_ref(v___y_7218_);
lean_dec(v___y_7217_);
lean_dec_ref(v___y_7216_);
lean_dec(v___y_7215_);
lean_dec(v___y_7214_);
lean_dec(v___y_7213_);
lean_dec(v___y_7212_);
lean_dec(v___y_7210_);
lean_dec_ref(v_h_7130_);
v_a_7241_ = lean_ctor_get(v___x_7224_, 0);
v_isSharedCheck_7248_ = !lean_is_exclusive(v___x_7224_);
if (v_isSharedCheck_7248_ == 0)
{
v___x_7243_ = v___x_7224_;
v_isShared_7244_ = v_isSharedCheck_7248_;
goto v_resetjp_7242_;
}
else
{
lean_inc(v_a_7241_);
lean_dec(v___x_7224_);
v___x_7243_ = lean_box(0);
v_isShared_7244_ = v_isSharedCheck_7248_;
goto v_resetjp_7242_;
}
v_resetjp_7242_:
{
lean_object* v___x_7246_; 
if (v_isShared_7244_ == 0)
{
v___x_7246_ = v___x_7243_;
goto v_reusejp_7245_;
}
else
{
lean_object* v_reuseFailAlloc_7247_; 
v_reuseFailAlloc_7247_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7247_, 0, v_a_7241_);
v___x_7246_ = v_reuseFailAlloc_7247_;
goto v_reusejp_7245_;
}
v_reusejp_7245_:
{
return v___x_7246_;
}
}
}
}
else
{
lean_object* v___x_7249_; 
lean_dec(v___y_7212_);
lean_dec(v___y_7210_);
lean_inc(v___y_7223_);
lean_inc_ref(v___y_7222_);
lean_inc(v___y_7221_);
lean_inc_ref(v___y_7220_);
lean_inc(v___y_7219_);
lean_inc_ref(v___y_7218_);
lean_inc(v___y_7217_);
lean_inc_ref(v___y_7216_);
lean_inc(v___y_7215_);
lean_inc(v___y_7214_);
v___x_7249_ = l_Lean_Meta_Grind_Arith_Linear_UnsatProof_toExprProof(v_h_7130_, v___y_7213_, v___y_7214_, v___y_7215_, v___y_7216_, v___y_7217_, v___y_7218_, v___y_7219_, v___y_7220_, v___y_7221_, v___y_7222_, v___y_7223_);
if (lean_obj_tag(v___x_7249_) == 0)
{
lean_object* v_a_7250_; lean_object* v___x_7251_; 
v_a_7250_ = lean_ctor_get(v___x_7249_, 0);
lean_inc(v_a_7250_);
lean_dec_ref(v___x_7249_);
v___x_7251_ = l_Lean_Meta_Grind_closeGoal(v_a_7250_, v___y_7214_, v___y_7215_, v___y_7216_, v___y_7217_, v___y_7218_, v___y_7219_, v___y_7220_, v___y_7221_, v___y_7222_, v___y_7223_);
lean_dec(v___y_7219_);
lean_dec_ref(v___y_7218_);
lean_dec(v___y_7217_);
lean_dec_ref(v___y_7216_);
lean_dec(v___y_7215_);
lean_dec(v___y_7214_);
if (lean_obj_tag(v___x_7251_) == 0)
{
lean_object* v___x_7253_; uint8_t v_isShared_7254_; uint8_t v_isSharedCheck_7259_; 
v_isSharedCheck_7259_ = !lean_is_exclusive(v___x_7251_);
if (v_isSharedCheck_7259_ == 0)
{
lean_object* v_unused_7260_; 
v_unused_7260_ = lean_ctor_get(v___x_7251_, 0);
lean_dec(v_unused_7260_);
v___x_7253_ = v___x_7251_;
v_isShared_7254_ = v_isSharedCheck_7259_;
goto v_resetjp_7252_;
}
else
{
lean_dec(v___x_7251_);
v___x_7253_ = lean_box(0);
v_isShared_7254_ = v_isSharedCheck_7259_;
goto v_resetjp_7252_;
}
v_resetjp_7252_:
{
lean_object* v___x_7255_; lean_object* v___x_7257_; 
v___x_7255_ = lean_box(0);
if (v_isShared_7254_ == 0)
{
lean_ctor_set(v___x_7253_, 0, v___x_7255_);
v___x_7257_ = v___x_7253_;
goto v_reusejp_7256_;
}
else
{
lean_object* v_reuseFailAlloc_7258_; 
v_reuseFailAlloc_7258_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7258_, 0, v___x_7255_);
v___x_7257_ = v_reuseFailAlloc_7258_;
goto v_reusejp_7256_;
}
v_reusejp_7256_:
{
return v___x_7257_;
}
}
}
else
{
return v___x_7251_;
}
}
else
{
lean_object* v_a_7261_; lean_object* v___x_7263_; uint8_t v_isShared_7264_; uint8_t v_isSharedCheck_7268_; 
lean_dec(v___y_7223_);
lean_dec_ref(v___y_7222_);
lean_dec(v___y_7221_);
lean_dec_ref(v___y_7220_);
lean_dec(v___y_7219_);
lean_dec_ref(v___y_7218_);
lean_dec(v___y_7217_);
lean_dec_ref(v___y_7216_);
lean_dec(v___y_7215_);
lean_dec(v___y_7214_);
v_a_7261_ = lean_ctor_get(v___x_7249_, 0);
v_isSharedCheck_7268_ = !lean_is_exclusive(v___x_7249_);
if (v_isSharedCheck_7268_ == 0)
{
v___x_7263_ = v___x_7249_;
v_isShared_7264_ = v_isSharedCheck_7268_;
goto v_resetjp_7262_;
}
else
{
lean_inc(v_a_7261_);
lean_dec(v___x_7249_);
v___x_7263_ = lean_box(0);
v_isShared_7264_ = v_isSharedCheck_7268_;
goto v_resetjp_7262_;
}
v_resetjp_7262_:
{
lean_object* v___x_7266_; 
if (v_isShared_7264_ == 0)
{
v___x_7266_ = v___x_7263_;
goto v_reusejp_7265_;
}
else
{
lean_object* v_reuseFailAlloc_7267_; 
v_reuseFailAlloc_7267_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7267_, 0, v_a_7261_);
v___x_7266_ = v_reuseFailAlloc_7267_;
goto v_reusejp_7265_;
}
v_reusejp_7265_:
{
return v___x_7266_;
}
}
}
}
}
v___jp_7269_:
{
lean_object* v___x_7282_; lean_object* v_decVars_7283_; lean_object* v___x_7284_; lean_object* v___x_7285_; lean_object* v___x_7286_; lean_object* v_snd_7287_; lean_object* v___x_7288_; lean_object* v_a_7289_; uint8_t v___x_7290_; 
v___x_7282_ = lean_st_ref_get(v___y_7270_);
v_decVars_7283_ = lean_ctor_get(v___x_7282_, 1);
lean_inc(v_decVars_7283_);
lean_dec(v___x_7282_);
v___x_7284_ = lean_unsigned_to_nat(0u);
v___x_7285_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__6, &l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__6_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__6);
lean_inc_ref(v_h_7130_);
v___x_7286_ = l_Lean_Meta_Grind_Arith_Linear_UnsatProof_collectDecVars(v_h_7130_, v_decVars_7283_, v___x_7285_);
lean_dec(v_decVars_7283_);
v_snd_7287_ = lean_ctor_get(v___x_7286_, 1);
lean_inc(v_snd_7287_);
lean_dec_ref(v___x_7286_);
v___x_7288_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v_cls_7144_, v___y_7280_);
v_a_7289_ = lean_ctor_get(v___x_7288_, 0);
lean_inc(v_a_7289_);
lean_dec_ref(v___x_7288_);
v___x_7290_ = lean_unbox(v_a_7289_);
lean_dec(v_a_7289_);
if (v___x_7290_ == 0)
{
lean_object* v_found_7291_; 
v_found_7291_ = lean_ctor_get(v_snd_7287_, 1);
lean_inc(v_found_7291_);
lean_dec(v_snd_7287_);
v___y_7210_ = v___x_7284_;
v___y_7211_ = v_found_7291_;
v___y_7212_ = v___y_7270_;
v___y_7213_ = v___y_7271_;
v___y_7214_ = v___y_7272_;
v___y_7215_ = v___y_7273_;
v___y_7216_ = v___y_7274_;
v___y_7217_ = v___y_7275_;
v___y_7218_ = v___y_7276_;
v___y_7219_ = v___y_7277_;
v___y_7220_ = v___y_7278_;
v___y_7221_ = v___y_7279_;
v___y_7222_ = v___y_7280_;
v___y_7223_ = v___y_7281_;
goto v___jp_7209_;
}
else
{
lean_object* v_found_7292_; lean_object* v___x_7294_; uint8_t v_isShared_7295_; uint8_t v_isSharedCheck_7306_; 
v_found_7292_ = lean_ctor_get(v_snd_7287_, 1);
v_isSharedCheck_7306_ = !lean_is_exclusive(v_snd_7287_);
if (v_isSharedCheck_7306_ == 0)
{
lean_object* v_unused_7307_; 
v_unused_7307_ = lean_ctor_get(v_snd_7287_, 0);
lean_dec(v_unused_7307_);
v___x_7294_ = v_snd_7287_;
v_isShared_7295_ = v_isSharedCheck_7306_;
goto v_resetjp_7293_;
}
else
{
lean_inc(v_found_7292_);
lean_dec(v_snd_7287_);
v___x_7294_ = lean_box(0);
v_isShared_7295_ = v_isSharedCheck_7306_;
goto v_resetjp_7293_;
}
v_resetjp_7293_:
{
lean_object* v___x_7296_; lean_object* v___x_7297_; lean_object* v___x_7298_; lean_object* v___x_7299_; lean_object* v___x_7300_; lean_object* v___x_7301_; lean_object* v___x_7303_; 
v___x_7296_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__8, &l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__8_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveConflict___closed__8);
v___x_7297_ = lean_box(0);
v___x_7298_ = l_Std_DTreeMap_Internal_Impl_foldrM___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__3(v___x_7297_, v_found_7292_);
v___x_7299_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__4(v___x_7298_, v___x_7297_);
v___x_7300_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__5(v___x_7299_, v___x_7297_);
v___x_7301_ = l_Lean_MessageData_ofList(v___x_7300_);
if (v_isShared_7295_ == 0)
{
lean_ctor_set_tag(v___x_7294_, 7);
lean_ctor_set(v___x_7294_, 1, v___x_7301_);
lean_ctor_set(v___x_7294_, 0, v___x_7296_);
v___x_7303_ = v___x_7294_;
goto v_reusejp_7302_;
}
else
{
lean_object* v_reuseFailAlloc_7305_; 
v_reuseFailAlloc_7305_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v_reuseFailAlloc_7305_, 0, v___x_7296_);
lean_ctor_set(v_reuseFailAlloc_7305_, 1, v___x_7301_);
v___x_7303_ = v_reuseFailAlloc_7305_;
goto v_reusejp_7302_;
}
v_reusejp_7302_:
{
lean_object* v___x_7304_; 
v___x_7304_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v_cls_7144_, v___x_7303_, v___y_7278_, v___y_7279_, v___y_7280_, v___y_7281_);
if (lean_obj_tag(v___x_7304_) == 0)
{
lean_dec_ref(v___x_7304_);
v___y_7210_ = v___x_7284_;
v___y_7211_ = v_found_7292_;
v___y_7212_ = v___y_7270_;
v___y_7213_ = v___y_7271_;
v___y_7214_ = v___y_7272_;
v___y_7215_ = v___y_7273_;
v___y_7216_ = v___y_7274_;
v___y_7217_ = v___y_7275_;
v___y_7218_ = v___y_7276_;
v___y_7219_ = v___y_7277_;
v___y_7220_ = v___y_7278_;
v___y_7221_ = v___y_7279_;
v___y_7222_ = v___y_7280_;
v___y_7223_ = v___y_7281_;
goto v___jp_7209_;
}
else
{
lean_dec(v_found_7292_);
lean_dec(v___y_7281_);
lean_dec_ref(v___y_7280_);
lean_dec(v___y_7279_);
lean_dec_ref(v___y_7278_);
lean_dec(v___y_7277_);
lean_dec_ref(v___y_7276_);
lean_dec(v___y_7275_);
lean_dec_ref(v___y_7274_);
lean_dec(v___y_7273_);
lean_dec(v___y_7272_);
lean_dec(v___y_7271_);
lean_dec(v___y_7270_);
lean_dec_ref(v_h_7130_);
return v___x_7304_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_resolveConflict___boxed(lean_object* v_h_7328_, lean_object* v_a_7329_, lean_object* v_a_7330_, lean_object* v_a_7331_, lean_object* v_a_7332_, lean_object* v_a_7333_, lean_object* v_a_7334_, lean_object* v_a_7335_, lean_object* v_a_7336_, lean_object* v_a_7337_, lean_object* v_a_7338_, lean_object* v_a_7339_, lean_object* v_a_7340_, lean_object* v_a_7341_){
_start:
{
lean_object* v_res_7342_; 
v_res_7342_ = l_Lean_Meta_Grind_Arith_Linear_resolveConflict(v_h_7328_, v_a_7329_, v_a_7330_, v_a_7331_, v_a_7332_, v_a_7333_, v_a_7334_, v_a_7335_, v_a_7336_, v_a_7337_, v_a_7338_, v_a_7339_, v_a_7340_);
return v_res_7342_;
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0(lean_object* v_00_u03b2_7343_, lean_object* v_k_7344_, lean_object* v_t_7345_, lean_object* v_h_7346_){
_start:
{
lean_object* v___x_7347_; 
v___x_7347_ = l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___redArg(v_k_7344_, v_t_7345_);
return v___x_7347_;
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0___boxed(lean_object* v_00_u03b2_7348_, lean_object* v_k_7349_, lean_object* v_t_7350_, lean_object* v_h_7351_){
_start:
{
lean_object* v_res_7352_; 
v_res_7352_ = l_Std_DTreeMap_Internal_Impl_erase___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__0(v_00_u03b2_7348_, v_k_7349_, v_t_7350_, v_h_7351_);
lean_dec(v_k_7349_);
return v_res_7352_;
}
}
LEAN_EXPORT lean_object* l_Std_DTreeMap_Internal_Impl_foldl___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__1(lean_object* v_init_7353_, lean_object* v_t_7354_){
_start:
{
lean_object* v___x_7355_; 
v___x_7355_ = l_Std_DTreeMap_Internal_Impl_foldlM___at___00Std_DTreeMap_Internal_Impl_foldl___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__1_spec__1(v_init_7353_, v_t_7354_);
return v___x_7355_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4(lean_object* v___y_7356_, lean_object* v___y_7357_, lean_object* v___y_7358_, lean_object* v___y_7359_, lean_object* v___y_7360_, lean_object* v___y_7361_, lean_object* v___y_7362_, lean_object* v___y_7363_, lean_object* v___y_7364_, lean_object* v___y_7365_, lean_object* v___y_7366_, lean_object* v___y_7367_){
_start:
{
lean_object* v___x_7369_; 
v___x_7369_ = l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4___redArg(v___y_7357_, v___y_7358_, v___y_7359_, v___y_7360_, v___y_7361_, v___y_7362_, v___y_7363_, v___y_7364_, v___y_7365_, v___y_7366_, v___y_7367_);
return v___x_7369_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4___boxed(lean_object* v___y_7370_, lean_object* v___y_7371_, lean_object* v___y_7372_, lean_object* v___y_7373_, lean_object* v___y_7374_, lean_object* v___y_7375_, lean_object* v___y_7376_, lean_object* v___y_7377_, lean_object* v___y_7378_, lean_object* v___y_7379_, lean_object* v___y_7380_, lean_object* v___y_7381_, lean_object* v___y_7382_){
_start:
{
lean_object* v_res_7383_; 
v_res_7383_ = l_Lean_Meta_Grind_Arith_Linear_getLeFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__4(v___y_7370_, v___y_7371_, v___y_7372_, v___y_7373_, v___y_7374_, v___y_7375_, v___y_7376_, v___y_7377_, v___y_7378_, v___y_7379_, v___y_7380_, v___y_7381_);
lean_dec(v___y_7381_);
lean_dec_ref(v___y_7380_);
lean_dec(v___y_7379_);
lean_dec_ref(v___y_7378_);
lean_dec(v___y_7377_);
lean_dec_ref(v___y_7376_);
lean_dec(v___y_7375_);
lean_dec_ref(v___y_7374_);
lean_dec(v___y_7373_);
lean_dec(v___y_7372_);
lean_dec(v___y_7371_);
lean_dec(v___y_7370_);
return v_res_7383_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5(lean_object* v___y_7384_, lean_object* v___y_7385_, lean_object* v___y_7386_, lean_object* v___y_7387_, lean_object* v___y_7388_, lean_object* v___y_7389_, lean_object* v___y_7390_, lean_object* v___y_7391_, lean_object* v___y_7392_, lean_object* v___y_7393_, lean_object* v___y_7394_, lean_object* v___y_7395_){
_start:
{
lean_object* v___x_7397_; 
v___x_7397_ = l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5___redArg(v___y_7385_, v___y_7386_, v___y_7387_, v___y_7388_, v___y_7389_, v___y_7390_, v___y_7391_, v___y_7392_, v___y_7393_, v___y_7394_, v___y_7395_);
return v___x_7397_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5___boxed(lean_object* v___y_7398_, lean_object* v___y_7399_, lean_object* v___y_7400_, lean_object* v___y_7401_, lean_object* v___y_7402_, lean_object* v___y_7403_, lean_object* v___y_7404_, lean_object* v___y_7405_, lean_object* v___y_7406_, lean_object* v___y_7407_, lean_object* v___y_7408_, lean_object* v___y_7409_, lean_object* v___y_7410_){
_start:
{
lean_object* v_res_7411_; 
v_res_7411_ = l_Lean_Meta_Grind_Arith_Linear_getLtFn___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_DenoteExpr_0__Lean_Meta_Grind_Arith_Linear_denoteIneq___at___00Lean_Meta_Grind_Arith_Linear_IneqCnstr_denoteExpr___at___00Lean_Meta_Grind_Arith_Linear_resolveConflict_spec__2_spec__3_spec__5(v___y_7398_, v___y_7399_, v___y_7400_, v___y_7401_, v___y_7402_, v___y_7403_, v___y_7404_, v___y_7405_, v___y_7406_, v___y_7407_, v___y_7408_, v___y_7409_);
lean_dec(v___y_7409_);
lean_dec_ref(v___y_7408_);
lean_dec(v___y_7407_);
lean_dec_ref(v___y_7406_);
lean_dec(v___y_7405_);
lean_dec_ref(v___y_7404_);
lean_dec(v___y_7403_);
lean_dec_ref(v___y_7402_);
lean_dec(v___y_7401_);
lean_dec(v___y_7400_);
lean_dec(v___y_7399_);
lean_dec(v___y_7398_);
return v_res_7411_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg___lam__0(lean_object* v_a_7412_, lean_object* v___y_7413_, lean_object* v_s_7414_){
_start:
{
lean_object* v_structs_7415_; lean_object* v_typeIdOf_7416_; lean_object* v_exprToStructId_7417_; lean_object* v_exprToStructIdEntries_7418_; lean_object* v_forbiddenNatModules_7419_; lean_object* v_natStructs_7420_; lean_object* v_natTypeIdOf_7421_; lean_object* v_exprToNatStructId_7422_; lean_object* v___x_7423_; uint8_t v___x_7424_; 
v_structs_7415_ = lean_ctor_get(v_s_7414_, 0);
v_typeIdOf_7416_ = lean_ctor_get(v_s_7414_, 1);
v_exprToStructId_7417_ = lean_ctor_get(v_s_7414_, 2);
v_exprToStructIdEntries_7418_ = lean_ctor_get(v_s_7414_, 3);
v_forbiddenNatModules_7419_ = lean_ctor_get(v_s_7414_, 4);
v_natStructs_7420_ = lean_ctor_get(v_s_7414_, 5);
v_natTypeIdOf_7421_ = lean_ctor_get(v_s_7414_, 6);
v_exprToNatStructId_7422_ = lean_ctor_get(v_s_7414_, 7);
v___x_7423_ = lean_array_get_size(v_structs_7415_);
v___x_7424_ = lean_nat_dec_lt(v_a_7412_, v___x_7423_);
if (v___x_7424_ == 0)
{
return v_s_7414_;
}
else
{
lean_object* v___x_7426_; uint8_t v_isShared_7427_; uint8_t v_isSharedCheck_7527_; 
lean_inc_ref(v_exprToNatStructId_7422_);
lean_inc_ref(v_natTypeIdOf_7421_);
lean_inc_ref(v_natStructs_7420_);
lean_inc_ref(v_forbiddenNatModules_7419_);
lean_inc_ref(v_exprToStructIdEntries_7418_);
lean_inc_ref(v_exprToStructId_7417_);
lean_inc_ref(v_typeIdOf_7416_);
lean_inc_ref(v_structs_7415_);
v_isSharedCheck_7527_ = !lean_is_exclusive(v_s_7414_);
if (v_isSharedCheck_7527_ == 0)
{
lean_object* v_unused_7528_; lean_object* v_unused_7529_; lean_object* v_unused_7530_; lean_object* v_unused_7531_; lean_object* v_unused_7532_; lean_object* v_unused_7533_; lean_object* v_unused_7534_; lean_object* v_unused_7535_; 
v_unused_7528_ = lean_ctor_get(v_s_7414_, 7);
lean_dec(v_unused_7528_);
v_unused_7529_ = lean_ctor_get(v_s_7414_, 6);
lean_dec(v_unused_7529_);
v_unused_7530_ = lean_ctor_get(v_s_7414_, 5);
lean_dec(v_unused_7530_);
v_unused_7531_ = lean_ctor_get(v_s_7414_, 4);
lean_dec(v_unused_7531_);
v_unused_7532_ = lean_ctor_get(v_s_7414_, 3);
lean_dec(v_unused_7532_);
v_unused_7533_ = lean_ctor_get(v_s_7414_, 2);
lean_dec(v_unused_7533_);
v_unused_7534_ = lean_ctor_get(v_s_7414_, 1);
lean_dec(v_unused_7534_);
v_unused_7535_ = lean_ctor_get(v_s_7414_, 0);
lean_dec(v_unused_7535_);
v___x_7426_ = v_s_7414_;
v_isShared_7427_ = v_isSharedCheck_7527_;
goto v_resetjp_7425_;
}
else
{
lean_dec(v_s_7414_);
v___x_7426_ = lean_box(0);
v_isShared_7427_ = v_isSharedCheck_7527_;
goto v_resetjp_7425_;
}
v_resetjp_7425_:
{
lean_object* v_saved_7428_; lean_object* v_id_7429_; lean_object* v_ringId_x3f_7430_; lean_object* v_type_7431_; lean_object* v_u_7432_; lean_object* v_intModuleInst_7433_; lean_object* v_leInst_x3f_7434_; lean_object* v_ltInst_x3f_7435_; lean_object* v_lawfulOrderLTInst_x3f_7436_; lean_object* v_isPreorderInst_x3f_7437_; lean_object* v_orderedAddInst_x3f_7438_; lean_object* v_isLinearInst_x3f_7439_; lean_object* v_noNatDivInst_x3f_7440_; lean_object* v_ringInst_x3f_7441_; lean_object* v_commRingInst_x3f_7442_; lean_object* v_orderedRingInst_x3f_7443_; lean_object* v_fieldInst_x3f_7444_; lean_object* v_charInst_x3f_7445_; lean_object* v_zero_7446_; lean_object* v_ofNatZero_7447_; lean_object* v_one_x3f_7448_; lean_object* v_leFn_x3f_7449_; lean_object* v_ltFn_x3f_7450_; lean_object* v_addFn_7451_; lean_object* v_zsmulFn_7452_; lean_object* v_nsmulFn_7453_; lean_object* v_zsmulFn_x3f_7454_; lean_object* v_nsmulFn_x3f_7455_; lean_object* v_homomulFn_x3f_7456_; lean_object* v_subFn_7457_; lean_object* v_negFn_7458_; lean_object* v_vars_7459_; lean_object* v_varMap_7460_; lean_object* v_lowers_7461_; lean_object* v_uppers_7462_; lean_object* v_diseqs_7463_; uint8_t v_caseSplits_7464_; lean_object* v_conflict_x3f_7465_; lean_object* v_diseqSplits_7466_; lean_object* v_elimEqs_7467_; lean_object* v_elimStack_7468_; lean_object* v_occurs_7469_; lean_object* v_ignored_7470_; lean_object* v_v_7471_; lean_object* v_assignment_7472_; lean_object* v___x_7474_; uint8_t v_isShared_7475_; uint8_t v_isSharedCheck_7485_; 
v_saved_7428_ = lean_ctor_get(v___y_7413_, 2);
v_id_7429_ = lean_ctor_get(v_saved_7428_, 0);
v_ringId_x3f_7430_ = lean_ctor_get(v_saved_7428_, 1);
v_type_7431_ = lean_ctor_get(v_saved_7428_, 2);
v_u_7432_ = lean_ctor_get(v_saved_7428_, 3);
v_intModuleInst_7433_ = lean_ctor_get(v_saved_7428_, 4);
v_leInst_x3f_7434_ = lean_ctor_get(v_saved_7428_, 5);
v_ltInst_x3f_7435_ = lean_ctor_get(v_saved_7428_, 6);
v_lawfulOrderLTInst_x3f_7436_ = lean_ctor_get(v_saved_7428_, 7);
v_isPreorderInst_x3f_7437_ = lean_ctor_get(v_saved_7428_, 8);
v_orderedAddInst_x3f_7438_ = lean_ctor_get(v_saved_7428_, 9);
v_isLinearInst_x3f_7439_ = lean_ctor_get(v_saved_7428_, 10);
v_noNatDivInst_x3f_7440_ = lean_ctor_get(v_saved_7428_, 11);
v_ringInst_x3f_7441_ = lean_ctor_get(v_saved_7428_, 12);
v_commRingInst_x3f_7442_ = lean_ctor_get(v_saved_7428_, 13);
v_orderedRingInst_x3f_7443_ = lean_ctor_get(v_saved_7428_, 14);
v_fieldInst_x3f_7444_ = lean_ctor_get(v_saved_7428_, 15);
v_charInst_x3f_7445_ = lean_ctor_get(v_saved_7428_, 16);
v_zero_7446_ = lean_ctor_get(v_saved_7428_, 17);
v_ofNatZero_7447_ = lean_ctor_get(v_saved_7428_, 18);
v_one_x3f_7448_ = lean_ctor_get(v_saved_7428_, 19);
v_leFn_x3f_7449_ = lean_ctor_get(v_saved_7428_, 20);
v_ltFn_x3f_7450_ = lean_ctor_get(v_saved_7428_, 21);
v_addFn_7451_ = lean_ctor_get(v_saved_7428_, 22);
v_zsmulFn_7452_ = lean_ctor_get(v_saved_7428_, 23);
v_nsmulFn_7453_ = lean_ctor_get(v_saved_7428_, 24);
v_zsmulFn_x3f_7454_ = lean_ctor_get(v_saved_7428_, 25);
v_nsmulFn_x3f_7455_ = lean_ctor_get(v_saved_7428_, 26);
v_homomulFn_x3f_7456_ = lean_ctor_get(v_saved_7428_, 27);
v_subFn_7457_ = lean_ctor_get(v_saved_7428_, 28);
v_negFn_7458_ = lean_ctor_get(v_saved_7428_, 29);
v_vars_7459_ = lean_ctor_get(v_saved_7428_, 30);
v_varMap_7460_ = lean_ctor_get(v_saved_7428_, 31);
v_lowers_7461_ = lean_ctor_get(v_saved_7428_, 32);
v_uppers_7462_ = lean_ctor_get(v_saved_7428_, 33);
v_diseqs_7463_ = lean_ctor_get(v_saved_7428_, 34);
v_caseSplits_7464_ = lean_ctor_get_uint8(v_saved_7428_, sizeof(void*)*42);
v_conflict_x3f_7465_ = lean_ctor_get(v_saved_7428_, 36);
v_diseqSplits_7466_ = lean_ctor_get(v_saved_7428_, 37);
v_elimEqs_7467_ = lean_ctor_get(v_saved_7428_, 38);
v_elimStack_7468_ = lean_ctor_get(v_saved_7428_, 39);
v_occurs_7469_ = lean_ctor_get(v_saved_7428_, 40);
v_ignored_7470_ = lean_ctor_get(v_saved_7428_, 41);
v_v_7471_ = lean_array_fget(v_structs_7415_, v_a_7412_);
v_assignment_7472_ = lean_ctor_get(v_v_7471_, 35);
v_isSharedCheck_7485_ = !lean_is_exclusive(v_v_7471_);
if (v_isSharedCheck_7485_ == 0)
{
lean_object* v_unused_7486_; lean_object* v_unused_7487_; lean_object* v_unused_7488_; lean_object* v_unused_7489_; lean_object* v_unused_7490_; lean_object* v_unused_7491_; lean_object* v_unused_7492_; lean_object* v_unused_7493_; lean_object* v_unused_7494_; lean_object* v_unused_7495_; lean_object* v_unused_7496_; lean_object* v_unused_7497_; lean_object* v_unused_7498_; lean_object* v_unused_7499_; lean_object* v_unused_7500_; lean_object* v_unused_7501_; lean_object* v_unused_7502_; lean_object* v_unused_7503_; lean_object* v_unused_7504_; lean_object* v_unused_7505_; lean_object* v_unused_7506_; lean_object* v_unused_7507_; lean_object* v_unused_7508_; lean_object* v_unused_7509_; lean_object* v_unused_7510_; lean_object* v_unused_7511_; lean_object* v_unused_7512_; lean_object* v_unused_7513_; lean_object* v_unused_7514_; lean_object* v_unused_7515_; lean_object* v_unused_7516_; lean_object* v_unused_7517_; lean_object* v_unused_7518_; lean_object* v_unused_7519_; lean_object* v_unused_7520_; lean_object* v_unused_7521_; lean_object* v_unused_7522_; lean_object* v_unused_7523_; lean_object* v_unused_7524_; lean_object* v_unused_7525_; lean_object* v_unused_7526_; 
v_unused_7486_ = lean_ctor_get(v_v_7471_, 41);
lean_dec(v_unused_7486_);
v_unused_7487_ = lean_ctor_get(v_v_7471_, 40);
lean_dec(v_unused_7487_);
v_unused_7488_ = lean_ctor_get(v_v_7471_, 39);
lean_dec(v_unused_7488_);
v_unused_7489_ = lean_ctor_get(v_v_7471_, 38);
lean_dec(v_unused_7489_);
v_unused_7490_ = lean_ctor_get(v_v_7471_, 37);
lean_dec(v_unused_7490_);
v_unused_7491_ = lean_ctor_get(v_v_7471_, 36);
lean_dec(v_unused_7491_);
v_unused_7492_ = lean_ctor_get(v_v_7471_, 34);
lean_dec(v_unused_7492_);
v_unused_7493_ = lean_ctor_get(v_v_7471_, 33);
lean_dec(v_unused_7493_);
v_unused_7494_ = lean_ctor_get(v_v_7471_, 32);
lean_dec(v_unused_7494_);
v_unused_7495_ = lean_ctor_get(v_v_7471_, 31);
lean_dec(v_unused_7495_);
v_unused_7496_ = lean_ctor_get(v_v_7471_, 30);
lean_dec(v_unused_7496_);
v_unused_7497_ = lean_ctor_get(v_v_7471_, 29);
lean_dec(v_unused_7497_);
v_unused_7498_ = lean_ctor_get(v_v_7471_, 28);
lean_dec(v_unused_7498_);
v_unused_7499_ = lean_ctor_get(v_v_7471_, 27);
lean_dec(v_unused_7499_);
v_unused_7500_ = lean_ctor_get(v_v_7471_, 26);
lean_dec(v_unused_7500_);
v_unused_7501_ = lean_ctor_get(v_v_7471_, 25);
lean_dec(v_unused_7501_);
v_unused_7502_ = lean_ctor_get(v_v_7471_, 24);
lean_dec(v_unused_7502_);
v_unused_7503_ = lean_ctor_get(v_v_7471_, 23);
lean_dec(v_unused_7503_);
v_unused_7504_ = lean_ctor_get(v_v_7471_, 22);
lean_dec(v_unused_7504_);
v_unused_7505_ = lean_ctor_get(v_v_7471_, 21);
lean_dec(v_unused_7505_);
v_unused_7506_ = lean_ctor_get(v_v_7471_, 20);
lean_dec(v_unused_7506_);
v_unused_7507_ = lean_ctor_get(v_v_7471_, 19);
lean_dec(v_unused_7507_);
v_unused_7508_ = lean_ctor_get(v_v_7471_, 18);
lean_dec(v_unused_7508_);
v_unused_7509_ = lean_ctor_get(v_v_7471_, 17);
lean_dec(v_unused_7509_);
v_unused_7510_ = lean_ctor_get(v_v_7471_, 16);
lean_dec(v_unused_7510_);
v_unused_7511_ = lean_ctor_get(v_v_7471_, 15);
lean_dec(v_unused_7511_);
v_unused_7512_ = lean_ctor_get(v_v_7471_, 14);
lean_dec(v_unused_7512_);
v_unused_7513_ = lean_ctor_get(v_v_7471_, 13);
lean_dec(v_unused_7513_);
v_unused_7514_ = lean_ctor_get(v_v_7471_, 12);
lean_dec(v_unused_7514_);
v_unused_7515_ = lean_ctor_get(v_v_7471_, 11);
lean_dec(v_unused_7515_);
v_unused_7516_ = lean_ctor_get(v_v_7471_, 10);
lean_dec(v_unused_7516_);
v_unused_7517_ = lean_ctor_get(v_v_7471_, 9);
lean_dec(v_unused_7517_);
v_unused_7518_ = lean_ctor_get(v_v_7471_, 8);
lean_dec(v_unused_7518_);
v_unused_7519_ = lean_ctor_get(v_v_7471_, 7);
lean_dec(v_unused_7519_);
v_unused_7520_ = lean_ctor_get(v_v_7471_, 6);
lean_dec(v_unused_7520_);
v_unused_7521_ = lean_ctor_get(v_v_7471_, 5);
lean_dec(v_unused_7521_);
v_unused_7522_ = lean_ctor_get(v_v_7471_, 4);
lean_dec(v_unused_7522_);
v_unused_7523_ = lean_ctor_get(v_v_7471_, 3);
lean_dec(v_unused_7523_);
v_unused_7524_ = lean_ctor_get(v_v_7471_, 2);
lean_dec(v_unused_7524_);
v_unused_7525_ = lean_ctor_get(v_v_7471_, 1);
lean_dec(v_unused_7525_);
v_unused_7526_ = lean_ctor_get(v_v_7471_, 0);
lean_dec(v_unused_7526_);
v___x_7474_ = v_v_7471_;
v_isShared_7475_ = v_isSharedCheck_7485_;
goto v_resetjp_7473_;
}
else
{
lean_inc(v_assignment_7472_);
lean_dec(v_v_7471_);
v___x_7474_ = lean_box(0);
v_isShared_7475_ = v_isSharedCheck_7485_;
goto v_resetjp_7473_;
}
v_resetjp_7473_:
{
lean_object* v___x_7476_; lean_object* v_xs_x27_7477_; lean_object* v___x_7479_; 
v___x_7476_ = lean_box(0);
v_xs_x27_7477_ = lean_array_fset(v_structs_7415_, v_a_7412_, v___x_7476_);
lean_inc_ref(v_ignored_7470_);
lean_inc_ref(v_occurs_7469_);
lean_inc(v_elimStack_7468_);
lean_inc_ref(v_elimEqs_7467_);
lean_inc_ref(v_diseqSplits_7466_);
lean_inc(v_conflict_x3f_7465_);
lean_inc_ref(v_diseqs_7463_);
lean_inc_ref(v_uppers_7462_);
lean_inc_ref(v_lowers_7461_);
lean_inc_ref(v_varMap_7460_);
lean_inc_ref(v_vars_7459_);
lean_inc_ref(v_negFn_7458_);
lean_inc_ref(v_subFn_7457_);
lean_inc(v_homomulFn_x3f_7456_);
lean_inc(v_nsmulFn_x3f_7455_);
lean_inc(v_zsmulFn_x3f_7454_);
lean_inc_ref(v_nsmulFn_7453_);
lean_inc_ref(v_zsmulFn_7452_);
lean_inc_ref(v_addFn_7451_);
lean_inc(v_ltFn_x3f_7450_);
lean_inc(v_leFn_x3f_7449_);
lean_inc(v_one_x3f_7448_);
lean_inc_ref(v_ofNatZero_7447_);
lean_inc_ref(v_zero_7446_);
lean_inc(v_charInst_x3f_7445_);
lean_inc(v_fieldInst_x3f_7444_);
lean_inc(v_orderedRingInst_x3f_7443_);
lean_inc(v_commRingInst_x3f_7442_);
lean_inc(v_ringInst_x3f_7441_);
lean_inc(v_noNatDivInst_x3f_7440_);
lean_inc(v_isLinearInst_x3f_7439_);
lean_inc(v_orderedAddInst_x3f_7438_);
lean_inc(v_isPreorderInst_x3f_7437_);
lean_inc(v_lawfulOrderLTInst_x3f_7436_);
lean_inc(v_ltInst_x3f_7435_);
lean_inc(v_leInst_x3f_7434_);
lean_inc_ref(v_intModuleInst_7433_);
lean_inc(v_u_7432_);
lean_inc_ref(v_type_7431_);
lean_inc(v_ringId_x3f_7430_);
lean_inc(v_id_7429_);
if (v_isShared_7475_ == 0)
{
lean_ctor_set(v___x_7474_, 41, v_ignored_7470_);
lean_ctor_set(v___x_7474_, 40, v_occurs_7469_);
lean_ctor_set(v___x_7474_, 39, v_elimStack_7468_);
lean_ctor_set(v___x_7474_, 38, v_elimEqs_7467_);
lean_ctor_set(v___x_7474_, 37, v_diseqSplits_7466_);
lean_ctor_set(v___x_7474_, 36, v_conflict_x3f_7465_);
lean_ctor_set(v___x_7474_, 34, v_diseqs_7463_);
lean_ctor_set(v___x_7474_, 33, v_uppers_7462_);
lean_ctor_set(v___x_7474_, 32, v_lowers_7461_);
lean_ctor_set(v___x_7474_, 31, v_varMap_7460_);
lean_ctor_set(v___x_7474_, 30, v_vars_7459_);
lean_ctor_set(v___x_7474_, 29, v_negFn_7458_);
lean_ctor_set(v___x_7474_, 28, v_subFn_7457_);
lean_ctor_set(v___x_7474_, 27, v_homomulFn_x3f_7456_);
lean_ctor_set(v___x_7474_, 26, v_nsmulFn_x3f_7455_);
lean_ctor_set(v___x_7474_, 25, v_zsmulFn_x3f_7454_);
lean_ctor_set(v___x_7474_, 24, v_nsmulFn_7453_);
lean_ctor_set(v___x_7474_, 23, v_zsmulFn_7452_);
lean_ctor_set(v___x_7474_, 22, v_addFn_7451_);
lean_ctor_set(v___x_7474_, 21, v_ltFn_x3f_7450_);
lean_ctor_set(v___x_7474_, 20, v_leFn_x3f_7449_);
lean_ctor_set(v___x_7474_, 19, v_one_x3f_7448_);
lean_ctor_set(v___x_7474_, 18, v_ofNatZero_7447_);
lean_ctor_set(v___x_7474_, 17, v_zero_7446_);
lean_ctor_set(v___x_7474_, 16, v_charInst_x3f_7445_);
lean_ctor_set(v___x_7474_, 15, v_fieldInst_x3f_7444_);
lean_ctor_set(v___x_7474_, 14, v_orderedRingInst_x3f_7443_);
lean_ctor_set(v___x_7474_, 13, v_commRingInst_x3f_7442_);
lean_ctor_set(v___x_7474_, 12, v_ringInst_x3f_7441_);
lean_ctor_set(v___x_7474_, 11, v_noNatDivInst_x3f_7440_);
lean_ctor_set(v___x_7474_, 10, v_isLinearInst_x3f_7439_);
lean_ctor_set(v___x_7474_, 9, v_orderedAddInst_x3f_7438_);
lean_ctor_set(v___x_7474_, 8, v_isPreorderInst_x3f_7437_);
lean_ctor_set(v___x_7474_, 7, v_lawfulOrderLTInst_x3f_7436_);
lean_ctor_set(v___x_7474_, 6, v_ltInst_x3f_7435_);
lean_ctor_set(v___x_7474_, 5, v_leInst_x3f_7434_);
lean_ctor_set(v___x_7474_, 4, v_intModuleInst_7433_);
lean_ctor_set(v___x_7474_, 3, v_u_7432_);
lean_ctor_set(v___x_7474_, 2, v_type_7431_);
lean_ctor_set(v___x_7474_, 1, v_ringId_x3f_7430_);
lean_ctor_set(v___x_7474_, 0, v_id_7429_);
v___x_7479_ = v___x_7474_;
goto v_reusejp_7478_;
}
else
{
lean_object* v_reuseFailAlloc_7484_; 
v_reuseFailAlloc_7484_ = lean_alloc_ctor(0, 42, 1);
lean_ctor_set(v_reuseFailAlloc_7484_, 0, v_id_7429_);
lean_ctor_set(v_reuseFailAlloc_7484_, 1, v_ringId_x3f_7430_);
lean_ctor_set(v_reuseFailAlloc_7484_, 2, v_type_7431_);
lean_ctor_set(v_reuseFailAlloc_7484_, 3, v_u_7432_);
lean_ctor_set(v_reuseFailAlloc_7484_, 4, v_intModuleInst_7433_);
lean_ctor_set(v_reuseFailAlloc_7484_, 5, v_leInst_x3f_7434_);
lean_ctor_set(v_reuseFailAlloc_7484_, 6, v_ltInst_x3f_7435_);
lean_ctor_set(v_reuseFailAlloc_7484_, 7, v_lawfulOrderLTInst_x3f_7436_);
lean_ctor_set(v_reuseFailAlloc_7484_, 8, v_isPreorderInst_x3f_7437_);
lean_ctor_set(v_reuseFailAlloc_7484_, 9, v_orderedAddInst_x3f_7438_);
lean_ctor_set(v_reuseFailAlloc_7484_, 10, v_isLinearInst_x3f_7439_);
lean_ctor_set(v_reuseFailAlloc_7484_, 11, v_noNatDivInst_x3f_7440_);
lean_ctor_set(v_reuseFailAlloc_7484_, 12, v_ringInst_x3f_7441_);
lean_ctor_set(v_reuseFailAlloc_7484_, 13, v_commRingInst_x3f_7442_);
lean_ctor_set(v_reuseFailAlloc_7484_, 14, v_orderedRingInst_x3f_7443_);
lean_ctor_set(v_reuseFailAlloc_7484_, 15, v_fieldInst_x3f_7444_);
lean_ctor_set(v_reuseFailAlloc_7484_, 16, v_charInst_x3f_7445_);
lean_ctor_set(v_reuseFailAlloc_7484_, 17, v_zero_7446_);
lean_ctor_set(v_reuseFailAlloc_7484_, 18, v_ofNatZero_7447_);
lean_ctor_set(v_reuseFailAlloc_7484_, 19, v_one_x3f_7448_);
lean_ctor_set(v_reuseFailAlloc_7484_, 20, v_leFn_x3f_7449_);
lean_ctor_set(v_reuseFailAlloc_7484_, 21, v_ltFn_x3f_7450_);
lean_ctor_set(v_reuseFailAlloc_7484_, 22, v_addFn_7451_);
lean_ctor_set(v_reuseFailAlloc_7484_, 23, v_zsmulFn_7452_);
lean_ctor_set(v_reuseFailAlloc_7484_, 24, v_nsmulFn_7453_);
lean_ctor_set(v_reuseFailAlloc_7484_, 25, v_zsmulFn_x3f_7454_);
lean_ctor_set(v_reuseFailAlloc_7484_, 26, v_nsmulFn_x3f_7455_);
lean_ctor_set(v_reuseFailAlloc_7484_, 27, v_homomulFn_x3f_7456_);
lean_ctor_set(v_reuseFailAlloc_7484_, 28, v_subFn_7457_);
lean_ctor_set(v_reuseFailAlloc_7484_, 29, v_negFn_7458_);
lean_ctor_set(v_reuseFailAlloc_7484_, 30, v_vars_7459_);
lean_ctor_set(v_reuseFailAlloc_7484_, 31, v_varMap_7460_);
lean_ctor_set(v_reuseFailAlloc_7484_, 32, v_lowers_7461_);
lean_ctor_set(v_reuseFailAlloc_7484_, 33, v_uppers_7462_);
lean_ctor_set(v_reuseFailAlloc_7484_, 34, v_diseqs_7463_);
lean_ctor_set(v_reuseFailAlloc_7484_, 35, v_assignment_7472_);
lean_ctor_set(v_reuseFailAlloc_7484_, 36, v_conflict_x3f_7465_);
lean_ctor_set(v_reuseFailAlloc_7484_, 37, v_diseqSplits_7466_);
lean_ctor_set(v_reuseFailAlloc_7484_, 38, v_elimEqs_7467_);
lean_ctor_set(v_reuseFailAlloc_7484_, 39, v_elimStack_7468_);
lean_ctor_set(v_reuseFailAlloc_7484_, 40, v_occurs_7469_);
lean_ctor_set(v_reuseFailAlloc_7484_, 41, v_ignored_7470_);
v___x_7479_ = v_reuseFailAlloc_7484_;
goto v_reusejp_7478_;
}
v_reusejp_7478_:
{
lean_object* v___x_7480_; lean_object* v___x_7482_; 
lean_ctor_set_uint8(v___x_7479_, sizeof(void*)*42, v_caseSplits_7464_);
v___x_7480_ = lean_array_fset(v_xs_x27_7477_, v_a_7412_, v___x_7479_);
if (v_isShared_7427_ == 0)
{
lean_ctor_set(v___x_7426_, 0, v___x_7480_);
v___x_7482_ = v___x_7426_;
goto v_reusejp_7481_;
}
else
{
lean_object* v_reuseFailAlloc_7483_; 
v_reuseFailAlloc_7483_ = lean_alloc_ctor(0, 8, 0);
lean_ctor_set(v_reuseFailAlloc_7483_, 0, v___x_7480_);
lean_ctor_set(v_reuseFailAlloc_7483_, 1, v_typeIdOf_7416_);
lean_ctor_set(v_reuseFailAlloc_7483_, 2, v_exprToStructId_7417_);
lean_ctor_set(v_reuseFailAlloc_7483_, 3, v_exprToStructIdEntries_7418_);
lean_ctor_set(v_reuseFailAlloc_7483_, 4, v_forbiddenNatModules_7419_);
lean_ctor_set(v_reuseFailAlloc_7483_, 5, v_natStructs_7420_);
lean_ctor_set(v_reuseFailAlloc_7483_, 6, v_natTypeIdOf_7421_);
lean_ctor_set(v_reuseFailAlloc_7483_, 7, v_exprToNatStructId_7422_);
v___x_7482_ = v_reuseFailAlloc_7483_;
goto v_reusejp_7481_;
}
v_reusejp_7481_:
{
return v___x_7482_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg___lam__0___boxed(lean_object* v_a_7536_, lean_object* v___y_7537_, lean_object* v_s_7538_){
_start:
{
lean_object* v_res_7539_; 
v_res_7539_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg___lam__0(v_a_7536_, v___y_7537_, v_s_7538_);
lean_dec_ref(v___y_7537_);
lean_dec(v_a_7536_);
return v_res_7539_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg(lean_object* v_a_7540_, lean_object* v_a_7541_, lean_object* v_a_7542_){
_start:
{
lean_object* v___x_7544_; lean_object* v_cases_7545_; uint8_t v___x_7546_; 
v___x_7544_ = lean_st_ref_get(v_a_7540_);
v_cases_7545_ = lean_ctor_get(v___x_7544_, 0);
lean_inc_ref(v_cases_7545_);
lean_dec(v___x_7544_);
v___x_7546_ = l_Lean_PersistentArray_isEmpty___redArg(v_cases_7545_);
lean_dec_ref(v_cases_7545_);
if (v___x_7546_ == 0)
{
lean_object* v___x_7547_; lean_object* v___y_7549_; lean_object* v_cases_7553_; lean_object* v_size_7554_; lean_object* v___x_7555_; lean_object* v___x_7556_; uint8_t v___x_7557_; 
v___x_7547_ = lean_st_ref_get(v_a_7540_);
v_cases_7553_ = lean_ctor_get(v___x_7547_, 0);
lean_inc_ref(v_cases_7553_);
lean_dec(v___x_7547_);
v_size_7554_ = lean_ctor_get(v_cases_7553_, 2);
v___x_7555_ = l_Lean_Meta_Grind_Arith_Linear_instInhabitedCase_default;
v___x_7556_ = lean_unsigned_to_nat(0u);
v___x_7557_ = lean_nat_dec_lt(v___x_7556_, v_size_7554_);
if (v___x_7557_ == 0)
{
lean_object* v___x_7558_; 
lean_dec_ref(v_cases_7553_);
v___x_7558_ = l_outOfBounds___redArg(v___x_7555_);
v___y_7549_ = v___x_7558_;
goto v___jp_7548_;
}
else
{
lean_object* v___x_7559_; 
v___x_7559_ = l_Lean_PersistentArray_get_x21___redArg(v___x_7555_, v_cases_7553_, v___x_7556_);
v___y_7549_ = v___x_7559_;
goto v___jp_7548_;
}
v___jp_7548_:
{
lean_object* v___f_7550_; lean_object* v___x_7551_; lean_object* v___x_7552_; 
v___f_7550_ = lean_alloc_closure((void*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg___lam__0___boxed), 3, 2);
lean_closure_set(v___f_7550_, 0, v_a_7541_);
lean_closure_set(v___f_7550_, 1, v___y_7549_);
v___x_7551_ = l_Lean_Meta_Grind_Arith_Linear_linearExt;
v___x_7552_ = l___private_Lean_Meta_Tactic_Grind_Types_0__Lean_Meta_Grind_SolverExtension_modifyStateImpl___redArg(v___x_7551_, v___f_7550_, v_a_7542_);
return v___x_7552_;
}
}
else
{
lean_object* v___x_7560_; lean_object* v___x_7561_; 
lean_dec(v_a_7541_);
v___x_7560_ = lean_box(0);
v___x_7561_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7561_, 0, v___x_7560_);
return v___x_7561_;
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg___boxed(lean_object* v_a_7562_, lean_object* v_a_7563_, lean_object* v_a_7564_, lean_object* v_a_7565_){
_start:
{
lean_object* v_res_7566_; 
v_res_7566_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg(v_a_7562_, v_a_7563_, v_a_7564_);
lean_dec(v_a_7564_);
lean_dec(v_a_7562_);
return v_res_7566_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack(lean_object* v_a_7567_, lean_object* v_a_7568_, lean_object* v_a_7569_, lean_object* v_a_7570_, lean_object* v_a_7571_, lean_object* v_a_7572_, lean_object* v_a_7573_, lean_object* v_a_7574_, lean_object* v_a_7575_, lean_object* v_a_7576_, lean_object* v_a_7577_, lean_object* v_a_7578_){
_start:
{
lean_object* v___x_7580_; 
v___x_7580_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg(v_a_7567_, v_a_7568_, v_a_7569_);
return v___x_7580_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___boxed(lean_object* v_a_7581_, lean_object* v_a_7582_, lean_object* v_a_7583_, lean_object* v_a_7584_, lean_object* v_a_7585_, lean_object* v_a_7586_, lean_object* v_a_7587_, lean_object* v_a_7588_, lean_object* v_a_7589_, lean_object* v_a_7590_, lean_object* v_a_7591_, lean_object* v_a_7592_, lean_object* v_a_7593_){
_start:
{
lean_object* v_res_7594_; 
v_res_7594_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack(v_a_7581_, v_a_7582_, v_a_7583_, v_a_7584_, v_a_7585_, v_a_7586_, v_a_7587_, v_a_7588_, v_a_7589_, v_a_7590_, v_a_7591_, v_a_7592_);
lean_dec(v_a_7592_);
lean_dec_ref(v_a_7591_);
lean_dec(v_a_7590_);
lean_dec_ref(v_a_7589_);
lean_dec(v_a_7588_);
lean_dec_ref(v_a_7587_);
lean_dec(v_a_7586_);
lean_dec_ref(v_a_7585_);
lean_dec(v_a_7584_);
lean_dec(v_a_7583_);
lean_dec(v_a_7581_);
return v_res_7594_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__0(lean_object* v___y_7595_, lean_object* v_head_7596_, lean_object* v_s_7597_){
_start:
{
lean_object* v_structs_7598_; lean_object* v_typeIdOf_7599_; lean_object* v_exprToStructId_7600_; lean_object* v_exprToStructIdEntries_7601_; lean_object* v_forbiddenNatModules_7602_; lean_object* v_natStructs_7603_; lean_object* v_natTypeIdOf_7604_; lean_object* v_exprToNatStructId_7605_; lean_object* v___x_7606_; uint8_t v___x_7607_; 
v_structs_7598_ = lean_ctor_get(v_s_7597_, 0);
v_typeIdOf_7599_ = lean_ctor_get(v_s_7597_, 1);
v_exprToStructId_7600_ = lean_ctor_get(v_s_7597_, 2);
v_exprToStructIdEntries_7601_ = lean_ctor_get(v_s_7597_, 3);
v_forbiddenNatModules_7602_ = lean_ctor_get(v_s_7597_, 4);
v_natStructs_7603_ = lean_ctor_get(v_s_7597_, 5);
v_natTypeIdOf_7604_ = lean_ctor_get(v_s_7597_, 6);
v_exprToNatStructId_7605_ = lean_ctor_get(v_s_7597_, 7);
v___x_7606_ = lean_array_get_size(v_structs_7598_);
v___x_7607_ = lean_nat_dec_lt(v___y_7595_, v___x_7606_);
if (v___x_7607_ == 0)
{
return v_s_7597_;
}
else
{
lean_object* v___x_7609_; uint8_t v_isShared_7610_; uint8_t v_isSharedCheck_7670_; 
lean_inc_ref(v_exprToNatStructId_7605_);
lean_inc_ref(v_natTypeIdOf_7604_);
lean_inc_ref(v_natStructs_7603_);
lean_inc_ref(v_forbiddenNatModules_7602_);
lean_inc_ref(v_exprToStructIdEntries_7601_);
lean_inc_ref(v_exprToStructId_7600_);
lean_inc_ref(v_typeIdOf_7599_);
lean_inc_ref(v_structs_7598_);
v_isSharedCheck_7670_ = !lean_is_exclusive(v_s_7597_);
if (v_isSharedCheck_7670_ == 0)
{
lean_object* v_unused_7671_; lean_object* v_unused_7672_; lean_object* v_unused_7673_; lean_object* v_unused_7674_; lean_object* v_unused_7675_; lean_object* v_unused_7676_; lean_object* v_unused_7677_; lean_object* v_unused_7678_; 
v_unused_7671_ = lean_ctor_get(v_s_7597_, 7);
lean_dec(v_unused_7671_);
v_unused_7672_ = lean_ctor_get(v_s_7597_, 6);
lean_dec(v_unused_7672_);
v_unused_7673_ = lean_ctor_get(v_s_7597_, 5);
lean_dec(v_unused_7673_);
v_unused_7674_ = lean_ctor_get(v_s_7597_, 4);
lean_dec(v_unused_7674_);
v_unused_7675_ = lean_ctor_get(v_s_7597_, 3);
lean_dec(v_unused_7675_);
v_unused_7676_ = lean_ctor_get(v_s_7597_, 2);
lean_dec(v_unused_7676_);
v_unused_7677_ = lean_ctor_get(v_s_7597_, 1);
lean_dec(v_unused_7677_);
v_unused_7678_ = lean_ctor_get(v_s_7597_, 0);
lean_dec(v_unused_7678_);
v___x_7609_ = v_s_7597_;
v_isShared_7610_ = v_isSharedCheck_7670_;
goto v_resetjp_7608_;
}
else
{
lean_dec(v_s_7597_);
v___x_7609_ = lean_box(0);
v_isShared_7610_ = v_isSharedCheck_7670_;
goto v_resetjp_7608_;
}
v_resetjp_7608_:
{
lean_object* v_v_7611_; lean_object* v_id_7612_; lean_object* v_ringId_x3f_7613_; lean_object* v_type_7614_; lean_object* v_u_7615_; lean_object* v_intModuleInst_7616_; lean_object* v_leInst_x3f_7617_; lean_object* v_ltInst_x3f_7618_; lean_object* v_lawfulOrderLTInst_x3f_7619_; lean_object* v_isPreorderInst_x3f_7620_; lean_object* v_orderedAddInst_x3f_7621_; lean_object* v_isLinearInst_x3f_7622_; lean_object* v_noNatDivInst_x3f_7623_; lean_object* v_ringInst_x3f_7624_; lean_object* v_commRingInst_x3f_7625_; lean_object* v_orderedRingInst_x3f_7626_; lean_object* v_fieldInst_x3f_7627_; lean_object* v_charInst_x3f_7628_; lean_object* v_zero_7629_; lean_object* v_ofNatZero_7630_; lean_object* v_one_x3f_7631_; lean_object* v_leFn_x3f_7632_; lean_object* v_ltFn_x3f_7633_; lean_object* v_addFn_7634_; lean_object* v_zsmulFn_7635_; lean_object* v_nsmulFn_7636_; lean_object* v_zsmulFn_x3f_7637_; lean_object* v_nsmulFn_x3f_7638_; lean_object* v_homomulFn_x3f_7639_; lean_object* v_subFn_7640_; lean_object* v_negFn_7641_; lean_object* v_vars_7642_; lean_object* v_varMap_7643_; lean_object* v_lowers_7644_; lean_object* v_uppers_7645_; lean_object* v_diseqs_7646_; lean_object* v_assignment_7647_; uint8_t v_caseSplits_7648_; lean_object* v_conflict_x3f_7649_; lean_object* v_diseqSplits_7650_; lean_object* v_elimEqs_7651_; lean_object* v_elimStack_7652_; lean_object* v_occurs_7653_; lean_object* v_ignored_7654_; lean_object* v___x_7656_; uint8_t v_isShared_7657_; uint8_t v_isSharedCheck_7669_; 
v_v_7611_ = lean_array_fget(v_structs_7598_, v___y_7595_);
v_id_7612_ = lean_ctor_get(v_v_7611_, 0);
v_ringId_x3f_7613_ = lean_ctor_get(v_v_7611_, 1);
v_type_7614_ = lean_ctor_get(v_v_7611_, 2);
v_u_7615_ = lean_ctor_get(v_v_7611_, 3);
v_intModuleInst_7616_ = lean_ctor_get(v_v_7611_, 4);
v_leInst_x3f_7617_ = lean_ctor_get(v_v_7611_, 5);
v_ltInst_x3f_7618_ = lean_ctor_get(v_v_7611_, 6);
v_lawfulOrderLTInst_x3f_7619_ = lean_ctor_get(v_v_7611_, 7);
v_isPreorderInst_x3f_7620_ = lean_ctor_get(v_v_7611_, 8);
v_orderedAddInst_x3f_7621_ = lean_ctor_get(v_v_7611_, 9);
v_isLinearInst_x3f_7622_ = lean_ctor_get(v_v_7611_, 10);
v_noNatDivInst_x3f_7623_ = lean_ctor_get(v_v_7611_, 11);
v_ringInst_x3f_7624_ = lean_ctor_get(v_v_7611_, 12);
v_commRingInst_x3f_7625_ = lean_ctor_get(v_v_7611_, 13);
v_orderedRingInst_x3f_7626_ = lean_ctor_get(v_v_7611_, 14);
v_fieldInst_x3f_7627_ = lean_ctor_get(v_v_7611_, 15);
v_charInst_x3f_7628_ = lean_ctor_get(v_v_7611_, 16);
v_zero_7629_ = lean_ctor_get(v_v_7611_, 17);
v_ofNatZero_7630_ = lean_ctor_get(v_v_7611_, 18);
v_one_x3f_7631_ = lean_ctor_get(v_v_7611_, 19);
v_leFn_x3f_7632_ = lean_ctor_get(v_v_7611_, 20);
v_ltFn_x3f_7633_ = lean_ctor_get(v_v_7611_, 21);
v_addFn_7634_ = lean_ctor_get(v_v_7611_, 22);
v_zsmulFn_7635_ = lean_ctor_get(v_v_7611_, 23);
v_nsmulFn_7636_ = lean_ctor_get(v_v_7611_, 24);
v_zsmulFn_x3f_7637_ = lean_ctor_get(v_v_7611_, 25);
v_nsmulFn_x3f_7638_ = lean_ctor_get(v_v_7611_, 26);
v_homomulFn_x3f_7639_ = lean_ctor_get(v_v_7611_, 27);
v_subFn_7640_ = lean_ctor_get(v_v_7611_, 28);
v_negFn_7641_ = lean_ctor_get(v_v_7611_, 29);
v_vars_7642_ = lean_ctor_get(v_v_7611_, 30);
v_varMap_7643_ = lean_ctor_get(v_v_7611_, 31);
v_lowers_7644_ = lean_ctor_get(v_v_7611_, 32);
v_uppers_7645_ = lean_ctor_get(v_v_7611_, 33);
v_diseqs_7646_ = lean_ctor_get(v_v_7611_, 34);
v_assignment_7647_ = lean_ctor_get(v_v_7611_, 35);
v_caseSplits_7648_ = lean_ctor_get_uint8(v_v_7611_, sizeof(void*)*42);
v_conflict_x3f_7649_ = lean_ctor_get(v_v_7611_, 36);
v_diseqSplits_7650_ = lean_ctor_get(v_v_7611_, 37);
v_elimEqs_7651_ = lean_ctor_get(v_v_7611_, 38);
v_elimStack_7652_ = lean_ctor_get(v_v_7611_, 39);
v_occurs_7653_ = lean_ctor_get(v_v_7611_, 40);
v_ignored_7654_ = lean_ctor_get(v_v_7611_, 41);
v_isSharedCheck_7669_ = !lean_is_exclusive(v_v_7611_);
if (v_isSharedCheck_7669_ == 0)
{
v___x_7656_ = v_v_7611_;
v_isShared_7657_ = v_isSharedCheck_7669_;
goto v_resetjp_7655_;
}
else
{
lean_inc(v_ignored_7654_);
lean_inc(v_occurs_7653_);
lean_inc(v_elimStack_7652_);
lean_inc(v_elimEqs_7651_);
lean_inc(v_diseqSplits_7650_);
lean_inc(v_conflict_x3f_7649_);
lean_inc(v_assignment_7647_);
lean_inc(v_diseqs_7646_);
lean_inc(v_uppers_7645_);
lean_inc(v_lowers_7644_);
lean_inc(v_varMap_7643_);
lean_inc(v_vars_7642_);
lean_inc(v_negFn_7641_);
lean_inc(v_subFn_7640_);
lean_inc(v_homomulFn_x3f_7639_);
lean_inc(v_nsmulFn_x3f_7638_);
lean_inc(v_zsmulFn_x3f_7637_);
lean_inc(v_nsmulFn_7636_);
lean_inc(v_zsmulFn_7635_);
lean_inc(v_addFn_7634_);
lean_inc(v_ltFn_x3f_7633_);
lean_inc(v_leFn_x3f_7632_);
lean_inc(v_one_x3f_7631_);
lean_inc(v_ofNatZero_7630_);
lean_inc(v_zero_7629_);
lean_inc(v_charInst_x3f_7628_);
lean_inc(v_fieldInst_x3f_7627_);
lean_inc(v_orderedRingInst_x3f_7626_);
lean_inc(v_commRingInst_x3f_7625_);
lean_inc(v_ringInst_x3f_7624_);
lean_inc(v_noNatDivInst_x3f_7623_);
lean_inc(v_isLinearInst_x3f_7622_);
lean_inc(v_orderedAddInst_x3f_7621_);
lean_inc(v_isPreorderInst_x3f_7620_);
lean_inc(v_lawfulOrderLTInst_x3f_7619_);
lean_inc(v_ltInst_x3f_7618_);
lean_inc(v_leInst_x3f_7617_);
lean_inc(v_intModuleInst_7616_);
lean_inc(v_u_7615_);
lean_inc(v_type_7614_);
lean_inc(v_ringId_x3f_7613_);
lean_inc(v_id_7612_);
lean_dec(v_v_7611_);
v___x_7656_ = lean_box(0);
v_isShared_7657_ = v_isSharedCheck_7669_;
goto v_resetjp_7655_;
}
v_resetjp_7655_:
{
lean_object* v___x_7658_; lean_object* v_xs_x27_7659_; lean_object* v___x_7660_; lean_object* v___x_7661_; lean_object* v___x_7663_; 
v___x_7658_ = lean_box(0);
v_xs_x27_7659_ = lean_array_fset(v_structs_7598_, v___y_7595_, v___x_7658_);
v___x_7660_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_processVar___closed__3, &l_Lean_Meta_Grind_Arith_Linear_processVar___closed__3_once, _init_l_Lean_Meta_Grind_Arith_Linear_processVar___closed__3);
v___x_7661_ = l_Lean_PersistentArray_set___redArg(v_assignment_7647_, v_head_7596_, v___x_7660_);
if (v_isShared_7657_ == 0)
{
lean_ctor_set(v___x_7656_, 35, v___x_7661_);
v___x_7663_ = v___x_7656_;
goto v_reusejp_7662_;
}
else
{
lean_object* v_reuseFailAlloc_7668_; 
v_reuseFailAlloc_7668_ = lean_alloc_ctor(0, 42, 1);
lean_ctor_set(v_reuseFailAlloc_7668_, 0, v_id_7612_);
lean_ctor_set(v_reuseFailAlloc_7668_, 1, v_ringId_x3f_7613_);
lean_ctor_set(v_reuseFailAlloc_7668_, 2, v_type_7614_);
lean_ctor_set(v_reuseFailAlloc_7668_, 3, v_u_7615_);
lean_ctor_set(v_reuseFailAlloc_7668_, 4, v_intModuleInst_7616_);
lean_ctor_set(v_reuseFailAlloc_7668_, 5, v_leInst_x3f_7617_);
lean_ctor_set(v_reuseFailAlloc_7668_, 6, v_ltInst_x3f_7618_);
lean_ctor_set(v_reuseFailAlloc_7668_, 7, v_lawfulOrderLTInst_x3f_7619_);
lean_ctor_set(v_reuseFailAlloc_7668_, 8, v_isPreorderInst_x3f_7620_);
lean_ctor_set(v_reuseFailAlloc_7668_, 9, v_orderedAddInst_x3f_7621_);
lean_ctor_set(v_reuseFailAlloc_7668_, 10, v_isLinearInst_x3f_7622_);
lean_ctor_set(v_reuseFailAlloc_7668_, 11, v_noNatDivInst_x3f_7623_);
lean_ctor_set(v_reuseFailAlloc_7668_, 12, v_ringInst_x3f_7624_);
lean_ctor_set(v_reuseFailAlloc_7668_, 13, v_commRingInst_x3f_7625_);
lean_ctor_set(v_reuseFailAlloc_7668_, 14, v_orderedRingInst_x3f_7626_);
lean_ctor_set(v_reuseFailAlloc_7668_, 15, v_fieldInst_x3f_7627_);
lean_ctor_set(v_reuseFailAlloc_7668_, 16, v_charInst_x3f_7628_);
lean_ctor_set(v_reuseFailAlloc_7668_, 17, v_zero_7629_);
lean_ctor_set(v_reuseFailAlloc_7668_, 18, v_ofNatZero_7630_);
lean_ctor_set(v_reuseFailAlloc_7668_, 19, v_one_x3f_7631_);
lean_ctor_set(v_reuseFailAlloc_7668_, 20, v_leFn_x3f_7632_);
lean_ctor_set(v_reuseFailAlloc_7668_, 21, v_ltFn_x3f_7633_);
lean_ctor_set(v_reuseFailAlloc_7668_, 22, v_addFn_7634_);
lean_ctor_set(v_reuseFailAlloc_7668_, 23, v_zsmulFn_7635_);
lean_ctor_set(v_reuseFailAlloc_7668_, 24, v_nsmulFn_7636_);
lean_ctor_set(v_reuseFailAlloc_7668_, 25, v_zsmulFn_x3f_7637_);
lean_ctor_set(v_reuseFailAlloc_7668_, 26, v_nsmulFn_x3f_7638_);
lean_ctor_set(v_reuseFailAlloc_7668_, 27, v_homomulFn_x3f_7639_);
lean_ctor_set(v_reuseFailAlloc_7668_, 28, v_subFn_7640_);
lean_ctor_set(v_reuseFailAlloc_7668_, 29, v_negFn_7641_);
lean_ctor_set(v_reuseFailAlloc_7668_, 30, v_vars_7642_);
lean_ctor_set(v_reuseFailAlloc_7668_, 31, v_varMap_7643_);
lean_ctor_set(v_reuseFailAlloc_7668_, 32, v_lowers_7644_);
lean_ctor_set(v_reuseFailAlloc_7668_, 33, v_uppers_7645_);
lean_ctor_set(v_reuseFailAlloc_7668_, 34, v_diseqs_7646_);
lean_ctor_set(v_reuseFailAlloc_7668_, 35, v___x_7661_);
lean_ctor_set(v_reuseFailAlloc_7668_, 36, v_conflict_x3f_7649_);
lean_ctor_set(v_reuseFailAlloc_7668_, 37, v_diseqSplits_7650_);
lean_ctor_set(v_reuseFailAlloc_7668_, 38, v_elimEqs_7651_);
lean_ctor_set(v_reuseFailAlloc_7668_, 39, v_elimStack_7652_);
lean_ctor_set(v_reuseFailAlloc_7668_, 40, v_occurs_7653_);
lean_ctor_set(v_reuseFailAlloc_7668_, 41, v_ignored_7654_);
lean_ctor_set_uint8(v_reuseFailAlloc_7668_, sizeof(void*)*42, v_caseSplits_7648_);
v___x_7663_ = v_reuseFailAlloc_7668_;
goto v_reusejp_7662_;
}
v_reusejp_7662_:
{
lean_object* v___x_7664_; lean_object* v___x_7666_; 
v___x_7664_ = lean_array_fset(v_xs_x27_7659_, v___y_7595_, v___x_7663_);
if (v_isShared_7610_ == 0)
{
lean_ctor_set(v___x_7609_, 0, v___x_7664_);
v___x_7666_ = v___x_7609_;
goto v_reusejp_7665_;
}
else
{
lean_object* v_reuseFailAlloc_7667_; 
v_reuseFailAlloc_7667_ = lean_alloc_ctor(0, 8, 0);
lean_ctor_set(v_reuseFailAlloc_7667_, 0, v___x_7664_);
lean_ctor_set(v_reuseFailAlloc_7667_, 1, v_typeIdOf_7599_);
lean_ctor_set(v_reuseFailAlloc_7667_, 2, v_exprToStructId_7600_);
lean_ctor_set(v_reuseFailAlloc_7667_, 3, v_exprToStructIdEntries_7601_);
lean_ctor_set(v_reuseFailAlloc_7667_, 4, v_forbiddenNatModules_7602_);
lean_ctor_set(v_reuseFailAlloc_7667_, 5, v_natStructs_7603_);
lean_ctor_set(v_reuseFailAlloc_7667_, 6, v_natTypeIdOf_7604_);
lean_ctor_set(v_reuseFailAlloc_7667_, 7, v_exprToNatStructId_7605_);
v___x_7666_ = v_reuseFailAlloc_7667_;
goto v_reusejp_7665_;
}
v_reusejp_7665_:
{
return v___x_7666_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__0___boxed(lean_object* v___y_7679_, lean_object* v_head_7680_, lean_object* v_s_7681_){
_start:
{
lean_object* v_res_7682_; 
v_res_7682_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__0(v___y_7679_, v_head_7680_, v_s_7681_);
lean_dec(v_head_7680_);
lean_dec(v___y_7679_);
return v_res_7682_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__1(lean_object* v___y_7683_, lean_object* v_head_7684_, lean_object* v___x_7685_, lean_object* v_s_7686_){
_start:
{
lean_object* v_structs_7687_; lean_object* v_typeIdOf_7688_; lean_object* v_exprToStructId_7689_; lean_object* v_exprToStructIdEntries_7690_; lean_object* v_forbiddenNatModules_7691_; lean_object* v_natStructs_7692_; lean_object* v_natTypeIdOf_7693_; lean_object* v_exprToNatStructId_7694_; lean_object* v___x_7695_; uint8_t v___x_7696_; 
v_structs_7687_ = lean_ctor_get(v_s_7686_, 0);
v_typeIdOf_7688_ = lean_ctor_get(v_s_7686_, 1);
v_exprToStructId_7689_ = lean_ctor_get(v_s_7686_, 2);
v_exprToStructIdEntries_7690_ = lean_ctor_get(v_s_7686_, 3);
v_forbiddenNatModules_7691_ = lean_ctor_get(v_s_7686_, 4);
v_natStructs_7692_ = lean_ctor_get(v_s_7686_, 5);
v_natTypeIdOf_7693_ = lean_ctor_get(v_s_7686_, 6);
v_exprToNatStructId_7694_ = lean_ctor_get(v_s_7686_, 7);
v___x_7695_ = lean_array_get_size(v_structs_7687_);
v___x_7696_ = lean_nat_dec_lt(v___y_7683_, v___x_7695_);
if (v___x_7696_ == 0)
{
lean_dec_ref(v___x_7685_);
return v_s_7686_;
}
else
{
lean_object* v___x_7698_; uint8_t v_isShared_7699_; uint8_t v_isSharedCheck_7758_; 
lean_inc_ref(v_exprToNatStructId_7694_);
lean_inc_ref(v_natTypeIdOf_7693_);
lean_inc_ref(v_natStructs_7692_);
lean_inc_ref(v_forbiddenNatModules_7691_);
lean_inc_ref(v_exprToStructIdEntries_7690_);
lean_inc_ref(v_exprToStructId_7689_);
lean_inc_ref(v_typeIdOf_7688_);
lean_inc_ref(v_structs_7687_);
v_isSharedCheck_7758_ = !lean_is_exclusive(v_s_7686_);
if (v_isSharedCheck_7758_ == 0)
{
lean_object* v_unused_7759_; lean_object* v_unused_7760_; lean_object* v_unused_7761_; lean_object* v_unused_7762_; lean_object* v_unused_7763_; lean_object* v_unused_7764_; lean_object* v_unused_7765_; lean_object* v_unused_7766_; 
v_unused_7759_ = lean_ctor_get(v_s_7686_, 7);
lean_dec(v_unused_7759_);
v_unused_7760_ = lean_ctor_get(v_s_7686_, 6);
lean_dec(v_unused_7760_);
v_unused_7761_ = lean_ctor_get(v_s_7686_, 5);
lean_dec(v_unused_7761_);
v_unused_7762_ = lean_ctor_get(v_s_7686_, 4);
lean_dec(v_unused_7762_);
v_unused_7763_ = lean_ctor_get(v_s_7686_, 3);
lean_dec(v_unused_7763_);
v_unused_7764_ = lean_ctor_get(v_s_7686_, 2);
lean_dec(v_unused_7764_);
v_unused_7765_ = lean_ctor_get(v_s_7686_, 1);
lean_dec(v_unused_7765_);
v_unused_7766_ = lean_ctor_get(v_s_7686_, 0);
lean_dec(v_unused_7766_);
v___x_7698_ = v_s_7686_;
v_isShared_7699_ = v_isSharedCheck_7758_;
goto v_resetjp_7697_;
}
else
{
lean_dec(v_s_7686_);
v___x_7698_ = lean_box(0);
v_isShared_7699_ = v_isSharedCheck_7758_;
goto v_resetjp_7697_;
}
v_resetjp_7697_:
{
lean_object* v_v_7700_; lean_object* v_id_7701_; lean_object* v_ringId_x3f_7702_; lean_object* v_type_7703_; lean_object* v_u_7704_; lean_object* v_intModuleInst_7705_; lean_object* v_leInst_x3f_7706_; lean_object* v_ltInst_x3f_7707_; lean_object* v_lawfulOrderLTInst_x3f_7708_; lean_object* v_isPreorderInst_x3f_7709_; lean_object* v_orderedAddInst_x3f_7710_; lean_object* v_isLinearInst_x3f_7711_; lean_object* v_noNatDivInst_x3f_7712_; lean_object* v_ringInst_x3f_7713_; lean_object* v_commRingInst_x3f_7714_; lean_object* v_orderedRingInst_x3f_7715_; lean_object* v_fieldInst_x3f_7716_; lean_object* v_charInst_x3f_7717_; lean_object* v_zero_7718_; lean_object* v_ofNatZero_7719_; lean_object* v_one_x3f_7720_; lean_object* v_leFn_x3f_7721_; lean_object* v_ltFn_x3f_7722_; lean_object* v_addFn_7723_; lean_object* v_zsmulFn_7724_; lean_object* v_nsmulFn_7725_; lean_object* v_zsmulFn_x3f_7726_; lean_object* v_nsmulFn_x3f_7727_; lean_object* v_homomulFn_x3f_7728_; lean_object* v_subFn_7729_; lean_object* v_negFn_7730_; lean_object* v_vars_7731_; lean_object* v_varMap_7732_; lean_object* v_lowers_7733_; lean_object* v_uppers_7734_; lean_object* v_diseqs_7735_; lean_object* v_assignment_7736_; uint8_t v_caseSplits_7737_; lean_object* v_conflict_x3f_7738_; lean_object* v_diseqSplits_7739_; lean_object* v_elimEqs_7740_; lean_object* v_elimStack_7741_; lean_object* v_occurs_7742_; lean_object* v_ignored_7743_; lean_object* v___x_7745_; uint8_t v_isShared_7746_; uint8_t v_isSharedCheck_7757_; 
v_v_7700_ = lean_array_fget(v_structs_7687_, v___y_7683_);
v_id_7701_ = lean_ctor_get(v_v_7700_, 0);
v_ringId_x3f_7702_ = lean_ctor_get(v_v_7700_, 1);
v_type_7703_ = lean_ctor_get(v_v_7700_, 2);
v_u_7704_ = lean_ctor_get(v_v_7700_, 3);
v_intModuleInst_7705_ = lean_ctor_get(v_v_7700_, 4);
v_leInst_x3f_7706_ = lean_ctor_get(v_v_7700_, 5);
v_ltInst_x3f_7707_ = lean_ctor_get(v_v_7700_, 6);
v_lawfulOrderLTInst_x3f_7708_ = lean_ctor_get(v_v_7700_, 7);
v_isPreorderInst_x3f_7709_ = lean_ctor_get(v_v_7700_, 8);
v_orderedAddInst_x3f_7710_ = lean_ctor_get(v_v_7700_, 9);
v_isLinearInst_x3f_7711_ = lean_ctor_get(v_v_7700_, 10);
v_noNatDivInst_x3f_7712_ = lean_ctor_get(v_v_7700_, 11);
v_ringInst_x3f_7713_ = lean_ctor_get(v_v_7700_, 12);
v_commRingInst_x3f_7714_ = lean_ctor_get(v_v_7700_, 13);
v_orderedRingInst_x3f_7715_ = lean_ctor_get(v_v_7700_, 14);
v_fieldInst_x3f_7716_ = lean_ctor_get(v_v_7700_, 15);
v_charInst_x3f_7717_ = lean_ctor_get(v_v_7700_, 16);
v_zero_7718_ = lean_ctor_get(v_v_7700_, 17);
v_ofNatZero_7719_ = lean_ctor_get(v_v_7700_, 18);
v_one_x3f_7720_ = lean_ctor_get(v_v_7700_, 19);
v_leFn_x3f_7721_ = lean_ctor_get(v_v_7700_, 20);
v_ltFn_x3f_7722_ = lean_ctor_get(v_v_7700_, 21);
v_addFn_7723_ = lean_ctor_get(v_v_7700_, 22);
v_zsmulFn_7724_ = lean_ctor_get(v_v_7700_, 23);
v_nsmulFn_7725_ = lean_ctor_get(v_v_7700_, 24);
v_zsmulFn_x3f_7726_ = lean_ctor_get(v_v_7700_, 25);
v_nsmulFn_x3f_7727_ = lean_ctor_get(v_v_7700_, 26);
v_homomulFn_x3f_7728_ = lean_ctor_get(v_v_7700_, 27);
v_subFn_7729_ = lean_ctor_get(v_v_7700_, 28);
v_negFn_7730_ = lean_ctor_get(v_v_7700_, 29);
v_vars_7731_ = lean_ctor_get(v_v_7700_, 30);
v_varMap_7732_ = lean_ctor_get(v_v_7700_, 31);
v_lowers_7733_ = lean_ctor_get(v_v_7700_, 32);
v_uppers_7734_ = lean_ctor_get(v_v_7700_, 33);
v_diseqs_7735_ = lean_ctor_get(v_v_7700_, 34);
v_assignment_7736_ = lean_ctor_get(v_v_7700_, 35);
v_caseSplits_7737_ = lean_ctor_get_uint8(v_v_7700_, sizeof(void*)*42);
v_conflict_x3f_7738_ = lean_ctor_get(v_v_7700_, 36);
v_diseqSplits_7739_ = lean_ctor_get(v_v_7700_, 37);
v_elimEqs_7740_ = lean_ctor_get(v_v_7700_, 38);
v_elimStack_7741_ = lean_ctor_get(v_v_7700_, 39);
v_occurs_7742_ = lean_ctor_get(v_v_7700_, 40);
v_ignored_7743_ = lean_ctor_get(v_v_7700_, 41);
v_isSharedCheck_7757_ = !lean_is_exclusive(v_v_7700_);
if (v_isSharedCheck_7757_ == 0)
{
v___x_7745_ = v_v_7700_;
v_isShared_7746_ = v_isSharedCheck_7757_;
goto v_resetjp_7744_;
}
else
{
lean_inc(v_ignored_7743_);
lean_inc(v_occurs_7742_);
lean_inc(v_elimStack_7741_);
lean_inc(v_elimEqs_7740_);
lean_inc(v_diseqSplits_7739_);
lean_inc(v_conflict_x3f_7738_);
lean_inc(v_assignment_7736_);
lean_inc(v_diseqs_7735_);
lean_inc(v_uppers_7734_);
lean_inc(v_lowers_7733_);
lean_inc(v_varMap_7732_);
lean_inc(v_vars_7731_);
lean_inc(v_negFn_7730_);
lean_inc(v_subFn_7729_);
lean_inc(v_homomulFn_x3f_7728_);
lean_inc(v_nsmulFn_x3f_7727_);
lean_inc(v_zsmulFn_x3f_7726_);
lean_inc(v_nsmulFn_7725_);
lean_inc(v_zsmulFn_7724_);
lean_inc(v_addFn_7723_);
lean_inc(v_ltFn_x3f_7722_);
lean_inc(v_leFn_x3f_7721_);
lean_inc(v_one_x3f_7720_);
lean_inc(v_ofNatZero_7719_);
lean_inc(v_zero_7718_);
lean_inc(v_charInst_x3f_7717_);
lean_inc(v_fieldInst_x3f_7716_);
lean_inc(v_orderedRingInst_x3f_7715_);
lean_inc(v_commRingInst_x3f_7714_);
lean_inc(v_ringInst_x3f_7713_);
lean_inc(v_noNatDivInst_x3f_7712_);
lean_inc(v_isLinearInst_x3f_7711_);
lean_inc(v_orderedAddInst_x3f_7710_);
lean_inc(v_isPreorderInst_x3f_7709_);
lean_inc(v_lawfulOrderLTInst_x3f_7708_);
lean_inc(v_ltInst_x3f_7707_);
lean_inc(v_leInst_x3f_7706_);
lean_inc(v_intModuleInst_7705_);
lean_inc(v_u_7704_);
lean_inc(v_type_7703_);
lean_inc(v_ringId_x3f_7702_);
lean_inc(v_id_7701_);
lean_dec(v_v_7700_);
v___x_7745_ = lean_box(0);
v_isShared_7746_ = v_isSharedCheck_7757_;
goto v_resetjp_7744_;
}
v_resetjp_7744_:
{
lean_object* v___x_7747_; lean_object* v_xs_x27_7748_; lean_object* v___x_7749_; lean_object* v___x_7751_; 
v___x_7747_ = lean_box(0);
v_xs_x27_7748_ = lean_array_fset(v_structs_7687_, v___y_7683_, v___x_7747_);
v___x_7749_ = l_Lean_PersistentArray_set___redArg(v_assignment_7736_, v_head_7684_, v___x_7685_);
if (v_isShared_7746_ == 0)
{
lean_ctor_set(v___x_7745_, 35, v___x_7749_);
v___x_7751_ = v___x_7745_;
goto v_reusejp_7750_;
}
else
{
lean_object* v_reuseFailAlloc_7756_; 
v_reuseFailAlloc_7756_ = lean_alloc_ctor(0, 42, 1);
lean_ctor_set(v_reuseFailAlloc_7756_, 0, v_id_7701_);
lean_ctor_set(v_reuseFailAlloc_7756_, 1, v_ringId_x3f_7702_);
lean_ctor_set(v_reuseFailAlloc_7756_, 2, v_type_7703_);
lean_ctor_set(v_reuseFailAlloc_7756_, 3, v_u_7704_);
lean_ctor_set(v_reuseFailAlloc_7756_, 4, v_intModuleInst_7705_);
lean_ctor_set(v_reuseFailAlloc_7756_, 5, v_leInst_x3f_7706_);
lean_ctor_set(v_reuseFailAlloc_7756_, 6, v_ltInst_x3f_7707_);
lean_ctor_set(v_reuseFailAlloc_7756_, 7, v_lawfulOrderLTInst_x3f_7708_);
lean_ctor_set(v_reuseFailAlloc_7756_, 8, v_isPreorderInst_x3f_7709_);
lean_ctor_set(v_reuseFailAlloc_7756_, 9, v_orderedAddInst_x3f_7710_);
lean_ctor_set(v_reuseFailAlloc_7756_, 10, v_isLinearInst_x3f_7711_);
lean_ctor_set(v_reuseFailAlloc_7756_, 11, v_noNatDivInst_x3f_7712_);
lean_ctor_set(v_reuseFailAlloc_7756_, 12, v_ringInst_x3f_7713_);
lean_ctor_set(v_reuseFailAlloc_7756_, 13, v_commRingInst_x3f_7714_);
lean_ctor_set(v_reuseFailAlloc_7756_, 14, v_orderedRingInst_x3f_7715_);
lean_ctor_set(v_reuseFailAlloc_7756_, 15, v_fieldInst_x3f_7716_);
lean_ctor_set(v_reuseFailAlloc_7756_, 16, v_charInst_x3f_7717_);
lean_ctor_set(v_reuseFailAlloc_7756_, 17, v_zero_7718_);
lean_ctor_set(v_reuseFailAlloc_7756_, 18, v_ofNatZero_7719_);
lean_ctor_set(v_reuseFailAlloc_7756_, 19, v_one_x3f_7720_);
lean_ctor_set(v_reuseFailAlloc_7756_, 20, v_leFn_x3f_7721_);
lean_ctor_set(v_reuseFailAlloc_7756_, 21, v_ltFn_x3f_7722_);
lean_ctor_set(v_reuseFailAlloc_7756_, 22, v_addFn_7723_);
lean_ctor_set(v_reuseFailAlloc_7756_, 23, v_zsmulFn_7724_);
lean_ctor_set(v_reuseFailAlloc_7756_, 24, v_nsmulFn_7725_);
lean_ctor_set(v_reuseFailAlloc_7756_, 25, v_zsmulFn_x3f_7726_);
lean_ctor_set(v_reuseFailAlloc_7756_, 26, v_nsmulFn_x3f_7727_);
lean_ctor_set(v_reuseFailAlloc_7756_, 27, v_homomulFn_x3f_7728_);
lean_ctor_set(v_reuseFailAlloc_7756_, 28, v_subFn_7729_);
lean_ctor_set(v_reuseFailAlloc_7756_, 29, v_negFn_7730_);
lean_ctor_set(v_reuseFailAlloc_7756_, 30, v_vars_7731_);
lean_ctor_set(v_reuseFailAlloc_7756_, 31, v_varMap_7732_);
lean_ctor_set(v_reuseFailAlloc_7756_, 32, v_lowers_7733_);
lean_ctor_set(v_reuseFailAlloc_7756_, 33, v_uppers_7734_);
lean_ctor_set(v_reuseFailAlloc_7756_, 34, v_diseqs_7735_);
lean_ctor_set(v_reuseFailAlloc_7756_, 35, v___x_7749_);
lean_ctor_set(v_reuseFailAlloc_7756_, 36, v_conflict_x3f_7738_);
lean_ctor_set(v_reuseFailAlloc_7756_, 37, v_diseqSplits_7739_);
lean_ctor_set(v_reuseFailAlloc_7756_, 38, v_elimEqs_7740_);
lean_ctor_set(v_reuseFailAlloc_7756_, 39, v_elimStack_7741_);
lean_ctor_set(v_reuseFailAlloc_7756_, 40, v_occurs_7742_);
lean_ctor_set(v_reuseFailAlloc_7756_, 41, v_ignored_7743_);
lean_ctor_set_uint8(v_reuseFailAlloc_7756_, sizeof(void*)*42, v_caseSplits_7737_);
v___x_7751_ = v_reuseFailAlloc_7756_;
goto v_reusejp_7750_;
}
v_reusejp_7750_:
{
lean_object* v___x_7752_; lean_object* v___x_7754_; 
v___x_7752_ = lean_array_fset(v_xs_x27_7748_, v___y_7683_, v___x_7751_);
if (v_isShared_7699_ == 0)
{
lean_ctor_set(v___x_7698_, 0, v___x_7752_);
v___x_7754_ = v___x_7698_;
goto v_reusejp_7753_;
}
else
{
lean_object* v_reuseFailAlloc_7755_; 
v_reuseFailAlloc_7755_ = lean_alloc_ctor(0, 8, 0);
lean_ctor_set(v_reuseFailAlloc_7755_, 0, v___x_7752_);
lean_ctor_set(v_reuseFailAlloc_7755_, 1, v_typeIdOf_7688_);
lean_ctor_set(v_reuseFailAlloc_7755_, 2, v_exprToStructId_7689_);
lean_ctor_set(v_reuseFailAlloc_7755_, 3, v_exprToStructIdEntries_7690_);
lean_ctor_set(v_reuseFailAlloc_7755_, 4, v_forbiddenNatModules_7691_);
lean_ctor_set(v_reuseFailAlloc_7755_, 5, v_natStructs_7692_);
lean_ctor_set(v_reuseFailAlloc_7755_, 6, v_natTypeIdOf_7693_);
lean_ctor_set(v_reuseFailAlloc_7755_, 7, v_exprToNatStructId_7694_);
v___x_7754_ = v_reuseFailAlloc_7755_;
goto v_reusejp_7753_;
}
v_reusejp_7753_:
{
return v___x_7754_;
}
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__1___boxed(lean_object* v___y_7767_, lean_object* v_head_7768_, lean_object* v___x_7769_, lean_object* v_s_7770_){
_start:
{
lean_object* v_res_7771_; 
v_res_7771_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__1(v___y_7767_, v_head_7768_, v___x_7769_, v_s_7770_);
lean_dec(v_head_7768_);
lean_dec(v___y_7767_);
return v_res_7771_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__1(void){
_start:
{
lean_object* v___x_7773_; lean_object* v___x_7774_; 
v___x_7773_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__0));
v___x_7774_ = l_Lean_stringToMessageData(v___x_7773_);
return v___x_7774_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go(lean_object* v_xs_7775_, lean_object* v_a_7776_, lean_object* v_a_7777_, lean_object* v_a_7778_, lean_object* v_a_7779_, lean_object* v_a_7780_, lean_object* v_a_7781_, lean_object* v_a_7782_, lean_object* v_a_7783_, lean_object* v_a_7784_, lean_object* v_a_7785_, lean_object* v_a_7786_, lean_object* v_a_7787_){
_start:
{
if (lean_obj_tag(v_xs_7775_) == 0)
{
lean_object* v___x_7789_; lean_object* v___x_7790_; 
lean_dec(v_a_7777_);
v___x_7789_ = lean_box(0);
v___x_7790_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7790_, 0, v___x_7789_);
return v___x_7790_;
}
else
{
lean_object* v_head_7791_; lean_object* v_tail_7792_; lean_object* v___y_7794_; lean_object* v___y_7795_; lean_object* v___y_7796_; lean_object* v___y_7797_; lean_object* v___y_7798_; lean_object* v___y_7799_; lean_object* v___y_7800_; lean_object* v___y_7801_; lean_object* v___y_7802_; lean_object* v___y_7803_; lean_object* v___y_7804_; lean_object* v___y_7805_; lean_object* v___y_7806_; lean_object* v___y_7807_; lean_object* v___y_7808_; lean_object* v___x_7831_; 
v_head_7791_ = lean_ctor_get(v_xs_7775_, 0);
lean_inc(v_head_7791_);
v_tail_7792_ = lean_ctor_get(v_xs_7775_, 1);
lean_inc(v_tail_7792_);
lean_dec_ref(v_xs_7775_);
v___x_7831_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v_a_7777_, v_a_7778_, v_a_7779_, v_a_7780_, v_a_7781_, v_a_7782_, v_a_7783_, v_a_7784_, v_a_7785_, v_a_7786_, v_a_7787_);
if (lean_obj_tag(v___x_7831_) == 0)
{
lean_object* v_a_7832_; lean_object* v___y_7834_; lean_object* v_elimEqs_7843_; lean_object* v_size_7844_; lean_object* v___x_7845_; uint8_t v___x_7846_; 
v_a_7832_ = lean_ctor_get(v___x_7831_, 0);
lean_inc(v_a_7832_);
lean_dec_ref(v___x_7831_);
v_elimEqs_7843_ = lean_ctor_get(v_a_7832_, 38);
lean_inc_ref(v_elimEqs_7843_);
lean_dec(v_a_7832_);
v_size_7844_ = lean_ctor_get(v_elimEqs_7843_, 2);
v___x_7845_ = lean_box(0);
v___x_7846_ = lean_nat_dec_lt(v_head_7791_, v_size_7844_);
if (v___x_7846_ == 0)
{
lean_object* v___x_7847_; 
lean_dec_ref(v_elimEqs_7843_);
v___x_7847_ = l_outOfBounds___redArg(v___x_7845_);
v___y_7834_ = v___x_7847_;
goto v___jp_7833_;
}
else
{
lean_object* v___x_7848_; 
v___x_7848_ = l_Lean_PersistentArray_get_x21___redArg(v___x_7845_, v_elimEqs_7843_, v_head_7791_);
v___y_7834_ = v___x_7848_;
goto v___jp_7833_;
}
v___jp_7833_:
{
if (lean_obj_tag(v___y_7834_) == 1)
{
lean_object* v_val_7835_; lean_object* v_p_7836_; lean_object* v___x_7837_; lean_object* v___x_7838_; uint8_t v___x_7839_; 
v_val_7835_ = lean_ctor_get(v___y_7834_, 0);
lean_inc(v_val_7835_);
lean_dec_ref(v___y_7834_);
v_p_7836_ = lean_ctor_get(v_val_7835_, 0);
v___x_7837_ = l_Lean_Grind_Linarith_Poly_coeff(v_p_7836_, v_head_7791_);
v___x_7838_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__9);
v___x_7839_ = lean_int_dec_eq(v___x_7837_, v___x_7838_);
if (v___x_7839_ == 0)
{
lean_inc(v_p_7836_);
v___y_7794_ = v_val_7835_;
v___y_7795_ = v_p_7836_;
v___y_7796_ = v___x_7837_;
v___y_7797_ = v_a_7776_;
v___y_7798_ = v_a_7777_;
v___y_7799_ = v_a_7778_;
v___y_7800_ = v_a_7779_;
v___y_7801_ = v_a_7780_;
v___y_7802_ = v_a_7781_;
v___y_7803_ = v_a_7782_;
v___y_7804_ = v_a_7783_;
v___y_7805_ = v_a_7784_;
v___y_7806_ = v_a_7785_;
v___y_7807_ = v_a_7786_;
v___y_7808_ = v_a_7787_;
goto v___jp_7793_;
}
else
{
lean_object* v___x_7840_; 
lean_dec(v___x_7837_);
lean_dec(v_tail_7792_);
lean_dec(v_head_7791_);
v___x_7840_ = l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___redArg(v_val_7835_, v_a_7777_, v_a_7778_, v_a_7779_, v_a_7780_, v_a_7781_, v_a_7782_, v_a_7783_, v_a_7784_, v_a_7785_, v_a_7786_, v_a_7787_);
lean_dec(v_a_7777_);
lean_dec(v_val_7835_);
return v___x_7840_;
}
}
else
{
lean_object* v___x_7841_; lean_object* v___x_7842_; 
lean_dec(v___y_7834_);
lean_dec(v_tail_7792_);
lean_dec(v_head_7791_);
lean_dec(v_a_7777_);
v___x_7841_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__1, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__1_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___closed__1);
v___x_7842_ = l_Lean_throwError___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_findCase_spec__1___redArg(v___x_7841_, v_a_7784_, v_a_7785_, v_a_7786_, v_a_7787_);
return v___x_7842_;
}
}
}
else
{
lean_object* v_a_7849_; lean_object* v___x_7851_; uint8_t v_isShared_7852_; uint8_t v_isSharedCheck_7856_; 
lean_dec(v_tail_7792_);
lean_dec(v_head_7791_);
lean_dec(v_a_7777_);
v_a_7849_ = lean_ctor_get(v___x_7831_, 0);
v_isSharedCheck_7856_ = !lean_is_exclusive(v___x_7831_);
if (v_isSharedCheck_7856_ == 0)
{
v___x_7851_ = v___x_7831_;
v_isShared_7852_ = v_isSharedCheck_7856_;
goto v_resetjp_7850_;
}
else
{
lean_inc(v_a_7849_);
lean_dec(v___x_7831_);
v___x_7851_ = lean_box(0);
v_isShared_7852_ = v_isSharedCheck_7856_;
goto v_resetjp_7850_;
}
v_resetjp_7850_:
{
lean_object* v___x_7854_; 
if (v_isShared_7852_ == 0)
{
v___x_7854_ = v___x_7851_;
goto v_reusejp_7853_;
}
else
{
lean_object* v_reuseFailAlloc_7855_; 
v_reuseFailAlloc_7855_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7855_, 0, v_a_7849_);
v___x_7854_ = v_reuseFailAlloc_7855_;
goto v_reusejp_7853_;
}
v_reusejp_7853_:
{
return v___x_7854_;
}
}
}
v___jp_7793_:
{
lean_object* v___f_7809_; lean_object* v___x_7810_; lean_object* v___x_7811_; 
lean_inc(v_head_7791_);
lean_inc(v___y_7798_);
v___f_7809_ = lean_alloc_closure((void*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__0___boxed), 3, 2);
lean_closure_set(v___f_7809_, 0, v___y_7798_);
lean_closure_set(v___f_7809_, 1, v_head_7791_);
v___x_7810_ = l_Lean_Meta_Grind_Arith_Linear_linearExt;
v___x_7811_ = l___private_Lean_Meta_Tactic_Grind_Types_0__Lean_Meta_Grind_SolverExtension_modifyStateImpl___redArg(v___x_7810_, v___f_7809_, v___y_7799_);
if (lean_obj_tag(v___x_7811_) == 0)
{
lean_object* v___x_7812_; 
lean_dec_ref(v___x_7811_);
v___x_7812_ = l_Lean_Grind_Linarith_Poly_eval_x3f(v___y_7795_, v___y_7798_, v___y_7799_, v___y_7800_, v___y_7801_, v___y_7802_, v___y_7803_, v___y_7804_, v___y_7805_, v___y_7806_, v___y_7807_, v___y_7808_);
if (lean_obj_tag(v___x_7812_) == 0)
{
lean_object* v_a_7813_; 
v_a_7813_ = lean_ctor_get(v___x_7812_, 0);
lean_inc(v_a_7813_);
lean_dec_ref(v___x_7812_);
if (lean_obj_tag(v_a_7813_) == 1)
{
lean_object* v_val_7814_; lean_object* v___x_7815_; lean_object* v___x_7816_; lean_object* v___x_7817_; lean_object* v___x_7818_; 
lean_dec_ref(v___y_7794_);
v_val_7814_ = lean_ctor_get(v_a_7813_, 0);
lean_inc(v_val_7814_);
lean_dec_ref(v_a_7813_);
v___x_7815_ = l_Rat_neg(v_val_7814_);
v___x_7816_ = l_Rat_ofInt(v___y_7796_);
v___x_7817_ = l_Rat_div(v___x_7815_, v___x_7816_);
lean_dec_ref(v___x_7815_);
lean_inc_ref(v___x_7817_);
v___x_7818_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment(v_head_7791_, v___x_7817_, v___y_7798_, v___y_7799_, v___y_7800_, v___y_7801_, v___y_7802_, v___y_7803_, v___y_7804_, v___y_7805_, v___y_7806_, v___y_7807_, v___y_7808_);
if (lean_obj_tag(v___x_7818_) == 0)
{
lean_object* v___f_7819_; lean_object* v___x_7820_; 
lean_dec_ref(v___x_7818_);
lean_inc(v___y_7798_);
v___f_7819_ = lean_alloc_closure((void*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___lam__1___boxed), 4, 3);
lean_closure_set(v___f_7819_, 0, v___y_7798_);
lean_closure_set(v___f_7819_, 1, v_head_7791_);
lean_closure_set(v___f_7819_, 2, v___x_7817_);
v___x_7820_ = l___private_Lean_Meta_Tactic_Grind_Types_0__Lean_Meta_Grind_SolverExtension_modifyStateImpl___redArg(v___x_7810_, v___f_7819_, v___y_7799_);
if (lean_obj_tag(v___x_7820_) == 0)
{
lean_dec_ref(v___x_7820_);
v_xs_7775_ = v_tail_7792_;
v_a_7776_ = v___y_7797_;
v_a_7777_ = v___y_7798_;
v_a_7778_ = v___y_7799_;
v_a_7779_ = v___y_7800_;
v_a_7780_ = v___y_7801_;
v_a_7781_ = v___y_7802_;
v_a_7782_ = v___y_7803_;
v_a_7783_ = v___y_7804_;
v_a_7784_ = v___y_7805_;
v_a_7785_ = v___y_7806_;
v_a_7786_ = v___y_7807_;
v_a_7787_ = v___y_7808_;
goto _start;
}
else
{
lean_dec(v___y_7798_);
lean_dec(v_tail_7792_);
return v___x_7820_;
}
}
else
{
lean_dec_ref(v___x_7817_);
lean_dec(v___y_7798_);
lean_dec(v_tail_7792_);
lean_dec(v_head_7791_);
return v___x_7818_;
}
}
else
{
lean_object* v___x_7822_; 
lean_dec(v_a_7813_);
lean_dec(v___y_7796_);
lean_dec(v_tail_7792_);
lean_dec(v_head_7791_);
v___x_7822_ = l_Lean_Meta_Grind_Arith_Linear_EqCnstr_throwUnexpected___redArg(v___y_7794_, v___y_7798_, v___y_7799_, v___y_7800_, v___y_7801_, v___y_7802_, v___y_7803_, v___y_7804_, v___y_7805_, v___y_7806_, v___y_7807_, v___y_7808_);
lean_dec(v___y_7798_);
lean_dec_ref(v___y_7794_);
return v___x_7822_;
}
}
else
{
lean_object* v_a_7823_; lean_object* v___x_7825_; uint8_t v_isShared_7826_; uint8_t v_isSharedCheck_7830_; 
lean_dec(v___y_7798_);
lean_dec(v___y_7796_);
lean_dec_ref(v___y_7794_);
lean_dec(v_tail_7792_);
lean_dec(v_head_7791_);
v_a_7823_ = lean_ctor_get(v___x_7812_, 0);
v_isSharedCheck_7830_ = !lean_is_exclusive(v___x_7812_);
if (v_isSharedCheck_7830_ == 0)
{
v___x_7825_ = v___x_7812_;
v_isShared_7826_ = v_isSharedCheck_7830_;
goto v_resetjp_7824_;
}
else
{
lean_inc(v_a_7823_);
lean_dec(v___x_7812_);
v___x_7825_ = lean_box(0);
v_isShared_7826_ = v_isSharedCheck_7830_;
goto v_resetjp_7824_;
}
v_resetjp_7824_:
{
lean_object* v___x_7828_; 
if (v_isShared_7826_ == 0)
{
v___x_7828_ = v___x_7825_;
goto v_reusejp_7827_;
}
else
{
lean_object* v_reuseFailAlloc_7829_; 
v_reuseFailAlloc_7829_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7829_, 0, v_a_7823_);
v___x_7828_ = v_reuseFailAlloc_7829_;
goto v_reusejp_7827_;
}
v_reusejp_7827_:
{
return v___x_7828_;
}
}
}
}
else
{
lean_dec(v___y_7798_);
lean_dec(v___y_7796_);
lean_dec(v___y_7795_);
lean_dec_ref(v___y_7794_);
lean_dec(v_tail_7792_);
lean_dec(v_head_7791_);
return v___x_7811_;
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go___boxed(lean_object* v_xs_7857_, lean_object* v_a_7858_, lean_object* v_a_7859_, lean_object* v_a_7860_, lean_object* v_a_7861_, lean_object* v_a_7862_, lean_object* v_a_7863_, lean_object* v_a_7864_, lean_object* v_a_7865_, lean_object* v_a_7866_, lean_object* v_a_7867_, lean_object* v_a_7868_, lean_object* v_a_7869_, lean_object* v_a_7870_){
_start:
{
lean_object* v_res_7871_; 
v_res_7871_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go(v_xs_7857_, v_a_7858_, v_a_7859_, v_a_7860_, v_a_7861_, v_a_7862_, v_a_7863_, v_a_7864_, v_a_7865_, v_a_7866_, v_a_7867_, v_a_7868_, v_a_7869_);
lean_dec(v_a_7869_);
lean_dec_ref(v_a_7868_);
lean_dec(v_a_7867_);
lean_dec_ref(v_a_7866_);
lean_dec(v_a_7865_);
lean_dec_ref(v_a_7864_);
lean_dec(v_a_7863_);
lean_dec_ref(v_a_7862_);
lean_dec(v_a_7861_);
lean_dec(v_a_7860_);
lean_dec(v_a_7858_);
return v_res_7871_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars(lean_object* v_a_7872_, lean_object* v_a_7873_, lean_object* v_a_7874_, lean_object* v_a_7875_, lean_object* v_a_7876_, lean_object* v_a_7877_, lean_object* v_a_7878_, lean_object* v_a_7879_, lean_object* v_a_7880_, lean_object* v_a_7881_, lean_object* v_a_7882_, lean_object* v_a_7883_){
_start:
{
lean_object* v___x_7885_; 
v___x_7885_ = l_Lean_Meta_Grind_Arith_Linear_inconsistent(v_a_7873_, v_a_7874_, v_a_7875_, v_a_7876_, v_a_7877_, v_a_7878_, v_a_7879_, v_a_7880_, v_a_7881_, v_a_7882_, v_a_7883_);
if (lean_obj_tag(v___x_7885_) == 0)
{
lean_object* v_a_7886_; lean_object* v___x_7888_; uint8_t v_isShared_7889_; uint8_t v_isSharedCheck_7907_; 
v_a_7886_ = lean_ctor_get(v___x_7885_, 0);
v_isSharedCheck_7907_ = !lean_is_exclusive(v___x_7885_);
if (v_isSharedCheck_7907_ == 0)
{
v___x_7888_ = v___x_7885_;
v_isShared_7889_ = v_isSharedCheck_7907_;
goto v_resetjp_7887_;
}
else
{
lean_inc(v_a_7886_);
lean_dec(v___x_7885_);
v___x_7888_ = lean_box(0);
v_isShared_7889_ = v_isSharedCheck_7907_;
goto v_resetjp_7887_;
}
v_resetjp_7887_:
{
uint8_t v___x_7890_; 
v___x_7890_ = lean_unbox(v_a_7886_);
lean_dec(v_a_7886_);
if (v___x_7890_ == 0)
{
lean_object* v___x_7891_; 
lean_del_object(v___x_7888_);
v___x_7891_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v_a_7873_, v_a_7874_, v_a_7875_, v_a_7876_, v_a_7877_, v_a_7878_, v_a_7879_, v_a_7880_, v_a_7881_, v_a_7882_, v_a_7883_);
if (lean_obj_tag(v___x_7891_) == 0)
{
lean_object* v_a_7892_; lean_object* v_elimStack_7893_; lean_object* v___x_7894_; 
v_a_7892_ = lean_ctor_get(v___x_7891_, 0);
lean_inc(v_a_7892_);
lean_dec_ref(v___x_7891_);
v_elimStack_7893_ = lean_ctor_get(v_a_7892_, 39);
lean_inc(v_elimStack_7893_);
lean_dec(v_a_7892_);
v___x_7894_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars_go(v_elimStack_7893_, v_a_7872_, v_a_7873_, v_a_7874_, v_a_7875_, v_a_7876_, v_a_7877_, v_a_7878_, v_a_7879_, v_a_7880_, v_a_7881_, v_a_7882_, v_a_7883_);
return v___x_7894_;
}
else
{
lean_object* v_a_7895_; lean_object* v___x_7897_; uint8_t v_isShared_7898_; uint8_t v_isSharedCheck_7902_; 
lean_dec(v_a_7873_);
v_a_7895_ = lean_ctor_get(v___x_7891_, 0);
v_isSharedCheck_7902_ = !lean_is_exclusive(v___x_7891_);
if (v_isSharedCheck_7902_ == 0)
{
v___x_7897_ = v___x_7891_;
v_isShared_7898_ = v_isSharedCheck_7902_;
goto v_resetjp_7896_;
}
else
{
lean_inc(v_a_7895_);
lean_dec(v___x_7891_);
v___x_7897_ = lean_box(0);
v_isShared_7898_ = v_isSharedCheck_7902_;
goto v_resetjp_7896_;
}
v_resetjp_7896_:
{
lean_object* v___x_7900_; 
if (v_isShared_7898_ == 0)
{
v___x_7900_ = v___x_7897_;
goto v_reusejp_7899_;
}
else
{
lean_object* v_reuseFailAlloc_7901_; 
v_reuseFailAlloc_7901_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7901_, 0, v_a_7895_);
v___x_7900_ = v_reuseFailAlloc_7901_;
goto v_reusejp_7899_;
}
v_reusejp_7899_:
{
return v___x_7900_;
}
}
}
}
else
{
lean_object* v___x_7903_; lean_object* v___x_7905_; 
lean_dec(v_a_7873_);
v___x_7903_ = lean_box(0);
if (v_isShared_7889_ == 0)
{
lean_ctor_set(v___x_7888_, 0, v___x_7903_);
v___x_7905_ = v___x_7888_;
goto v_reusejp_7904_;
}
else
{
lean_object* v_reuseFailAlloc_7906_; 
v_reuseFailAlloc_7906_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7906_, 0, v___x_7903_);
v___x_7905_ = v_reuseFailAlloc_7906_;
goto v_reusejp_7904_;
}
v_reusejp_7904_:
{
return v___x_7905_;
}
}
}
}
else
{
lean_object* v_a_7908_; lean_object* v___x_7910_; uint8_t v_isShared_7911_; uint8_t v_isSharedCheck_7915_; 
lean_dec(v_a_7873_);
v_a_7908_ = lean_ctor_get(v___x_7885_, 0);
v_isSharedCheck_7915_ = !lean_is_exclusive(v___x_7885_);
if (v_isSharedCheck_7915_ == 0)
{
v___x_7910_ = v___x_7885_;
v_isShared_7911_ = v_isSharedCheck_7915_;
goto v_resetjp_7909_;
}
else
{
lean_inc(v_a_7908_);
lean_dec(v___x_7885_);
v___x_7910_ = lean_box(0);
v_isShared_7911_ = v_isSharedCheck_7915_;
goto v_resetjp_7909_;
}
v_resetjp_7909_:
{
lean_object* v___x_7913_; 
if (v_isShared_7911_ == 0)
{
v___x_7913_ = v___x_7910_;
goto v_reusejp_7912_;
}
else
{
lean_object* v_reuseFailAlloc_7914_; 
v_reuseFailAlloc_7914_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7914_, 0, v_a_7908_);
v___x_7913_ = v_reuseFailAlloc_7914_;
goto v_reusejp_7912_;
}
v_reusejp_7912_:
{
return v___x_7913_;
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars___boxed(lean_object* v_a_7916_, lean_object* v_a_7917_, lean_object* v_a_7918_, lean_object* v_a_7919_, lean_object* v_a_7920_, lean_object* v_a_7921_, lean_object* v_a_7922_, lean_object* v_a_7923_, lean_object* v_a_7924_, lean_object* v_a_7925_, lean_object* v_a_7926_, lean_object* v_a_7927_, lean_object* v_a_7928_){
_start:
{
lean_object* v_res_7929_; 
v_res_7929_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars(v_a_7916_, v_a_7917_, v_a_7918_, v_a_7919_, v_a_7920_, v_a_7921_, v_a_7922_, v_a_7923_, v_a_7924_, v_a_7925_, v_a_7926_, v_a_7927_);
lean_dec(v_a_7927_);
lean_dec_ref(v_a_7926_);
lean_dec(v_a_7925_);
lean_dec_ref(v_a_7924_);
lean_dec(v_a_7923_);
lean_dec_ref(v_a_7922_);
lean_dec(v_a_7921_);
lean_dec_ref(v_a_7920_);
lean_dec(v_a_7919_);
lean_dec(v_a_7918_);
lean_dec(v_a_7916_);
return v_res_7929_;
}
}
static lean_object* _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__3(void){
_start:
{
lean_object* v___x_7936_; lean_object* v___x_7937_; 
v___x_7936_ = ((lean_object*)(l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__2));
v___x_7937_ = l_Lean_stringToMessageData(v___x_7936_);
return v___x_7937_;
}
}
static lean_object* _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__5(void){
_start:
{
lean_object* v___x_7939_; lean_object* v___x_7940_; 
v___x_7939_ = ((lean_object*)(l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__4));
v___x_7940_ = l_Lean_stringToMessageData(v___x_7939_);
return v___x_7940_;
}
}
static lean_object* _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__7(void){
_start:
{
lean_object* v___x_7942_; lean_object* v___x_7943_; 
v___x_7942_ = ((lean_object*)(l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__6));
v___x_7943_ = l_Lean_stringToMessageData(v___x_7942_);
return v___x_7943_;
}
}
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg(lean_object* v___y_7944_, lean_object* v___y_7945_, lean_object* v___y_7946_, lean_object* v___y_7947_, lean_object* v___y_7948_, lean_object* v___y_7949_, lean_object* v___y_7950_, lean_object* v___y_7951_, lean_object* v___y_7952_, lean_object* v___y_7953_, lean_object* v___y_7954_, lean_object* v___y_7955_){
_start:
{
lean_object* v___y_7958_; lean_object* v___y_7959_; lean_object* v___y_7960_; lean_object* v___y_7961_; lean_object* v___y_7962_; lean_object* v___y_7963_; lean_object* v___y_7964_; lean_object* v___y_7965_; lean_object* v___y_7966_; lean_object* v___y_7967_; lean_object* v___y_7968_; lean_object* v___y_7969_; lean_object* v___y_7970_; lean_object* v___x_7981_; lean_object* v_cls_7982_; lean_object* v___x_7983_; 
v___x_7981_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_traceAssignment___closed__2));
v_cls_7982_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_processVar___closed__2));
v___x_7983_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v_cls_7982_, v___y_7954_);
if (lean_obj_tag(v___x_7983_) == 0)
{
lean_object* v_a_7984_; lean_object* v___y_7986_; lean_object* v___y_7987_; lean_object* v___y_7988_; lean_object* v___y_7989_; lean_object* v___y_7990_; lean_object* v___y_7991_; lean_object* v___y_7992_; lean_object* v___y_7993_; lean_object* v___y_7994_; lean_object* v___y_7995_; lean_object* v___y_7996_; lean_object* v___y_7997_; lean_object* v___y_8017_; lean_object* v___y_8018_; lean_object* v___y_8019_; lean_object* v___y_8020_; lean_object* v___y_8021_; lean_object* v___y_8022_; lean_object* v___y_8023_; lean_object* v___y_8024_; lean_object* v___y_8025_; lean_object* v___y_8026_; lean_object* v___y_8027_; lean_object* v___y_8028_; uint8_t v___x_8180_; 
v_a_7984_ = lean_ctor_get(v___x_7983_, 0);
lean_inc(v_a_7984_);
lean_dec_ref(v___x_7983_);
v___x_8180_ = lean_unbox(v_a_7984_);
lean_dec(v_a_7984_);
if (v___x_8180_ == 0)
{
lean_inc(v___y_7955_);
lean_inc_ref(v___y_7954_);
lean_inc(v___y_7953_);
lean_inc_ref(v___y_7952_);
lean_inc(v___y_7951_);
lean_inc_ref(v___y_7950_);
lean_inc(v___y_7949_);
lean_inc_ref(v___y_7948_);
lean_inc(v___y_7947_);
lean_inc(v___y_7946_);
lean_inc(v___y_7945_);
lean_inc(v___y_7944_);
v___y_8017_ = v___y_7944_;
v___y_8018_ = v___y_7945_;
v___y_8019_ = v___y_7946_;
v___y_8020_ = v___y_7947_;
v___y_8021_ = v___y_7948_;
v___y_8022_ = v___y_7949_;
v___y_8023_ = v___y_7950_;
v___y_8024_ = v___y_7951_;
v___y_8025_ = v___y_7952_;
v___y_8026_ = v___y_7953_;
v___y_8027_ = v___y_7954_;
v___y_8028_ = v___y_7955_;
goto v___jp_8016_;
}
else
{
lean_object* v___x_8181_; lean_object* v___x_8182_; 
v___x_8181_ = lean_obj_once(&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__7, &l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__7_once, _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__7);
v___x_8182_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v_cls_7982_, v___x_8181_, v___y_7952_, v___y_7953_, v___y_7954_, v___y_7955_);
if (lean_obj_tag(v___x_8182_) == 0)
{
lean_dec_ref(v___x_8182_);
lean_inc(v___y_7955_);
lean_inc_ref(v___y_7954_);
lean_inc(v___y_7953_);
lean_inc_ref(v___y_7952_);
lean_inc(v___y_7951_);
lean_inc_ref(v___y_7950_);
lean_inc(v___y_7949_);
lean_inc_ref(v___y_7948_);
lean_inc(v___y_7947_);
lean_inc(v___y_7946_);
lean_inc(v___y_7945_);
lean_inc(v___y_7944_);
v___y_8017_ = v___y_7944_;
v___y_8018_ = v___y_7945_;
v___y_8019_ = v___y_7946_;
v___y_8020_ = v___y_7947_;
v___y_8021_ = v___y_7948_;
v___y_8022_ = v___y_7949_;
v___y_8023_ = v___y_7950_;
v___y_8024_ = v___y_7951_;
v___y_8025_ = v___y_7952_;
v___y_8026_ = v___y_7953_;
v___y_8027_ = v___y_7954_;
v___y_8028_ = v___y_7955_;
goto v___jp_8016_;
}
else
{
lean_object* v_a_8183_; lean_object* v___x_8185_; uint8_t v_isShared_8186_; uint8_t v_isSharedCheck_8190_; 
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8183_ = lean_ctor_get(v___x_8182_, 0);
v_isSharedCheck_8190_ = !lean_is_exclusive(v___x_8182_);
if (v_isSharedCheck_8190_ == 0)
{
v___x_8185_ = v___x_8182_;
v_isShared_8186_ = v_isSharedCheck_8190_;
goto v_resetjp_8184_;
}
else
{
lean_inc(v_a_8183_);
lean_dec(v___x_8182_);
v___x_8185_ = lean_box(0);
v_isShared_8186_ = v_isSharedCheck_8190_;
goto v_resetjp_8184_;
}
v_resetjp_8184_:
{
lean_object* v___x_8188_; 
if (v_isShared_8186_ == 0)
{
v___x_8188_ = v___x_8185_;
goto v_reusejp_8187_;
}
else
{
lean_object* v_reuseFailAlloc_8189_; 
v_reuseFailAlloc_8189_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8189_, 0, v_a_8183_);
v___x_8188_ = v_reuseFailAlloc_8189_;
goto v_reusejp_8187_;
}
v_reusejp_8187_:
{
return v___x_8188_;
}
}
}
}
v___jp_7985_:
{
lean_object* v___x_7998_; 
v___x_7998_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_assignElimVars(v___y_7986_, v___y_7987_, v___y_7988_, v___y_7989_, v___y_7990_, v___y_7991_, v___y_7992_, v___y_7993_, v___y_7994_, v___y_7995_, v___y_7996_, v___y_7997_);
lean_dec(v___y_7997_);
lean_dec_ref(v___y_7996_);
lean_dec(v___y_7995_);
lean_dec_ref(v___y_7994_);
lean_dec(v___y_7993_);
lean_dec_ref(v___y_7992_);
lean_dec(v___y_7991_);
lean_dec_ref(v___y_7990_);
lean_dec(v___y_7989_);
lean_dec(v___y_7988_);
lean_dec(v___y_7986_);
if (lean_obj_tag(v___x_7998_) == 0)
{
lean_object* v___x_8000_; uint8_t v_isShared_8001_; uint8_t v_isSharedCheck_8006_; 
v_isSharedCheck_8006_ = !lean_is_exclusive(v___x_7998_);
if (v_isSharedCheck_8006_ == 0)
{
lean_object* v_unused_8007_; 
v_unused_8007_ = lean_ctor_get(v___x_7998_, 0);
lean_dec(v_unused_8007_);
v___x_8000_ = v___x_7998_;
v_isShared_8001_ = v_isSharedCheck_8006_;
goto v_resetjp_7999_;
}
else
{
lean_dec(v___x_7998_);
v___x_8000_ = lean_box(0);
v_isShared_8001_ = v_isSharedCheck_8006_;
goto v_resetjp_7999_;
}
v_resetjp_7999_:
{
lean_object* v___x_8002_; lean_object* v___x_8004_; 
v___x_8002_ = ((lean_object*)(l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__1));
if (v_isShared_8001_ == 0)
{
lean_ctor_set(v___x_8000_, 0, v___x_8002_);
v___x_8004_ = v___x_8000_;
goto v_reusejp_8003_;
}
else
{
lean_object* v_reuseFailAlloc_8005_; 
v_reuseFailAlloc_8005_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8005_, 0, v___x_8002_);
v___x_8004_ = v_reuseFailAlloc_8005_;
goto v_reusejp_8003_;
}
v_reusejp_8003_:
{
return v___x_8004_;
}
}
}
else
{
lean_object* v_a_8008_; lean_object* v___x_8010_; uint8_t v_isShared_8011_; uint8_t v_isSharedCheck_8015_; 
v_a_8008_ = lean_ctor_get(v___x_7998_, 0);
v_isSharedCheck_8015_ = !lean_is_exclusive(v___x_7998_);
if (v_isSharedCheck_8015_ == 0)
{
v___x_8010_ = v___x_7998_;
v_isShared_8011_ = v_isSharedCheck_8015_;
goto v_resetjp_8009_;
}
else
{
lean_inc(v_a_8008_);
lean_dec(v___x_7998_);
v___x_8010_ = lean_box(0);
v_isShared_8011_ = v_isSharedCheck_8015_;
goto v_resetjp_8009_;
}
v_resetjp_8009_:
{
lean_object* v___x_8013_; 
if (v_isShared_8011_ == 0)
{
v___x_8013_ = v___x_8010_;
goto v_reusejp_8012_;
}
else
{
lean_object* v_reuseFailAlloc_8014_; 
v_reuseFailAlloc_8014_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8014_, 0, v_a_8008_);
v___x_8013_ = v_reuseFailAlloc_8014_;
goto v_reusejp_8012_;
}
v_reusejp_8012_:
{
return v___x_8013_;
}
}
}
}
v___jp_8016_:
{
lean_object* v___x_8029_; 
v___x_8029_ = l_Lean_Core_checkSystem(v___x_7981_, v___y_8027_, v___y_8028_);
if (lean_obj_tag(v___x_8029_) == 0)
{
lean_object* v___x_8030_; 
lean_dec_ref(v___x_8029_);
v___x_8030_ = l_Lean_Meta_Grind_Arith_Linear_hasAssignment(v___y_8018_, v___y_8019_, v___y_8020_, v___y_8021_, v___y_8022_, v___y_8023_, v___y_8024_, v___y_8025_, v___y_8026_, v___y_8027_, v___y_8028_);
if (lean_obj_tag(v___x_8030_) == 0)
{
lean_object* v_a_8031_; uint8_t v___x_8032_; 
v_a_8031_ = lean_ctor_get(v___x_8030_, 0);
lean_inc(v_a_8031_);
lean_dec_ref(v___x_8030_);
v___x_8032_ = lean_unbox(v_a_8031_);
lean_dec(v_a_8031_);
if (v___x_8032_ == 0)
{
lean_object* v___x_8033_; 
v___x_8033_ = l_Lean_Meta_Grind_isInconsistent___redArg(v___y_8019_);
if (lean_obj_tag(v___x_8033_) == 0)
{
lean_object* v_a_8034_; lean_object* v___x_8036_; uint8_t v_isShared_8037_; uint8_t v_isSharedCheck_8134_; 
v_a_8034_ = lean_ctor_get(v___x_8033_, 0);
v_isSharedCheck_8134_ = !lean_is_exclusive(v___x_8033_);
if (v_isSharedCheck_8134_ == 0)
{
v___x_8036_ = v___x_8033_;
v_isShared_8037_ = v_isSharedCheck_8134_;
goto v_resetjp_8035_;
}
else
{
lean_inc(v_a_8034_);
lean_dec(v___x_8033_);
v___x_8036_ = lean_box(0);
v_isShared_8037_ = v_isSharedCheck_8134_;
goto v_resetjp_8035_;
}
v_resetjp_8035_:
{
uint8_t v___x_8038_; 
v___x_8038_ = lean_unbox(v_a_8034_);
lean_dec(v_a_8034_);
if (v___x_8038_ == 0)
{
lean_object* v___x_8039_; 
lean_del_object(v___x_8036_);
v___x_8039_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_8018_, v___y_8019_, v___y_8020_, v___y_8021_, v___y_8022_, v___y_8023_, v___y_8024_, v___y_8025_, v___y_8026_, v___y_8027_, v___y_8028_);
if (lean_obj_tag(v___x_8039_) == 0)
{
lean_object* v_a_8040_; lean_object* v_conflict_x3f_8041_; 
v_a_8040_ = lean_ctor_get(v___x_8039_, 0);
lean_inc(v_a_8040_);
lean_dec_ref(v___x_8039_);
v_conflict_x3f_8041_ = lean_ctor_get(v_a_8040_, 36);
lean_inc(v_conflict_x3f_8041_);
lean_dec(v_a_8040_);
if (lean_obj_tag(v_conflict_x3f_8041_) == 1)
{
lean_object* v_val_8042_; lean_object* v___x_8043_; 
v_val_8042_ = lean_ctor_get(v_conflict_x3f_8041_, 0);
lean_inc(v_val_8042_);
lean_dec_ref(v_conflict_x3f_8041_);
v___x_8043_ = l_Lean_Meta_Grind_Arith_Linear_resolveConflict(v_val_8042_, v___y_8017_, v___y_8018_, v___y_8019_, v___y_8020_, v___y_8021_, v___y_8022_, v___y_8023_, v___y_8024_, v___y_8025_, v___y_8026_, v___y_8027_, v___y_8028_);
if (lean_obj_tag(v___x_8043_) == 0)
{
lean_dec_ref(v___x_8043_);
goto _start;
}
else
{
lean_object* v_a_8045_; lean_object* v___x_8047_; uint8_t v_isShared_8048_; uint8_t v_isSharedCheck_8052_; 
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8045_ = lean_ctor_get(v___x_8043_, 0);
v_isSharedCheck_8052_ = !lean_is_exclusive(v___x_8043_);
if (v_isSharedCheck_8052_ == 0)
{
v___x_8047_ = v___x_8043_;
v_isShared_8048_ = v_isSharedCheck_8052_;
goto v_resetjp_8046_;
}
else
{
lean_inc(v_a_8045_);
lean_dec(v___x_8043_);
v___x_8047_ = lean_box(0);
v_isShared_8048_ = v_isSharedCheck_8052_;
goto v_resetjp_8046_;
}
v_resetjp_8046_:
{
lean_object* v___x_8050_; 
if (v_isShared_8048_ == 0)
{
v___x_8050_ = v___x_8047_;
goto v_reusejp_8049_;
}
else
{
lean_object* v_reuseFailAlloc_8051_; 
v_reuseFailAlloc_8051_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8051_, 0, v_a_8045_);
v___x_8050_ = v_reuseFailAlloc_8051_;
goto v_reusejp_8049_;
}
v_reusejp_8049_:
{
return v___x_8050_;
}
}
}
}
else
{
lean_object* v___x_8053_; 
lean_dec(v_conflict_x3f_8041_);
v___x_8053_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_8018_, v___y_8019_, v___y_8020_, v___y_8021_, v___y_8022_, v___y_8023_, v___y_8024_, v___y_8025_, v___y_8026_, v___y_8027_, v___y_8028_);
if (lean_obj_tag(v___x_8053_) == 0)
{
lean_object* v_a_8054_; lean_object* v___x_8055_; 
v_a_8054_ = lean_ctor_get(v___x_8053_, 0);
lean_inc(v_a_8054_);
lean_dec_ref(v___x_8053_);
v___x_8055_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v_cls_7982_, v___y_8027_);
if (lean_obj_tag(v___x_8055_) == 0)
{
lean_object* v_assignment_8056_; lean_object* v_a_8057_; uint8_t v___x_8058_; 
v_assignment_8056_ = lean_ctor_get(v_a_8054_, 35);
lean_inc_ref(v_assignment_8056_);
lean_dec(v_a_8054_);
v_a_8057_ = lean_ctor_get(v___x_8055_, 0);
lean_inc(v_a_8057_);
lean_dec_ref(v___x_8055_);
v___x_8058_ = lean_unbox(v_a_8057_);
lean_dec(v_a_8057_);
if (v___x_8058_ == 0)
{
lean_object* v_size_8059_; 
v_size_8059_ = lean_ctor_get(v_assignment_8056_, 2);
lean_inc(v_size_8059_);
lean_dec_ref(v_assignment_8056_);
v___y_7958_ = v_size_8059_;
v___y_7959_ = v___y_8017_;
v___y_7960_ = v___y_8018_;
v___y_7961_ = v___y_8019_;
v___y_7962_ = v___y_8020_;
v___y_7963_ = v___y_8021_;
v___y_7964_ = v___y_8022_;
v___y_7965_ = v___y_8023_;
v___y_7966_ = v___y_8024_;
v___y_7967_ = v___y_8025_;
v___y_7968_ = v___y_8026_;
v___y_7969_ = v___y_8027_;
v___y_7970_ = v___y_8028_;
goto v___jp_7957_;
}
else
{
lean_object* v_size_8060_; lean_object* v___x_8061_; 
v_size_8060_ = lean_ctor_get(v_assignment_8056_, 2);
lean_inc(v_size_8060_);
lean_dec_ref(v_assignment_8056_);
v___x_8061_ = l_Lean_Meta_Grind_Arith_Linear_getVar(v_size_8060_, v___y_8018_, v___y_8019_, v___y_8020_, v___y_8021_, v___y_8022_, v___y_8023_, v___y_8024_, v___y_8025_, v___y_8026_, v___y_8027_, v___y_8028_);
if (lean_obj_tag(v___x_8061_) == 0)
{
lean_object* v_a_8062_; lean_object* v___x_8063_; 
v_a_8062_ = lean_ctor_get(v___x_8061_, 0);
lean_inc(v_a_8062_);
lean_dec_ref(v___x_8061_);
v___x_8063_ = l_Lean_Meta_Grind_Arith_Linear_LinearM_getStruct(v___y_8018_, v___y_8019_, v___y_8020_, v___y_8021_, v___y_8022_, v___y_8023_, v___y_8024_, v___y_8025_, v___y_8026_, v___y_8027_, v___y_8028_);
if (lean_obj_tag(v___x_8063_) == 0)
{
lean_object* v_a_8064_; lean_object* v_assignment_8065_; lean_object* v___x_8066_; lean_object* v___x_8067_; lean_object* v___x_8068_; lean_object* v___x_8069_; lean_object* v___x_8070_; lean_object* v___x_8071_; lean_object* v___x_8072_; lean_object* v___x_8073_; lean_object* v___x_8074_; lean_object* v___x_8075_; lean_object* v___x_8076_; lean_object* v___x_8077_; lean_object* v___x_8078_; lean_object* v___x_8079_; lean_object* v___x_8080_; lean_object* v___x_8081_; 
v_a_8064_ = lean_ctor_get(v___x_8063_, 0);
lean_inc(v_a_8064_);
lean_dec_ref(v___x_8063_);
v_assignment_8065_ = lean_ctor_get(v_a_8064_, 35);
lean_inc_ref(v_assignment_8065_);
lean_dec(v_a_8064_);
v___x_8066_ = lean_obj_once(&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__3, &l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__3_once, _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__3);
v___x_8067_ = l_Lean_MessageData_ofExpr(v_a_8062_);
v___x_8068_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_8068_, 0, v___x_8066_);
lean_ctor_set(v___x_8068_, 1, v___x_8067_);
v___x_8069_ = lean_obj_once(&l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3, &l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3_once, _init_l_Lean_Meta_Grind_Arith_Linear_resolveLowerUpperConflict___closed__3);
v___x_8070_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_8070_, 0, v___x_8068_);
lean_ctor_set(v___x_8070_, 1, v___x_8069_);
lean_inc(v_size_8060_);
v___x_8071_ = l_Nat_reprFast(v_size_8060_);
v___x_8072_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v___x_8072_, 0, v___x_8071_);
v___x_8073_ = l_Lean_MessageData_ofFormat(v___x_8072_);
v___x_8074_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_8074_, 0, v___x_8070_);
lean_ctor_set(v___x_8074_, 1, v___x_8073_);
v___x_8075_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_8075_, 0, v___x_8074_);
lean_ctor_set(v___x_8075_, 1, v___x_8069_);
v___x_8076_ = l_Lean_PersistentArray_toList___redArg(v_assignment_8065_);
lean_dec_ref(v_assignment_8065_);
v___x_8077_ = lean_box(0);
v___x_8078_ = l_List_mapTR_loop___at___00Lean_Meta_Grind_Arith_Linear_processVar_spec__1(v___x_8076_, v___x_8077_);
v___x_8079_ = l_Lean_MessageData_ofList(v___x_8078_);
v___x_8080_ = lean_alloc_ctor(7, 2, 0);
lean_ctor_set(v___x_8080_, 0, v___x_8075_);
lean_ctor_set(v___x_8080_, 1, v___x_8079_);
v___x_8081_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v_cls_7982_, v___x_8080_, v___y_8025_, v___y_8026_, v___y_8027_, v___y_8028_);
if (lean_obj_tag(v___x_8081_) == 0)
{
lean_dec_ref(v___x_8081_);
v___y_7958_ = v_size_8060_;
v___y_7959_ = v___y_8017_;
v___y_7960_ = v___y_8018_;
v___y_7961_ = v___y_8019_;
v___y_7962_ = v___y_8020_;
v___y_7963_ = v___y_8021_;
v___y_7964_ = v___y_8022_;
v___y_7965_ = v___y_8023_;
v___y_7966_ = v___y_8024_;
v___y_7967_ = v___y_8025_;
v___y_7968_ = v___y_8026_;
v___y_7969_ = v___y_8027_;
v___y_7970_ = v___y_8028_;
goto v___jp_7957_;
}
else
{
lean_object* v_a_8082_; lean_object* v___x_8084_; uint8_t v_isShared_8085_; uint8_t v_isSharedCheck_8089_; 
lean_dec(v_size_8060_);
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8082_ = lean_ctor_get(v___x_8081_, 0);
v_isSharedCheck_8089_ = !lean_is_exclusive(v___x_8081_);
if (v_isSharedCheck_8089_ == 0)
{
v___x_8084_ = v___x_8081_;
v_isShared_8085_ = v_isSharedCheck_8089_;
goto v_resetjp_8083_;
}
else
{
lean_inc(v_a_8082_);
lean_dec(v___x_8081_);
v___x_8084_ = lean_box(0);
v_isShared_8085_ = v_isSharedCheck_8089_;
goto v_resetjp_8083_;
}
v_resetjp_8083_:
{
lean_object* v___x_8087_; 
if (v_isShared_8085_ == 0)
{
v___x_8087_ = v___x_8084_;
goto v_reusejp_8086_;
}
else
{
lean_object* v_reuseFailAlloc_8088_; 
v_reuseFailAlloc_8088_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8088_, 0, v_a_8082_);
v___x_8087_ = v_reuseFailAlloc_8088_;
goto v_reusejp_8086_;
}
v_reusejp_8086_:
{
return v___x_8087_;
}
}
}
}
else
{
lean_object* v_a_8090_; lean_object* v___x_8092_; uint8_t v_isShared_8093_; uint8_t v_isSharedCheck_8097_; 
lean_dec(v_a_8062_);
lean_dec(v_size_8060_);
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8090_ = lean_ctor_get(v___x_8063_, 0);
v_isSharedCheck_8097_ = !lean_is_exclusive(v___x_8063_);
if (v_isSharedCheck_8097_ == 0)
{
v___x_8092_ = v___x_8063_;
v_isShared_8093_ = v_isSharedCheck_8097_;
goto v_resetjp_8091_;
}
else
{
lean_inc(v_a_8090_);
lean_dec(v___x_8063_);
v___x_8092_ = lean_box(0);
v_isShared_8093_ = v_isSharedCheck_8097_;
goto v_resetjp_8091_;
}
v_resetjp_8091_:
{
lean_object* v___x_8095_; 
if (v_isShared_8093_ == 0)
{
v___x_8095_ = v___x_8092_;
goto v_reusejp_8094_;
}
else
{
lean_object* v_reuseFailAlloc_8096_; 
v_reuseFailAlloc_8096_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8096_, 0, v_a_8090_);
v___x_8095_ = v_reuseFailAlloc_8096_;
goto v_reusejp_8094_;
}
v_reusejp_8094_:
{
return v___x_8095_;
}
}
}
}
else
{
lean_object* v_a_8098_; lean_object* v___x_8100_; uint8_t v_isShared_8101_; uint8_t v_isSharedCheck_8105_; 
lean_dec(v_size_8060_);
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8098_ = lean_ctor_get(v___x_8061_, 0);
v_isSharedCheck_8105_ = !lean_is_exclusive(v___x_8061_);
if (v_isSharedCheck_8105_ == 0)
{
v___x_8100_ = v___x_8061_;
v_isShared_8101_ = v_isSharedCheck_8105_;
goto v_resetjp_8099_;
}
else
{
lean_inc(v_a_8098_);
lean_dec(v___x_8061_);
v___x_8100_ = lean_box(0);
v_isShared_8101_ = v_isSharedCheck_8105_;
goto v_resetjp_8099_;
}
v_resetjp_8099_:
{
lean_object* v___x_8103_; 
if (v_isShared_8101_ == 0)
{
v___x_8103_ = v___x_8100_;
goto v_reusejp_8102_;
}
else
{
lean_object* v_reuseFailAlloc_8104_; 
v_reuseFailAlloc_8104_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8104_, 0, v_a_8098_);
v___x_8103_ = v_reuseFailAlloc_8104_;
goto v_reusejp_8102_;
}
v_reusejp_8102_:
{
return v___x_8103_;
}
}
}
}
}
else
{
lean_object* v_a_8106_; lean_object* v___x_8108_; uint8_t v_isShared_8109_; uint8_t v_isSharedCheck_8113_; 
lean_dec(v_a_8054_);
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8106_ = lean_ctor_get(v___x_8055_, 0);
v_isSharedCheck_8113_ = !lean_is_exclusive(v___x_8055_);
if (v_isSharedCheck_8113_ == 0)
{
v___x_8108_ = v___x_8055_;
v_isShared_8109_ = v_isSharedCheck_8113_;
goto v_resetjp_8107_;
}
else
{
lean_inc(v_a_8106_);
lean_dec(v___x_8055_);
v___x_8108_ = lean_box(0);
v_isShared_8109_ = v_isSharedCheck_8113_;
goto v_resetjp_8107_;
}
v_resetjp_8107_:
{
lean_object* v___x_8111_; 
if (v_isShared_8109_ == 0)
{
v___x_8111_ = v___x_8108_;
goto v_reusejp_8110_;
}
else
{
lean_object* v_reuseFailAlloc_8112_; 
v_reuseFailAlloc_8112_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8112_, 0, v_a_8106_);
v___x_8111_ = v_reuseFailAlloc_8112_;
goto v_reusejp_8110_;
}
v_reusejp_8110_:
{
return v___x_8111_;
}
}
}
}
else
{
lean_object* v_a_8114_; lean_object* v___x_8116_; uint8_t v_isShared_8117_; uint8_t v_isSharedCheck_8121_; 
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8114_ = lean_ctor_get(v___x_8053_, 0);
v_isSharedCheck_8121_ = !lean_is_exclusive(v___x_8053_);
if (v_isSharedCheck_8121_ == 0)
{
v___x_8116_ = v___x_8053_;
v_isShared_8117_ = v_isSharedCheck_8121_;
goto v_resetjp_8115_;
}
else
{
lean_inc(v_a_8114_);
lean_dec(v___x_8053_);
v___x_8116_ = lean_box(0);
v_isShared_8117_ = v_isSharedCheck_8121_;
goto v_resetjp_8115_;
}
v_resetjp_8115_:
{
lean_object* v___x_8119_; 
if (v_isShared_8117_ == 0)
{
v___x_8119_ = v___x_8116_;
goto v_reusejp_8118_;
}
else
{
lean_object* v_reuseFailAlloc_8120_; 
v_reuseFailAlloc_8120_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8120_, 0, v_a_8114_);
v___x_8119_ = v_reuseFailAlloc_8120_;
goto v_reusejp_8118_;
}
v_reusejp_8118_:
{
return v___x_8119_;
}
}
}
}
}
else
{
lean_object* v_a_8122_; lean_object* v___x_8124_; uint8_t v_isShared_8125_; uint8_t v_isSharedCheck_8129_; 
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8122_ = lean_ctor_get(v___x_8039_, 0);
v_isSharedCheck_8129_ = !lean_is_exclusive(v___x_8039_);
if (v_isSharedCheck_8129_ == 0)
{
v___x_8124_ = v___x_8039_;
v_isShared_8125_ = v_isSharedCheck_8129_;
goto v_resetjp_8123_;
}
else
{
lean_inc(v_a_8122_);
lean_dec(v___x_8039_);
v___x_8124_ = lean_box(0);
v_isShared_8125_ = v_isSharedCheck_8129_;
goto v_resetjp_8123_;
}
v_resetjp_8123_:
{
lean_object* v___x_8127_; 
if (v_isShared_8125_ == 0)
{
v___x_8127_ = v___x_8124_;
goto v_reusejp_8126_;
}
else
{
lean_object* v_reuseFailAlloc_8128_; 
v_reuseFailAlloc_8128_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8128_, 0, v_a_8122_);
v___x_8127_ = v_reuseFailAlloc_8128_;
goto v_reusejp_8126_;
}
v_reusejp_8126_:
{
return v___x_8127_;
}
}
}
}
else
{
lean_object* v___x_8130_; lean_object* v___x_8132_; 
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v___x_8130_ = ((lean_object*)(l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__1));
if (v_isShared_8037_ == 0)
{
lean_ctor_set(v___x_8036_, 0, v___x_8130_);
v___x_8132_ = v___x_8036_;
goto v_reusejp_8131_;
}
else
{
lean_object* v_reuseFailAlloc_8133_; 
v_reuseFailAlloc_8133_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8133_, 0, v___x_8130_);
v___x_8132_ = v_reuseFailAlloc_8133_;
goto v_reusejp_8131_;
}
v_reusejp_8131_:
{
return v___x_8132_;
}
}
}
}
else
{
lean_object* v_a_8135_; lean_object* v___x_8137_; uint8_t v_isShared_8138_; uint8_t v_isSharedCheck_8142_; 
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8135_ = lean_ctor_get(v___x_8033_, 0);
v_isSharedCheck_8142_ = !lean_is_exclusive(v___x_8033_);
if (v_isSharedCheck_8142_ == 0)
{
v___x_8137_ = v___x_8033_;
v_isShared_8138_ = v_isSharedCheck_8142_;
goto v_resetjp_8136_;
}
else
{
lean_inc(v_a_8135_);
lean_dec(v___x_8033_);
v___x_8137_ = lean_box(0);
v_isShared_8138_ = v_isSharedCheck_8142_;
goto v_resetjp_8136_;
}
v_resetjp_8136_:
{
lean_object* v___x_8140_; 
if (v_isShared_8138_ == 0)
{
v___x_8140_ = v___x_8137_;
goto v_reusejp_8139_;
}
else
{
lean_object* v_reuseFailAlloc_8141_; 
v_reuseFailAlloc_8141_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8141_, 0, v_a_8135_);
v___x_8140_ = v_reuseFailAlloc_8141_;
goto v_reusejp_8139_;
}
v_reusejp_8139_:
{
return v___x_8140_;
}
}
}
}
else
{
lean_object* v___x_8143_; 
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v___x_8143_ = l_Lean_isTracingEnabledFor___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__1___redArg(v_cls_7982_, v___y_8027_);
if (lean_obj_tag(v___x_8143_) == 0)
{
lean_object* v_a_8144_; uint8_t v___x_8145_; 
v_a_8144_ = lean_ctor_get(v___x_8143_, 0);
lean_inc(v_a_8144_);
lean_dec_ref(v___x_8143_);
v___x_8145_ = lean_unbox(v_a_8144_);
lean_dec(v_a_8144_);
if (v___x_8145_ == 0)
{
v___y_7986_ = v___y_8017_;
v___y_7987_ = v___y_8018_;
v___y_7988_ = v___y_8019_;
v___y_7989_ = v___y_8020_;
v___y_7990_ = v___y_8021_;
v___y_7991_ = v___y_8022_;
v___y_7992_ = v___y_8023_;
v___y_7993_ = v___y_8024_;
v___y_7994_ = v___y_8025_;
v___y_7995_ = v___y_8026_;
v___y_7996_ = v___y_8027_;
v___y_7997_ = v___y_8028_;
goto v___jp_7985_;
}
else
{
lean_object* v___x_8146_; lean_object* v___x_8147_; 
v___x_8146_ = lean_obj_once(&l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__5, &l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__5_once, _init_l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___closed__5);
v___x_8147_ = l_Lean_addTrace___at___00Lean_Meta_Grind_Arith_Linear_DiseqCnstr_split_spec__3___redArg(v_cls_7982_, v___x_8146_, v___y_8025_, v___y_8026_, v___y_8027_, v___y_8028_);
if (lean_obj_tag(v___x_8147_) == 0)
{
lean_dec_ref(v___x_8147_);
v___y_7986_ = v___y_8017_;
v___y_7987_ = v___y_8018_;
v___y_7988_ = v___y_8019_;
v___y_7989_ = v___y_8020_;
v___y_7990_ = v___y_8021_;
v___y_7991_ = v___y_8022_;
v___y_7992_ = v___y_8023_;
v___y_7993_ = v___y_8024_;
v___y_7994_ = v___y_8025_;
v___y_7995_ = v___y_8026_;
v___y_7996_ = v___y_8027_;
v___y_7997_ = v___y_8028_;
goto v___jp_7985_;
}
else
{
lean_object* v_a_8148_; lean_object* v___x_8150_; uint8_t v_isShared_8151_; uint8_t v_isSharedCheck_8155_; 
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
v_a_8148_ = lean_ctor_get(v___x_8147_, 0);
v_isSharedCheck_8155_ = !lean_is_exclusive(v___x_8147_);
if (v_isSharedCheck_8155_ == 0)
{
v___x_8150_ = v___x_8147_;
v_isShared_8151_ = v_isSharedCheck_8155_;
goto v_resetjp_8149_;
}
else
{
lean_inc(v_a_8148_);
lean_dec(v___x_8147_);
v___x_8150_ = lean_box(0);
v_isShared_8151_ = v_isSharedCheck_8155_;
goto v_resetjp_8149_;
}
v_resetjp_8149_:
{
lean_object* v___x_8153_; 
if (v_isShared_8151_ == 0)
{
v___x_8153_ = v___x_8150_;
goto v_reusejp_8152_;
}
else
{
lean_object* v_reuseFailAlloc_8154_; 
v_reuseFailAlloc_8154_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8154_, 0, v_a_8148_);
v___x_8153_ = v_reuseFailAlloc_8154_;
goto v_reusejp_8152_;
}
v_reusejp_8152_:
{
return v___x_8153_;
}
}
}
}
}
else
{
lean_object* v_a_8156_; lean_object* v___x_8158_; uint8_t v_isShared_8159_; uint8_t v_isSharedCheck_8163_; 
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
v_a_8156_ = lean_ctor_get(v___x_8143_, 0);
v_isSharedCheck_8163_ = !lean_is_exclusive(v___x_8143_);
if (v_isSharedCheck_8163_ == 0)
{
v___x_8158_ = v___x_8143_;
v_isShared_8159_ = v_isSharedCheck_8163_;
goto v_resetjp_8157_;
}
else
{
lean_inc(v_a_8156_);
lean_dec(v___x_8143_);
v___x_8158_ = lean_box(0);
v_isShared_8159_ = v_isSharedCheck_8163_;
goto v_resetjp_8157_;
}
v_resetjp_8157_:
{
lean_object* v___x_8161_; 
if (v_isShared_8159_ == 0)
{
v___x_8161_ = v___x_8158_;
goto v_reusejp_8160_;
}
else
{
lean_object* v_reuseFailAlloc_8162_; 
v_reuseFailAlloc_8162_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8162_, 0, v_a_8156_);
v___x_8161_ = v_reuseFailAlloc_8162_;
goto v_reusejp_8160_;
}
v_reusejp_8160_:
{
return v___x_8161_;
}
}
}
}
}
else
{
lean_object* v_a_8164_; lean_object* v___x_8166_; uint8_t v_isShared_8167_; uint8_t v_isSharedCheck_8171_; 
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8164_ = lean_ctor_get(v___x_8030_, 0);
v_isSharedCheck_8171_ = !lean_is_exclusive(v___x_8030_);
if (v_isSharedCheck_8171_ == 0)
{
v___x_8166_ = v___x_8030_;
v_isShared_8167_ = v_isSharedCheck_8171_;
goto v_resetjp_8165_;
}
else
{
lean_inc(v_a_8164_);
lean_dec(v___x_8030_);
v___x_8166_ = lean_box(0);
v_isShared_8167_ = v_isSharedCheck_8171_;
goto v_resetjp_8165_;
}
v_resetjp_8165_:
{
lean_object* v___x_8169_; 
if (v_isShared_8167_ == 0)
{
v___x_8169_ = v___x_8166_;
goto v_reusejp_8168_;
}
else
{
lean_object* v_reuseFailAlloc_8170_; 
v_reuseFailAlloc_8170_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8170_, 0, v_a_8164_);
v___x_8169_ = v_reuseFailAlloc_8170_;
goto v_reusejp_8168_;
}
v_reusejp_8168_:
{
return v___x_8169_;
}
}
}
}
else
{
lean_object* v_a_8172_; lean_object* v___x_8174_; uint8_t v_isShared_8175_; uint8_t v_isSharedCheck_8179_; 
lean_dec(v___y_8028_);
lean_dec_ref(v___y_8027_);
lean_dec(v___y_8026_);
lean_dec_ref(v___y_8025_);
lean_dec(v___y_8024_);
lean_dec_ref(v___y_8023_);
lean_dec(v___y_8022_);
lean_dec_ref(v___y_8021_);
lean_dec(v___y_8020_);
lean_dec(v___y_8019_);
lean_dec(v___y_8018_);
lean_dec(v___y_8017_);
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8172_ = lean_ctor_get(v___x_8029_, 0);
v_isSharedCheck_8179_ = !lean_is_exclusive(v___x_8029_);
if (v_isSharedCheck_8179_ == 0)
{
v___x_8174_ = v___x_8029_;
v_isShared_8175_ = v_isSharedCheck_8179_;
goto v_resetjp_8173_;
}
else
{
lean_inc(v_a_8172_);
lean_dec(v___x_8029_);
v___x_8174_ = lean_box(0);
v_isShared_8175_ = v_isSharedCheck_8179_;
goto v_resetjp_8173_;
}
v_resetjp_8173_:
{
lean_object* v___x_8177_; 
if (v_isShared_8175_ == 0)
{
v___x_8177_ = v___x_8174_;
goto v_reusejp_8176_;
}
else
{
lean_object* v_reuseFailAlloc_8178_; 
v_reuseFailAlloc_8178_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8178_, 0, v_a_8172_);
v___x_8177_ = v_reuseFailAlloc_8178_;
goto v_reusejp_8176_;
}
v_reusejp_8176_:
{
return v___x_8177_;
}
}
}
}
}
else
{
lean_object* v_a_8191_; lean_object* v___x_8193_; uint8_t v_isShared_8194_; uint8_t v_isSharedCheck_8198_; 
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_8191_ = lean_ctor_get(v___x_7983_, 0);
v_isSharedCheck_8198_ = !lean_is_exclusive(v___x_7983_);
if (v_isSharedCheck_8198_ == 0)
{
v___x_8193_ = v___x_7983_;
v_isShared_8194_ = v_isSharedCheck_8198_;
goto v_resetjp_8192_;
}
else
{
lean_inc(v_a_8191_);
lean_dec(v___x_7983_);
v___x_8193_ = lean_box(0);
v_isShared_8194_ = v_isSharedCheck_8198_;
goto v_resetjp_8192_;
}
v_resetjp_8192_:
{
lean_object* v___x_8196_; 
if (v_isShared_8194_ == 0)
{
v___x_8196_ = v___x_8193_;
goto v_reusejp_8195_;
}
else
{
lean_object* v_reuseFailAlloc_8197_; 
v_reuseFailAlloc_8197_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8197_, 0, v_a_8191_);
v___x_8196_ = v_reuseFailAlloc_8197_;
goto v_reusejp_8195_;
}
v_reusejp_8195_:
{
return v___x_8196_;
}
}
}
v___jp_7957_:
{
lean_object* v___x_7971_; 
v___x_7971_ = l_Lean_Meta_Grind_Arith_Linear_processVar(v___y_7958_, v___y_7959_, v___y_7960_, v___y_7961_, v___y_7962_, v___y_7963_, v___y_7964_, v___y_7965_, v___y_7966_, v___y_7967_, v___y_7968_, v___y_7969_, v___y_7970_);
lean_dec(v___y_7959_);
lean_dec(v___y_7958_);
if (lean_obj_tag(v___x_7971_) == 0)
{
lean_dec_ref(v___x_7971_);
goto _start;
}
else
{
lean_object* v_a_7973_; lean_object* v___x_7975_; uint8_t v_isShared_7976_; uint8_t v_isSharedCheck_7980_; 
lean_dec(v___y_7955_);
lean_dec_ref(v___y_7954_);
lean_dec(v___y_7953_);
lean_dec_ref(v___y_7952_);
lean_dec(v___y_7951_);
lean_dec_ref(v___y_7950_);
lean_dec(v___y_7949_);
lean_dec_ref(v___y_7948_);
lean_dec(v___y_7947_);
lean_dec(v___y_7946_);
lean_dec(v___y_7945_);
lean_dec(v___y_7944_);
v_a_7973_ = lean_ctor_get(v___x_7971_, 0);
v_isSharedCheck_7980_ = !lean_is_exclusive(v___x_7971_);
if (v_isSharedCheck_7980_ == 0)
{
v___x_7975_ = v___x_7971_;
v_isShared_7976_ = v_isSharedCheck_7980_;
goto v_resetjp_7974_;
}
else
{
lean_inc(v_a_7973_);
lean_dec(v___x_7971_);
v___x_7975_ = lean_box(0);
v_isShared_7976_ = v_isSharedCheck_7980_;
goto v_resetjp_7974_;
}
v_resetjp_7974_:
{
lean_object* v___x_7978_; 
if (v_isShared_7976_ == 0)
{
v___x_7978_ = v___x_7975_;
goto v_reusejp_7977_;
}
else
{
lean_object* v_reuseFailAlloc_7979_; 
v_reuseFailAlloc_7979_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7979_, 0, v_a_7973_);
v___x_7978_ = v_reuseFailAlloc_7979_;
goto v_reusejp_7977_;
}
v_reusejp_7977_:
{
return v___x_7978_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg___boxed(lean_object* v___y_8199_, lean_object* v___y_8200_, lean_object* v___y_8201_, lean_object* v___y_8202_, lean_object* v___y_8203_, lean_object* v___y_8204_, lean_object* v___y_8205_, lean_object* v___y_8206_, lean_object* v___y_8207_, lean_object* v___y_8208_, lean_object* v___y_8209_, lean_object* v___y_8210_, lean_object* v___y_8211_){
_start:
{
lean_object* v_res_8212_; 
v_res_8212_ = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg(v___y_8199_, v___y_8200_, v___y_8201_, v___y_8202_, v___y_8203_, v___y_8204_, v___y_8205_, v___y_8206_, v___y_8207_, v___y_8208_, v___y_8209_, v___y_8210_);
return v_res_8212_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain(lean_object* v_a_8213_, lean_object* v_a_8214_, lean_object* v_a_8215_, lean_object* v_a_8216_, lean_object* v_a_8217_, lean_object* v_a_8218_, lean_object* v_a_8219_, lean_object* v_a_8220_, lean_object* v_a_8221_, lean_object* v_a_8222_, lean_object* v_a_8223_, lean_object* v_a_8224_){
_start:
{
lean_object* v___x_8226_; 
v___x_8226_ = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg(v_a_8213_, v_a_8214_, v_a_8215_, v_a_8216_, v_a_8217_, v_a_8218_, v_a_8219_, v_a_8220_, v_a_8221_, v_a_8222_, v_a_8223_, v_a_8224_);
if (lean_obj_tag(v___x_8226_) == 0)
{
lean_object* v_a_8227_; lean_object* v___x_8229_; uint8_t v_isShared_8230_; uint8_t v_isSharedCheck_8240_; 
v_a_8227_ = lean_ctor_get(v___x_8226_, 0);
v_isSharedCheck_8240_ = !lean_is_exclusive(v___x_8226_);
if (v_isSharedCheck_8240_ == 0)
{
v___x_8229_ = v___x_8226_;
v_isShared_8230_ = v_isSharedCheck_8240_;
goto v_resetjp_8228_;
}
else
{
lean_inc(v_a_8227_);
lean_dec(v___x_8226_);
v___x_8229_ = lean_box(0);
v_isShared_8230_ = v_isSharedCheck_8240_;
goto v_resetjp_8228_;
}
v_resetjp_8228_:
{
lean_object* v_fst_8231_; 
v_fst_8231_ = lean_ctor_get(v_a_8227_, 0);
lean_inc(v_fst_8231_);
lean_dec(v_a_8227_);
if (lean_obj_tag(v_fst_8231_) == 0)
{
lean_object* v___x_8232_; lean_object* v___x_8234_; 
v___x_8232_ = lean_box(0);
if (v_isShared_8230_ == 0)
{
lean_ctor_set(v___x_8229_, 0, v___x_8232_);
v___x_8234_ = v___x_8229_;
goto v_reusejp_8233_;
}
else
{
lean_object* v_reuseFailAlloc_8235_; 
v_reuseFailAlloc_8235_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8235_, 0, v___x_8232_);
v___x_8234_ = v_reuseFailAlloc_8235_;
goto v_reusejp_8233_;
}
v_reusejp_8233_:
{
return v___x_8234_;
}
}
else
{
lean_object* v_val_8236_; lean_object* v___x_8238_; 
v_val_8236_ = lean_ctor_get(v_fst_8231_, 0);
lean_inc(v_val_8236_);
lean_dec_ref(v_fst_8231_);
if (v_isShared_8230_ == 0)
{
lean_ctor_set(v___x_8229_, 0, v_val_8236_);
v___x_8238_ = v___x_8229_;
goto v_reusejp_8237_;
}
else
{
lean_object* v_reuseFailAlloc_8239_; 
v_reuseFailAlloc_8239_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8239_, 0, v_val_8236_);
v___x_8238_ = v_reuseFailAlloc_8239_;
goto v_reusejp_8237_;
}
v_reusejp_8237_:
{
return v___x_8238_;
}
}
}
}
else
{
lean_object* v_a_8241_; lean_object* v___x_8243_; uint8_t v_isShared_8244_; uint8_t v_isSharedCheck_8248_; 
v_a_8241_ = lean_ctor_get(v___x_8226_, 0);
v_isSharedCheck_8248_ = !lean_is_exclusive(v___x_8226_);
if (v_isSharedCheck_8248_ == 0)
{
v___x_8243_ = v___x_8226_;
v_isShared_8244_ = v_isSharedCheck_8248_;
goto v_resetjp_8242_;
}
else
{
lean_inc(v_a_8241_);
lean_dec(v___x_8226_);
v___x_8243_ = lean_box(0);
v_isShared_8244_ = v_isSharedCheck_8248_;
goto v_resetjp_8242_;
}
v_resetjp_8242_:
{
lean_object* v___x_8246_; 
if (v_isShared_8244_ == 0)
{
v___x_8246_ = v___x_8243_;
goto v_reusejp_8245_;
}
else
{
lean_object* v_reuseFailAlloc_8247_; 
v_reuseFailAlloc_8247_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8247_, 0, v_a_8241_);
v___x_8246_ = v_reuseFailAlloc_8247_;
goto v_reusejp_8245_;
}
v_reusejp_8245_:
{
return v___x_8246_;
}
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain___boxed(lean_object* v_a_8249_, lean_object* v_a_8250_, lean_object* v_a_8251_, lean_object* v_a_8252_, lean_object* v_a_8253_, lean_object* v_a_8254_, lean_object* v_a_8255_, lean_object* v_a_8256_, lean_object* v_a_8257_, lean_object* v_a_8258_, lean_object* v_a_8259_, lean_object* v_a_8260_, lean_object* v_a_8261_){
_start:
{
lean_object* v_res_8262_; 
v_res_8262_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain(v_a_8249_, v_a_8250_, v_a_8251_, v_a_8252_, v_a_8253_, v_a_8254_, v_a_8255_, v_a_8256_, v_a_8257_, v_a_8258_, v_a_8259_, v_a_8260_);
return v_res_8262_;
}
}
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0(lean_object* v_b_8263_, lean_object* v___y_8264_, lean_object* v___y_8265_, lean_object* v___y_8266_, lean_object* v___y_8267_, lean_object* v___y_8268_, lean_object* v___y_8269_, lean_object* v___y_8270_, lean_object* v___y_8271_, lean_object* v___y_8272_, lean_object* v___y_8273_, lean_object* v___y_8274_, lean_object* v___y_8275_){
_start:
{
lean_object* v___x_8277_; 
v___x_8277_ = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___redArg(v___y_8264_, v___y_8265_, v___y_8266_, v___y_8267_, v___y_8268_, v___y_8269_, v___y_8270_, v___y_8271_, v___y_8272_, v___y_8273_, v___y_8274_, v___y_8275_);
return v___x_8277_;
}
}
LEAN_EXPORT lean_object* l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0___boxed(lean_object* v_b_8278_, lean_object* v___y_8279_, lean_object* v___y_8280_, lean_object* v___y_8281_, lean_object* v___y_8282_, lean_object* v___y_8283_, lean_object* v___y_8284_, lean_object* v___y_8285_, lean_object* v___y_8286_, lean_object* v___y_8287_, lean_object* v___y_8288_, lean_object* v___y_8289_, lean_object* v___y_8290_, lean_object* v___y_8291_){
_start:
{
lean_object* v_res_8292_; 
v_res_8292_ = l___private_Init_While_0__Lean_Loop_forIn_loop___at___00__private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain_spec__0(v_b_8278_, v___y_8279_, v___y_8280_, v___y_8281_, v___y_8282_, v___y_8283_, v___y_8284_, v___y_8285_, v___y_8286_, v___y_8287_, v___y_8288_, v___y_8289_, v___y_8290_);
lean_dec_ref(v_b_8278_);
return v_res_8292_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__0(void){
_start:
{
lean_object* v___x_8293_; lean_object* v___x_8294_; lean_object* v___x_8295_; 
v___x_8293_ = lean_unsigned_to_nat(32u);
v___x_8294_ = lean_mk_empty_array_with_capacity(v___x_8293_);
v___x_8295_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8295_, 0, v___x_8294_);
return v___x_8295_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__1(void){
_start:
{
size_t v___x_8296_; lean_object* v___x_8297_; lean_object* v___x_8298_; lean_object* v___x_8299_; lean_object* v___x_8300_; lean_object* v___x_8301_; 
v___x_8296_ = ((size_t)5ULL);
v___x_8297_ = lean_unsigned_to_nat(0u);
v___x_8298_ = lean_unsigned_to_nat(32u);
v___x_8299_ = lean_mk_empty_array_with_capacity(v___x_8298_);
v___x_8300_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__0, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__0_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__0);
v___x_8301_ = lean_alloc_ctor(0, 4, sizeof(size_t)*1);
lean_ctor_set(v___x_8301_, 0, v___x_8300_);
lean_ctor_set(v___x_8301_, 1, v___x_8299_);
lean_ctor_set(v___x_8301_, 2, v___x_8297_);
lean_ctor_set(v___x_8301_, 3, v___x_8297_);
lean_ctor_set_usize(v___x_8301_, 4, v___x_8296_);
return v___x_8301_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__2(void){
_start:
{
lean_object* v___x_8302_; lean_object* v___x_8303_; lean_object* v___x_8304_; 
v___x_8302_ = lean_box(1);
v___x_8303_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__1, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__1_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__1);
v___x_8304_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_8304_, 0, v___x_8303_);
lean_ctor_set(v___x_8304_, 1, v___x_8302_);
return v___x_8304_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment(lean_object* v_a_8305_, lean_object* v_a_8306_, lean_object* v_a_8307_, lean_object* v_a_8308_, lean_object* v_a_8309_, lean_object* v_a_8310_, lean_object* v_a_8311_, lean_object* v_a_8312_, lean_object* v_a_8313_, lean_object* v_a_8314_, lean_object* v_a_8315_){
_start:
{
lean_object* v___x_8317_; lean_object* v___x_8318_; lean_object* v___y_8320_; lean_object* v___x_8330_; 
v___x_8317_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__2, &l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__2_once, _init_l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___closed__2);
v___x_8318_ = lean_st_mk_ref(v___x_8317_);
lean_inc(v_a_8306_);
lean_inc(v_a_8305_);
lean_inc(v___x_8318_);
v___x_8330_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignmentMain(v___x_8318_, v_a_8305_, v_a_8306_, v_a_8307_, v_a_8308_, v_a_8309_, v_a_8310_, v_a_8311_, v_a_8312_, v_a_8313_, v_a_8314_, v_a_8315_);
if (lean_obj_tag(v___x_8330_) == 0)
{
lean_object* v___x_8331_; 
lean_dec_ref(v___x_8330_);
v___x_8331_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_resetDecisionStack___redArg(v___x_8318_, v_a_8305_, v_a_8306_);
lean_dec(v_a_8306_);
v___y_8320_ = v___x_8331_;
goto v___jp_8319_;
}
else
{
lean_dec(v_a_8306_);
lean_dec(v_a_8305_);
v___y_8320_ = v___x_8330_;
goto v___jp_8319_;
}
v___jp_8319_:
{
if (lean_obj_tag(v___y_8320_) == 0)
{
lean_object* v_a_8321_; lean_object* v___x_8323_; uint8_t v_isShared_8324_; uint8_t v_isSharedCheck_8329_; 
v_a_8321_ = lean_ctor_get(v___y_8320_, 0);
v_isSharedCheck_8329_ = !lean_is_exclusive(v___y_8320_);
if (v_isSharedCheck_8329_ == 0)
{
v___x_8323_ = v___y_8320_;
v_isShared_8324_ = v_isSharedCheck_8329_;
goto v_resetjp_8322_;
}
else
{
lean_inc(v_a_8321_);
lean_dec(v___y_8320_);
v___x_8323_ = lean_box(0);
v_isShared_8324_ = v_isSharedCheck_8329_;
goto v_resetjp_8322_;
}
v_resetjp_8322_:
{
lean_object* v___x_8325_; lean_object* v___x_8327_; 
v___x_8325_ = lean_st_ref_get(v___x_8318_);
lean_dec(v___x_8318_);
lean_dec(v___x_8325_);
if (v_isShared_8324_ == 0)
{
v___x_8327_ = v___x_8323_;
goto v_reusejp_8326_;
}
else
{
lean_object* v_reuseFailAlloc_8328_; 
v_reuseFailAlloc_8328_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8328_, 0, v_a_8321_);
v___x_8327_ = v_reuseFailAlloc_8328_;
goto v_reusejp_8326_;
}
v_reusejp_8326_:
{
return v___x_8327_;
}
}
}
else
{
lean_dec(v___x_8318_);
return v___y_8320_;
}
}
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment___boxed(lean_object* v_a_8332_, lean_object* v_a_8333_, lean_object* v_a_8334_, lean_object* v_a_8335_, lean_object* v_a_8336_, lean_object* v_a_8337_, lean_object* v_a_8338_, lean_object* v_a_8339_, lean_object* v_a_8340_, lean_object* v_a_8341_, lean_object* v_a_8342_, lean_object* v_a_8343_){
_start:
{
lean_object* v_res_8344_; 
v_res_8344_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment(v_a_8332_, v_a_8333_, v_a_8334_, v_a_8335_, v_a_8336_, v_a_8337_, v_a_8338_, v_a_8339_, v_a_8340_, v_a_8341_, v_a_8342_);
return v_res_8344_;
}
}
LEAN_EXPORT lean_object* l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1___redArg(lean_object* v_category_8345_, lean_object* v_opts_8346_, lean_object* v_act_8347_, lean_object* v_decl_8348_, lean_object* v___y_8349_, lean_object* v___y_8350_, lean_object* v___y_8351_, lean_object* v___y_8352_, lean_object* v___y_8353_, lean_object* v___y_8354_, lean_object* v___y_8355_, lean_object* v___y_8356_, lean_object* v___y_8357_, lean_object* v___y_8358_){
_start:
{
lean_object* v___x_8360_; lean_object* v___x_8361_; 
v___x_8360_ = lean_apply_10(v_act_8347_, v___y_8349_, v___y_8350_, v___y_8351_, v___y_8352_, v___y_8353_, v___y_8354_, v___y_8355_, v___y_8356_, v___y_8357_, v___y_8358_);
v___x_8361_ = l_Lean_profileitIOUnsafe___redArg(v_category_8345_, v_opts_8346_, v___x_8360_, v_decl_8348_);
return v___x_8361_;
}
}
LEAN_EXPORT lean_object* l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1___redArg___boxed(lean_object* v_category_8362_, lean_object* v_opts_8363_, lean_object* v_act_8364_, lean_object* v_decl_8365_, lean_object* v___y_8366_, lean_object* v___y_8367_, lean_object* v___y_8368_, lean_object* v___y_8369_, lean_object* v___y_8370_, lean_object* v___y_8371_, lean_object* v___y_8372_, lean_object* v___y_8373_, lean_object* v___y_8374_, lean_object* v___y_8375_, lean_object* v___y_8376_){
_start:
{
lean_object* v_res_8377_; 
v_res_8377_ = l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1___redArg(v_category_8362_, v_opts_8363_, v_act_8364_, v_decl_8365_, v___y_8366_, v___y_8367_, v___y_8368_, v___y_8369_, v___y_8370_, v___y_8371_, v___y_8372_, v___y_8373_, v___y_8374_, v___y_8375_);
lean_dec_ref(v_opts_8363_);
lean_dec_ref(v_category_8362_);
return v_res_8377_;
}
}
LEAN_EXPORT lean_object* l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1(lean_object* v_00_u03b1_8378_, lean_object* v_category_8379_, lean_object* v_opts_8380_, lean_object* v_act_8381_, lean_object* v_decl_8382_, lean_object* v___y_8383_, lean_object* v___y_8384_, lean_object* v___y_8385_, lean_object* v___y_8386_, lean_object* v___y_8387_, lean_object* v___y_8388_, lean_object* v___y_8389_, lean_object* v___y_8390_, lean_object* v___y_8391_, lean_object* v___y_8392_){
_start:
{
lean_object* v___x_8394_; 
v___x_8394_ = l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1___redArg(v_category_8379_, v_opts_8380_, v_act_8381_, v_decl_8382_, v___y_8383_, v___y_8384_, v___y_8385_, v___y_8386_, v___y_8387_, v___y_8388_, v___y_8389_, v___y_8390_, v___y_8391_, v___y_8392_);
return v___x_8394_;
}
}
LEAN_EXPORT lean_object* l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1___boxed(lean_object* v_00_u03b1_8395_, lean_object* v_category_8396_, lean_object* v_opts_8397_, lean_object* v_act_8398_, lean_object* v_decl_8399_, lean_object* v___y_8400_, lean_object* v___y_8401_, lean_object* v___y_8402_, lean_object* v___y_8403_, lean_object* v___y_8404_, lean_object* v___y_8405_, lean_object* v___y_8406_, lean_object* v___y_8407_, lean_object* v___y_8408_, lean_object* v___y_8409_, lean_object* v___y_8410_){
_start:
{
lean_object* v_res_8411_; 
v_res_8411_ = l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1(v_00_u03b1_8395_, v_category_8396_, v_opts_8397_, v_act_8398_, v_decl_8399_, v___y_8400_, v___y_8401_, v___y_8402_, v___y_8403_, v___y_8404_, v___y_8405_, v___y_8406_, v___y_8407_, v___y_8408_, v___y_8409_);
lean_dec_ref(v_opts_8397_);
lean_dec_ref(v_category_8396_);
return v_res_8411_;
}
}
LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0___redArg(lean_object* v_upperBound_8412_, lean_object* v_a_8413_, lean_object* v_b_8414_, lean_object* v___y_8415_, lean_object* v___y_8416_, lean_object* v___y_8417_, lean_object* v___y_8418_, lean_object* v___y_8419_, lean_object* v___y_8420_, lean_object* v___y_8421_, lean_object* v___y_8422_, lean_object* v___y_8423_, lean_object* v___y_8424_){
_start:
{
uint8_t v___x_8426_; 
v___x_8426_ = lean_nat_dec_lt(v_a_8413_, v_upperBound_8412_);
if (v___x_8426_ == 0)
{
lean_object* v___x_8427_; 
lean_dec(v___y_8424_);
lean_dec_ref(v___y_8423_);
lean_dec(v___y_8422_);
lean_dec_ref(v___y_8421_);
lean_dec(v___y_8420_);
lean_dec_ref(v___y_8419_);
lean_dec(v___y_8418_);
lean_dec_ref(v___y_8417_);
lean_dec(v___y_8416_);
lean_dec(v___y_8415_);
lean_dec(v_a_8413_);
v___x_8427_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8427_, 0, v_b_8414_);
return v___x_8427_;
}
else
{
lean_object* v_snd_8428_; lean_object* v___x_8430_; uint8_t v_isShared_8431_; uint8_t v_isSharedCheck_8492_; 
v_snd_8428_ = lean_ctor_get(v_b_8414_, 1);
v_isSharedCheck_8492_ = !lean_is_exclusive(v_b_8414_);
if (v_isSharedCheck_8492_ == 0)
{
lean_object* v_unused_8493_; 
v_unused_8493_ = lean_ctor_get(v_b_8414_, 0);
lean_dec(v_unused_8493_);
v___x_8430_ = v_b_8414_;
v_isShared_8431_ = v_isSharedCheck_8492_;
goto v_resetjp_8429_;
}
else
{
lean_inc(v_snd_8428_);
lean_dec(v_b_8414_);
v___x_8430_ = lean_box(0);
v_isShared_8431_ = v_isSharedCheck_8492_;
goto v_resetjp_8429_;
}
v_resetjp_8429_:
{
lean_object* v___x_8432_; uint8_t v___y_8434_; uint8_t v_a_8466_; lean_object* v___x_8469_; 
v___x_8432_ = lean_box(0);
v___x_8469_ = l_Lean_Meta_Grind_Arith_Linear_hasAssignment(v_a_8413_, v___y_8415_, v___y_8416_, v___y_8417_, v___y_8418_, v___y_8419_, v___y_8420_, v___y_8421_, v___y_8422_, v___y_8423_, v___y_8424_);
if (lean_obj_tag(v___x_8469_) == 0)
{
lean_object* v_a_8470_; uint8_t v___x_8471_; 
v_a_8470_ = lean_ctor_get(v___x_8469_, 0);
lean_inc(v_a_8470_);
lean_dec_ref(v___x_8469_);
v___x_8471_ = lean_unbox(v_a_8470_);
lean_dec(v_a_8470_);
if (v___x_8471_ == 0)
{
lean_object* v___x_8472_; 
lean_inc(v___y_8424_);
lean_inc_ref(v___y_8423_);
lean_inc(v___y_8422_);
lean_inc_ref(v___y_8421_);
lean_inc(v___y_8420_);
lean_inc_ref(v___y_8419_);
lean_inc(v___y_8418_);
lean_inc_ref(v___y_8417_);
lean_inc(v___y_8416_);
lean_inc(v___y_8415_);
lean_inc(v_a_8413_);
v___x_8472_ = l___private_Lean_Meta_Tactic_Grind_Arith_Linear_Search_0__Lean_Meta_Grind_Arith_Linear_searchAssignment(v_a_8413_, v___y_8415_, v___y_8416_, v___y_8417_, v___y_8418_, v___y_8419_, v___y_8420_, v___y_8421_, v___y_8422_, v___y_8423_, v___y_8424_);
if (lean_obj_tag(v___x_8472_) == 0)
{
lean_dec_ref(v___x_8472_);
v_a_8466_ = v___x_8426_;
goto v___jp_8465_;
}
else
{
lean_object* v_a_8473_; lean_object* v___x_8475_; uint8_t v_isShared_8476_; uint8_t v_isSharedCheck_8480_; 
lean_del_object(v___x_8430_);
lean_dec(v_snd_8428_);
lean_dec(v___y_8424_);
lean_dec_ref(v___y_8423_);
lean_dec(v___y_8422_);
lean_dec_ref(v___y_8421_);
lean_dec(v___y_8420_);
lean_dec_ref(v___y_8419_);
lean_dec(v___y_8418_);
lean_dec_ref(v___y_8417_);
lean_dec(v___y_8416_);
lean_dec(v___y_8415_);
lean_dec(v_a_8413_);
v_a_8473_ = lean_ctor_get(v___x_8472_, 0);
v_isSharedCheck_8480_ = !lean_is_exclusive(v___x_8472_);
if (v_isSharedCheck_8480_ == 0)
{
v___x_8475_ = v___x_8472_;
v_isShared_8476_ = v_isSharedCheck_8480_;
goto v_resetjp_8474_;
}
else
{
lean_inc(v_a_8473_);
lean_dec(v___x_8472_);
v___x_8475_ = lean_box(0);
v_isShared_8476_ = v_isSharedCheck_8480_;
goto v_resetjp_8474_;
}
v_resetjp_8474_:
{
lean_object* v___x_8478_; 
if (v_isShared_8476_ == 0)
{
v___x_8478_ = v___x_8475_;
goto v_reusejp_8477_;
}
else
{
lean_object* v_reuseFailAlloc_8479_; 
v_reuseFailAlloc_8479_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8479_, 0, v_a_8473_);
v___x_8478_ = v_reuseFailAlloc_8479_;
goto v_reusejp_8477_;
}
v_reusejp_8477_:
{
return v___x_8478_;
}
}
}
}
else
{
uint8_t v___x_8481_; 
v___x_8481_ = 0;
v_a_8466_ = v___x_8481_;
goto v___jp_8465_;
}
}
else
{
if (lean_obj_tag(v___x_8469_) == 0)
{
lean_object* v_a_8482_; uint8_t v___x_8483_; 
v_a_8482_ = lean_ctor_get(v___x_8469_, 0);
lean_inc(v_a_8482_);
lean_dec_ref(v___x_8469_);
v___x_8483_ = lean_unbox(v_a_8482_);
lean_dec(v_a_8482_);
v_a_8466_ = v___x_8483_;
goto v___jp_8465_;
}
else
{
lean_object* v_a_8484_; lean_object* v___x_8486_; uint8_t v_isShared_8487_; uint8_t v_isSharedCheck_8491_; 
lean_del_object(v___x_8430_);
lean_dec(v_snd_8428_);
lean_dec(v___y_8424_);
lean_dec_ref(v___y_8423_);
lean_dec(v___y_8422_);
lean_dec_ref(v___y_8421_);
lean_dec(v___y_8420_);
lean_dec_ref(v___y_8419_);
lean_dec(v___y_8418_);
lean_dec_ref(v___y_8417_);
lean_dec(v___y_8416_);
lean_dec(v___y_8415_);
lean_dec(v_a_8413_);
v_a_8484_ = lean_ctor_get(v___x_8469_, 0);
v_isSharedCheck_8491_ = !lean_is_exclusive(v___x_8469_);
if (v_isSharedCheck_8491_ == 0)
{
v___x_8486_ = v___x_8469_;
v_isShared_8487_ = v_isSharedCheck_8491_;
goto v_resetjp_8485_;
}
else
{
lean_inc(v_a_8484_);
lean_dec(v___x_8469_);
v___x_8486_ = lean_box(0);
v_isShared_8487_ = v_isSharedCheck_8491_;
goto v_resetjp_8485_;
}
v_resetjp_8485_:
{
lean_object* v___x_8489_; 
if (v_isShared_8487_ == 0)
{
v___x_8489_ = v___x_8486_;
goto v_reusejp_8488_;
}
else
{
lean_object* v_reuseFailAlloc_8490_; 
v_reuseFailAlloc_8490_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8490_, 0, v_a_8484_);
v___x_8489_ = v_reuseFailAlloc_8490_;
goto v_reusejp_8488_;
}
v_reusejp_8488_:
{
return v___x_8489_;
}
}
}
}
v___jp_8433_:
{
lean_object* v___x_8435_; 
v___x_8435_ = l_Lean_Meta_Grind_isInconsistent___redArg(v___y_8415_);
if (lean_obj_tag(v___x_8435_) == 0)
{
lean_object* v_a_8436_; lean_object* v___x_8438_; uint8_t v_isShared_8439_; uint8_t v_isSharedCheck_8456_; 
v_a_8436_ = lean_ctor_get(v___x_8435_, 0);
v_isSharedCheck_8456_ = !lean_is_exclusive(v___x_8435_);
if (v_isSharedCheck_8456_ == 0)
{
v___x_8438_ = v___x_8435_;
v_isShared_8439_ = v_isSharedCheck_8456_;
goto v_resetjp_8437_;
}
else
{
lean_inc(v_a_8436_);
lean_dec(v___x_8435_);
v___x_8438_ = lean_box(0);
v_isShared_8439_ = v_isSharedCheck_8456_;
goto v_resetjp_8437_;
}
v_resetjp_8437_:
{
uint8_t v___x_8440_; 
v___x_8440_ = lean_unbox(v_a_8436_);
if (v___x_8440_ == 0)
{
lean_object* v___x_8441_; lean_object* v___x_8443_; 
lean_del_object(v___x_8438_);
lean_dec(v_a_8436_);
v___x_8441_ = lean_box(v___y_8434_);
if (v_isShared_8431_ == 0)
{
lean_ctor_set(v___x_8430_, 1, v___x_8441_);
lean_ctor_set(v___x_8430_, 0, v___x_8432_);
v___x_8443_ = v___x_8430_;
goto v_reusejp_8442_;
}
else
{
lean_object* v_reuseFailAlloc_8447_; 
v_reuseFailAlloc_8447_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_8447_, 0, v___x_8432_);
lean_ctor_set(v_reuseFailAlloc_8447_, 1, v___x_8441_);
v___x_8443_ = v_reuseFailAlloc_8447_;
goto v_reusejp_8442_;
}
v_reusejp_8442_:
{
lean_object* v___x_8444_; lean_object* v___x_8445_; 
v___x_8444_ = lean_unsigned_to_nat(1u);
v___x_8445_ = lean_nat_add(v_a_8413_, v___x_8444_);
lean_dec(v_a_8413_);
v_a_8413_ = v___x_8445_;
v_b_8414_ = v___x_8443_;
goto _start;
}
}
else
{
lean_object* v___x_8448_; lean_object* v___x_8449_; lean_object* v___x_8451_; 
lean_dec(v___y_8424_);
lean_dec_ref(v___y_8423_);
lean_dec(v___y_8422_);
lean_dec_ref(v___y_8421_);
lean_dec(v___y_8420_);
lean_dec_ref(v___y_8419_);
lean_dec(v___y_8418_);
lean_dec_ref(v___y_8417_);
lean_dec(v___y_8416_);
lean_dec(v___y_8415_);
lean_dec(v_a_8413_);
v___x_8448_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_8448_, 0, v_a_8436_);
v___x_8449_ = lean_box(v___y_8434_);
if (v_isShared_8431_ == 0)
{
lean_ctor_set(v___x_8430_, 1, v___x_8449_);
lean_ctor_set(v___x_8430_, 0, v___x_8448_);
v___x_8451_ = v___x_8430_;
goto v_reusejp_8450_;
}
else
{
lean_object* v_reuseFailAlloc_8455_; 
v_reuseFailAlloc_8455_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_8455_, 0, v___x_8448_);
lean_ctor_set(v_reuseFailAlloc_8455_, 1, v___x_8449_);
v___x_8451_ = v_reuseFailAlloc_8455_;
goto v_reusejp_8450_;
}
v_reusejp_8450_:
{
lean_object* v___x_8453_; 
if (v_isShared_8439_ == 0)
{
lean_ctor_set(v___x_8438_, 0, v___x_8451_);
v___x_8453_ = v___x_8438_;
goto v_reusejp_8452_;
}
else
{
lean_object* v_reuseFailAlloc_8454_; 
v_reuseFailAlloc_8454_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8454_, 0, v___x_8451_);
v___x_8453_ = v_reuseFailAlloc_8454_;
goto v_reusejp_8452_;
}
v_reusejp_8452_:
{
return v___x_8453_;
}
}
}
}
}
else
{
lean_object* v_a_8457_; lean_object* v___x_8459_; uint8_t v_isShared_8460_; uint8_t v_isSharedCheck_8464_; 
lean_del_object(v___x_8430_);
lean_dec(v___y_8424_);
lean_dec_ref(v___y_8423_);
lean_dec(v___y_8422_);
lean_dec_ref(v___y_8421_);
lean_dec(v___y_8420_);
lean_dec_ref(v___y_8419_);
lean_dec(v___y_8418_);
lean_dec_ref(v___y_8417_);
lean_dec(v___y_8416_);
lean_dec(v___y_8415_);
lean_dec(v_a_8413_);
v_a_8457_ = lean_ctor_get(v___x_8435_, 0);
v_isSharedCheck_8464_ = !lean_is_exclusive(v___x_8435_);
if (v_isSharedCheck_8464_ == 0)
{
v___x_8459_ = v___x_8435_;
v_isShared_8460_ = v_isSharedCheck_8464_;
goto v_resetjp_8458_;
}
else
{
lean_inc(v_a_8457_);
lean_dec(v___x_8435_);
v___x_8459_ = lean_box(0);
v_isShared_8460_ = v_isSharedCheck_8464_;
goto v_resetjp_8458_;
}
v_resetjp_8458_:
{
lean_object* v___x_8462_; 
if (v_isShared_8460_ == 0)
{
v___x_8462_ = v___x_8459_;
goto v_reusejp_8461_;
}
else
{
lean_object* v_reuseFailAlloc_8463_; 
v_reuseFailAlloc_8463_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8463_, 0, v_a_8457_);
v___x_8462_ = v_reuseFailAlloc_8463_;
goto v_reusejp_8461_;
}
v_reusejp_8461_:
{
return v___x_8462_;
}
}
}
}
v___jp_8465_:
{
uint8_t v___x_8467_; 
v___x_8467_ = lean_unbox(v_snd_8428_);
if (v___x_8467_ == 0)
{
lean_dec(v_snd_8428_);
v___y_8434_ = v_a_8466_;
goto v___jp_8433_;
}
else
{
uint8_t v___x_8468_; 
v___x_8468_ = lean_unbox(v_snd_8428_);
lean_dec(v_snd_8428_);
v___y_8434_ = v___x_8468_;
goto v___jp_8433_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0___redArg___boxed(lean_object* v_upperBound_8494_, lean_object* v_a_8495_, lean_object* v_b_8496_, lean_object* v___y_8497_, lean_object* v___y_8498_, lean_object* v___y_8499_, lean_object* v___y_8500_, lean_object* v___y_8501_, lean_object* v___y_8502_, lean_object* v___y_8503_, lean_object* v___y_8504_, lean_object* v___y_8505_, lean_object* v___y_8506_, lean_object* v___y_8507_){
_start:
{
lean_object* v_res_8508_; 
v_res_8508_ = l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0___redArg(v_upperBound_8494_, v_a_8495_, v_b_8496_, v___y_8497_, v___y_8498_, v___y_8499_, v___y_8500_, v___y_8501_, v___y_8502_, v___y_8503_, v___y_8504_, v___y_8505_, v___y_8506_);
lean_dec(v_upperBound_8494_);
return v_res_8508_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_check___lam__0(uint8_t v___x_8509_, lean_object* v___y_8510_, lean_object* v___y_8511_, lean_object* v___y_8512_, lean_object* v___y_8513_, lean_object* v___y_8514_, lean_object* v___y_8515_, lean_object* v___y_8516_, lean_object* v___y_8517_, lean_object* v___y_8518_, lean_object* v___y_8519_){
_start:
{
lean_object* v___x_8521_; 
v___x_8521_ = l_Lean_Meta_Grind_Arith_Linear_get_x27___redArg(v___y_8510_, v___y_8518_);
if (lean_obj_tag(v___x_8521_) == 0)
{
lean_object* v_a_8522_; lean_object* v_structs_8523_; lean_object* v___x_8524_; lean_object* v___x_8525_; lean_object* v___x_8526_; lean_object* v___x_8527_; lean_object* v___x_8528_; lean_object* v___x_8529_; 
v_a_8522_ = lean_ctor_get(v___x_8521_, 0);
lean_inc(v_a_8522_);
lean_dec_ref(v___x_8521_);
v_structs_8523_ = lean_ctor_get(v_a_8522_, 0);
lean_inc_ref(v_structs_8523_);
lean_dec(v_a_8522_);
v___x_8524_ = lean_array_get_size(v_structs_8523_);
lean_dec_ref(v_structs_8523_);
v___x_8525_ = lean_unsigned_to_nat(0u);
v___x_8526_ = lean_box(0);
v___x_8527_ = lean_box(v___x_8509_);
v___x_8528_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v___x_8528_, 0, v___x_8526_);
lean_ctor_set(v___x_8528_, 1, v___x_8527_);
v___x_8529_ = l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0___redArg(v___x_8524_, v___x_8525_, v___x_8528_, v___y_8510_, v___y_8511_, v___y_8512_, v___y_8513_, v___y_8514_, v___y_8515_, v___y_8516_, v___y_8517_, v___y_8518_, v___y_8519_);
if (lean_obj_tag(v___x_8529_) == 0)
{
lean_object* v_a_8530_; lean_object* v___x_8532_; uint8_t v_isShared_8533_; uint8_t v_isSharedCheck_8543_; 
v_a_8530_ = lean_ctor_get(v___x_8529_, 0);
v_isSharedCheck_8543_ = !lean_is_exclusive(v___x_8529_);
if (v_isSharedCheck_8543_ == 0)
{
v___x_8532_ = v___x_8529_;
v_isShared_8533_ = v_isSharedCheck_8543_;
goto v_resetjp_8531_;
}
else
{
lean_inc(v_a_8530_);
lean_dec(v___x_8529_);
v___x_8532_ = lean_box(0);
v_isShared_8533_ = v_isSharedCheck_8543_;
goto v_resetjp_8531_;
}
v_resetjp_8531_:
{
lean_object* v_fst_8534_; 
v_fst_8534_ = lean_ctor_get(v_a_8530_, 0);
if (lean_obj_tag(v_fst_8534_) == 0)
{
lean_object* v_snd_8535_; lean_object* v___x_8537_; 
v_snd_8535_ = lean_ctor_get(v_a_8530_, 1);
lean_inc(v_snd_8535_);
lean_dec(v_a_8530_);
if (v_isShared_8533_ == 0)
{
lean_ctor_set(v___x_8532_, 0, v_snd_8535_);
v___x_8537_ = v___x_8532_;
goto v_reusejp_8536_;
}
else
{
lean_object* v_reuseFailAlloc_8538_; 
v_reuseFailAlloc_8538_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8538_, 0, v_snd_8535_);
v___x_8537_ = v_reuseFailAlloc_8538_;
goto v_reusejp_8536_;
}
v_reusejp_8536_:
{
return v___x_8537_;
}
}
else
{
lean_object* v_val_8539_; lean_object* v___x_8541_; 
lean_inc_ref(v_fst_8534_);
lean_dec(v_a_8530_);
v_val_8539_ = lean_ctor_get(v_fst_8534_, 0);
lean_inc(v_val_8539_);
lean_dec_ref(v_fst_8534_);
if (v_isShared_8533_ == 0)
{
lean_ctor_set(v___x_8532_, 0, v_val_8539_);
v___x_8541_ = v___x_8532_;
goto v_reusejp_8540_;
}
else
{
lean_object* v_reuseFailAlloc_8542_; 
v_reuseFailAlloc_8542_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8542_, 0, v_val_8539_);
v___x_8541_ = v_reuseFailAlloc_8542_;
goto v_reusejp_8540_;
}
v_reusejp_8540_:
{
return v___x_8541_;
}
}
}
}
else
{
lean_object* v_a_8544_; lean_object* v___x_8546_; uint8_t v_isShared_8547_; uint8_t v_isSharedCheck_8551_; 
v_a_8544_ = lean_ctor_get(v___x_8529_, 0);
v_isSharedCheck_8551_ = !lean_is_exclusive(v___x_8529_);
if (v_isSharedCheck_8551_ == 0)
{
v___x_8546_ = v___x_8529_;
v_isShared_8547_ = v_isSharedCheck_8551_;
goto v_resetjp_8545_;
}
else
{
lean_inc(v_a_8544_);
lean_dec(v___x_8529_);
v___x_8546_ = lean_box(0);
v_isShared_8547_ = v_isSharedCheck_8551_;
goto v_resetjp_8545_;
}
v_resetjp_8545_:
{
lean_object* v___x_8549_; 
if (v_isShared_8547_ == 0)
{
v___x_8549_ = v___x_8546_;
goto v_reusejp_8548_;
}
else
{
lean_object* v_reuseFailAlloc_8550_; 
v_reuseFailAlloc_8550_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8550_, 0, v_a_8544_);
v___x_8549_ = v_reuseFailAlloc_8550_;
goto v_reusejp_8548_;
}
v_reusejp_8548_:
{
return v___x_8549_;
}
}
}
}
else
{
lean_object* v_a_8552_; lean_object* v___x_8554_; uint8_t v_isShared_8555_; uint8_t v_isSharedCheck_8559_; 
lean_dec(v___y_8519_);
lean_dec_ref(v___y_8518_);
lean_dec(v___y_8517_);
lean_dec_ref(v___y_8516_);
lean_dec(v___y_8515_);
lean_dec_ref(v___y_8514_);
lean_dec(v___y_8513_);
lean_dec_ref(v___y_8512_);
lean_dec(v___y_8511_);
lean_dec(v___y_8510_);
v_a_8552_ = lean_ctor_get(v___x_8521_, 0);
v_isSharedCheck_8559_ = !lean_is_exclusive(v___x_8521_);
if (v_isSharedCheck_8559_ == 0)
{
v___x_8554_ = v___x_8521_;
v_isShared_8555_ = v_isSharedCheck_8559_;
goto v_resetjp_8553_;
}
else
{
lean_inc(v_a_8552_);
lean_dec(v___x_8521_);
v___x_8554_ = lean_box(0);
v_isShared_8555_ = v_isSharedCheck_8559_;
goto v_resetjp_8553_;
}
v_resetjp_8553_:
{
lean_object* v___x_8557_; 
if (v_isShared_8555_ == 0)
{
v___x_8557_ = v___x_8554_;
goto v_reusejp_8556_;
}
else
{
lean_object* v_reuseFailAlloc_8558_; 
v_reuseFailAlloc_8558_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8558_, 0, v_a_8552_);
v___x_8557_ = v_reuseFailAlloc_8558_;
goto v_reusejp_8556_;
}
v_reusejp_8556_:
{
return v___x_8557_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_check___lam__0___boxed(lean_object* v___x_8560_, lean_object* v___y_8561_, lean_object* v___y_8562_, lean_object* v___y_8563_, lean_object* v___y_8564_, lean_object* v___y_8565_, lean_object* v___y_8566_, lean_object* v___y_8567_, lean_object* v___y_8568_, lean_object* v___y_8569_, lean_object* v___y_8570_, lean_object* v___y_8571_){
_start:
{
uint8_t v___x_17149__boxed_8572_; lean_object* v_res_8573_; 
v___x_17149__boxed_8572_ = lean_unbox(v___x_8560_);
v_res_8573_ = l_Lean_Meta_Grind_Arith_Linear_check___lam__0(v___x_17149__boxed_8572_, v___y_8561_, v___y_8562_, v___y_8563_, v___y_8564_, v___y_8565_, v___y_8566_, v___y_8567_, v___y_8568_, v___y_8569_, v___y_8570_);
return v_res_8573_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_check(lean_object* v_a_8578_, lean_object* v_a_8579_, lean_object* v_a_8580_, lean_object* v_a_8581_, lean_object* v_a_8582_, lean_object* v_a_8583_, lean_object* v_a_8584_, lean_object* v_a_8585_, lean_object* v_a_8586_, lean_object* v_a_8587_){
_start:
{
lean_object* v_options_8589_; lean_object* v___x_8590_; lean_object* v___f_8591_; lean_object* v___x_8592_; lean_object* v___x_8593_; 
v_options_8589_ = lean_ctor_get(v_a_8586_, 2);
lean_inc_ref(v_options_8589_);
v___x_8590_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_check___closed__0));
v___f_8591_ = ((lean_object*)(l_Lean_Meta_Grind_Arith_Linear_check___closed__1));
v___x_8592_ = lean_box(0);
v___x_8593_ = l_Lean_profileitM___at___00Lean_Meta_Grind_Arith_Linear_check_spec__1___redArg(v___x_8590_, v_options_8589_, v___f_8591_, v___x_8592_, v_a_8578_, v_a_8579_, v_a_8580_, v_a_8581_, v_a_8582_, v_a_8583_, v_a_8584_, v_a_8585_, v_a_8586_, v_a_8587_);
lean_dec_ref(v_options_8589_);
return v___x_8593_;
}
}
LEAN_EXPORT lean_object* l_Lean_Meta_Grind_Arith_Linear_check___boxed(lean_object* v_a_8594_, lean_object* v_a_8595_, lean_object* v_a_8596_, lean_object* v_a_8597_, lean_object* v_a_8598_, lean_object* v_a_8599_, lean_object* v_a_8600_, lean_object* v_a_8601_, lean_object* v_a_8602_, lean_object* v_a_8603_, lean_object* v_a_8604_){
_start:
{
lean_object* v_res_8605_; 
v_res_8605_ = l_Lean_Meta_Grind_Arith_Linear_check(v_a_8594_, v_a_8595_, v_a_8596_, v_a_8597_, v_a_8598_, v_a_8599_, v_a_8600_, v_a_8601_, v_a_8602_, v_a_8603_);
return v_res_8605_;
}
}
LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0(lean_object* v_upperBound_8606_, lean_object* v_inst_8607_, lean_object* v_R_8608_, lean_object* v_a_8609_, lean_object* v_b_8610_, lean_object* v_c_8611_, lean_object* v___y_8612_, lean_object* v___y_8613_, lean_object* v___y_8614_, lean_object* v___y_8615_, lean_object* v___y_8616_, lean_object* v___y_8617_, lean_object* v___y_8618_, lean_object* v___y_8619_, lean_object* v___y_8620_, lean_object* v___y_8621_){
_start:
{
lean_object* v___x_8623_; 
v___x_8623_ = l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0___redArg(v_upperBound_8606_, v_a_8609_, v_b_8610_, v___y_8612_, v___y_8613_, v___y_8614_, v___y_8615_, v___y_8616_, v___y_8617_, v___y_8618_, v___y_8619_, v___y_8620_, v___y_8621_);
return v___x_8623_;
}
}
LEAN_EXPORT lean_object* l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0___boxed(lean_object** _args){
lean_object* v_upperBound_8624_ = _args[0];
lean_object* v_inst_8625_ = _args[1];
lean_object* v_R_8626_ = _args[2];
lean_object* v_a_8627_ = _args[3];
lean_object* v_b_8628_ = _args[4];
lean_object* v_c_8629_ = _args[5];
lean_object* v___y_8630_ = _args[6];
lean_object* v___y_8631_ = _args[7];
lean_object* v___y_8632_ = _args[8];
lean_object* v___y_8633_ = _args[9];
lean_object* v___y_8634_ = _args[10];
lean_object* v___y_8635_ = _args[11];
lean_object* v___y_8636_ = _args[12];
lean_object* v___y_8637_ = _args[13];
lean_object* v___y_8638_ = _args[14];
lean_object* v___y_8639_ = _args[15];
lean_object* v___y_8640_ = _args[16];
_start:
{
lean_object* v_res_8641_; 
v_res_8641_ = l_WellFounded_opaqueFix_u2083___at___00Lean_Meta_Grind_Arith_Linear_check_spec__0(v_upperBound_8624_, v_inst_8625_, v_R_8626_, v_a_8627_, v_b_8628_, v_c_8629_, v___y_8630_, v___y_8631_, v___y_8632_, v___y_8633_, v___y_8634_, v___y_8635_, v___y_8636_, v___y_8637_, v___y_8638_, v___y_8639_);
lean_dec(v_upperBound_8624_);
return v_res_8641_;
}
}
lean_object* runtime_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_SearchM(uint8_t builtin);
lean_object* runtime_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_IneqCnstr(uint8_t builtin);
lean_object* runtime_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Proof(uint8_t builtin);
static bool _G_runtime_initialized = false;
LEAN_EXPORT lean_object* runtime_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Search(uint8_t builtin) {
lean_object * res;
if (_G_runtime_initialized) return lean_io_result_mk_ok(lean_box(0));
_G_runtime_initialized = true;
res = runtime_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_SearchM(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = runtime_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_IneqCnstr(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = runtime_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Proof(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
return lean_io_result_mk_ok(lean_box(0));
}
static bool _G_meta_initialized = false;
LEAN_EXPORT lean_object* meta_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Search(uint8_t builtin) {
lean_object * res;
if (_G_meta_initialized) return lean_io_result_mk_ok(lean_box(0));
_G_meta_initialized = true;
return lean_io_result_mk_ok(lean_box(0));
}
lean_object* initialize_Lean_Meta_Tactic_Grind_Arith_Linear_SearchM(uint8_t builtin);
lean_object* initialize_Lean_Meta_Tactic_Grind_Arith_Linear_IneqCnstr(uint8_t builtin);
lean_object* initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Proof(uint8_t builtin);
static bool _G_initialized = false;
LEAN_EXPORT lean_object* initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Search(uint8_t builtin) {
lean_object * res;
if (_G_initialized) return lean_io_result_mk_ok(lean_box(0));
_G_initialized = true;
res = initialize_Lean_Meta_Tactic_Grind_Arith_Linear_SearchM(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = initialize_Lean_Meta_Tactic_Grind_Arith_Linear_IneqCnstr(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Proof(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = runtime_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Search(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = meta_initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Search(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
return initialize_Lean_Meta_Tactic_Grind_Arith_Linear_Search(builtin);
}
#ifdef __cplusplus
}
#endif
