// Lean compiler output
// Module: Lean.Meta.Tactic.Simp.BuiltinSimprocs.BitVec
// Imports: public import Lean.Meta.Tactic.Simp.BuiltinSimprocs.Int import Init.Data.BitVec.Lemmas
#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* l_Lean_Name_mkStr2(lean_object*, lean_object*);
uint8_t l_Lean_Expr_isAppOfArity(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_appFn_x21(lean_object*);
lean_object* l_Lean_Expr_appArg_x21(lean_object*);
lean_object* l_Lean_Meta_getBitVecValue_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t lean_nat_dec_eq(lean_object*, lean_object*);
uint8_t l_BitVec_slt(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkConst(lean_object*, lean_object*);
lean_object* l_BitVec_srem(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_Simp_getConfig___redArg(lean_object*);
lean_object* l_Lean_Name_mkStr1(lean_object*);
lean_object* l_Lean_mkNatLit(lean_object*);
lean_object* l_Lean_Expr_app___override(lean_object*, lean_object*);
lean_object* l_Lean_Meta_mkNumeral(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_const___override(lean_object*, lean_object*);
lean_object* l_Lean_mkAppB(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_getNatValue_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* lean_nat_add(lean_object*, lean_object*);
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
lean_object* lean_array_push(lean_object*, lean_object*);
lean_object* l_Lean_Meta_mkAppM(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_mkEqSymm(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_add(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(lean_object*, uint8_t, lean_object*);
lean_object* l_BitVec_clz(lean_object*, lean_object*);
lean_object* l_BitVec_setWidth(lean_object*, lean_object*, lean_object*);
uint8_t lean_nat_dec_le(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Simp_evalPropStep___redArg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_smtUDiv(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_Simp_registerBuiltinDSimproc(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_shiftLeft(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(lean_object*, lean_object*);
lean_object* l_Lean_Expr_cleanupAnnotations(lean_object*);
uint8_t l_Lean_Expr_isApp(lean_object*);
lean_object* l_Lean_Expr_appFnCleanup___redArg(lean_object*);
uint8_t l_Lean_Expr_isConstOf(lean_object*, lean_object*);
lean_object* lean_nat_mul(lean_object*, lean_object*);
lean_object* l_BitVec_replicate(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_not(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Simp_addSimprocBuiltinAttr(lean_object*, uint8_t, lean_object*);
lean_object* lean_nat_land(lean_object*, lean_object*);
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
lean_object* l_BitVec_signExtend(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_cpop(lean_object*, lean_object*);
lean_object* l_BitVec_extractLsb_x27___redArg(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_evalNat(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_getFinValue_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_ofNat(lean_object*, lean_object*);
lean_object* lean_nat_mod(lean_object*, lean_object*);
lean_object* l_BitVec_smtSDiv(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_append___redArg(lean_object*, lean_object*, lean_object*);
lean_object* lean_nat_lor(lean_object*, lean_object*);
lean_object* lean_nat_shiftr(lean_object*, lean_object*);
lean_object* l_BitVec_sdiv(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_smod(lean_object*, lean_object*, lean_object*);
uint8_t l_Nat_testBit(lean_object*, lean_object*);
lean_object* l_BitVec_mul(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_rotateLeft(lean_object*, lean_object*, lean_object*);
lean_object* lean_nat_sub(lean_object*, lean_object*);
lean_object* lean_nat_div(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Simp_registerBuiltinSimproc(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_allOnes(lean_object*);
lean_object* l_Lean_Meta_getIntValue_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_ofInt(lean_object*, lean_object*);
lean_object* l_BitVec_toInt(lean_object*, lean_object*);
lean_object* lean_nat_to_int(lean_object*);
uint8_t lean_int_dec_le(lean_object*, lean_object*);
lean_object* l_Lean_Level_ofNat(lean_object*);
lean_object* lean_int_neg(lean_object*);
lean_object* l_Int_toNat(lean_object*);
lean_object* l_Lean_instToExprInt_mkNat(lean_object*);
lean_object* l_Lean_mkApp3(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_sshiftRight(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_rotateRight(lean_object*, lean_object*, lean_object*);
lean_object* lean_nat_lxor(lean_object*, lean_object*);
lean_object* lean_nat_shiftl(lean_object*, lean_object*);
lean_object* l_BitVec_sub(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_neg(lean_object*, lean_object*);
lean_object* l_Nat_reprFast(lean_object*);
lean_object* l_BitVec_repr(lean_object*, lean_object*);
lean_object* lean_string_length(lean_object*);
uint8_t l_BitVec_sle(lean_object*, lean_object*, lean_object*);
lean_object* l_BitVec_abs(lean_object*, lean_object*);
lean_object* lean_nat_pow(lean_object*, lean_object*);
lean_object* l_Lean_mkRawNatLit(lean_object*);
LEAN_EXPORT uint8_t l_BitVec_instDecidableEqLiteral_decEq(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_instDecidableEqLiteral_decEq___boxed(lean_object*, lean_object*);
LEAN_EXPORT uint8_t l_BitVec_instDecidableEqLiteral(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_instDecidableEqLiteral___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Nat_cast___at___00BitVec_instReprLiteral_repr_spec__0(lean_object*);
static const lean_string_object l_BitVec_instReprLiteral_repr___redArg___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 = "{ "};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__0 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__0_value;
static const lean_string_object l_BitVec_instReprLiteral_repr___redArg___closed__1_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 = "n"};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__1 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_instReprLiteral_repr___redArg___closed__2_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 3}, .m_objs = {((lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__1_value)}};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__2 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__2_value;
static const lean_ctor_object l_BitVec_instReprLiteral_repr___redArg___closed__3_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 5}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__2_value)}};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__3 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__3_value;
static const lean_string_object l_BitVec_instReprLiteral_repr___redArg___closed__4_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_BitVec_instReprLiteral_repr___redArg___closed__4 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__4_value;
static const lean_ctor_object l_BitVec_instReprLiteral_repr___redArg___closed__5_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 3}, .m_objs = {((lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__4_value)}};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__5 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__5_value;
static const lean_ctor_object l_BitVec_instReprLiteral_repr___redArg___closed__6_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 5}, .m_objs = {((lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__3_value),((lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__5_value)}};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__6 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__6_value;
static lean_once_cell_t l_BitVec_instReprLiteral_repr___redArg___closed__7_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__7;
static const lean_string_object l_BitVec_instReprLiteral_repr___redArg___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_BitVec_instReprLiteral_repr___redArg___closed__8 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__8_value;
static const lean_ctor_object l_BitVec_instReprLiteral_repr___redArg___closed__9_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 3}, .m_objs = {((lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__8_value)}};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__9 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__9_value;
static const lean_string_object l_BitVec_instReprLiteral_repr___redArg___closed__10_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 = "value"};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__10 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__10_value;
static const lean_ctor_object l_BitVec_instReprLiteral_repr___redArg___closed__11_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 3}, .m_objs = {((lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__10_value)}};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__11 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__11_value;
static lean_once_cell_t l_BitVec_instReprLiteral_repr___redArg___closed__12_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__12;
static const lean_string_object l_BitVec_instReprLiteral_repr___redArg___closed__13_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_BitVec_instReprLiteral_repr___redArg___closed__13 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__13_value;
static lean_once_cell_t l_BitVec_instReprLiteral_repr___redArg___closed__14_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__14;
static lean_once_cell_t l_BitVec_instReprLiteral_repr___redArg___closed__15_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__15;
static const lean_ctor_object l_BitVec_instReprLiteral_repr___redArg___closed__16_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 3}, .m_objs = {((lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__0_value)}};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__16 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__16_value;
static const lean_ctor_object l_BitVec_instReprLiteral_repr___redArg___closed__17_value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*1 + 0, .m_other = 1, .m_tag = 3}, .m_objs = {((lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__13_value)}};
static const lean_object* l_BitVec_instReprLiteral_repr___redArg___closed__17 = (const lean_object*)&l_BitVec_instReprLiteral_repr___redArg___closed__17_value;
LEAN_EXPORT lean_object* l_BitVec_instReprLiteral_repr___redArg(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_instReprLiteral_repr(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_instReprLiteral_repr___boxed(lean_object*, lean_object*);
static const lean_closure_object l_BitVec_instReprLiteral___closed__0_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_BitVec_instReprLiteral_repr___boxed, .m_arity = 2, .m_num_fixed = 0, .m_objs = {} };
static const lean_object* l_BitVec_instReprLiteral___closed__0 = (const lean_object*)&l_BitVec_instReprLiteral___closed__0_value;
LEAN_EXPORT const lean_object* l_BitVec_instReprLiteral = (const lean_object*)&l_BitVec_instReprLiteral___closed__0_value;
LEAN_EXPORT lean_object* l_BitVec_fromExpr_x3f___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_fromExpr_x3f___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_fromExpr_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_fromExpr_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
static const lean_string_object l_BitVec_toExpr_x27___redArg___closed__0_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 = "BitVec"};
static const lean_object* l_BitVec_toExpr_x27___redArg___closed__0 = (const lean_object*)&l_BitVec_toExpr_x27___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_toExpr_x27___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_object* l_BitVec_toExpr_x27___redArg___closed__1 = (const lean_object*)&l_BitVec_toExpr_x27___redArg___closed__1_value;
static lean_once_cell_t l_BitVec_toExpr_x27___redArg___closed__2_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_toExpr_x27___redArg___closed__2;
static const lean_string_object l_BitVec_toExpr_x27___redArg___closed__3_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 = "ofNat"};
static const lean_object* l_BitVec_toExpr_x27___redArg___closed__3 = (const lean_object*)&l_BitVec_toExpr_x27___redArg___closed__3_value;
static const lean_ctor_object l_BitVec_toExpr_x27___redArg___closed__4_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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_toExpr_x27___redArg___closed__4_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_BitVec_toExpr_x27___redArg___closed__4_value_aux_0),((lean_object*)&l_BitVec_toExpr_x27___redArg___closed__3_value),LEAN_SCALAR_PTR_LITERAL(101, 105, 192, 171, 214, 131, 43, 105)}};
static const lean_object* l_BitVec_toExpr_x27___redArg___closed__4 = (const lean_object*)&l_BitVec_toExpr_x27___redArg___closed__4_value;
static lean_once_cell_t l_BitVec_toExpr_x27___redArg___closed__5_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_toExpr_x27___redArg___closed__5;
LEAN_EXPORT lean_object* l_BitVec_toExpr_x27___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_toExpr_x27___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_toExpr_x27(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_toExpr_x27___boxed(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_BitVec_reduceUnary___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 = 2}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l_BitVec_reduceUnary___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceUnary___redArg___closed__0_value;
LEAN_EXPORT lean_object* l_BitVec_reduceUnary___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUnary___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUnary(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_BitVec_reduceUnary___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_BitVec_reduceBin___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBin___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBin(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_BitVec_reduceBin___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_BitVec_reduceExtend___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceExtend___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceExtend(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_BitVec_reduceExtend___boxed(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_BitVec_reduceGetBit___redArg___closed__0_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 = "Bool"};
static const lean_object* l_BitVec_reduceGetBit___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceGetBit___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceGetBit___redArg___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 = "false"};
static const lean_object* l_BitVec_reduceGetBit___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceGetBit___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceGetBit___redArg___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_BitVec_reduceGetBit___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(250, 44, 198, 216, 184, 195, 199, 178)}};
static const lean_ctor_object l_BitVec_reduceGetBit___redArg___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_BitVec_reduceGetBit___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceGetBit___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(117, 151, 161, 190, 111, 237, 188, 218)}};
static const lean_object* l_BitVec_reduceGetBit___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceGetBit___redArg___closed__2_value;
static lean_once_cell_t l_BitVec_reduceGetBit___redArg___closed__3_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceGetBit___redArg___closed__3;
static const lean_string_object l_BitVec_reduceGetBit___redArg___closed__4_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 = "true"};
static const lean_object* l_BitVec_reduceGetBit___redArg___closed__4 = (const lean_object*)&l_BitVec_reduceGetBit___redArg___closed__4_value;
static const lean_ctor_object l_BitVec_reduceGetBit___redArg___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_BitVec_reduceGetBit___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(250, 44, 198, 216, 184, 195, 199, 178)}};
static const lean_ctor_object l_BitVec_reduceGetBit___redArg___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_BitVec_reduceGetBit___redArg___closed__5_value_aux_0),((lean_object*)&l_BitVec_reduceGetBit___redArg___closed__4_value),LEAN_SCALAR_PTR_LITERAL(22, 245, 194, 28, 184, 9, 113, 128)}};
static const lean_object* l_BitVec_reduceGetBit___redArg___closed__5 = (const lean_object*)&l_BitVec_reduceGetBit___redArg___closed__5_value;
static lean_once_cell_t l_BitVec_reduceGetBit___redArg___closed__6_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceGetBit___redArg___closed__6;
LEAN_EXPORT lean_object* l_BitVec_reduceGetBit___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetBit___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetBit(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_BitVec_reduceGetBit___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_BitVec_reduceShift___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShift___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShift(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_BitVec_reduceShift___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_BitVec_reduceShiftWithBitVecLit___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftWithBitVecLit___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftWithBitVecLit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftWithBitVecLit___boxed(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_BitVec_reduceBinPred___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 = 2}, .m_objs = {((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l_BitVec_reduceBinPred___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceBinPred___redArg___closed__0_value;
LEAN_EXPORT lean_object* l_BitVec_reduceBinPred___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBinPred___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBinPred(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_BitVec_reduceBinPred___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_BitVec_reduceBoolPred___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBoolPred___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBoolPred(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_BitVec_reduceBoolPred___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_BitVec_reduceNeg___redArg___closed__0_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 = "Neg"};
static const lean_object* l_BitVec_reduceNeg___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceNeg___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceNeg___redArg___closed__1_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 = "neg"};
static const lean_object* l_BitVec_reduceNeg___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceNeg___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceNeg___redArg___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_BitVec_reduceNeg___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(94, 4, 109, 108, 64, 81, 153, 133)}};
static const lean_ctor_object l_BitVec_reduceNeg___redArg___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_BitVec_reduceNeg___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceNeg___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(105, 26, 70, 221, 245, 238, 127, 238)}};
static const lean_object* l_BitVec_reduceNeg___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceNeg___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNeg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__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 = "reduceNeg"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),LEAN_SCALAR_PTR_LITERAL(134, 176, 68, 22, 19, 77, 226, 111)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceNeg___redArg___closed__2_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_toExpr_x27___redArg___closed__1_value),((lean_object*)(((size_t)(1) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__4_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*5, .m_other = 0, .m_tag = 246}, .m_size = 5, .m_capacity = 5, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__4_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__4_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_;
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_23____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceNot___redArg___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 = "Complement"};
static const lean_object* l_BitVec_reduceNot___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceNot___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceNot___redArg___closed__1_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 = "complement"};
static const lean_object* l_BitVec_reduceNot___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceNot___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceNot___redArg___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_BitVec_reduceNot___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(6, 52, 244, 64, 3, 58, 115, 79)}};
static const lean_ctor_object l_BitVec_reduceNot___redArg___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_BitVec_reduceNot___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceNot___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(168, 254, 142, 44, 189, 175, 152, 168)}};
static const lean_object* l_BitVec_reduceNot___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceNot___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceNot___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNot___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNot(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNot___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__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 = "reduceNot"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__value),LEAN_SCALAR_PTR_LITERAL(227, 235, 116, 73, 134, 223, 144, 10)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceNot___redArg___closed__2_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*5, .m_other = 0, .m_tag = 246}, .m_size = 5, .m_capacity = 5, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_;
LEAN_EXPORT lean_object* l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_23____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceAbs___redArg___closed__0_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 = "abs"};
static const lean_object* l_BitVec_reduceAbs___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceAbs___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceAbs___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceAbs___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_BitVec_reduceAbs___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceAbs___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(104, 35, 81, 175, 100, 178, 232, 0)}};
static const lean_object* l_BitVec_reduceAbs___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceAbs___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAbs(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__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 = "reduceAbs"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__value),LEAN_SCALAR_PTR_LITERAL(168, 175, 17, 184, 179, 163, 122, 72)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceAbs___redArg___closed__1_value),((lean_object*)(((size_t)(2) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*3, .m_other = 0, .m_tag = 246}, .m_size = 3, .m_capacity = 3, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_;
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_();
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_17_();
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_17____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceAnd___redArg___closed__0_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 = "HAnd"};
static const lean_object* l_BitVec_reduceAnd___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceAnd___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceAnd___redArg___closed__1_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 = "hAnd"};
static const lean_object* l_BitVec_reduceAnd___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceAnd___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceAnd___redArg___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_BitVec_reduceAnd___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(222, 205, 8, 181, 48, 134, 168, 175)}};
static const lean_ctor_object l_BitVec_reduceAnd___redArg___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_BitVec_reduceAnd___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceAnd___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(54, 171, 107, 112, 94, 43, 106, 200)}};
static const lean_object* l_BitVec_reduceAnd___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceAnd___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAnd(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__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 = "reduceAnd"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(47, 188, 5, 208, 79, 212, 248, 57)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceAnd___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_24____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceOr___redArg___closed__0_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 = "HOr"};
static const lean_object* l_BitVec_reduceOr___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceOr___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceOr___redArg___closed__1_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 = "hOr"};
static const lean_object* l_BitVec_reduceOr___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceOr___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceOr___redArg___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_BitVec_reduceOr___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(145, 77, 185, 226, 52, 149, 89, 139)}};
static const lean_ctor_object l_BitVec_reduceOr___redArg___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_BitVec_reduceOr___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceOr___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(45, 86, 165, 237, 21, 139, 25, 132)}};
static const lean_object* l_BitVec_reduceOr___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceOr___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceOr___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOr___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOr___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__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 = "reduceOr"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(54, 228, 14, 191, 212, 19, 115, 207)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceOr___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_24____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceXOr___redArg___closed__0_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 = "HXor"};
static const lean_object* l_BitVec_reduceXOr___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceXOr___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceXOr___redArg___closed__1_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 = "hXor"};
static const lean_object* l_BitVec_reduceXOr___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceXOr___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceXOr___redArg___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_BitVec_reduceXOr___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(92, 198, 212, 133, 26, 7, 147, 78)}};
static const lean_ctor_object l_BitVec_reduceXOr___redArg___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_BitVec_reduceXOr___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceXOr___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(109, 159, 33, 254, 118, 42, 120, 166)}};
static const lean_object* l_BitVec_reduceXOr___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceXOr___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceXOr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__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 = "reduceXOr"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(6, 71, 112, 113, 55, 230, 40, 196)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceXOr___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_24____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceAdd___redArg___closed__0_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 = "HAdd"};
static const lean_object* l_BitVec_reduceAdd___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceAdd___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceAdd___redArg___closed__1_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 = "hAdd"};
static const lean_object* l_BitVec_reduceAdd___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceAdd___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceAdd___redArg___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_BitVec_reduceAdd___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(221, 239, 47, 196, 170, 166, 59, 144)}};
static const lean_ctor_object l_BitVec_reduceAdd___redArg___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_BitVec_reduceAdd___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceAdd___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(134, 172, 115, 219, 189, 252, 56, 148)}};
static const lean_object* l_BitVec_reduceAdd___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceAdd___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAdd(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__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 = "reduceAdd"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(66, 251, 5, 243, 117, 111, 202, 36)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceAdd___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_24____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceMul___redArg___closed__0_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 = "HMul"};
static const lean_object* l_BitVec_reduceMul___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceMul___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceMul___redArg___closed__1_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 = "hMul"};
static const lean_object* l_BitVec_reduceMul___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceMul___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceMul___redArg___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_BitVec_reduceMul___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(254, 113, 255, 140, 142, 9, 169, 40)}};
static const lean_ctor_object l_BitVec_reduceMul___redArg___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_BitVec_reduceMul___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceMul___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(248, 227, 200, 215, 229, 255, 92, 22)}};
static const lean_object* l_BitVec_reduceMul___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceMul___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceMul___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceMul___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceMul(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceMul___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__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 = "reduceMul"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(108, 76, 89, 0, 189, 160, 233, 130)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceMul___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_24____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSub___redArg___closed__0_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 = "HSub"};
static const lean_object* l_BitVec_reduceSub___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSub___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceSub___redArg___closed__1_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 = "hSub"};
static const lean_object* l_BitVec_reduceSub___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSub___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceSub___redArg___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_BitVec_reduceSub___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(121, 130, 45, 212, 110, 237, 236, 233)}};
static const lean_ctor_object l_BitVec_reduceSub___redArg___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_BitVec_reduceSub___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceSub___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(231, 253, 204, 163, 168, 77, 27, 58)}};
static const lean_object* l_BitVec_reduceSub___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceSub___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSub___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSub___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSub(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSub___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__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 = "reduceSub"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(104, 211, 149, 28, 136, 236, 246, 132)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSub___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_24____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceDiv___redArg___closed__0_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 = "HDiv"};
static const lean_object* l_BitVec_reduceDiv___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceDiv___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceDiv___redArg___closed__1_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 = "hDiv"};
static const lean_object* l_BitVec_reduceDiv___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceDiv___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceDiv___redArg___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_BitVec_reduceDiv___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(74, 223, 78, 88, 255, 236, 144, 164)}};
static const lean_ctor_object l_BitVec_reduceDiv___redArg___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_BitVec_reduceDiv___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceDiv___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(26, 183, 188, 240, 156, 118, 170, 84)}};
static const lean_object* l_BitVec_reduceDiv___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceDiv___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceDiv(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__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 = "reduceDiv"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(44, 91, 47, 180, 167, 244, 111, 140)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceDiv___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_24____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceMod___redArg___closed__0_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 = "HMod"};
static const lean_object* l_BitVec_reduceMod___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceMod___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceMod___redArg___closed__1_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 = "hMod"};
static const lean_object* l_BitVec_reduceMod___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceMod___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceMod___redArg___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_BitVec_reduceMod___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(93, 4, 3, 35, 188, 254, 191, 190)}};
static const lean_ctor_object l_BitVec_reduceMod___redArg___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_BitVec_reduceMod___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceMod___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(120, 199, 142, 238, 9, 44, 94, 134)}};
static const lean_object* l_BitVec_reduceMod___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceMod___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceMod___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceMod___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceMod(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceMod___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__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 = "reduceMod"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(92, 176, 64, 180, 180, 1, 122, 195)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceMod___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_24____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceUMod___redArg___closed__0_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 = "umod"};
static const lean_object* l_BitVec_reduceUMod___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceUMod___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceUMod___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceUMod___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_BitVec_reduceUMod___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceUMod___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(228, 175, 88, 42, 100, 206, 17, 153)}};
static const lean_object* l_BitVec_reduceUMod___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceUMod___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUMod(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__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 = "reduceUMod"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__value),LEAN_SCALAR_PTR_LITERAL(113, 150, 177, 117, 5, 236, 99, 18)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceUMod___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_22____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceUDiv___redArg___closed__0_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 = "udiv"};
static const lean_object* l_BitVec_reduceUDiv___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceUDiv___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceUDiv___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceUDiv___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_BitVec_reduceUDiv___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceUDiv___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(140, 97, 1, 15, 207, 223, 19, 34)}};
static const lean_object* l_BitVec_reduceUDiv___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceUDiv___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__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 = "reduceUDiv"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__value),LEAN_SCALAR_PTR_LITERAL(111, 26, 115, 166, 224, 216, 181, 248)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceUDiv___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_22____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSMTUDiv___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "smtUDiv"};
static const lean_object* l_BitVec_reduceSMTUDiv___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSMTUDiv___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSMTUDiv___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSMTUDiv___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_BitVec_reduceSMTUDiv___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSMTUDiv___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(173, 28, 187, 15, 14, 171, 172, 68)}};
static const lean_object* l_BitVec_reduceSMTUDiv___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSMTUDiv___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__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 = "reduceSMTUDiv"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__value),LEAN_SCALAR_PTR_LITERAL(0, 141, 110, 179, 158, 110, 169, 238)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSMTUDiv___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_22____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSMod___redArg___closed__0_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 = "smod"};
static const lean_object* l_BitVec_reduceSMod___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSMod___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSMod___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSMod___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_BitVec_reduceSMod___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSMod___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(138, 87, 165, 231, 231, 255, 214, 210)}};
static const lean_object* l_BitVec_reduceSMod___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSMod___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMod(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__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 = "reduceSMod"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__value),LEAN_SCALAR_PTR_LITERAL(187, 218, 20, 212, 105, 22, 96, 3)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSMod___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_22____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSRem___redArg___closed__0_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 = "srem"};
static const lean_object* l_BitVec_reduceSRem___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSRem___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSRem___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSRem___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_BitVec_reduceSRem___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSRem___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(192, 67, 17, 225, 81, 60, 71, 116)}};
static const lean_object* l_BitVec_reduceSRem___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSRem___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSRem(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__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 = "reduceSRem"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__value),LEAN_SCALAR_PTR_LITERAL(139, 1, 69, 26, 238, 156, 162, 202)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSRem___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_22____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSDiv___redArg___closed__0_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 = "sdiv"};
static const lean_object* l_BitVec_reduceSDiv___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSDiv___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSDiv___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSDiv___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_BitVec_reduceSDiv___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSDiv___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(182, 186, 118, 44, 53, 172, 106, 120)}};
static const lean_object* l_BitVec_reduceSDiv___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSDiv___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__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 = "reduceSDiv"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__value),LEAN_SCALAR_PTR_LITERAL(119, 59, 195, 71, 195, 193, 253, 85)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSDiv___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_22____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSMTSDiv___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "smtSDiv"};
static const lean_object* l_BitVec_reduceSMTSDiv___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSMTSDiv___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSMTSDiv___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSMTSDiv___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_BitVec_reduceSMTSDiv___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSMTSDiv___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(70, 95, 7, 124, 110, 25, 177, 101)}};
static const lean_object* l_BitVec_reduceSMTSDiv___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSMTSDiv___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__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 = "reduceSMTSDiv"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__value),LEAN_SCALAR_PTR_LITERAL(243, 98, 132, 137, 148, 136, 49, 185)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSMTSDiv___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_;
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_22____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceGetLsb___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "getLsbD"};
static const lean_object* l_BitVec_reduceGetLsb___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceGetLsb___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceGetLsb___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceGetLsb___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_BitVec_reduceGetLsb___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceGetLsb___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(201, 206, 226, 96, 197, 228, 245, 77)}};
static const lean_object* l_BitVec_reduceGetLsb___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceGetLsb___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 13, .m_capacity = 13, .m_length = 12, .m_data = "reduceGetLsb"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(73, 134, 75, 243, 130, 24, 143, 196)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceGetLsb___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceGetMsb___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "getMsbD"};
static const lean_object* l_BitVec_reduceGetMsb___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceGetMsb___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceGetMsb___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceGetMsb___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_BitVec_reduceGetMsb___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceGetMsb___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(50, 67, 87, 86, 230, 172, 21, 28)}};
static const lean_object* l_BitVec_reduceGetMsb___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceGetMsb___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 13, .m_capacity = 13, .m_length = 12, .m_data = "reduceGetMsb"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(132, 83, 124, 162, 236, 228, 223, 15)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceGetMsb___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceClz___redArg___closed__0_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 = "clz"};
static const lean_object* l_BitVec_reduceClz___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceClz___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceClz___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceClz___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_BitVec_reduceClz___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceClz___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(61, 156, 207, 111, 211, 81, 174, 218)}};
static const lean_object* l_BitVec_reduceClz___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceClz___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceClz___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceClz___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceClz(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceClz___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__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 = "reduceClz"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__value),LEAN_SCALAR_PTR_LITERAL(117, 96, 113, 65, 91, 50, 57, 98)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceClz___redArg___closed__1_value),((lean_object*)(((size_t)(2) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*3, .m_other = 0, .m_tag = 246}, .m_size = 3, .m_capacity = 3, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_;
LEAN_EXPORT lean_object* l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_();
LEAN_EXPORT lean_object* l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_17_();
LEAN_EXPORT lean_object* l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_17____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceCpop___redArg___closed__0_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 = "cpop"};
static const lean_object* l_BitVec_reduceCpop___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceCpop___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceCpop___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceCpop___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_BitVec_reduceCpop___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceCpop___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(54, 25, 40, 162, 224, 189, 205, 182)}};
static const lean_object* l_BitVec_reduceCpop___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceCpop___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceCpop(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__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 = "reduceCpop"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__value),LEAN_SCALAR_PTR_LITERAL(33, 52, 167, 224, 177, 61, 132, 218)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceCpop___redArg___closed__1_value),((lean_object*)(((size_t)(2) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*3, .m_other = 0, .m_tag = 246}, .m_size = 3, .m_capacity = 3, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_;
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_();
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_17_();
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_17____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceGetElem___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "GetElem"};
static const lean_object* l_BitVec_reduceGetElem___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceGetElem___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceGetElem___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "getElem"};
static const lean_object* l_BitVec_reduceGetElem___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceGetElem___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceGetElem___redArg___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_BitVec_reduceGetElem___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(111, 233, 51, 226, 114, 128, 218, 11)}};
static const lean_ctor_object l_BitVec_reduceGetElem___redArg___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_BitVec_reduceGetElem___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceGetElem___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(194, 164, 165, 74, 8, 252, 37, 122)}};
static const lean_object* l_BitVec_reduceGetElem___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceGetElem___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__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 = "reduceGetElem"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__value),LEAN_SCALAR_PTR_LITERAL(92, 109, 26, 228, 41, 180, 102, 86)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceGetElem___redArg___closed__2_value),((lean_object*)(((size_t)(8) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*10, .m_other = 0, .m_tag = 246}, .m_size = 10, .m_capacity = 10, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_;
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_();
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_28_();
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_28____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceShiftLeft___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 = "shiftLeft"};
static const lean_object* l_BitVec_reduceShiftLeft___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceShiftLeft___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceShiftLeft___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceShiftLeft___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_BitVec_reduceShiftLeft___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceShiftLeft___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(110, 17, 136, 59, 111, 1, 62, 62)}};
static const lean_object* l_BitVec_reduceShiftLeft___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceShiftLeft___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 16, .m_capacity = 16, .m_length = 15, .m_data = "reduceShiftLeft"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(244, 175, 164, 91, 10, 176, 216, 103)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceShiftLeft___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceUShiftRight___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "ushiftRight"};
static const lean_object* l_BitVec_reduceUShiftRight___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceUShiftRight___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceUShiftRight___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceUShiftRight___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_BitVec_reduceUShiftRight___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceUShiftRight___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(174, 43, 145, 207, 67, 123, 27, 127)}};
static const lean_object* l_BitVec_reduceUShiftRight___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceUShiftRight___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 18, .m_capacity = 18, .m_length = 17, .m_data = "reduceUShiftRight"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(70, 83, 18, 236, 249, 96, 86, 115)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceUShiftRight___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSShiftRight___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "sshiftRight"};
static const lean_object* l_BitVec_reduceSShiftRight___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSShiftRight___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSShiftRight___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSShiftRight___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_BitVec_reduceSShiftRight___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSShiftRight___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(206, 65, 29, 246, 207, 155, 165, 148)}};
static const lean_object* l_BitVec_reduceSShiftRight___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSShiftRight___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 18, .m_capacity = 18, .m_length = 17, .m_data = "reduceSShiftRight"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(88, 108, 86, 192, 55, 91, 198, 54)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSShiftRight___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceHShiftLeft___redArg___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 = "HShiftLeft"};
static const lean_object* l_BitVec_reduceHShiftLeft___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceHShiftLeft___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceHShiftLeft___redArg___closed__1_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 = "hShiftLeft"};
static const lean_object* l_BitVec_reduceHShiftLeft___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceHShiftLeft___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceHShiftLeft___redArg___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_BitVec_reduceHShiftLeft___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(215, 217, 51, 89, 252, 54, 156, 169)}};
static const lean_ctor_object l_BitVec_reduceHShiftLeft___redArg___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_BitVec_reduceHShiftLeft___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceHShiftLeft___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(181, 245, 218, 3, 224, 235, 179, 59)}};
static const lean_object* l_BitVec_reduceHShiftLeft___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceHShiftLeft___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__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 = "reduceHShiftLeft"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(154, 87, 234, 122, 47, 62, 64, 230)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceHShiftLeft___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*8, .m_other = 0, .m_tag = 246}, .m_size = 8, .m_capacity = 8, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_24____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 18, .m_capacity = 18, .m_length = 17, .m_data = "reduceHShiftLeft'"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24__value),LEAN_SCALAR_PTR_LITERAL(164, 59, 55, 101, 89, 144, 46, 39)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_;
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_();
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_28_();
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_28____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceHShiftRight___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "HShiftRight"};
static const lean_object* l_BitVec_reduceHShiftRight___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceHShiftRight___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceHShiftRight___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "hShiftRight"};
static const lean_object* l_BitVec_reduceHShiftRight___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceHShiftRight___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceHShiftRight___redArg___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_BitVec_reduceHShiftRight___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(123, 35, 163, 146, 1, 76, 65, 75)}};
static const lean_ctor_object l_BitVec_reduceHShiftRight___redArg___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_BitVec_reduceHShiftRight___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceHShiftRight___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(52, 65, 204, 240, 51, 126, 9, 157)}};
static const lean_object* l_BitVec_reduceHShiftRight___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceHShiftRight___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 18, .m_capacity = 18, .m_length = 17, .m_data = "reduceHShiftRight"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(246, 113, 224, 191, 61, 28, 239, 29)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceHShiftRight___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*8, .m_other = 0, .m_tag = 246}, .m_size = 8, .m_capacity = 8, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_24____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 19, .m_capacity = 19, .m_length = 18, .m_data = "reduceHShiftRight'"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24__value),LEAN_SCALAR_PTR_LITERAL(243, 57, 138, 165, 52, 225, 26, 99)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_;
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_();
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_28_();
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_28____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceRotateLeft___redArg___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 = "rotateLeft"};
static const lean_object* l_BitVec_reduceRotateLeft___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceRotateLeft___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceRotateLeft___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceRotateLeft___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_BitVec_reduceRotateLeft___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceRotateLeft___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(125, 181, 93, 155, 164, 43, 234, 184)}};
static const lean_object* l_BitVec_reduceRotateLeft___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceRotateLeft___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__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 = "reduceRotateLeft"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(217, 124, 13, 48, 165, 35, 124, 202)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceRotateLeft___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceRotateRight___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "rotateRight"};
static const lean_object* l_BitVec_reduceRotateRight___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceRotateRight___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceRotateRight___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceRotateRight___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_BitVec_reduceRotateRight___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceRotateRight___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(208, 30, 240, 114, 51, 110, 152, 157)}};
static const lean_object* l_BitVec_reduceRotateRight___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceRotateRight___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 18, .m_capacity = 18, .m_length = 17, .m_data = "reduceRotateRight"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(127, 44, 135, 58, 107, 82, 141, 231)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceRotateRight___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceAppend___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "HAppend"};
static const lean_object* l_BitVec_reduceAppend___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceAppend___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceAppend___redArg___closed__1_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "hAppend"};
static const lean_object* l_BitVec_reduceAppend___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceAppend___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceAppend___redArg___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_BitVec_reduceAppend___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(137, 35, 233, 160, 196, 216, 250, 31)}};
static const lean_ctor_object l_BitVec_reduceAppend___redArg___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_BitVec_reduceAppend___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceAppend___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(181, 97, 51, 176, 35, 131, 5, 233)}};
static const lean_object* l_BitVec_reduceAppend___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceAppend___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAppend(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 13, .m_capacity = 13, .m_length = 12, .m_data = "reduceAppend"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value),LEAN_SCALAR_PTR_LITERAL(208, 11, 52, 219, 126, 110, 82, 123)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceAppend___redArg___closed__2_value),((lean_object*)(((size_t)(6) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*8, .m_other = 0, .m_tag = 246}, .m_size = 8, .m_capacity = 8, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_;
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_();
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_24_();
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_24____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceCast___redArg___closed__0_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 = "cast"};
static const lean_object* l_BitVec_reduceCast___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceCast___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceCast___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_BitVec_reduceCast___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(179, 194, 82, 68, 109, 146, 236, 67)}};
static const lean_object* l_BitVec_reduceCast___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceCast___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceCast___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceCast___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceCast(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceCast___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__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 = "reduceCast"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(27, 111, 79, 37, 231, 195, 10, 157)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceCast___redArg___closed__1_value),((lean_object*)(((size_t)(4) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*5, .m_other = 0, .m_tag = 246}, .m_size = 5, .m_capacity = 5, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceToNat___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 = "toNat"};
static const lean_object* l_BitVec_reduceToNat___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceToNat___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceToNat___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceToNat___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_BitVec_reduceToNat___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceToNat___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(142, 44, 53, 46, 180, 233, 253, 99)}};
static const lean_object* l_BitVec_reduceToNat___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceToNat___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceToNat(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "reduceToNat"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value),LEAN_SCALAR_PTR_LITERAL(59, 130, 200, 27, 171, 66, 78, 5)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceToNat___redArg___closed__1_value),((lean_object*)(((size_t)(2) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*3, .m_other = 0, .m_tag = 246}, .m_size = 3, .m_capacity = 3, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_;
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_();
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_17_();
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_17____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceToInt___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 = "toInt"};
static const lean_object* l_BitVec_reduceToInt___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceToInt___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceToInt___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceToInt___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_BitVec_reduceToInt___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceToInt___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(36, 9, 44, 71, 206, 78, 188, 190)}};
static const lean_object* l_BitVec_reduceToInt___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceToInt___redArg___closed__1_value;
static lean_once_cell_t l_BitVec_reduceToInt___redArg___closed__2_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceToInt___redArg___closed__2;
static lean_once_cell_t l_BitVec_reduceToInt___redArg___closed__3_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceToInt___redArg___closed__3;
static lean_once_cell_t l_BitVec_reduceToInt___redArg___closed__4_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceToInt___redArg___closed__4;
static lean_once_cell_t l_BitVec_reduceToInt___redArg___closed__5_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceToInt___redArg___closed__5;
static const lean_string_object l_BitVec_reduceToInt___redArg___closed__6_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 = "Int"};
static const lean_object* l_BitVec_reduceToInt___redArg___closed__6 = (const lean_object*)&l_BitVec_reduceToInt___redArg___closed__6_value;
static const lean_ctor_object l_BitVec_reduceToInt___redArg___closed__7_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_BitVec_reduceToInt___redArg___closed__6_value),LEAN_SCALAR_PTR_LITERAL(61, 25, 98, 154, 117, 127, 69, 97)}};
static const lean_object* l_BitVec_reduceToInt___redArg___closed__7 = (const lean_object*)&l_BitVec_reduceToInt___redArg___closed__7_value;
static lean_once_cell_t l_BitVec_reduceToInt___redArg___closed__8_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceToInt___redArg___closed__8;
static const lean_string_object l_BitVec_reduceToInt___redArg___closed__9_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 = "instNegInt"};
static const lean_object* l_BitVec_reduceToInt___redArg___closed__9 = (const lean_object*)&l_BitVec_reduceToInt___redArg___closed__9_value;
static const lean_ctor_object l_BitVec_reduceToInt___redArg___closed__10_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_BitVec_reduceToInt___redArg___closed__6_value),LEAN_SCALAR_PTR_LITERAL(61, 25, 98, 154, 117, 127, 69, 97)}};
static const lean_ctor_object l_BitVec_reduceToInt___redArg___closed__10_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_BitVec_reduceToInt___redArg___closed__10_value_aux_0),((lean_object*)&l_BitVec_reduceToInt___redArg___closed__9_value),LEAN_SCALAR_PTR_LITERAL(217, 109, 233, 1, 211, 122, 77, 88)}};
static const lean_object* l_BitVec_reduceToInt___redArg___closed__10 = (const lean_object*)&l_BitVec_reduceToInt___redArg___closed__10_value;
static lean_once_cell_t l_BitVec_reduceToInt___redArg___closed__11_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceToInt___redArg___closed__11;
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceToInt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "reduceToInt"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value),LEAN_SCALAR_PTR_LITERAL(116, 250, 101, 206, 152, 231, 239, 11)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceToInt___redArg___closed__1_value),((lean_object*)(((size_t)(2) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*3, .m_other = 0, .m_tag = 246}, .m_size = 3, .m_capacity = 3, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_;
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_();
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_17_();
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_17____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceOfInt___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 = "ofInt"};
static const lean_object* l_BitVec_reduceOfInt___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceOfInt___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceOfInt___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceOfInt___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_BitVec_reduceOfInt___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceOfInt___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(247, 33, 171, 14, 158, 104, 202, 91)}};
static const lean_object* l_BitVec_reduceOfInt___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceOfInt___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "reduceOfInt"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(103, 59, 192, 185, 241, 96, 184, 76)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceOfInt___redArg___closed__1_value),((lean_object*)(((size_t)(2) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*3, .m_other = 0, .m_tag = 246}, .m_size = 3, .m_capacity = 3, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_18____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "reduceOfNat"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(10, 72, 229, 135, 81, 251, 83, 60)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_toExpr_x27___redArg___closed__4_value),((lean_object*)(((size_t)(2) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*3, .m_other = 0, .m_tag = 246}, .m_size = 3, .m_capacity = 3, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceEq___redArg___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_BitVec_reduceEq___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceEq___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceEq___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_BitVec_reduceEq___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(143, 37, 101, 248, 9, 246, 191, 223)}};
static const lean_object* l_BitVec_reduceEq___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceEq___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceEq___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceEq___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceEq___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__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 = "reduceEq"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value),LEAN_SCALAR_PTR_LITERAL(112, 144, 21, 59, 74, 220, 86, 212)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceEq___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*5, .m_other = 0, .m_tag = 246}, .m_size = 5, .m_capacity = 5, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_;
LEAN_EXPORT lean_object* l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_25_();
LEAN_EXPORT lean_object* l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_25____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceNe___redArg___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 = "Ne"};
static const lean_object* l_BitVec_reduceNe___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceNe___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceNe___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_BitVec_reduceNe___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(161, 247, 70, 70, 118, 145, 235, 92)}};
static const lean_object* l_BitVec_reduceNe___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceNe___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceNe___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNe___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNe(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNe___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__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 = "reduceNe"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value),LEAN_SCALAR_PTR_LITERAL(243, 70, 217, 4, 14, 60, 228, 160)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value;
static const lean_string_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__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 = "Not"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value),LEAN_SCALAR_PTR_LITERAL(185, 11, 203, 55, 27, 192, 137, 230)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__4_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value),((lean_object*)(((size_t)(1) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__4_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__4_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__5_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*6, .m_other = 0, .m_tag = 246}, .m_size = 6, .m_capacity = 6, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__4_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__5_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__5_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_;
LEAN_EXPORT lean_object* l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_25_();
LEAN_EXPORT lean_object* l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_25____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceBEq___redArg___closed__0_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 = "BEq"};
static const lean_object* l_BitVec_reduceBEq___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceBEq___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceBEq___redArg___closed__1_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 = "beq"};
static const lean_object* l_BitVec_reduceBEq___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceBEq___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceBEq___redArg___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_BitVec_reduceBEq___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(195, 188, 39, 55, 57, 152, 88, 223)}};
static const lean_ctor_object l_BitVec_reduceBEq___redArg___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_BitVec_reduceBEq___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceBEq___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(82, 52, 243, 194, 7, 226, 90, 135)}};
static const lean_object* l_BitVec_reduceBEq___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceBEq___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__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 = "reduceBEq"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__value),LEAN_SCALAR_PTR_LITERAL(172, 193, 4, 237, 250, 176, 213, 121)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceBEq___redArg___closed__2_value),((lean_object*)(((size_t)(4) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*6, .m_other = 0, .m_tag = 246}, .m_size = 6, .m_capacity = 6, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_;
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_25_();
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_25____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceBNe___redArg___closed__0_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 = "bne"};
static const lean_object* l_BitVec_reduceBNe___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceBNe___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceBNe___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_BitVec_reduceBNe___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(232, 187, 84, 23, 255, 12, 25, 13)}};
static const lean_object* l_BitVec_reduceBNe___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceBNe___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBNe(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__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 = "reduceBNe"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__value),LEAN_SCALAR_PTR_LITERAL(98, 123, 15, 154, 124, 212, 57, 234)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceBNe___redArg___closed__1_value),((lean_object*)(((size_t)(4) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*6, .m_other = 0, .m_tag = 246}, .m_size = 6, .m_capacity = 6, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_;
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_25_();
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_25____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceLT___redArg___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 = "LT"};
static const lean_object* l_BitVec_reduceLT___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceLT___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceLT___redArg___closed__1_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 = "lt"};
static const lean_object* l_BitVec_reduceLT___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceLT___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceLT___redArg___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_BitVec_reduceLT___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(71, 235, 154, 184, 62, 135, 30, 248)}};
static const lean_ctor_object l_BitVec_reduceLT___redArg___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_BitVec_reduceLT___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceLT___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(54, 235, 251, 9, 4, 74, 57, 164)}};
static const lean_object* l_BitVec_reduceLT___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceLT___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceLT___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceLT___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceLT(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceLT___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__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 = "reduceLT"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__value),LEAN_SCALAR_PTR_LITERAL(49, 24, 109, 10, 200, 103, 22, 20)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceLT___redArg___closed__2_value),((lean_object*)(((size_t)(4) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*6, .m_other = 0, .m_tag = 246}, .m_size = 6, .m_capacity = 6, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_;
LEAN_EXPORT lean_object* l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_25_();
LEAN_EXPORT lean_object* l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_25____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceLE___redArg___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 = "LE"};
static const lean_object* l_BitVec_reduceLE___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceLE___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceLE___redArg___closed__1_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 = "le"};
static const lean_object* l_BitVec_reduceLE___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceLE___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceLE___redArg___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_BitVec_reduceLE___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(216, 149, 183, 186, 191, 145, 216, 115)}};
static const lean_ctor_object l_BitVec_reduceLE___redArg___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_BitVec_reduceLE___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceLE___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(109, 14, 90, 172, 72, 170, 136, 101)}};
static const lean_object* l_BitVec_reduceLE___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceLE___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceLE___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceLE___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceLE(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceLE___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__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 = "reduceLE"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__value),LEAN_SCALAR_PTR_LITERAL(39, 247, 182, 67, 21, 194, 110, 39)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceLE___redArg___closed__2_value),((lean_object*)(((size_t)(4) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*6, .m_other = 0, .m_tag = 246}, .m_size = 6, .m_capacity = 6, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__value),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_;
LEAN_EXPORT lean_object* l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_25_();
LEAN_EXPORT lean_object* l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_25____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceGT___redArg___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 = "GT"};
static const lean_object* l_BitVec_reduceGT___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceGT___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceGT___redArg___closed__1_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 = "gt"};
static const lean_object* l_BitVec_reduceGT___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceGT___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceGT___redArg___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_BitVec_reduceGT___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(240, 16, 15, 58, 66, 186, 138, 31)}};
static const lean_ctor_object l_BitVec_reduceGT___redArg___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_BitVec_reduceGT___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceGT___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(239, 75, 137, 103, 59, 22, 209, 130)}};
static const lean_object* l_BitVec_reduceGT___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceGT___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceGT___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGT___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGT(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGT___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21__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 = "reduceGT"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21__value),LEAN_SCALAR_PTR_LITERAL(87, 10, 69, 124, 172, 177, 246, 149)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_;
LEAN_EXPORT lean_object* l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_25_();
LEAN_EXPORT lean_object* l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_25____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceGE___redArg___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 = "GE"};
static const lean_object* l_BitVec_reduceGE___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceGE___redArg___closed__0_value;
static const lean_string_object l_BitVec_reduceGE___redArg___closed__1_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 = "ge"};
static const lean_object* l_BitVec_reduceGE___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceGE___redArg___closed__1_value;
static const lean_ctor_object l_BitVec_reduceGE___redArg___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_BitVec_reduceGE___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(74, 169, 4, 72, 62, 21, 91, 24)}};
static const lean_ctor_object l_BitVec_reduceGE___redArg___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_BitVec_reduceGE___redArg___closed__2_value_aux_0),((lean_object*)&l_BitVec_reduceGE___redArg___closed__1_value),LEAN_SCALAR_PTR_LITERAL(71, 88, 92, 156, 129, 215, 23, 77)}};
static const lean_object* l_BitVec_reduceGE___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceGE___redArg___closed__2_value;
LEAN_EXPORT lean_object* l_BitVec_reduceGE___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGE___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGE(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGE___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21__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 = "reduceGE"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21__value),LEAN_SCALAR_PTR_LITERAL(242, 192, 167, 57, 151, 142, 234, 157)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_;
LEAN_EXPORT lean_object* l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_();
LEAN_EXPORT lean_object* l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_25_();
LEAN_EXPORT lean_object* l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_25____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceULT___redArg___closed__0_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 = "ult"};
static const lean_object* l_BitVec_reduceULT___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceULT___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceULT___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceULT___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_BitVec_reduceULT___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceULT___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(111, 62, 117, 244, 108, 14, 8, 240)}};
static const lean_object* l_BitVec_reduceULT___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceULT___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceULT___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceULT___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceULT(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceULT___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__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 = "reduceULT"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(127, 73, 237, 93, 96, 108, 250, 93)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceULT___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceULE___redArg___closed__0_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 = "ule"};
static const lean_object* l_BitVec_reduceULE___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceULE___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceULE___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceULE___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_BitVec_reduceULE___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceULE___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(206, 20, 45, 7, 156, 219, 60, 134)}};
static const lean_object* l_BitVec_reduceULE___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceULE___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceULE___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceULE___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceULE(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceULE___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__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 = "reduceULE"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(81, 122, 189, 210, 219, 47, 239, 248)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceULE___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSLT___redArg___closed__0_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 = "slt"};
static const lean_object* l_BitVec_reduceSLT___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSLT___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSLT___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSLT___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_BitVec_reduceSLT___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSLT___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(130, 3, 249, 28, 236, 171, 202, 152)}};
static const lean_object* l_BitVec_reduceSLT___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSLT___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSLT(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__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 = "reduceSLT"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(32, 128, 24, 220, 168, 152, 198, 220)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSLT___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSLE___redArg___closed__0_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 = "sle"};
static const lean_object* l_BitVec_reduceSLE___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSLE___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSLE___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSLE___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_BitVec_reduceSLE___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSLE___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(143, 124, 44, 235, 95, 54, 117, 251)}};
static const lean_object* l_BitVec_reduceSLE___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSLE___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSLE(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__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 = "reduceSLE"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(39, 179, 56, 110, 86, 100, 110, 211)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSLE___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSetWidth_x27___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 = "setWidth'"};
static const lean_object* l_BitVec_reduceSetWidth_x27___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSetWidth_x27___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSetWidth_x27___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSetWidth_x27___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_BitVec_reduceSetWidth_x27___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSetWidth_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(195, 91, 130, 197, 47, 116, 227, 188)}};
static const lean_object* l_BitVec_reduceSetWidth_x27___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSetWidth_x27___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 16, .m_capacity = 16, .m_length = 15, .m_data = "reduceSetWidth'"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(164, 239, 11, 155, 130, 241, 85, 29)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSetWidth_x27___redArg___closed__1_value),((lean_object*)(((size_t)(4) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*5, .m_other = 0, .m_tag = 246}, .m_size = 5, .m_capacity = 5, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceShiftLeftZeroExtend___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 20, .m_capacity = 20, .m_length = 19, .m_data = "shiftLeftZeroExtend"};
static const lean_object* l_BitVec_reduceShiftLeftZeroExtend___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceShiftLeftZeroExtend___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceShiftLeftZeroExtend___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceShiftLeftZeroExtend___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_BitVec_reduceShiftLeftZeroExtend___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceShiftLeftZeroExtend___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(200, 32, 73, 179, 107, 67, 184, 199)}};
static const lean_object* l_BitVec_reduceShiftLeftZeroExtend___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceShiftLeftZeroExtend___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 26, .m_capacity = 26, .m_length = 25, .m_data = "reduceShiftLeftZeroExtend"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(170, 227, 67, 227, 91, 183, 84, 19)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceShiftLeftZeroExtend___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceExtractLsb_x27___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 12, .m_capacity = 12, .m_length = 11, .m_data = "extractLsb'"};
static const lean_object* l_BitVec_reduceExtractLsb_x27___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceExtractLsb_x27___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceExtractLsb_x27___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceExtractLsb_x27___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_BitVec_reduceExtractLsb_x27___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceExtractLsb_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(47, 201, 218, 12, 248, 124, 75, 23)}};
static const lean_object* l_BitVec_reduceExtractLsb_x27___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceExtractLsb_x27___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 18, .m_capacity = 18, .m_length = 17, .m_data = "reduceExtractLsb'"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value),LEAN_SCALAR_PTR_LITERAL(8, 9, 163, 71, 148, 19, 81, 56)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceExtractLsb_x27___redArg___closed__1_value),((lean_object*)(((size_t)(4) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*5, .m_other = 0, .m_tag = 246}, .m_size = 5, .m_capacity = 5, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_;
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_();
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_19_();
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_19____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceReplicate___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 = "replicate"};
static const lean_object* l_BitVec_reduceReplicate___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceReplicate___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceReplicate___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceReplicate___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_BitVec_reduceReplicate___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceReplicate___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(234, 123, 74, 120, 175, 214, 39, 20)}};
static const lean_object* l_BitVec_reduceReplicate___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceReplicate___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 16, .m_capacity = 16, .m_length = 15, .m_data = "reduceReplicate"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(13, 129, 89, 21, 179, 108, 156, 149)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceReplicate___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSetWidth___redArg___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 = "setWidth"};
static const lean_object* l_BitVec_reduceSetWidth___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSetWidth___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSetWidth___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSetWidth___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_BitVec_reduceSetWidth___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSetWidth___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(156, 6, 252, 142, 19, 176, 54, 12)}};
static const lean_object* l_BitVec_reduceSetWidth___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSetWidth___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__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 = "reduceSetWidth"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(75, 113, 44, 225, 231, 223, 161, 69)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSetWidth___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceZeroExtend___redArg___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 = "zeroExtend"};
static const lean_object* l_BitVec_reduceZeroExtend___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceZeroExtend___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceZeroExtend___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceZeroExtend___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_BitVec_reduceZeroExtend___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceZeroExtend___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(247, 57, 109, 72, 6, 68, 90, 135)}};
static const lean_object* l_BitVec_reduceZeroExtend___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceZeroExtend___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14__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 = "reduceZeroExtend"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(248, 244, 203, 0, 53, 26, 41, 51)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceSignExtend___redArg___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 = "signExtend"};
static const lean_object* l_BitVec_reduceSignExtend___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceSignExtend___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceSignExtend___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceSignExtend___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_BitVec_reduceSignExtend___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceSignExtend___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(27, 113, 32, 164, 54, 200, 3, 175)}};
static const lean_object* l_BitVec_reduceSignExtend___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceSignExtend___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__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 = "reduceSignExtend"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__value),LEAN_SCALAR_PTR_LITERAL(210, 65, 85, 97, 174, 88, 178, 181)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceSignExtend___redArg___closed__1_value),((lean_object*)(((size_t)(3) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*4, .m_other = 0, .m_tag = 246}, .m_size = 4, .m_capacity = 4, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_;
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_();
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_18_();
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_18____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceAllOnes___redArg___closed__0_value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 8, .m_capacity = 8, .m_length = 7, .m_data = "allOnes"};
static const lean_object* l_BitVec_reduceAllOnes___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceAllOnes___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceAllOnes___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceAllOnes___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_BitVec_reduceAllOnes___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceAllOnes___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(61, 255, 95, 230, 234, 241, 129, 72)}};
static const lean_object* l_BitVec_reduceAllOnes___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceAllOnes___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__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 = "reduceAllOnes"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__value),LEAN_SCALAR_PTR_LITERAL(124, 70, 51, 135, 53, 11, 135, 12)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceAllOnes___redArg___closed__1_value),((lean_object*)(((size_t)(1) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*2, .m_other = 0, .m_tag = 246}, .m_size = 2, .m_capacity = 2, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__value),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_;
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_();
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_17_();
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_17____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceBitVecOfFin___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 = "ofFin"};
static const lean_object* l_BitVec_reduceBitVecOfFin___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceBitVecOfFin___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceBitVecOfFin___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceBitVecOfFin___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_BitVec_reduceBitVecOfFin___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceBitVecOfFin___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(69, 167, 55, 152, 45, 146, 42, 51)}};
static const lean_object* l_BitVec_reduceBitVecOfFin___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceBitVecOfFin___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 18, .m_capacity = 18, .m_length = 17, .m_data = "reduceBitVecOfFin"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value),LEAN_SCALAR_PTR_LITERAL(176, 92, 36, 168, 209, 234, 159, 79)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*2 + 0, .m_other = 2, .m_tag = 4}, .m_objs = {((lean_object*)&l_BitVec_reduceBitVecOfFin___redArg___closed__1_value),((lean_object*)(((size_t)(2) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*3, .m_other = 0, .m_tag = 246}, .m_size = 3, .m_capacity = 3, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_;
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_();
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_17_();
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_17____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceBitVecToFin___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 = "toFin"};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceBitVecToFin___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceBitVecToFin___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_BitVec_reduceBitVecToFin___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(122, 86, 153, 159, 199, 11, 147, 83)}};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__1_value;
static const lean_string_object l_BitVec_reduceBitVecToFin___redArg___closed__2_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 = "OfNat"};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__2 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__2_value;
static const lean_ctor_object l_BitVec_reduceBitVecToFin___redArg___closed__3_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_BitVec_reduceBitVecToFin___redArg___closed__2_value),LEAN_SCALAR_PTR_LITERAL(135, 241, 166, 108, 243, 216, 193, 244)}};
static const lean_ctor_object l_BitVec_reduceBitVecToFin___redArg___closed__3_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_BitVec_reduceBitVecToFin___redArg___closed__3_value_aux_0),((lean_object*)&l_BitVec_toExpr_x27___redArg___closed__3_value),LEAN_SCALAR_PTR_LITERAL(2, 108, 58, 34, 100, 49, 50, 216)}};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__3 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__3_value;
static lean_once_cell_t l_BitVec_reduceBitVecToFin___redArg___closed__4_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__4;
static const lean_string_object l_BitVec_reduceBitVecToFin___redArg___closed__5_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 = "Fin"};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__5 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__5_value;
static const lean_ctor_object l_BitVec_reduceBitVecToFin___redArg___closed__6_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_BitVec_reduceBitVecToFin___redArg___closed__5_value),LEAN_SCALAR_PTR_LITERAL(62, 91, 162, 2, 110, 238, 123, 219)}};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__6 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__6_value;
static lean_once_cell_t l_BitVec_reduceBitVecToFin___redArg___closed__7_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__7;
static const lean_string_object l_BitVec_reduceBitVecToFin___redArg___closed__8_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 = "instOfNat"};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__8 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__8_value;
static const lean_ctor_object l_BitVec_reduceBitVecToFin___redArg___closed__9_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_BitVec_reduceBitVecToFin___redArg___closed__5_value),LEAN_SCALAR_PTR_LITERAL(62, 91, 162, 2, 110, 238, 123, 219)}};
static const lean_ctor_object l_BitVec_reduceBitVecToFin___redArg___closed__9_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_BitVec_reduceBitVecToFin___redArg___closed__9_value_aux_0),((lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__8_value),LEAN_SCALAR_PTR_LITERAL(92, 84, 52, 176, 228, 163, 228, 83)}};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__9 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__9_value;
static lean_once_cell_t l_BitVec_reduceBitVecToFin___redArg___closed__10_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__10;
static const lean_string_object l_BitVec_reduceBitVecToFin___redArg___closed__11_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 = "Nat"};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__11 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__11_value;
static const lean_string_object l_BitVec_reduceBitVecToFin___redArg___closed__12_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 = "instNeZeroSucc"};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__12 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__12_value;
static const lean_ctor_object l_BitVec_reduceBitVecToFin___redArg___closed__13_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_BitVec_reduceBitVecToFin___redArg___closed__11_value),LEAN_SCALAR_PTR_LITERAL(155, 221, 223, 104, 58, 13, 204, 158)}};
static const lean_ctor_object l_BitVec_reduceBitVecToFin___redArg___closed__13_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_BitVec_reduceBitVecToFin___redArg___closed__13_value_aux_0),((lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__12_value),LEAN_SCALAR_PTR_LITERAL(163, 205, 35, 215, 215, 220, 7, 150)}};
static const lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__13 = (const lean_object*)&l_BitVec_reduceBitVecToFin___redArg___closed__13_value;
static lean_once_cell_t l_BitVec_reduceBitVecToFin___redArg___closed__14_once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceBitVecToFin___redArg___closed__14;
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 18, .m_capacity = 18, .m_length = 17, .m_data = "reduceBitVecToFin"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value),LEAN_SCALAR_PTR_LITERAL(9, 237, 26, 183, 254, 121, 190, 160)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_ctor_object) + sizeof(void*)*3 + 0, .m_other = 3, .m_tag = 6}, .m_objs = {((lean_object*)&l_BitVec_toExpr_x27___redArg___closed__1_value),((lean_object*)(((size_t)(0) << 1) | 1)),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value;
static const lean_array_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value = {.m_header = {.m_rc = 0, .m_cs_sz = sizeof(lean_array_object) + sizeof(void*)*2, .m_other = 0, .m_tag = 246}, .m_size = 2, .m_capacity = 2, .m_data = {((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value),((lean_object*)(((size_t)(0) << 1) | 1))}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13__value;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_;
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_();
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_17_();
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_17____boxed(lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftShift___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftShift___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftShift(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_BitVec_reduceShiftShift___boxed(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_BitVec_reduceShiftLeftShiftLeft___redArg___closed__0_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 = "shiftLeft_add"};
static const lean_object* l_BitVec_reduceShiftLeftShiftLeft___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceShiftLeftShiftLeft___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceShiftLeftShiftLeft___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceShiftLeftShiftLeft___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_BitVec_reduceShiftLeftShiftLeft___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceShiftLeftShiftLeft___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(17, 165, 145, 153, 141, 227, 79, 230)}};
static const lean_object* l_BitVec_reduceShiftLeftShiftLeft___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceShiftLeftShiftLeft___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 25, .m_capacity = 25, .m_length = 24, .m_data = "reduceShiftLeftShiftLeft"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28__value),LEAN_SCALAR_PTR_LITERAL(20, 89, 98, 18, 153, 99, 141, 30)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30_;
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30_();
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30____boxed(lean_object*);
static const lean_string_object l_BitVec_reduceShiftRightShiftRight___redArg___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 = "shiftRight_add"};
static const lean_object* l_BitVec_reduceShiftRightShiftRight___redArg___closed__0 = (const lean_object*)&l_BitVec_reduceShiftRightShiftRight___redArg___closed__0_value;
static const lean_ctor_object l_BitVec_reduceShiftRightShiftRight___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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l_BitVec_reduceShiftRightShiftRight___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_BitVec_reduceShiftRightShiftRight___redArg___closed__1_value_aux_0),((lean_object*)&l_BitVec_reduceShiftRightShiftRight___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(156, 92, 241, 32, 199, 131, 214, 146)}};
static const lean_object* l_BitVec_reduceShiftRightShiftRight___redArg___closed__1 = (const lean_object*)&l_BitVec_reduceShiftRightShiftRight___redArg___closed__1_value;
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___redArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___redArg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___boxed(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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28__value = {.m_header = {.m_rc = 0, .m_cs_sz = 0, .m_other = 0, .m_tag = 249}, .m_size = 27, .m_capacity = 27, .m_length = 26, .m_data = "reduceShiftRightShiftRight"};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28__value;
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28__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_BitVec_toExpr_x27___redArg___closed__0_value),LEAN_SCALAR_PTR_LITERAL(108, 178, 58, 132, 143, 189, 222, 74)}};
static const lean_ctor_object l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28__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_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28__value_aux_0),((lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28__value),LEAN_SCALAR_PTR_LITERAL(47, 156, 118, 159, 9, 161, 50, 36)}};
static const lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_ = (const lean_object*)&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28__value;
static lean_once_cell_t l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_;
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_();
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28____boxed(lean_object*);
static lean_once_cell_t l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30__once = LEAN_ONCE_CELL_INITIALIZER;
static lean_object* l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30_;
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30_();
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30____boxed(lean_object*);
LEAN_EXPORT uint8_t l_BitVec_instDecidableEqLiteral_decEq(lean_object* v_x_1_, lean_object* v_x_2_){
_start:
{
lean_object* v_n_3_; lean_object* v_value_4_; lean_object* v_n_5_; lean_object* v_value_6_; uint8_t v___x_7_; 
v_n_3_ = lean_ctor_get(v_x_1_, 0);
v_value_4_ = lean_ctor_get(v_x_1_, 1);
v_n_5_ = lean_ctor_get(v_x_2_, 0);
v_value_6_ = lean_ctor_get(v_x_2_, 1);
v___x_7_ = lean_nat_dec_eq(v_n_3_, v_n_5_);
if (v___x_7_ == 0)
{
return v___x_7_;
}
else
{
uint8_t v___x_8_; 
v___x_8_ = lean_nat_dec_eq(v_value_4_, v_value_6_);
return v___x_8_;
}
}
}
LEAN_EXPORT lean_object* l_BitVec_instDecidableEqLiteral_decEq___boxed(lean_object* v_x_9_, lean_object* v_x_10_){
_start:
{
uint8_t v_res_11_; lean_object* v_r_12_; 
v_res_11_ = l_BitVec_instDecidableEqLiteral_decEq(v_x_9_, v_x_10_);
lean_dec_ref(v_x_10_);
lean_dec_ref(v_x_9_);
v_r_12_ = lean_box(v_res_11_);
return v_r_12_;
}
}
LEAN_EXPORT uint8_t l_BitVec_instDecidableEqLiteral(lean_object* v_x_13_, lean_object* v_x_14_){
_start:
{
uint8_t v___x_15_; 
v___x_15_ = l_BitVec_instDecidableEqLiteral_decEq(v_x_13_, v_x_14_);
return v___x_15_;
}
}
LEAN_EXPORT lean_object* l_BitVec_instDecidableEqLiteral___boxed(lean_object* v_x_16_, lean_object* v_x_17_){
_start:
{
uint8_t v_res_18_; lean_object* v_r_19_; 
v_res_18_ = l_BitVec_instDecidableEqLiteral(v_x_16_, v_x_17_);
lean_dec_ref(v_x_17_);
lean_dec_ref(v_x_16_);
v_r_19_ = lean_box(v_res_18_);
return v_r_19_;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at___00BitVec_instReprLiteral_repr_spec__0(lean_object* v_a_20_){
_start:
{
lean_object* v___x_21_; 
v___x_21_ = lean_nat_to_int(v_a_20_);
return v___x_21_;
}
}
static lean_object* _init_l_BitVec_instReprLiteral_repr___redArg___closed__7(void){
_start:
{
lean_object* v___x_35_; lean_object* v___x_36_; 
v___x_35_ = lean_unsigned_to_nat(5u);
v___x_36_ = lean_nat_to_int(v___x_35_);
return v___x_36_;
}
}
static lean_object* _init_l_BitVec_instReprLiteral_repr___redArg___closed__12(void){
_start:
{
lean_object* v___x_43_; lean_object* v___x_44_; 
v___x_43_ = lean_unsigned_to_nat(9u);
v___x_44_ = lean_nat_to_int(v___x_43_);
return v___x_44_;
}
}
static lean_object* _init_l_BitVec_instReprLiteral_repr___redArg___closed__14(void){
_start:
{
lean_object* v___x_46_; lean_object* v___x_47_; 
v___x_46_ = ((lean_object*)(l_BitVec_instReprLiteral_repr___redArg___closed__0));
v___x_47_ = lean_string_length(v___x_46_);
return v___x_47_;
}
}
static lean_object* _init_l_BitVec_instReprLiteral_repr___redArg___closed__15(void){
_start:
{
lean_object* v___x_48_; lean_object* v___x_49_; 
v___x_48_ = lean_obj_once(&l_BitVec_instReprLiteral_repr___redArg___closed__14, &l_BitVec_instReprLiteral_repr___redArg___closed__14_once, _init_l_BitVec_instReprLiteral_repr___redArg___closed__14);
v___x_49_ = lean_nat_to_int(v___x_48_);
return v___x_49_;
}
}
LEAN_EXPORT lean_object* l_BitVec_instReprLiteral_repr___redArg(lean_object* v_x_54_){
_start:
{
lean_object* v_n_55_; lean_object* v_value_56_; lean_object* v___x_58_; uint8_t v_isShared_59_; uint8_t v_isSharedCheck_90_; 
v_n_55_ = lean_ctor_get(v_x_54_, 0);
v_value_56_ = lean_ctor_get(v_x_54_, 1);
v_isSharedCheck_90_ = !lean_is_exclusive(v_x_54_);
if (v_isSharedCheck_90_ == 0)
{
v___x_58_ = v_x_54_;
v_isShared_59_ = v_isSharedCheck_90_;
goto v_resetjp_57_;
}
else
{
lean_inc(v_value_56_);
lean_inc(v_n_55_);
lean_dec(v_x_54_);
v___x_58_ = lean_box(0);
v_isShared_59_ = v_isSharedCheck_90_;
goto v_resetjp_57_;
}
v_resetjp_57_:
{
lean_object* v___x_60_; lean_object* v___x_61_; lean_object* v___x_62_; lean_object* v___x_63_; lean_object* v___x_64_; lean_object* v___x_66_; 
v___x_60_ = ((lean_object*)(l_BitVec_instReprLiteral_repr___redArg___closed__5));
v___x_61_ = ((lean_object*)(l_BitVec_instReprLiteral_repr___redArg___closed__6));
v___x_62_ = lean_obj_once(&l_BitVec_instReprLiteral_repr___redArg___closed__7, &l_BitVec_instReprLiteral_repr___redArg___closed__7_once, _init_l_BitVec_instReprLiteral_repr___redArg___closed__7);
lean_inc(v_n_55_);
v___x_63_ = l_Nat_reprFast(v_n_55_);
v___x_64_ = lean_alloc_ctor(3, 1, 0);
lean_ctor_set(v___x_64_, 0, v___x_63_);
if (v_isShared_59_ == 0)
{
lean_ctor_set_tag(v___x_58_, 4);
lean_ctor_set(v___x_58_, 1, v___x_64_);
lean_ctor_set(v___x_58_, 0, v___x_62_);
v___x_66_ = v___x_58_;
goto v_reusejp_65_;
}
else
{
lean_object* v_reuseFailAlloc_89_; 
v_reuseFailAlloc_89_ = lean_alloc_ctor(4, 2, 0);
lean_ctor_set(v_reuseFailAlloc_89_, 0, v___x_62_);
lean_ctor_set(v_reuseFailAlloc_89_, 1, v___x_64_);
v___x_66_ = v_reuseFailAlloc_89_;
goto v_reusejp_65_;
}
v_reusejp_65_:
{
uint8_t v___x_67_; lean_object* v___x_68_; lean_object* v___x_69_; lean_object* v___x_70_; lean_object* v___x_71_; lean_object* v___x_72_; lean_object* v___x_73_; lean_object* v___x_74_; lean_object* v___x_75_; lean_object* v___x_76_; lean_object* v___x_77_; lean_object* v___x_78_; lean_object* v___x_79_; lean_object* v___x_80_; lean_object* v___x_81_; lean_object* v___x_82_; lean_object* v___x_83_; lean_object* v___x_84_; lean_object* v___x_85_; lean_object* v___x_86_; lean_object* v___x_87_; lean_object* v___x_88_; 
v___x_67_ = 0;
v___x_68_ = lean_alloc_ctor(6, 1, 1);
lean_ctor_set(v___x_68_, 0, v___x_66_);
lean_ctor_set_uint8(v___x_68_, sizeof(void*)*1, v___x_67_);
v___x_69_ = lean_alloc_ctor(5, 2, 0);
lean_ctor_set(v___x_69_, 0, v___x_61_);
lean_ctor_set(v___x_69_, 1, v___x_68_);
v___x_70_ = ((lean_object*)(l_BitVec_instReprLiteral_repr___redArg___closed__9));
v___x_71_ = lean_alloc_ctor(5, 2, 0);
lean_ctor_set(v___x_71_, 0, v___x_69_);
lean_ctor_set(v___x_71_, 1, v___x_70_);
v___x_72_ = lean_box(1);
v___x_73_ = lean_alloc_ctor(5, 2, 0);
lean_ctor_set(v___x_73_, 0, v___x_71_);
lean_ctor_set(v___x_73_, 1, v___x_72_);
v___x_74_ = ((lean_object*)(l_BitVec_instReprLiteral_repr___redArg___closed__11));
v___x_75_ = lean_alloc_ctor(5, 2, 0);
lean_ctor_set(v___x_75_, 0, v___x_73_);
lean_ctor_set(v___x_75_, 1, v___x_74_);
v___x_76_ = lean_alloc_ctor(5, 2, 0);
lean_ctor_set(v___x_76_, 0, v___x_75_);
lean_ctor_set(v___x_76_, 1, v___x_60_);
v___x_77_ = lean_obj_once(&l_BitVec_instReprLiteral_repr___redArg___closed__12, &l_BitVec_instReprLiteral_repr___redArg___closed__12_once, _init_l_BitVec_instReprLiteral_repr___redArg___closed__12);
v___x_78_ = l_BitVec_repr(v_n_55_, v_value_56_);
v___x_79_ = lean_alloc_ctor(4, 2, 0);
lean_ctor_set(v___x_79_, 0, v___x_77_);
lean_ctor_set(v___x_79_, 1, v___x_78_);
v___x_80_ = lean_alloc_ctor(6, 1, 1);
lean_ctor_set(v___x_80_, 0, v___x_79_);
lean_ctor_set_uint8(v___x_80_, sizeof(void*)*1, v___x_67_);
v___x_81_ = lean_alloc_ctor(5, 2, 0);
lean_ctor_set(v___x_81_, 0, v___x_76_);
lean_ctor_set(v___x_81_, 1, v___x_80_);
v___x_82_ = lean_obj_once(&l_BitVec_instReprLiteral_repr___redArg___closed__15, &l_BitVec_instReprLiteral_repr___redArg___closed__15_once, _init_l_BitVec_instReprLiteral_repr___redArg___closed__15);
v___x_83_ = ((lean_object*)(l_BitVec_instReprLiteral_repr___redArg___closed__16));
v___x_84_ = lean_alloc_ctor(5, 2, 0);
lean_ctor_set(v___x_84_, 0, v___x_83_);
lean_ctor_set(v___x_84_, 1, v___x_81_);
v___x_85_ = ((lean_object*)(l_BitVec_instReprLiteral_repr___redArg___closed__17));
v___x_86_ = lean_alloc_ctor(5, 2, 0);
lean_ctor_set(v___x_86_, 0, v___x_84_);
lean_ctor_set(v___x_86_, 1, v___x_85_);
v___x_87_ = lean_alloc_ctor(4, 2, 0);
lean_ctor_set(v___x_87_, 0, v___x_82_);
lean_ctor_set(v___x_87_, 1, v___x_86_);
v___x_88_ = lean_alloc_ctor(6, 1, 1);
lean_ctor_set(v___x_88_, 0, v___x_87_);
lean_ctor_set_uint8(v___x_88_, sizeof(void*)*1, v___x_67_);
return v___x_88_;
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_instReprLiteral_repr(lean_object* v_x_91_, lean_object* v_prec_92_){
_start:
{
lean_object* v___x_93_; 
v___x_93_ = l_BitVec_instReprLiteral_repr___redArg(v_x_91_);
return v___x_93_;
}
}
LEAN_EXPORT lean_object* l_BitVec_instReprLiteral_repr___boxed(lean_object* v_x_94_, lean_object* v_prec_95_){
_start:
{
lean_object* v_res_96_; 
v_res_96_ = l_BitVec_instReprLiteral_repr(v_x_94_, v_prec_95_);
lean_dec(v_prec_95_);
return v_res_96_;
}
}
LEAN_EXPORT lean_object* l_BitVec_fromExpr_x3f___redArg(lean_object* v_e_99_, lean_object* v_a_100_, lean_object* v_a_101_, lean_object* v_a_102_, lean_object* v_a_103_){
_start:
{
lean_object* v___x_105_; 
v___x_105_ = l_Lean_Meta_getBitVecValue_x3f(v_e_99_, v_a_100_, v_a_101_, v_a_102_, v_a_103_);
if (lean_obj_tag(v___x_105_) == 0)
{
lean_object* v_a_106_; lean_object* v___x_108_; uint8_t v_isShared_109_; uint8_t v_isSharedCheck_134_; 
v_a_106_ = lean_ctor_get(v___x_105_, 0);
v_isSharedCheck_134_ = !lean_is_exclusive(v___x_105_);
if (v_isSharedCheck_134_ == 0)
{
v___x_108_ = v___x_105_;
v_isShared_109_ = v_isSharedCheck_134_;
goto v_resetjp_107_;
}
else
{
lean_inc(v_a_106_);
lean_dec(v___x_105_);
v___x_108_ = lean_box(0);
v_isShared_109_ = v_isSharedCheck_134_;
goto v_resetjp_107_;
}
v_resetjp_107_:
{
if (lean_obj_tag(v_a_106_) == 1)
{
lean_object* v_val_110_; lean_object* v___x_112_; uint8_t v_isShared_113_; uint8_t v_isSharedCheck_129_; 
v_val_110_ = lean_ctor_get(v_a_106_, 0);
v_isSharedCheck_129_ = !lean_is_exclusive(v_a_106_);
if (v_isSharedCheck_129_ == 0)
{
v___x_112_ = v_a_106_;
v_isShared_113_ = v_isSharedCheck_129_;
goto v_resetjp_111_;
}
else
{
lean_inc(v_val_110_);
lean_dec(v_a_106_);
v___x_112_ = lean_box(0);
v_isShared_113_ = v_isSharedCheck_129_;
goto v_resetjp_111_;
}
v_resetjp_111_:
{
lean_object* v_fst_114_; lean_object* v_snd_115_; lean_object* v___x_117_; uint8_t v_isShared_118_; uint8_t v_isSharedCheck_128_; 
v_fst_114_ = lean_ctor_get(v_val_110_, 0);
v_snd_115_ = lean_ctor_get(v_val_110_, 1);
v_isSharedCheck_128_ = !lean_is_exclusive(v_val_110_);
if (v_isSharedCheck_128_ == 0)
{
v___x_117_ = v_val_110_;
v_isShared_118_ = v_isSharedCheck_128_;
goto v_resetjp_116_;
}
else
{
lean_inc(v_snd_115_);
lean_inc(v_fst_114_);
lean_dec(v_val_110_);
v___x_117_ = lean_box(0);
v_isShared_118_ = v_isSharedCheck_128_;
goto v_resetjp_116_;
}
v_resetjp_116_:
{
lean_object* v___x_120_; 
if (v_isShared_118_ == 0)
{
v___x_120_ = v___x_117_;
goto v_reusejp_119_;
}
else
{
lean_object* v_reuseFailAlloc_127_; 
v_reuseFailAlloc_127_ = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(v_reuseFailAlloc_127_, 0, v_fst_114_);
lean_ctor_set(v_reuseFailAlloc_127_, 1, v_snd_115_);
v___x_120_ = v_reuseFailAlloc_127_;
goto v_reusejp_119_;
}
v_reusejp_119_:
{
lean_object* v___x_122_; 
if (v_isShared_113_ == 0)
{
lean_ctor_set(v___x_112_, 0, v___x_120_);
v___x_122_ = v___x_112_;
goto v_reusejp_121_;
}
else
{
lean_object* v_reuseFailAlloc_126_; 
v_reuseFailAlloc_126_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_126_, 0, v___x_120_);
v___x_122_ = v_reuseFailAlloc_126_;
goto v_reusejp_121_;
}
v_reusejp_121_:
{
lean_object* v___x_124_; 
if (v_isShared_109_ == 0)
{
lean_ctor_set(v___x_108_, 0, v___x_122_);
v___x_124_ = v___x_108_;
goto v_reusejp_123_;
}
else
{
lean_object* v_reuseFailAlloc_125_; 
v_reuseFailAlloc_125_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_125_, 0, v___x_122_);
v___x_124_ = v_reuseFailAlloc_125_;
goto v_reusejp_123_;
}
v_reusejp_123_:
{
return v___x_124_;
}
}
}
}
}
}
else
{
lean_object* v___x_130_; lean_object* v___x_132_; 
lean_dec(v_a_106_);
v___x_130_ = lean_box(0);
if (v_isShared_109_ == 0)
{
lean_ctor_set(v___x_108_, 0, v___x_130_);
v___x_132_ = v___x_108_;
goto v_reusejp_131_;
}
else
{
lean_object* v_reuseFailAlloc_133_; 
v_reuseFailAlloc_133_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_133_, 0, v___x_130_);
v___x_132_ = v_reuseFailAlloc_133_;
goto v_reusejp_131_;
}
v_reusejp_131_:
{
return v___x_132_;
}
}
}
}
else
{
lean_object* v_a_135_; lean_object* v___x_137_; uint8_t v_isShared_138_; uint8_t v_isSharedCheck_142_; 
v_a_135_ = lean_ctor_get(v___x_105_, 0);
v_isSharedCheck_142_ = !lean_is_exclusive(v___x_105_);
if (v_isSharedCheck_142_ == 0)
{
v___x_137_ = v___x_105_;
v_isShared_138_ = v_isSharedCheck_142_;
goto v_resetjp_136_;
}
else
{
lean_inc(v_a_135_);
lean_dec(v___x_105_);
v___x_137_ = lean_box(0);
v_isShared_138_ = v_isSharedCheck_142_;
goto v_resetjp_136_;
}
v_resetjp_136_:
{
lean_object* v___x_140_; 
if (v_isShared_138_ == 0)
{
v___x_140_ = v___x_137_;
goto v_reusejp_139_;
}
else
{
lean_object* v_reuseFailAlloc_141_; 
v_reuseFailAlloc_141_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_141_, 0, v_a_135_);
v___x_140_ = v_reuseFailAlloc_141_;
goto v_reusejp_139_;
}
v_reusejp_139_:
{
return v___x_140_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_fromExpr_x3f___redArg___boxed(lean_object* v_e_143_, lean_object* v_a_144_, lean_object* v_a_145_, lean_object* v_a_146_, lean_object* v_a_147_, lean_object* v_a_148_){
_start:
{
lean_object* v_res_149_; 
v_res_149_ = l_BitVec_fromExpr_x3f___redArg(v_e_143_, v_a_144_, v_a_145_, v_a_146_, v_a_147_);
return v_res_149_;
}
}
LEAN_EXPORT lean_object* l_BitVec_fromExpr_x3f(lean_object* v_e_150_, lean_object* v_a_151_, lean_object* v_a_152_, lean_object* v_a_153_, lean_object* v_a_154_, lean_object* v_a_155_, lean_object* v_a_156_, lean_object* v_a_157_){
_start:
{
lean_object* v___x_159_; 
v___x_159_ = l_BitVec_fromExpr_x3f___redArg(v_e_150_, v_a_154_, v_a_155_, v_a_156_, v_a_157_);
return v___x_159_;
}
}
LEAN_EXPORT lean_object* l_BitVec_fromExpr_x3f___boxed(lean_object* v_e_160_, lean_object* v_a_161_, lean_object* v_a_162_, lean_object* v_a_163_, lean_object* v_a_164_, lean_object* v_a_165_, lean_object* v_a_166_, lean_object* v_a_167_, lean_object* v_a_168_){
_start:
{
lean_object* v_res_169_; 
v_res_169_ = l_BitVec_fromExpr_x3f(v_e_160_, v_a_161_, v_a_162_, v_a_163_, v_a_164_, v_a_165_, v_a_166_, v_a_167_);
lean_dec(v_a_163_);
lean_dec_ref(v_a_162_);
lean_dec(v_a_161_);
return v_res_169_;
}
}
static lean_object* _init_l_BitVec_toExpr_x27___redArg___closed__2(void){
_start:
{
lean_object* v___x_173_; lean_object* v___x_174_; lean_object* v___x_175_; 
v___x_173_ = lean_box(0);
v___x_174_ = ((lean_object*)(l_BitVec_toExpr_x27___redArg___closed__1));
v___x_175_ = l_Lean_mkConst(v___x_174_, v___x_173_);
return v___x_175_;
}
}
static lean_object* _init_l_BitVec_toExpr_x27___redArg___closed__5(void){
_start:
{
lean_object* v___x_180_; lean_object* v___x_181_; lean_object* v___x_182_; 
v___x_180_ = lean_box(0);
v___x_181_ = ((lean_object*)(l_BitVec_toExpr_x27___redArg___closed__4));
v___x_182_ = l_Lean_Expr_const___override(v___x_181_, v___x_180_);
return v___x_182_;
}
}
LEAN_EXPORT lean_object* l_BitVec_toExpr_x27___redArg(lean_object* v_n_183_, lean_object* v_a_184_, lean_object* v_a_185_, lean_object* v_a_186_, lean_object* v_a_187_, lean_object* v_a_188_, lean_object* v_a_189_){
_start:
{
lean_object* v___x_191_; 
v___x_191_ = l_Lean_Meta_Simp_getConfig___redArg(v_a_185_);
if (lean_obj_tag(v___x_191_) == 0)
{
lean_object* v_a_192_; lean_object* v___x_194_; uint8_t v_isShared_195_; uint8_t v_isSharedCheck_208_; 
v_a_192_ = lean_ctor_get(v___x_191_, 0);
v_isSharedCheck_208_ = !lean_is_exclusive(v___x_191_);
if (v_isSharedCheck_208_ == 0)
{
v___x_194_ = v___x_191_;
v_isShared_195_ = v_isSharedCheck_208_;
goto v_resetjp_193_;
}
else
{
lean_inc(v_a_192_);
lean_dec(v___x_191_);
v___x_194_ = lean_box(0);
v_isShared_195_ = v_isSharedCheck_208_;
goto v_resetjp_193_;
}
v_resetjp_193_:
{
uint8_t v_bitVecOfNat_196_; 
v_bitVecOfNat_196_ = lean_ctor_get_uint8(v_a_192_, sizeof(void*)*3 + 24);
lean_dec(v_a_192_);
if (v_bitVecOfNat_196_ == 0)
{
lean_object* v___x_197_; lean_object* v___x_198_; lean_object* v___x_199_; lean_object* v___x_200_; 
lean_del_object(v___x_194_);
v___x_197_ = lean_obj_once(&l_BitVec_toExpr_x27___redArg___closed__2, &l_BitVec_toExpr_x27___redArg___closed__2_once, _init_l_BitVec_toExpr_x27___redArg___closed__2);
v___x_198_ = l_Lean_mkNatLit(v_n_183_);
v___x_199_ = l_Lean_Expr_app___override(v___x_197_, v___x_198_);
v___x_200_ = l_Lean_Meta_mkNumeral(v___x_199_, v_a_184_, v_a_186_, v_a_187_, v_a_188_, v_a_189_);
return v___x_200_;
}
else
{
lean_object* v___x_201_; lean_object* v___x_202_; lean_object* v___x_203_; lean_object* v___x_204_; lean_object* v___x_206_; 
lean_dec(v_a_189_);
lean_dec_ref(v_a_188_);
lean_dec(v_a_187_);
lean_dec_ref(v_a_186_);
v___x_201_ = lean_obj_once(&l_BitVec_toExpr_x27___redArg___closed__5, &l_BitVec_toExpr_x27___redArg___closed__5_once, _init_l_BitVec_toExpr_x27___redArg___closed__5);
v___x_202_ = l_Lean_mkNatLit(v_n_183_);
v___x_203_ = l_Lean_mkNatLit(v_a_184_);
v___x_204_ = l_Lean_mkAppB(v___x_201_, v___x_202_, v___x_203_);
if (v_isShared_195_ == 0)
{
lean_ctor_set(v___x_194_, 0, v___x_204_);
v___x_206_ = v___x_194_;
goto v_reusejp_205_;
}
else
{
lean_object* v_reuseFailAlloc_207_; 
v_reuseFailAlloc_207_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_207_, 0, v___x_204_);
v___x_206_ = v_reuseFailAlloc_207_;
goto v_reusejp_205_;
}
v_reusejp_205_:
{
return v___x_206_;
}
}
}
}
else
{
lean_object* v_a_209_; lean_object* v___x_211_; uint8_t v_isShared_212_; uint8_t v_isSharedCheck_216_; 
lean_dec(v_a_189_);
lean_dec_ref(v_a_188_);
lean_dec(v_a_187_);
lean_dec_ref(v_a_186_);
lean_dec(v_a_184_);
lean_dec(v_n_183_);
v_a_209_ = lean_ctor_get(v___x_191_, 0);
v_isSharedCheck_216_ = !lean_is_exclusive(v___x_191_);
if (v_isSharedCheck_216_ == 0)
{
v___x_211_ = v___x_191_;
v_isShared_212_ = v_isSharedCheck_216_;
goto v_resetjp_210_;
}
else
{
lean_inc(v_a_209_);
lean_dec(v___x_191_);
v___x_211_ = lean_box(0);
v_isShared_212_ = v_isSharedCheck_216_;
goto v_resetjp_210_;
}
v_resetjp_210_:
{
lean_object* v___x_214_; 
if (v_isShared_212_ == 0)
{
v___x_214_ = v___x_211_;
goto v_reusejp_213_;
}
else
{
lean_object* v_reuseFailAlloc_215_; 
v_reuseFailAlloc_215_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_215_, 0, v_a_209_);
v___x_214_ = v_reuseFailAlloc_215_;
goto v_reusejp_213_;
}
v_reusejp_213_:
{
return v___x_214_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_toExpr_x27___redArg___boxed(lean_object* v_n_217_, lean_object* v_a_218_, lean_object* v_a_219_, lean_object* v_a_220_, lean_object* v_a_221_, lean_object* v_a_222_, lean_object* v_a_223_, lean_object* v_a_224_){
_start:
{
lean_object* v_res_225_; 
v_res_225_ = l_BitVec_toExpr_x27___redArg(v_n_217_, v_a_218_, v_a_219_, v_a_220_, v_a_221_, v_a_222_, v_a_223_);
lean_dec_ref(v_a_219_);
return v_res_225_;
}
}
LEAN_EXPORT lean_object* l_BitVec_toExpr_x27(lean_object* v_n_226_, lean_object* v_a_227_, lean_object* v_a_228_, lean_object* v_a_229_, lean_object* v_a_230_, lean_object* v_a_231_, lean_object* v_a_232_, lean_object* v_a_233_, lean_object* v_a_234_){
_start:
{
lean_object* v___x_236_; 
v___x_236_ = l_BitVec_toExpr_x27___redArg(v_n_226_, v_a_227_, v_a_229_, v_a_231_, v_a_232_, v_a_233_, v_a_234_);
return v___x_236_;
}
}
LEAN_EXPORT lean_object* l_BitVec_toExpr_x27___boxed(lean_object* v_n_237_, lean_object* v_a_238_, lean_object* v_a_239_, lean_object* v_a_240_, lean_object* v_a_241_, lean_object* v_a_242_, lean_object* v_a_243_, lean_object* v_a_244_, lean_object* v_a_245_, lean_object* v_a_246_){
_start:
{
lean_object* v_res_247_; 
v_res_247_ = l_BitVec_toExpr_x27(v_n_237_, v_a_238_, v_a_239_, v_a_240_, v_a_241_, v_a_242_, v_a_243_, v_a_244_, v_a_245_);
lean_dec(v_a_241_);
lean_dec_ref(v_a_240_);
lean_dec(v_a_239_);
return v_res_247_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUnary___redArg(lean_object* v_declName_250_, lean_object* v_arity_251_, lean_object* v_op_252_, lean_object* v_e_253_, lean_object* v_a_254_, lean_object* v_a_255_, lean_object* v_a_256_, lean_object* v_a_257_, lean_object* v_a_258_){
_start:
{
uint8_t v___x_260_; 
v___x_260_ = l_Lean_Expr_isAppOfArity(v_e_253_, v_declName_250_, v_arity_251_);
if (v___x_260_ == 0)
{
lean_object* v___x_261_; lean_object* v___x_262_; 
lean_dec(v_a_258_);
lean_dec_ref(v_a_257_);
lean_dec(v_a_256_);
lean_dec_ref(v_a_255_);
lean_dec_ref(v_op_252_);
v___x_261_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_262_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_262_, 0, v___x_261_);
return v___x_262_;
}
else
{
lean_object* v___x_263_; lean_object* v___x_264_; 
v___x_263_ = l_Lean_Expr_appArg_x21(v_e_253_);
lean_inc(v_a_258_);
lean_inc_ref(v_a_257_);
lean_inc(v_a_256_);
lean_inc_ref(v_a_255_);
v___x_264_ = l_BitVec_fromExpr_x3f___redArg(v___x_263_, v_a_255_, v_a_256_, v_a_257_, v_a_258_);
if (lean_obj_tag(v___x_264_) == 0)
{
lean_object* v_a_265_; lean_object* v___x_267_; uint8_t v_isShared_268_; uint8_t v_isSharedCheck_301_; 
v_a_265_ = lean_ctor_get(v___x_264_, 0);
v_isSharedCheck_301_ = !lean_is_exclusive(v___x_264_);
if (v_isSharedCheck_301_ == 0)
{
v___x_267_ = v___x_264_;
v_isShared_268_ = v_isSharedCheck_301_;
goto v_resetjp_266_;
}
else
{
lean_inc(v_a_265_);
lean_dec(v___x_264_);
v___x_267_ = lean_box(0);
v_isShared_268_ = v_isSharedCheck_301_;
goto v_resetjp_266_;
}
v_resetjp_266_:
{
if (lean_obj_tag(v_a_265_) == 1)
{
lean_object* v_val_269_; lean_object* v___x_271_; uint8_t v_isShared_272_; uint8_t v_isSharedCheck_296_; 
lean_del_object(v___x_267_);
v_val_269_ = lean_ctor_get(v_a_265_, 0);
v_isSharedCheck_296_ = !lean_is_exclusive(v_a_265_);
if (v_isSharedCheck_296_ == 0)
{
v___x_271_ = v_a_265_;
v_isShared_272_ = v_isSharedCheck_296_;
goto v_resetjp_270_;
}
else
{
lean_inc(v_val_269_);
lean_dec(v_a_265_);
v___x_271_ = lean_box(0);
v_isShared_272_ = v_isSharedCheck_296_;
goto v_resetjp_270_;
}
v_resetjp_270_:
{
lean_object* v_n_273_; lean_object* v_value_274_; lean_object* v___x_275_; lean_object* v___x_276_; 
v_n_273_ = lean_ctor_get(v_val_269_, 0);
lean_inc(v_n_273_);
v_value_274_ = lean_ctor_get(v_val_269_, 1);
lean_inc(v_value_274_);
lean_dec(v_val_269_);
lean_inc(v_n_273_);
v___x_275_ = lean_apply_2(v_op_252_, v_n_273_, v_value_274_);
v___x_276_ = l_BitVec_toExpr_x27___redArg(v_n_273_, v___x_275_, v_a_254_, v_a_255_, v_a_256_, v_a_257_, v_a_258_);
if (lean_obj_tag(v___x_276_) == 0)
{
lean_object* v_a_277_; lean_object* v___x_279_; uint8_t v_isShared_280_; uint8_t v_isSharedCheck_287_; 
v_a_277_ = lean_ctor_get(v___x_276_, 0);
v_isSharedCheck_287_ = !lean_is_exclusive(v___x_276_);
if (v_isSharedCheck_287_ == 0)
{
v___x_279_ = v___x_276_;
v_isShared_280_ = v_isSharedCheck_287_;
goto v_resetjp_278_;
}
else
{
lean_inc(v_a_277_);
lean_dec(v___x_276_);
v___x_279_ = lean_box(0);
v_isShared_280_ = v_isSharedCheck_287_;
goto v_resetjp_278_;
}
v_resetjp_278_:
{
lean_object* v___x_282_; 
if (v_isShared_272_ == 0)
{
lean_ctor_set_tag(v___x_271_, 0);
lean_ctor_set(v___x_271_, 0, v_a_277_);
v___x_282_ = v___x_271_;
goto v_reusejp_281_;
}
else
{
lean_object* v_reuseFailAlloc_286_; 
v_reuseFailAlloc_286_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_286_, 0, v_a_277_);
v___x_282_ = v_reuseFailAlloc_286_;
goto v_reusejp_281_;
}
v_reusejp_281_:
{
lean_object* v___x_284_; 
if (v_isShared_280_ == 0)
{
lean_ctor_set(v___x_279_, 0, v___x_282_);
v___x_284_ = v___x_279_;
goto v_reusejp_283_;
}
else
{
lean_object* v_reuseFailAlloc_285_; 
v_reuseFailAlloc_285_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_285_, 0, v___x_282_);
v___x_284_ = v_reuseFailAlloc_285_;
goto v_reusejp_283_;
}
v_reusejp_283_:
{
return v___x_284_;
}
}
}
}
else
{
lean_object* v_a_288_; lean_object* v___x_290_; uint8_t v_isShared_291_; uint8_t v_isSharedCheck_295_; 
lean_del_object(v___x_271_);
v_a_288_ = lean_ctor_get(v___x_276_, 0);
v_isSharedCheck_295_ = !lean_is_exclusive(v___x_276_);
if (v_isSharedCheck_295_ == 0)
{
v___x_290_ = v___x_276_;
v_isShared_291_ = v_isSharedCheck_295_;
goto v_resetjp_289_;
}
else
{
lean_inc(v_a_288_);
lean_dec(v___x_276_);
v___x_290_ = lean_box(0);
v_isShared_291_ = v_isSharedCheck_295_;
goto v_resetjp_289_;
}
v_resetjp_289_:
{
lean_object* v___x_293_; 
if (v_isShared_291_ == 0)
{
v___x_293_ = v___x_290_;
goto v_reusejp_292_;
}
else
{
lean_object* v_reuseFailAlloc_294_; 
v_reuseFailAlloc_294_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_294_, 0, v_a_288_);
v___x_293_ = v_reuseFailAlloc_294_;
goto v_reusejp_292_;
}
v_reusejp_292_:
{
return v___x_293_;
}
}
}
}
}
else
{
lean_object* v___x_297_; lean_object* v___x_299_; 
lean_dec(v_a_265_);
lean_dec(v_a_258_);
lean_dec_ref(v_a_257_);
lean_dec(v_a_256_);
lean_dec_ref(v_a_255_);
lean_dec_ref(v_op_252_);
v___x_297_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_268_ == 0)
{
lean_ctor_set(v___x_267_, 0, v___x_297_);
v___x_299_ = v___x_267_;
goto v_reusejp_298_;
}
else
{
lean_object* v_reuseFailAlloc_300_; 
v_reuseFailAlloc_300_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_300_, 0, v___x_297_);
v___x_299_ = v_reuseFailAlloc_300_;
goto v_reusejp_298_;
}
v_reusejp_298_:
{
return v___x_299_;
}
}
}
}
else
{
lean_object* v_a_302_; lean_object* v___x_304_; uint8_t v_isShared_305_; uint8_t v_isSharedCheck_309_; 
lean_dec(v_a_258_);
lean_dec_ref(v_a_257_);
lean_dec(v_a_256_);
lean_dec_ref(v_a_255_);
lean_dec_ref(v_op_252_);
v_a_302_ = lean_ctor_get(v___x_264_, 0);
v_isSharedCheck_309_ = !lean_is_exclusive(v___x_264_);
if (v_isSharedCheck_309_ == 0)
{
v___x_304_ = v___x_264_;
v_isShared_305_ = v_isSharedCheck_309_;
goto v_resetjp_303_;
}
else
{
lean_inc(v_a_302_);
lean_dec(v___x_264_);
v___x_304_ = lean_box(0);
v_isShared_305_ = v_isSharedCheck_309_;
goto v_resetjp_303_;
}
v_resetjp_303_:
{
lean_object* v___x_307_; 
if (v_isShared_305_ == 0)
{
v___x_307_ = v___x_304_;
goto v_reusejp_306_;
}
else
{
lean_object* v_reuseFailAlloc_308_; 
v_reuseFailAlloc_308_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_308_, 0, v_a_302_);
v___x_307_ = v_reuseFailAlloc_308_;
goto v_reusejp_306_;
}
v_reusejp_306_:
{
return v___x_307_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUnary___redArg___boxed(lean_object* v_declName_310_, lean_object* v_arity_311_, lean_object* v_op_312_, lean_object* v_e_313_, lean_object* v_a_314_, lean_object* v_a_315_, lean_object* v_a_316_, lean_object* v_a_317_, lean_object* v_a_318_, lean_object* v_a_319_){
_start:
{
lean_object* v_res_320_; 
v_res_320_ = l_BitVec_reduceUnary___redArg(v_declName_310_, v_arity_311_, v_op_312_, v_e_313_, v_a_314_, v_a_315_, v_a_316_, v_a_317_, v_a_318_);
lean_dec_ref(v_a_314_);
lean_dec_ref(v_e_313_);
lean_dec(v_declName_310_);
return v_res_320_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUnary(lean_object* v_declName_321_, lean_object* v_arity_322_, lean_object* v_op_323_, lean_object* v_e_324_, lean_object* v_a_325_, lean_object* v_a_326_, lean_object* v_a_327_, lean_object* v_a_328_, lean_object* v_a_329_, lean_object* v_a_330_, lean_object* v_a_331_){
_start:
{
uint8_t v___x_333_; 
v___x_333_ = l_Lean_Expr_isAppOfArity(v_e_324_, v_declName_321_, v_arity_322_);
if (v___x_333_ == 0)
{
lean_object* v___x_334_; lean_object* v___x_335_; 
lean_dec(v_a_331_);
lean_dec_ref(v_a_330_);
lean_dec(v_a_329_);
lean_dec_ref(v_a_328_);
lean_dec_ref(v_op_323_);
v___x_334_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_335_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_335_, 0, v___x_334_);
return v___x_335_;
}
else
{
lean_object* v___x_336_; lean_object* v___x_337_; 
v___x_336_ = l_Lean_Expr_appArg_x21(v_e_324_);
lean_inc(v_a_331_);
lean_inc_ref(v_a_330_);
lean_inc(v_a_329_);
lean_inc_ref(v_a_328_);
v___x_337_ = l_BitVec_fromExpr_x3f___redArg(v___x_336_, v_a_328_, v_a_329_, v_a_330_, v_a_331_);
if (lean_obj_tag(v___x_337_) == 0)
{
lean_object* v_a_338_; lean_object* v___x_340_; uint8_t v_isShared_341_; uint8_t v_isSharedCheck_374_; 
v_a_338_ = lean_ctor_get(v___x_337_, 0);
v_isSharedCheck_374_ = !lean_is_exclusive(v___x_337_);
if (v_isSharedCheck_374_ == 0)
{
v___x_340_ = v___x_337_;
v_isShared_341_ = v_isSharedCheck_374_;
goto v_resetjp_339_;
}
else
{
lean_inc(v_a_338_);
lean_dec(v___x_337_);
v___x_340_ = lean_box(0);
v_isShared_341_ = v_isSharedCheck_374_;
goto v_resetjp_339_;
}
v_resetjp_339_:
{
if (lean_obj_tag(v_a_338_) == 1)
{
lean_object* v_val_342_; lean_object* v___x_344_; uint8_t v_isShared_345_; uint8_t v_isSharedCheck_369_; 
lean_del_object(v___x_340_);
v_val_342_ = lean_ctor_get(v_a_338_, 0);
v_isSharedCheck_369_ = !lean_is_exclusive(v_a_338_);
if (v_isSharedCheck_369_ == 0)
{
v___x_344_ = v_a_338_;
v_isShared_345_ = v_isSharedCheck_369_;
goto v_resetjp_343_;
}
else
{
lean_inc(v_val_342_);
lean_dec(v_a_338_);
v___x_344_ = lean_box(0);
v_isShared_345_ = v_isSharedCheck_369_;
goto v_resetjp_343_;
}
v_resetjp_343_:
{
lean_object* v_n_346_; lean_object* v_value_347_; lean_object* v___x_348_; lean_object* v___x_349_; 
v_n_346_ = lean_ctor_get(v_val_342_, 0);
lean_inc(v_n_346_);
v_value_347_ = lean_ctor_get(v_val_342_, 1);
lean_inc(v_value_347_);
lean_dec(v_val_342_);
lean_inc(v_n_346_);
v___x_348_ = lean_apply_2(v_op_323_, v_n_346_, v_value_347_);
v___x_349_ = l_BitVec_toExpr_x27___redArg(v_n_346_, v___x_348_, v_a_326_, v_a_328_, v_a_329_, v_a_330_, v_a_331_);
if (lean_obj_tag(v___x_349_) == 0)
{
lean_object* v_a_350_; lean_object* v___x_352_; uint8_t v_isShared_353_; uint8_t v_isSharedCheck_360_; 
v_a_350_ = lean_ctor_get(v___x_349_, 0);
v_isSharedCheck_360_ = !lean_is_exclusive(v___x_349_);
if (v_isSharedCheck_360_ == 0)
{
v___x_352_ = v___x_349_;
v_isShared_353_ = v_isSharedCheck_360_;
goto v_resetjp_351_;
}
else
{
lean_inc(v_a_350_);
lean_dec(v___x_349_);
v___x_352_ = lean_box(0);
v_isShared_353_ = v_isSharedCheck_360_;
goto v_resetjp_351_;
}
v_resetjp_351_:
{
lean_object* v___x_355_; 
if (v_isShared_345_ == 0)
{
lean_ctor_set_tag(v___x_344_, 0);
lean_ctor_set(v___x_344_, 0, v_a_350_);
v___x_355_ = v___x_344_;
goto v_reusejp_354_;
}
else
{
lean_object* v_reuseFailAlloc_359_; 
v_reuseFailAlloc_359_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_359_, 0, v_a_350_);
v___x_355_ = v_reuseFailAlloc_359_;
goto v_reusejp_354_;
}
v_reusejp_354_:
{
lean_object* v___x_357_; 
if (v_isShared_353_ == 0)
{
lean_ctor_set(v___x_352_, 0, v___x_355_);
v___x_357_ = v___x_352_;
goto v_reusejp_356_;
}
else
{
lean_object* v_reuseFailAlloc_358_; 
v_reuseFailAlloc_358_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_358_, 0, v___x_355_);
v___x_357_ = v_reuseFailAlloc_358_;
goto v_reusejp_356_;
}
v_reusejp_356_:
{
return v___x_357_;
}
}
}
}
else
{
lean_object* v_a_361_; lean_object* v___x_363_; uint8_t v_isShared_364_; uint8_t v_isSharedCheck_368_; 
lean_del_object(v___x_344_);
v_a_361_ = lean_ctor_get(v___x_349_, 0);
v_isSharedCheck_368_ = !lean_is_exclusive(v___x_349_);
if (v_isSharedCheck_368_ == 0)
{
v___x_363_ = v___x_349_;
v_isShared_364_ = v_isSharedCheck_368_;
goto v_resetjp_362_;
}
else
{
lean_inc(v_a_361_);
lean_dec(v___x_349_);
v___x_363_ = lean_box(0);
v_isShared_364_ = v_isSharedCheck_368_;
goto v_resetjp_362_;
}
v_resetjp_362_:
{
lean_object* v___x_366_; 
if (v_isShared_364_ == 0)
{
v___x_366_ = v___x_363_;
goto v_reusejp_365_;
}
else
{
lean_object* v_reuseFailAlloc_367_; 
v_reuseFailAlloc_367_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_367_, 0, v_a_361_);
v___x_366_ = v_reuseFailAlloc_367_;
goto v_reusejp_365_;
}
v_reusejp_365_:
{
return v___x_366_;
}
}
}
}
}
else
{
lean_object* v___x_370_; lean_object* v___x_372_; 
lean_dec(v_a_338_);
lean_dec(v_a_331_);
lean_dec_ref(v_a_330_);
lean_dec(v_a_329_);
lean_dec_ref(v_a_328_);
lean_dec_ref(v_op_323_);
v___x_370_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_341_ == 0)
{
lean_ctor_set(v___x_340_, 0, v___x_370_);
v___x_372_ = v___x_340_;
goto v_reusejp_371_;
}
else
{
lean_object* v_reuseFailAlloc_373_; 
v_reuseFailAlloc_373_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_373_, 0, v___x_370_);
v___x_372_ = v_reuseFailAlloc_373_;
goto v_reusejp_371_;
}
v_reusejp_371_:
{
return v___x_372_;
}
}
}
}
else
{
lean_object* v_a_375_; lean_object* v___x_377_; uint8_t v_isShared_378_; uint8_t v_isSharedCheck_382_; 
lean_dec(v_a_331_);
lean_dec_ref(v_a_330_);
lean_dec(v_a_329_);
lean_dec_ref(v_a_328_);
lean_dec_ref(v_op_323_);
v_a_375_ = lean_ctor_get(v___x_337_, 0);
v_isSharedCheck_382_ = !lean_is_exclusive(v___x_337_);
if (v_isSharedCheck_382_ == 0)
{
v___x_377_ = v___x_337_;
v_isShared_378_ = v_isSharedCheck_382_;
goto v_resetjp_376_;
}
else
{
lean_inc(v_a_375_);
lean_dec(v___x_337_);
v___x_377_ = lean_box(0);
v_isShared_378_ = v_isSharedCheck_382_;
goto v_resetjp_376_;
}
v_resetjp_376_:
{
lean_object* v___x_380_; 
if (v_isShared_378_ == 0)
{
v___x_380_ = v___x_377_;
goto v_reusejp_379_;
}
else
{
lean_object* v_reuseFailAlloc_381_; 
v_reuseFailAlloc_381_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_381_, 0, v_a_375_);
v___x_380_ = v_reuseFailAlloc_381_;
goto v_reusejp_379_;
}
v_reusejp_379_:
{
return v___x_380_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUnary___boxed(lean_object* v_declName_383_, lean_object* v_arity_384_, lean_object* v_op_385_, lean_object* v_e_386_, lean_object* v_a_387_, lean_object* v_a_388_, lean_object* v_a_389_, lean_object* v_a_390_, lean_object* v_a_391_, lean_object* v_a_392_, lean_object* v_a_393_, lean_object* v_a_394_){
_start:
{
lean_object* v_res_395_; 
v_res_395_ = l_BitVec_reduceUnary(v_declName_383_, v_arity_384_, v_op_385_, v_e_386_, v_a_387_, v_a_388_, v_a_389_, v_a_390_, v_a_391_, v_a_392_, v_a_393_);
lean_dec(v_a_389_);
lean_dec_ref(v_a_388_);
lean_dec(v_a_387_);
lean_dec_ref(v_e_386_);
lean_dec(v_declName_383_);
return v_res_395_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBin___redArg(lean_object* v_declName_396_, lean_object* v_arity_397_, lean_object* v_op_398_, lean_object* v_e_399_, lean_object* v_a_400_, lean_object* v_a_401_, lean_object* v_a_402_, lean_object* v_a_403_, lean_object* v_a_404_){
_start:
{
uint8_t v___x_406_; 
v___x_406_ = l_Lean_Expr_isAppOfArity(v_e_399_, v_declName_396_, v_arity_397_);
if (v___x_406_ == 0)
{
lean_object* v___x_407_; lean_object* v___x_408_; 
lean_dec(v_a_404_);
lean_dec_ref(v_a_403_);
lean_dec(v_a_402_);
lean_dec_ref(v_a_401_);
lean_dec_ref(v_op_398_);
v___x_407_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_408_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_408_, 0, v___x_407_);
return v___x_408_;
}
else
{
lean_object* v___x_409_; lean_object* v___x_410_; lean_object* v___x_411_; 
v___x_409_ = l_Lean_Expr_appFn_x21(v_e_399_);
v___x_410_ = l_Lean_Expr_appArg_x21(v___x_409_);
lean_dec_ref(v___x_409_);
lean_inc(v_a_404_);
lean_inc_ref(v_a_403_);
lean_inc(v_a_402_);
lean_inc_ref(v_a_401_);
v___x_411_ = l_BitVec_fromExpr_x3f___redArg(v___x_410_, v_a_401_, v_a_402_, v_a_403_, v_a_404_);
if (lean_obj_tag(v___x_411_) == 0)
{
lean_object* v_a_412_; lean_object* v___x_414_; uint8_t v_isShared_415_; uint8_t v_isSharedCheck_475_; 
v_a_412_ = lean_ctor_get(v___x_411_, 0);
v_isSharedCheck_475_ = !lean_is_exclusive(v___x_411_);
if (v_isSharedCheck_475_ == 0)
{
v___x_414_ = v___x_411_;
v_isShared_415_ = v_isSharedCheck_475_;
goto v_resetjp_413_;
}
else
{
lean_inc(v_a_412_);
lean_dec(v___x_411_);
v___x_414_ = lean_box(0);
v_isShared_415_ = v_isSharedCheck_475_;
goto v_resetjp_413_;
}
v_resetjp_413_:
{
if (lean_obj_tag(v_a_412_) == 1)
{
lean_object* v_val_416_; lean_object* v___x_417_; lean_object* v___x_418_; 
lean_del_object(v___x_414_);
v_val_416_ = lean_ctor_get(v_a_412_, 0);
lean_inc(v_val_416_);
lean_dec_ref(v_a_412_);
v___x_417_ = l_Lean_Expr_appArg_x21(v_e_399_);
lean_inc(v_a_404_);
lean_inc_ref(v_a_403_);
lean_inc(v_a_402_);
lean_inc_ref(v_a_401_);
v___x_418_ = l_BitVec_fromExpr_x3f___redArg(v___x_417_, v_a_401_, v_a_402_, v_a_403_, v_a_404_);
if (lean_obj_tag(v___x_418_) == 0)
{
lean_object* v_a_419_; lean_object* v___x_421_; uint8_t v_isShared_422_; uint8_t v_isSharedCheck_462_; 
v_a_419_ = lean_ctor_get(v___x_418_, 0);
v_isSharedCheck_462_ = !lean_is_exclusive(v___x_418_);
if (v_isSharedCheck_462_ == 0)
{
v___x_421_ = v___x_418_;
v_isShared_422_ = v_isSharedCheck_462_;
goto v_resetjp_420_;
}
else
{
lean_inc(v_a_419_);
lean_dec(v___x_418_);
v___x_421_ = lean_box(0);
v_isShared_422_ = v_isSharedCheck_462_;
goto v_resetjp_420_;
}
v_resetjp_420_:
{
if (lean_obj_tag(v_a_419_) == 1)
{
lean_object* v_val_423_; lean_object* v___x_425_; uint8_t v_isShared_426_; uint8_t v_isSharedCheck_457_; 
v_val_423_ = lean_ctor_get(v_a_419_, 0);
v_isSharedCheck_457_ = !lean_is_exclusive(v_a_419_);
if (v_isSharedCheck_457_ == 0)
{
v___x_425_ = v_a_419_;
v_isShared_426_ = v_isSharedCheck_457_;
goto v_resetjp_424_;
}
else
{
lean_inc(v_val_423_);
lean_dec(v_a_419_);
v___x_425_ = lean_box(0);
v_isShared_426_ = v_isSharedCheck_457_;
goto v_resetjp_424_;
}
v_resetjp_424_:
{
lean_object* v_n_427_; lean_object* v_value_428_; lean_object* v_n_429_; lean_object* v_value_430_; uint8_t v___x_431_; 
v_n_427_ = lean_ctor_get(v_val_416_, 0);
lean_inc(v_n_427_);
v_value_428_ = lean_ctor_get(v_val_416_, 1);
lean_inc(v_value_428_);
lean_dec(v_val_416_);
v_n_429_ = lean_ctor_get(v_val_423_, 0);
lean_inc(v_n_429_);
v_value_430_ = lean_ctor_get(v_val_423_, 1);
lean_inc(v_value_430_);
lean_dec(v_val_423_);
v___x_431_ = lean_nat_dec_eq(v_n_427_, v_n_429_);
lean_dec(v_n_429_);
if (v___x_431_ == 0)
{
lean_object* v___x_432_; lean_object* v___x_434_; 
lean_dec(v_value_430_);
lean_dec(v_value_428_);
lean_dec(v_n_427_);
lean_del_object(v___x_425_);
lean_dec(v_a_404_);
lean_dec_ref(v_a_403_);
lean_dec(v_a_402_);
lean_dec_ref(v_a_401_);
lean_dec_ref(v_op_398_);
v___x_432_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_422_ == 0)
{
lean_ctor_set(v___x_421_, 0, v___x_432_);
v___x_434_ = v___x_421_;
goto v_reusejp_433_;
}
else
{
lean_object* v_reuseFailAlloc_435_; 
v_reuseFailAlloc_435_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_435_, 0, v___x_432_);
v___x_434_ = v_reuseFailAlloc_435_;
goto v_reusejp_433_;
}
v_reusejp_433_:
{
return v___x_434_;
}
}
else
{
lean_object* v___x_436_; lean_object* v___x_437_; 
lean_del_object(v___x_421_);
lean_inc(v_n_427_);
v___x_436_ = lean_apply_3(v_op_398_, v_n_427_, v_value_428_, v_value_430_);
v___x_437_ = l_BitVec_toExpr_x27___redArg(v_n_427_, v___x_436_, v_a_400_, v_a_401_, v_a_402_, v_a_403_, v_a_404_);
if (lean_obj_tag(v___x_437_) == 0)
{
lean_object* v_a_438_; lean_object* v___x_440_; uint8_t v_isShared_441_; uint8_t v_isSharedCheck_448_; 
v_a_438_ = lean_ctor_get(v___x_437_, 0);
v_isSharedCheck_448_ = !lean_is_exclusive(v___x_437_);
if (v_isSharedCheck_448_ == 0)
{
v___x_440_ = v___x_437_;
v_isShared_441_ = v_isSharedCheck_448_;
goto v_resetjp_439_;
}
else
{
lean_inc(v_a_438_);
lean_dec(v___x_437_);
v___x_440_ = lean_box(0);
v_isShared_441_ = v_isSharedCheck_448_;
goto v_resetjp_439_;
}
v_resetjp_439_:
{
lean_object* v___x_443_; 
if (v_isShared_426_ == 0)
{
lean_ctor_set_tag(v___x_425_, 0);
lean_ctor_set(v___x_425_, 0, v_a_438_);
v___x_443_ = v___x_425_;
goto v_reusejp_442_;
}
else
{
lean_object* v_reuseFailAlloc_447_; 
v_reuseFailAlloc_447_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_447_, 0, v_a_438_);
v___x_443_ = v_reuseFailAlloc_447_;
goto v_reusejp_442_;
}
v_reusejp_442_:
{
lean_object* v___x_445_; 
if (v_isShared_441_ == 0)
{
lean_ctor_set(v___x_440_, 0, v___x_443_);
v___x_445_ = v___x_440_;
goto v_reusejp_444_;
}
else
{
lean_object* v_reuseFailAlloc_446_; 
v_reuseFailAlloc_446_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_446_, 0, v___x_443_);
v___x_445_ = v_reuseFailAlloc_446_;
goto v_reusejp_444_;
}
v_reusejp_444_:
{
return v___x_445_;
}
}
}
}
else
{
lean_object* v_a_449_; lean_object* v___x_451_; uint8_t v_isShared_452_; uint8_t v_isSharedCheck_456_; 
lean_del_object(v___x_425_);
v_a_449_ = lean_ctor_get(v___x_437_, 0);
v_isSharedCheck_456_ = !lean_is_exclusive(v___x_437_);
if (v_isSharedCheck_456_ == 0)
{
v___x_451_ = v___x_437_;
v_isShared_452_ = v_isSharedCheck_456_;
goto v_resetjp_450_;
}
else
{
lean_inc(v_a_449_);
lean_dec(v___x_437_);
v___x_451_ = lean_box(0);
v_isShared_452_ = v_isSharedCheck_456_;
goto v_resetjp_450_;
}
v_resetjp_450_:
{
lean_object* v___x_454_; 
if (v_isShared_452_ == 0)
{
v___x_454_ = v___x_451_;
goto v_reusejp_453_;
}
else
{
lean_object* v_reuseFailAlloc_455_; 
v_reuseFailAlloc_455_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_455_, 0, v_a_449_);
v___x_454_ = v_reuseFailAlloc_455_;
goto v_reusejp_453_;
}
v_reusejp_453_:
{
return v___x_454_;
}
}
}
}
}
}
else
{
lean_object* v___x_458_; lean_object* v___x_460_; 
lean_dec(v_a_419_);
lean_dec(v_val_416_);
lean_dec(v_a_404_);
lean_dec_ref(v_a_403_);
lean_dec(v_a_402_);
lean_dec_ref(v_a_401_);
lean_dec_ref(v_op_398_);
v___x_458_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_422_ == 0)
{
lean_ctor_set(v___x_421_, 0, v___x_458_);
v___x_460_ = v___x_421_;
goto v_reusejp_459_;
}
else
{
lean_object* v_reuseFailAlloc_461_; 
v_reuseFailAlloc_461_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_461_, 0, v___x_458_);
v___x_460_ = v_reuseFailAlloc_461_;
goto v_reusejp_459_;
}
v_reusejp_459_:
{
return v___x_460_;
}
}
}
}
else
{
lean_object* v_a_463_; lean_object* v___x_465_; uint8_t v_isShared_466_; uint8_t v_isSharedCheck_470_; 
lean_dec(v_val_416_);
lean_dec(v_a_404_);
lean_dec_ref(v_a_403_);
lean_dec(v_a_402_);
lean_dec_ref(v_a_401_);
lean_dec_ref(v_op_398_);
v_a_463_ = lean_ctor_get(v___x_418_, 0);
v_isSharedCheck_470_ = !lean_is_exclusive(v___x_418_);
if (v_isSharedCheck_470_ == 0)
{
v___x_465_ = v___x_418_;
v_isShared_466_ = v_isSharedCheck_470_;
goto v_resetjp_464_;
}
else
{
lean_inc(v_a_463_);
lean_dec(v___x_418_);
v___x_465_ = lean_box(0);
v_isShared_466_ = v_isSharedCheck_470_;
goto v_resetjp_464_;
}
v_resetjp_464_:
{
lean_object* v___x_468_; 
if (v_isShared_466_ == 0)
{
v___x_468_ = v___x_465_;
goto v_reusejp_467_;
}
else
{
lean_object* v_reuseFailAlloc_469_; 
v_reuseFailAlloc_469_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_469_, 0, v_a_463_);
v___x_468_ = v_reuseFailAlloc_469_;
goto v_reusejp_467_;
}
v_reusejp_467_:
{
return v___x_468_;
}
}
}
}
else
{
lean_object* v___x_471_; lean_object* v___x_473_; 
lean_dec(v_a_412_);
lean_dec(v_a_404_);
lean_dec_ref(v_a_403_);
lean_dec(v_a_402_);
lean_dec_ref(v_a_401_);
lean_dec_ref(v_op_398_);
v___x_471_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_415_ == 0)
{
lean_ctor_set(v___x_414_, 0, v___x_471_);
v___x_473_ = v___x_414_;
goto v_reusejp_472_;
}
else
{
lean_object* v_reuseFailAlloc_474_; 
v_reuseFailAlloc_474_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_474_, 0, v___x_471_);
v___x_473_ = v_reuseFailAlloc_474_;
goto v_reusejp_472_;
}
v_reusejp_472_:
{
return v___x_473_;
}
}
}
}
else
{
lean_object* v_a_476_; lean_object* v___x_478_; uint8_t v_isShared_479_; uint8_t v_isSharedCheck_483_; 
lean_dec(v_a_404_);
lean_dec_ref(v_a_403_);
lean_dec(v_a_402_);
lean_dec_ref(v_a_401_);
lean_dec_ref(v_op_398_);
v_a_476_ = lean_ctor_get(v___x_411_, 0);
v_isSharedCheck_483_ = !lean_is_exclusive(v___x_411_);
if (v_isSharedCheck_483_ == 0)
{
v___x_478_ = v___x_411_;
v_isShared_479_ = v_isSharedCheck_483_;
goto v_resetjp_477_;
}
else
{
lean_inc(v_a_476_);
lean_dec(v___x_411_);
v___x_478_ = lean_box(0);
v_isShared_479_ = v_isSharedCheck_483_;
goto v_resetjp_477_;
}
v_resetjp_477_:
{
lean_object* v___x_481_; 
if (v_isShared_479_ == 0)
{
v___x_481_ = v___x_478_;
goto v_reusejp_480_;
}
else
{
lean_object* v_reuseFailAlloc_482_; 
v_reuseFailAlloc_482_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_482_, 0, v_a_476_);
v___x_481_ = v_reuseFailAlloc_482_;
goto v_reusejp_480_;
}
v_reusejp_480_:
{
return v___x_481_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBin___redArg___boxed(lean_object* v_declName_484_, lean_object* v_arity_485_, lean_object* v_op_486_, lean_object* v_e_487_, lean_object* v_a_488_, lean_object* v_a_489_, lean_object* v_a_490_, lean_object* v_a_491_, lean_object* v_a_492_, lean_object* v_a_493_){
_start:
{
lean_object* v_res_494_; 
v_res_494_ = l_BitVec_reduceBin___redArg(v_declName_484_, v_arity_485_, v_op_486_, v_e_487_, v_a_488_, v_a_489_, v_a_490_, v_a_491_, v_a_492_);
lean_dec_ref(v_a_488_);
lean_dec_ref(v_e_487_);
lean_dec(v_declName_484_);
return v_res_494_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBin(lean_object* v_declName_495_, lean_object* v_arity_496_, lean_object* v_op_497_, lean_object* v_e_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_, lean_object* v_a_505_){
_start:
{
uint8_t v___x_507_; 
v___x_507_ = l_Lean_Expr_isAppOfArity(v_e_498_, v_declName_495_, v_arity_496_);
if (v___x_507_ == 0)
{
lean_object* v___x_508_; lean_object* v___x_509_; 
lean_dec(v_a_505_);
lean_dec_ref(v_a_504_);
lean_dec(v_a_503_);
lean_dec_ref(v_a_502_);
lean_dec_ref(v_op_497_);
v___x_508_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_509_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_509_, 0, v___x_508_);
return v___x_509_;
}
else
{
lean_object* v___x_510_; lean_object* v___x_511_; lean_object* v___x_512_; 
v___x_510_ = l_Lean_Expr_appFn_x21(v_e_498_);
v___x_511_ = l_Lean_Expr_appArg_x21(v___x_510_);
lean_dec_ref(v___x_510_);
lean_inc(v_a_505_);
lean_inc_ref(v_a_504_);
lean_inc(v_a_503_);
lean_inc_ref(v_a_502_);
v___x_512_ = l_BitVec_fromExpr_x3f___redArg(v___x_511_, v_a_502_, v_a_503_, v_a_504_, v_a_505_);
if (lean_obj_tag(v___x_512_) == 0)
{
lean_object* v_a_513_; lean_object* v___x_515_; uint8_t v_isShared_516_; uint8_t v_isSharedCheck_576_; 
v_a_513_ = lean_ctor_get(v___x_512_, 0);
v_isSharedCheck_576_ = !lean_is_exclusive(v___x_512_);
if (v_isSharedCheck_576_ == 0)
{
v___x_515_ = v___x_512_;
v_isShared_516_ = v_isSharedCheck_576_;
goto v_resetjp_514_;
}
else
{
lean_inc(v_a_513_);
lean_dec(v___x_512_);
v___x_515_ = lean_box(0);
v_isShared_516_ = v_isSharedCheck_576_;
goto v_resetjp_514_;
}
v_resetjp_514_:
{
if (lean_obj_tag(v_a_513_) == 1)
{
lean_object* v_val_517_; lean_object* v___x_518_; lean_object* v___x_519_; 
lean_del_object(v___x_515_);
v_val_517_ = lean_ctor_get(v_a_513_, 0);
lean_inc(v_val_517_);
lean_dec_ref(v_a_513_);
v___x_518_ = l_Lean_Expr_appArg_x21(v_e_498_);
lean_inc(v_a_505_);
lean_inc_ref(v_a_504_);
lean_inc(v_a_503_);
lean_inc_ref(v_a_502_);
v___x_519_ = l_BitVec_fromExpr_x3f___redArg(v___x_518_, v_a_502_, v_a_503_, v_a_504_, v_a_505_);
if (lean_obj_tag(v___x_519_) == 0)
{
lean_object* v_a_520_; lean_object* v___x_522_; uint8_t v_isShared_523_; uint8_t v_isSharedCheck_563_; 
v_a_520_ = lean_ctor_get(v___x_519_, 0);
v_isSharedCheck_563_ = !lean_is_exclusive(v___x_519_);
if (v_isSharedCheck_563_ == 0)
{
v___x_522_ = v___x_519_;
v_isShared_523_ = v_isSharedCheck_563_;
goto v_resetjp_521_;
}
else
{
lean_inc(v_a_520_);
lean_dec(v___x_519_);
v___x_522_ = lean_box(0);
v_isShared_523_ = v_isSharedCheck_563_;
goto v_resetjp_521_;
}
v_resetjp_521_:
{
if (lean_obj_tag(v_a_520_) == 1)
{
lean_object* v_val_524_; lean_object* v___x_526_; uint8_t v_isShared_527_; uint8_t v_isSharedCheck_558_; 
v_val_524_ = lean_ctor_get(v_a_520_, 0);
v_isSharedCheck_558_ = !lean_is_exclusive(v_a_520_);
if (v_isSharedCheck_558_ == 0)
{
v___x_526_ = v_a_520_;
v_isShared_527_ = v_isSharedCheck_558_;
goto v_resetjp_525_;
}
else
{
lean_inc(v_val_524_);
lean_dec(v_a_520_);
v___x_526_ = lean_box(0);
v_isShared_527_ = v_isSharedCheck_558_;
goto v_resetjp_525_;
}
v_resetjp_525_:
{
lean_object* v_n_528_; lean_object* v_value_529_; lean_object* v_n_530_; lean_object* v_value_531_; uint8_t v___x_532_; 
v_n_528_ = lean_ctor_get(v_val_517_, 0);
lean_inc(v_n_528_);
v_value_529_ = lean_ctor_get(v_val_517_, 1);
lean_inc(v_value_529_);
lean_dec(v_val_517_);
v_n_530_ = lean_ctor_get(v_val_524_, 0);
lean_inc(v_n_530_);
v_value_531_ = lean_ctor_get(v_val_524_, 1);
lean_inc(v_value_531_);
lean_dec(v_val_524_);
v___x_532_ = lean_nat_dec_eq(v_n_528_, v_n_530_);
lean_dec(v_n_530_);
if (v___x_532_ == 0)
{
lean_object* v___x_533_; lean_object* v___x_535_; 
lean_dec(v_value_531_);
lean_dec(v_value_529_);
lean_dec(v_n_528_);
lean_del_object(v___x_526_);
lean_dec(v_a_505_);
lean_dec_ref(v_a_504_);
lean_dec(v_a_503_);
lean_dec_ref(v_a_502_);
lean_dec_ref(v_op_497_);
v___x_533_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_523_ == 0)
{
lean_ctor_set(v___x_522_, 0, v___x_533_);
v___x_535_ = v___x_522_;
goto v_reusejp_534_;
}
else
{
lean_object* v_reuseFailAlloc_536_; 
v_reuseFailAlloc_536_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_536_, 0, v___x_533_);
v___x_535_ = v_reuseFailAlloc_536_;
goto v_reusejp_534_;
}
v_reusejp_534_:
{
return v___x_535_;
}
}
else
{
lean_object* v___x_537_; lean_object* v___x_538_; 
lean_del_object(v___x_522_);
lean_inc(v_n_528_);
v___x_537_ = lean_apply_3(v_op_497_, v_n_528_, v_value_529_, v_value_531_);
v___x_538_ = l_BitVec_toExpr_x27___redArg(v_n_528_, v___x_537_, v_a_500_, v_a_502_, v_a_503_, v_a_504_, v_a_505_);
if (lean_obj_tag(v___x_538_) == 0)
{
lean_object* v_a_539_; lean_object* v___x_541_; uint8_t v_isShared_542_; uint8_t v_isSharedCheck_549_; 
v_a_539_ = lean_ctor_get(v___x_538_, 0);
v_isSharedCheck_549_ = !lean_is_exclusive(v___x_538_);
if (v_isSharedCheck_549_ == 0)
{
v___x_541_ = v___x_538_;
v_isShared_542_ = v_isSharedCheck_549_;
goto v_resetjp_540_;
}
else
{
lean_inc(v_a_539_);
lean_dec(v___x_538_);
v___x_541_ = lean_box(0);
v_isShared_542_ = v_isSharedCheck_549_;
goto v_resetjp_540_;
}
v_resetjp_540_:
{
lean_object* v___x_544_; 
if (v_isShared_527_ == 0)
{
lean_ctor_set_tag(v___x_526_, 0);
lean_ctor_set(v___x_526_, 0, v_a_539_);
v___x_544_ = v___x_526_;
goto v_reusejp_543_;
}
else
{
lean_object* v_reuseFailAlloc_548_; 
v_reuseFailAlloc_548_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_548_, 0, v_a_539_);
v___x_544_ = v_reuseFailAlloc_548_;
goto v_reusejp_543_;
}
v_reusejp_543_:
{
lean_object* v___x_546_; 
if (v_isShared_542_ == 0)
{
lean_ctor_set(v___x_541_, 0, v___x_544_);
v___x_546_ = v___x_541_;
goto v_reusejp_545_;
}
else
{
lean_object* v_reuseFailAlloc_547_; 
v_reuseFailAlloc_547_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_547_, 0, v___x_544_);
v___x_546_ = v_reuseFailAlloc_547_;
goto v_reusejp_545_;
}
v_reusejp_545_:
{
return v___x_546_;
}
}
}
}
else
{
lean_object* v_a_550_; lean_object* v___x_552_; uint8_t v_isShared_553_; uint8_t v_isSharedCheck_557_; 
lean_del_object(v___x_526_);
v_a_550_ = lean_ctor_get(v___x_538_, 0);
v_isSharedCheck_557_ = !lean_is_exclusive(v___x_538_);
if (v_isSharedCheck_557_ == 0)
{
v___x_552_ = v___x_538_;
v_isShared_553_ = v_isSharedCheck_557_;
goto v_resetjp_551_;
}
else
{
lean_inc(v_a_550_);
lean_dec(v___x_538_);
v___x_552_ = lean_box(0);
v_isShared_553_ = v_isSharedCheck_557_;
goto v_resetjp_551_;
}
v_resetjp_551_:
{
lean_object* v___x_555_; 
if (v_isShared_553_ == 0)
{
v___x_555_ = v___x_552_;
goto v_reusejp_554_;
}
else
{
lean_object* v_reuseFailAlloc_556_; 
v_reuseFailAlloc_556_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_556_, 0, v_a_550_);
v___x_555_ = v_reuseFailAlloc_556_;
goto v_reusejp_554_;
}
v_reusejp_554_:
{
return v___x_555_;
}
}
}
}
}
}
else
{
lean_object* v___x_559_; lean_object* v___x_561_; 
lean_dec(v_a_520_);
lean_dec(v_val_517_);
lean_dec(v_a_505_);
lean_dec_ref(v_a_504_);
lean_dec(v_a_503_);
lean_dec_ref(v_a_502_);
lean_dec_ref(v_op_497_);
v___x_559_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_523_ == 0)
{
lean_ctor_set(v___x_522_, 0, v___x_559_);
v___x_561_ = v___x_522_;
goto v_reusejp_560_;
}
else
{
lean_object* v_reuseFailAlloc_562_; 
v_reuseFailAlloc_562_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_562_, 0, v___x_559_);
v___x_561_ = v_reuseFailAlloc_562_;
goto v_reusejp_560_;
}
v_reusejp_560_:
{
return v___x_561_;
}
}
}
}
else
{
lean_object* v_a_564_; lean_object* v___x_566_; uint8_t v_isShared_567_; uint8_t v_isSharedCheck_571_; 
lean_dec(v_val_517_);
lean_dec(v_a_505_);
lean_dec_ref(v_a_504_);
lean_dec(v_a_503_);
lean_dec_ref(v_a_502_);
lean_dec_ref(v_op_497_);
v_a_564_ = lean_ctor_get(v___x_519_, 0);
v_isSharedCheck_571_ = !lean_is_exclusive(v___x_519_);
if (v_isSharedCheck_571_ == 0)
{
v___x_566_ = v___x_519_;
v_isShared_567_ = v_isSharedCheck_571_;
goto v_resetjp_565_;
}
else
{
lean_inc(v_a_564_);
lean_dec(v___x_519_);
v___x_566_ = lean_box(0);
v_isShared_567_ = v_isSharedCheck_571_;
goto v_resetjp_565_;
}
v_resetjp_565_:
{
lean_object* v___x_569_; 
if (v_isShared_567_ == 0)
{
v___x_569_ = v___x_566_;
goto v_reusejp_568_;
}
else
{
lean_object* v_reuseFailAlloc_570_; 
v_reuseFailAlloc_570_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_570_, 0, v_a_564_);
v___x_569_ = v_reuseFailAlloc_570_;
goto v_reusejp_568_;
}
v_reusejp_568_:
{
return v___x_569_;
}
}
}
}
else
{
lean_object* v___x_572_; lean_object* v___x_574_; 
lean_dec(v_a_513_);
lean_dec(v_a_505_);
lean_dec_ref(v_a_504_);
lean_dec(v_a_503_);
lean_dec_ref(v_a_502_);
lean_dec_ref(v_op_497_);
v___x_572_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_516_ == 0)
{
lean_ctor_set(v___x_515_, 0, v___x_572_);
v___x_574_ = v___x_515_;
goto v_reusejp_573_;
}
else
{
lean_object* v_reuseFailAlloc_575_; 
v_reuseFailAlloc_575_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_575_, 0, v___x_572_);
v___x_574_ = v_reuseFailAlloc_575_;
goto v_reusejp_573_;
}
v_reusejp_573_:
{
return v___x_574_;
}
}
}
}
else
{
lean_object* v_a_577_; lean_object* v___x_579_; uint8_t v_isShared_580_; uint8_t v_isSharedCheck_584_; 
lean_dec(v_a_505_);
lean_dec_ref(v_a_504_);
lean_dec(v_a_503_);
lean_dec_ref(v_a_502_);
lean_dec_ref(v_op_497_);
v_a_577_ = lean_ctor_get(v___x_512_, 0);
v_isSharedCheck_584_ = !lean_is_exclusive(v___x_512_);
if (v_isSharedCheck_584_ == 0)
{
v___x_579_ = v___x_512_;
v_isShared_580_ = v_isSharedCheck_584_;
goto v_resetjp_578_;
}
else
{
lean_inc(v_a_577_);
lean_dec(v___x_512_);
v___x_579_ = lean_box(0);
v_isShared_580_ = v_isSharedCheck_584_;
goto v_resetjp_578_;
}
v_resetjp_578_:
{
lean_object* v___x_582_; 
if (v_isShared_580_ == 0)
{
v___x_582_ = v___x_579_;
goto v_reusejp_581_;
}
else
{
lean_object* v_reuseFailAlloc_583_; 
v_reuseFailAlloc_583_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_583_, 0, v_a_577_);
v___x_582_ = v_reuseFailAlloc_583_;
goto v_reusejp_581_;
}
v_reusejp_581_:
{
return v___x_582_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBin___boxed(lean_object* v_declName_585_, lean_object* v_arity_586_, lean_object* v_op_587_, lean_object* v_e_588_, lean_object* v_a_589_, lean_object* v_a_590_, lean_object* v_a_591_, lean_object* v_a_592_, lean_object* v_a_593_, lean_object* v_a_594_, lean_object* v_a_595_, lean_object* v_a_596_){
_start:
{
lean_object* v_res_597_; 
v_res_597_ = l_BitVec_reduceBin(v_declName_585_, v_arity_586_, v_op_587_, v_e_588_, v_a_589_, v_a_590_, v_a_591_, v_a_592_, v_a_593_, v_a_594_, v_a_595_);
lean_dec(v_a_591_);
lean_dec_ref(v_a_590_);
lean_dec(v_a_589_);
lean_dec_ref(v_e_588_);
lean_dec(v_declName_585_);
return v_res_597_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtend___redArg(lean_object* v_declName_598_, lean_object* v_op_599_, lean_object* v_e_600_, lean_object* v_a_601_, lean_object* v_a_602_, lean_object* v_a_603_, lean_object* v_a_604_, lean_object* v_a_605_){
_start:
{
lean_object* v___x_607_; uint8_t v___x_608_; 
v___x_607_ = lean_unsigned_to_nat(3u);
v___x_608_ = l_Lean_Expr_isAppOfArity(v_e_600_, v_declName_598_, v___x_607_);
if (v___x_608_ == 0)
{
lean_object* v___x_609_; lean_object* v___x_610_; 
lean_dec(v_a_605_);
lean_dec_ref(v_a_604_);
lean_dec(v_a_603_);
lean_dec_ref(v_a_602_);
lean_dec_ref(v_op_599_);
v___x_609_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_610_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_610_, 0, v___x_609_);
return v___x_610_;
}
else
{
lean_object* v___x_611_; lean_object* v___x_612_; 
v___x_611_ = l_Lean_Expr_appArg_x21(v_e_600_);
lean_inc(v_a_605_);
lean_inc_ref(v_a_604_);
lean_inc(v_a_603_);
lean_inc_ref(v_a_602_);
v___x_612_ = l_BitVec_fromExpr_x3f___redArg(v___x_611_, v_a_602_, v_a_603_, v_a_604_, v_a_605_);
if (lean_obj_tag(v___x_612_) == 0)
{
lean_object* v_a_613_; lean_object* v___x_615_; uint8_t v_isShared_616_; uint8_t v_isSharedCheck_670_; 
v_a_613_ = lean_ctor_get(v___x_612_, 0);
v_isSharedCheck_670_ = !lean_is_exclusive(v___x_612_);
if (v_isSharedCheck_670_ == 0)
{
v___x_615_ = v___x_612_;
v_isShared_616_ = v_isSharedCheck_670_;
goto v_resetjp_614_;
}
else
{
lean_inc(v_a_613_);
lean_dec(v___x_612_);
v___x_615_ = lean_box(0);
v_isShared_616_ = v_isSharedCheck_670_;
goto v_resetjp_614_;
}
v_resetjp_614_:
{
if (lean_obj_tag(v_a_613_) == 1)
{
lean_object* v_val_617_; lean_object* v___x_618_; lean_object* v___x_619_; lean_object* v___x_620_; 
lean_del_object(v___x_615_);
v_val_617_ = lean_ctor_get(v_a_613_, 0);
lean_inc(v_val_617_);
lean_dec_ref(v_a_613_);
v___x_618_ = l_Lean_Expr_appFn_x21(v_e_600_);
v___x_619_ = l_Lean_Expr_appArg_x21(v___x_618_);
lean_dec_ref(v___x_618_);
lean_inc(v_a_605_);
lean_inc_ref(v_a_604_);
lean_inc(v_a_603_);
lean_inc_ref(v_a_602_);
v___x_620_ = l_Lean_Meta_getNatValue_x3f(v___x_619_, v_a_602_, v_a_603_, v_a_604_, v_a_605_);
lean_dec_ref(v___x_619_);
if (lean_obj_tag(v___x_620_) == 0)
{
lean_object* v_a_621_; lean_object* v___x_623_; uint8_t v_isShared_624_; uint8_t v_isSharedCheck_657_; 
v_a_621_ = lean_ctor_get(v___x_620_, 0);
v_isSharedCheck_657_ = !lean_is_exclusive(v___x_620_);
if (v_isSharedCheck_657_ == 0)
{
v___x_623_ = v___x_620_;
v_isShared_624_ = v_isSharedCheck_657_;
goto v_resetjp_622_;
}
else
{
lean_inc(v_a_621_);
lean_dec(v___x_620_);
v___x_623_ = lean_box(0);
v_isShared_624_ = v_isSharedCheck_657_;
goto v_resetjp_622_;
}
v_resetjp_622_:
{
if (lean_obj_tag(v_a_621_) == 1)
{
lean_object* v_val_625_; lean_object* v___x_627_; uint8_t v_isShared_628_; uint8_t v_isSharedCheck_652_; 
lean_del_object(v___x_623_);
v_val_625_ = lean_ctor_get(v_a_621_, 0);
v_isSharedCheck_652_ = !lean_is_exclusive(v_a_621_);
if (v_isSharedCheck_652_ == 0)
{
v___x_627_ = v_a_621_;
v_isShared_628_ = v_isSharedCheck_652_;
goto v_resetjp_626_;
}
else
{
lean_inc(v_val_625_);
lean_dec(v_a_621_);
v___x_627_ = lean_box(0);
v_isShared_628_ = v_isSharedCheck_652_;
goto v_resetjp_626_;
}
v_resetjp_626_:
{
lean_object* v_n_629_; lean_object* v_value_630_; lean_object* v___x_631_; lean_object* v___x_632_; 
v_n_629_ = lean_ctor_get(v_val_617_, 0);
lean_inc(v_n_629_);
v_value_630_ = lean_ctor_get(v_val_617_, 1);
lean_inc(v_value_630_);
lean_dec(v_val_617_);
lean_inc(v_val_625_);
v___x_631_ = lean_apply_3(v_op_599_, v_n_629_, v_val_625_, v_value_630_);
v___x_632_ = l_BitVec_toExpr_x27___redArg(v_val_625_, v___x_631_, v_a_601_, v_a_602_, v_a_603_, v_a_604_, v_a_605_);
if (lean_obj_tag(v___x_632_) == 0)
{
lean_object* v_a_633_; lean_object* v___x_635_; uint8_t v_isShared_636_; uint8_t v_isSharedCheck_643_; 
v_a_633_ = lean_ctor_get(v___x_632_, 0);
v_isSharedCheck_643_ = !lean_is_exclusive(v___x_632_);
if (v_isSharedCheck_643_ == 0)
{
v___x_635_ = v___x_632_;
v_isShared_636_ = v_isSharedCheck_643_;
goto v_resetjp_634_;
}
else
{
lean_inc(v_a_633_);
lean_dec(v___x_632_);
v___x_635_ = lean_box(0);
v_isShared_636_ = v_isSharedCheck_643_;
goto v_resetjp_634_;
}
v_resetjp_634_:
{
lean_object* v___x_638_; 
if (v_isShared_628_ == 0)
{
lean_ctor_set_tag(v___x_627_, 0);
lean_ctor_set(v___x_627_, 0, v_a_633_);
v___x_638_ = v___x_627_;
goto v_reusejp_637_;
}
else
{
lean_object* v_reuseFailAlloc_642_; 
v_reuseFailAlloc_642_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_642_, 0, v_a_633_);
v___x_638_ = v_reuseFailAlloc_642_;
goto v_reusejp_637_;
}
v_reusejp_637_:
{
lean_object* v___x_640_; 
if (v_isShared_636_ == 0)
{
lean_ctor_set(v___x_635_, 0, v___x_638_);
v___x_640_ = v___x_635_;
goto v_reusejp_639_;
}
else
{
lean_object* v_reuseFailAlloc_641_; 
v_reuseFailAlloc_641_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_641_, 0, v___x_638_);
v___x_640_ = v_reuseFailAlloc_641_;
goto v_reusejp_639_;
}
v_reusejp_639_:
{
return v___x_640_;
}
}
}
}
else
{
lean_object* v_a_644_; lean_object* v___x_646_; uint8_t v_isShared_647_; uint8_t v_isSharedCheck_651_; 
lean_del_object(v___x_627_);
v_a_644_ = lean_ctor_get(v___x_632_, 0);
v_isSharedCheck_651_ = !lean_is_exclusive(v___x_632_);
if (v_isSharedCheck_651_ == 0)
{
v___x_646_ = v___x_632_;
v_isShared_647_ = v_isSharedCheck_651_;
goto v_resetjp_645_;
}
else
{
lean_inc(v_a_644_);
lean_dec(v___x_632_);
v___x_646_ = lean_box(0);
v_isShared_647_ = v_isSharedCheck_651_;
goto v_resetjp_645_;
}
v_resetjp_645_:
{
lean_object* v___x_649_; 
if (v_isShared_647_ == 0)
{
v___x_649_ = v___x_646_;
goto v_reusejp_648_;
}
else
{
lean_object* v_reuseFailAlloc_650_; 
v_reuseFailAlloc_650_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_650_, 0, v_a_644_);
v___x_649_ = v_reuseFailAlloc_650_;
goto v_reusejp_648_;
}
v_reusejp_648_:
{
return v___x_649_;
}
}
}
}
}
else
{
lean_object* v___x_653_; lean_object* v___x_655_; 
lean_dec(v_a_621_);
lean_dec(v_val_617_);
lean_dec(v_a_605_);
lean_dec_ref(v_a_604_);
lean_dec(v_a_603_);
lean_dec_ref(v_a_602_);
lean_dec_ref(v_op_599_);
v___x_653_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_624_ == 0)
{
lean_ctor_set(v___x_623_, 0, v___x_653_);
v___x_655_ = v___x_623_;
goto v_reusejp_654_;
}
else
{
lean_object* v_reuseFailAlloc_656_; 
v_reuseFailAlloc_656_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_656_, 0, v___x_653_);
v___x_655_ = v_reuseFailAlloc_656_;
goto v_reusejp_654_;
}
v_reusejp_654_:
{
return v___x_655_;
}
}
}
}
else
{
lean_object* v_a_658_; lean_object* v___x_660_; uint8_t v_isShared_661_; uint8_t v_isSharedCheck_665_; 
lean_dec(v_val_617_);
lean_dec(v_a_605_);
lean_dec_ref(v_a_604_);
lean_dec(v_a_603_);
lean_dec_ref(v_a_602_);
lean_dec_ref(v_op_599_);
v_a_658_ = lean_ctor_get(v___x_620_, 0);
v_isSharedCheck_665_ = !lean_is_exclusive(v___x_620_);
if (v_isSharedCheck_665_ == 0)
{
v___x_660_ = v___x_620_;
v_isShared_661_ = v_isSharedCheck_665_;
goto v_resetjp_659_;
}
else
{
lean_inc(v_a_658_);
lean_dec(v___x_620_);
v___x_660_ = lean_box(0);
v_isShared_661_ = v_isSharedCheck_665_;
goto v_resetjp_659_;
}
v_resetjp_659_:
{
lean_object* v___x_663_; 
if (v_isShared_661_ == 0)
{
v___x_663_ = v___x_660_;
goto v_reusejp_662_;
}
else
{
lean_object* v_reuseFailAlloc_664_; 
v_reuseFailAlloc_664_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_664_, 0, v_a_658_);
v___x_663_ = v_reuseFailAlloc_664_;
goto v_reusejp_662_;
}
v_reusejp_662_:
{
return v___x_663_;
}
}
}
}
else
{
lean_object* v___x_666_; lean_object* v___x_668_; 
lean_dec(v_a_613_);
lean_dec(v_a_605_);
lean_dec_ref(v_a_604_);
lean_dec(v_a_603_);
lean_dec_ref(v_a_602_);
lean_dec_ref(v_op_599_);
v___x_666_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_616_ == 0)
{
lean_ctor_set(v___x_615_, 0, v___x_666_);
v___x_668_ = v___x_615_;
goto v_reusejp_667_;
}
else
{
lean_object* v_reuseFailAlloc_669_; 
v_reuseFailAlloc_669_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_669_, 0, v___x_666_);
v___x_668_ = v_reuseFailAlloc_669_;
goto v_reusejp_667_;
}
v_reusejp_667_:
{
return v___x_668_;
}
}
}
}
else
{
lean_object* v_a_671_; lean_object* v___x_673_; uint8_t v_isShared_674_; uint8_t v_isSharedCheck_678_; 
lean_dec(v_a_605_);
lean_dec_ref(v_a_604_);
lean_dec(v_a_603_);
lean_dec_ref(v_a_602_);
lean_dec_ref(v_op_599_);
v_a_671_ = lean_ctor_get(v___x_612_, 0);
v_isSharedCheck_678_ = !lean_is_exclusive(v___x_612_);
if (v_isSharedCheck_678_ == 0)
{
v___x_673_ = v___x_612_;
v_isShared_674_ = v_isSharedCheck_678_;
goto v_resetjp_672_;
}
else
{
lean_inc(v_a_671_);
lean_dec(v___x_612_);
v___x_673_ = lean_box(0);
v_isShared_674_ = v_isSharedCheck_678_;
goto v_resetjp_672_;
}
v_resetjp_672_:
{
lean_object* v___x_676_; 
if (v_isShared_674_ == 0)
{
v___x_676_ = v___x_673_;
goto v_reusejp_675_;
}
else
{
lean_object* v_reuseFailAlloc_677_; 
v_reuseFailAlloc_677_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_677_, 0, v_a_671_);
v___x_676_ = v_reuseFailAlloc_677_;
goto v_reusejp_675_;
}
v_reusejp_675_:
{
return v___x_676_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtend___redArg___boxed(lean_object* v_declName_679_, lean_object* v_op_680_, lean_object* v_e_681_, lean_object* v_a_682_, lean_object* v_a_683_, lean_object* v_a_684_, lean_object* v_a_685_, lean_object* v_a_686_, lean_object* v_a_687_){
_start:
{
lean_object* v_res_688_; 
v_res_688_ = l_BitVec_reduceExtend___redArg(v_declName_679_, v_op_680_, v_e_681_, v_a_682_, v_a_683_, v_a_684_, v_a_685_, v_a_686_);
lean_dec_ref(v_a_682_);
lean_dec_ref(v_e_681_);
lean_dec(v_declName_679_);
return v_res_688_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtend(lean_object* v_declName_689_, lean_object* v_op_690_, lean_object* v_e_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_){
_start:
{
lean_object* v___x_700_; uint8_t v___x_701_; 
v___x_700_ = lean_unsigned_to_nat(3u);
v___x_701_ = l_Lean_Expr_isAppOfArity(v_e_691_, v_declName_689_, v___x_700_);
if (v___x_701_ == 0)
{
lean_object* v___x_702_; lean_object* v___x_703_; 
lean_dec(v_a_698_);
lean_dec_ref(v_a_697_);
lean_dec(v_a_696_);
lean_dec_ref(v_a_695_);
lean_dec_ref(v_op_690_);
v___x_702_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_703_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_703_, 0, v___x_702_);
return v___x_703_;
}
else
{
lean_object* v___x_704_; lean_object* v___x_705_; 
v___x_704_ = l_Lean_Expr_appArg_x21(v_e_691_);
lean_inc(v_a_698_);
lean_inc_ref(v_a_697_);
lean_inc(v_a_696_);
lean_inc_ref(v_a_695_);
v___x_705_ = l_BitVec_fromExpr_x3f___redArg(v___x_704_, v_a_695_, v_a_696_, v_a_697_, v_a_698_);
if (lean_obj_tag(v___x_705_) == 0)
{
lean_object* v_a_706_; lean_object* v___x_708_; uint8_t v_isShared_709_; uint8_t v_isSharedCheck_763_; 
v_a_706_ = lean_ctor_get(v___x_705_, 0);
v_isSharedCheck_763_ = !lean_is_exclusive(v___x_705_);
if (v_isSharedCheck_763_ == 0)
{
v___x_708_ = v___x_705_;
v_isShared_709_ = v_isSharedCheck_763_;
goto v_resetjp_707_;
}
else
{
lean_inc(v_a_706_);
lean_dec(v___x_705_);
v___x_708_ = lean_box(0);
v_isShared_709_ = v_isSharedCheck_763_;
goto v_resetjp_707_;
}
v_resetjp_707_:
{
if (lean_obj_tag(v_a_706_) == 1)
{
lean_object* v_val_710_; lean_object* v___x_711_; lean_object* v___x_712_; lean_object* v___x_713_; 
lean_del_object(v___x_708_);
v_val_710_ = lean_ctor_get(v_a_706_, 0);
lean_inc(v_val_710_);
lean_dec_ref(v_a_706_);
v___x_711_ = l_Lean_Expr_appFn_x21(v_e_691_);
v___x_712_ = l_Lean_Expr_appArg_x21(v___x_711_);
lean_dec_ref(v___x_711_);
lean_inc(v_a_698_);
lean_inc_ref(v_a_697_);
lean_inc(v_a_696_);
lean_inc_ref(v_a_695_);
v___x_713_ = l_Lean_Meta_getNatValue_x3f(v___x_712_, v_a_695_, v_a_696_, v_a_697_, v_a_698_);
lean_dec_ref(v___x_712_);
if (lean_obj_tag(v___x_713_) == 0)
{
lean_object* v_a_714_; lean_object* v___x_716_; uint8_t v_isShared_717_; uint8_t v_isSharedCheck_750_; 
v_a_714_ = lean_ctor_get(v___x_713_, 0);
v_isSharedCheck_750_ = !lean_is_exclusive(v___x_713_);
if (v_isSharedCheck_750_ == 0)
{
v___x_716_ = v___x_713_;
v_isShared_717_ = v_isSharedCheck_750_;
goto v_resetjp_715_;
}
else
{
lean_inc(v_a_714_);
lean_dec(v___x_713_);
v___x_716_ = lean_box(0);
v_isShared_717_ = v_isSharedCheck_750_;
goto v_resetjp_715_;
}
v_resetjp_715_:
{
if (lean_obj_tag(v_a_714_) == 1)
{
lean_object* v_val_718_; lean_object* v___x_720_; uint8_t v_isShared_721_; uint8_t v_isSharedCheck_745_; 
lean_del_object(v___x_716_);
v_val_718_ = lean_ctor_get(v_a_714_, 0);
v_isSharedCheck_745_ = !lean_is_exclusive(v_a_714_);
if (v_isSharedCheck_745_ == 0)
{
v___x_720_ = v_a_714_;
v_isShared_721_ = v_isSharedCheck_745_;
goto v_resetjp_719_;
}
else
{
lean_inc(v_val_718_);
lean_dec(v_a_714_);
v___x_720_ = lean_box(0);
v_isShared_721_ = v_isSharedCheck_745_;
goto v_resetjp_719_;
}
v_resetjp_719_:
{
lean_object* v_n_722_; lean_object* v_value_723_; lean_object* v___x_724_; lean_object* v___x_725_; 
v_n_722_ = lean_ctor_get(v_val_710_, 0);
lean_inc(v_n_722_);
v_value_723_ = lean_ctor_get(v_val_710_, 1);
lean_inc(v_value_723_);
lean_dec(v_val_710_);
lean_inc(v_val_718_);
v___x_724_ = lean_apply_3(v_op_690_, v_n_722_, v_val_718_, v_value_723_);
v___x_725_ = l_BitVec_toExpr_x27___redArg(v_val_718_, v___x_724_, v_a_693_, v_a_695_, v_a_696_, v_a_697_, v_a_698_);
if (lean_obj_tag(v___x_725_) == 0)
{
lean_object* v_a_726_; lean_object* v___x_728_; uint8_t v_isShared_729_; uint8_t v_isSharedCheck_736_; 
v_a_726_ = lean_ctor_get(v___x_725_, 0);
v_isSharedCheck_736_ = !lean_is_exclusive(v___x_725_);
if (v_isSharedCheck_736_ == 0)
{
v___x_728_ = v___x_725_;
v_isShared_729_ = v_isSharedCheck_736_;
goto v_resetjp_727_;
}
else
{
lean_inc(v_a_726_);
lean_dec(v___x_725_);
v___x_728_ = lean_box(0);
v_isShared_729_ = v_isSharedCheck_736_;
goto v_resetjp_727_;
}
v_resetjp_727_:
{
lean_object* v___x_731_; 
if (v_isShared_721_ == 0)
{
lean_ctor_set_tag(v___x_720_, 0);
lean_ctor_set(v___x_720_, 0, v_a_726_);
v___x_731_ = v___x_720_;
goto v_reusejp_730_;
}
else
{
lean_object* v_reuseFailAlloc_735_; 
v_reuseFailAlloc_735_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_735_, 0, v_a_726_);
v___x_731_ = v_reuseFailAlloc_735_;
goto v_reusejp_730_;
}
v_reusejp_730_:
{
lean_object* v___x_733_; 
if (v_isShared_729_ == 0)
{
lean_ctor_set(v___x_728_, 0, v___x_731_);
v___x_733_ = v___x_728_;
goto v_reusejp_732_;
}
else
{
lean_object* v_reuseFailAlloc_734_; 
v_reuseFailAlloc_734_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_734_, 0, v___x_731_);
v___x_733_ = v_reuseFailAlloc_734_;
goto v_reusejp_732_;
}
v_reusejp_732_:
{
return v___x_733_;
}
}
}
}
else
{
lean_object* v_a_737_; lean_object* v___x_739_; uint8_t v_isShared_740_; uint8_t v_isSharedCheck_744_; 
lean_del_object(v___x_720_);
v_a_737_ = lean_ctor_get(v___x_725_, 0);
v_isSharedCheck_744_ = !lean_is_exclusive(v___x_725_);
if (v_isSharedCheck_744_ == 0)
{
v___x_739_ = v___x_725_;
v_isShared_740_ = v_isSharedCheck_744_;
goto v_resetjp_738_;
}
else
{
lean_inc(v_a_737_);
lean_dec(v___x_725_);
v___x_739_ = lean_box(0);
v_isShared_740_ = v_isSharedCheck_744_;
goto v_resetjp_738_;
}
v_resetjp_738_:
{
lean_object* v___x_742_; 
if (v_isShared_740_ == 0)
{
v___x_742_ = v___x_739_;
goto v_reusejp_741_;
}
else
{
lean_object* v_reuseFailAlloc_743_; 
v_reuseFailAlloc_743_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_743_, 0, v_a_737_);
v___x_742_ = v_reuseFailAlloc_743_;
goto v_reusejp_741_;
}
v_reusejp_741_:
{
return v___x_742_;
}
}
}
}
}
else
{
lean_object* v___x_746_; lean_object* v___x_748_; 
lean_dec(v_a_714_);
lean_dec(v_val_710_);
lean_dec(v_a_698_);
lean_dec_ref(v_a_697_);
lean_dec(v_a_696_);
lean_dec_ref(v_a_695_);
lean_dec_ref(v_op_690_);
v___x_746_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_717_ == 0)
{
lean_ctor_set(v___x_716_, 0, v___x_746_);
v___x_748_ = v___x_716_;
goto v_reusejp_747_;
}
else
{
lean_object* v_reuseFailAlloc_749_; 
v_reuseFailAlloc_749_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_749_, 0, v___x_746_);
v___x_748_ = v_reuseFailAlloc_749_;
goto v_reusejp_747_;
}
v_reusejp_747_:
{
return v___x_748_;
}
}
}
}
else
{
lean_object* v_a_751_; lean_object* v___x_753_; uint8_t v_isShared_754_; uint8_t v_isSharedCheck_758_; 
lean_dec(v_val_710_);
lean_dec(v_a_698_);
lean_dec_ref(v_a_697_);
lean_dec(v_a_696_);
lean_dec_ref(v_a_695_);
lean_dec_ref(v_op_690_);
v_a_751_ = lean_ctor_get(v___x_713_, 0);
v_isSharedCheck_758_ = !lean_is_exclusive(v___x_713_);
if (v_isSharedCheck_758_ == 0)
{
v___x_753_ = v___x_713_;
v_isShared_754_ = v_isSharedCheck_758_;
goto v_resetjp_752_;
}
else
{
lean_inc(v_a_751_);
lean_dec(v___x_713_);
v___x_753_ = lean_box(0);
v_isShared_754_ = v_isSharedCheck_758_;
goto v_resetjp_752_;
}
v_resetjp_752_:
{
lean_object* v___x_756_; 
if (v_isShared_754_ == 0)
{
v___x_756_ = v___x_753_;
goto v_reusejp_755_;
}
else
{
lean_object* v_reuseFailAlloc_757_; 
v_reuseFailAlloc_757_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_757_, 0, v_a_751_);
v___x_756_ = v_reuseFailAlloc_757_;
goto v_reusejp_755_;
}
v_reusejp_755_:
{
return v___x_756_;
}
}
}
}
else
{
lean_object* v___x_759_; lean_object* v___x_761_; 
lean_dec(v_a_706_);
lean_dec(v_a_698_);
lean_dec_ref(v_a_697_);
lean_dec(v_a_696_);
lean_dec_ref(v_a_695_);
lean_dec_ref(v_op_690_);
v___x_759_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_709_ == 0)
{
lean_ctor_set(v___x_708_, 0, v___x_759_);
v___x_761_ = v___x_708_;
goto v_reusejp_760_;
}
else
{
lean_object* v_reuseFailAlloc_762_; 
v_reuseFailAlloc_762_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_762_, 0, v___x_759_);
v___x_761_ = v_reuseFailAlloc_762_;
goto v_reusejp_760_;
}
v_reusejp_760_:
{
return v___x_761_;
}
}
}
}
else
{
lean_object* v_a_764_; lean_object* v___x_766_; uint8_t v_isShared_767_; uint8_t v_isSharedCheck_771_; 
lean_dec(v_a_698_);
lean_dec_ref(v_a_697_);
lean_dec(v_a_696_);
lean_dec_ref(v_a_695_);
lean_dec_ref(v_op_690_);
v_a_764_ = lean_ctor_get(v___x_705_, 0);
v_isSharedCheck_771_ = !lean_is_exclusive(v___x_705_);
if (v_isSharedCheck_771_ == 0)
{
v___x_766_ = v___x_705_;
v_isShared_767_ = v_isSharedCheck_771_;
goto v_resetjp_765_;
}
else
{
lean_inc(v_a_764_);
lean_dec(v___x_705_);
v___x_766_ = lean_box(0);
v_isShared_767_ = v_isSharedCheck_771_;
goto v_resetjp_765_;
}
v_resetjp_765_:
{
lean_object* v___x_769_; 
if (v_isShared_767_ == 0)
{
v___x_769_ = v___x_766_;
goto v_reusejp_768_;
}
else
{
lean_object* v_reuseFailAlloc_770_; 
v_reuseFailAlloc_770_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_770_, 0, v_a_764_);
v___x_769_ = v_reuseFailAlloc_770_;
goto v_reusejp_768_;
}
v_reusejp_768_:
{
return v___x_769_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtend___boxed(lean_object* v_declName_772_, lean_object* v_op_773_, lean_object* v_e_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_){
_start:
{
lean_object* v_res_783_; 
v_res_783_ = l_BitVec_reduceExtend(v_declName_772_, v_op_773_, v_e_774_, v_a_775_, v_a_776_, v_a_777_, v_a_778_, v_a_779_, v_a_780_, v_a_781_);
lean_dec(v_a_777_);
lean_dec_ref(v_a_776_);
lean_dec(v_a_775_);
lean_dec_ref(v_e_774_);
lean_dec(v_declName_772_);
return v_res_783_;
}
}
static lean_object* _init_l_BitVec_reduceGetBit___redArg___closed__3(void){
_start:
{
lean_object* v___x_789_; lean_object* v___x_790_; lean_object* v___x_791_; 
v___x_789_ = lean_box(0);
v___x_790_ = ((lean_object*)(l_BitVec_reduceGetBit___redArg___closed__2));
v___x_791_ = l_Lean_mkConst(v___x_790_, v___x_789_);
return v___x_791_;
}
}
static lean_object* _init_l_BitVec_reduceGetBit___redArg___closed__6(void){
_start:
{
lean_object* v___x_796_; lean_object* v___x_797_; lean_object* v___x_798_; 
v___x_796_ = lean_box(0);
v___x_797_ = ((lean_object*)(l_BitVec_reduceGetBit___redArg___closed__5));
v___x_798_ = l_Lean_mkConst(v___x_797_, v___x_796_);
return v___x_798_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetBit___redArg(lean_object* v_declName_799_, lean_object* v_op_800_, lean_object* v_e_801_, lean_object* v_a_802_, lean_object* v_a_803_, lean_object* v_a_804_, lean_object* v_a_805_){
_start:
{
lean_object* v___x_807_; uint8_t v___x_808_; 
v___x_807_ = lean_unsigned_to_nat(3u);
v___x_808_ = l_Lean_Expr_isAppOfArity(v_e_801_, v_declName_799_, v___x_807_);
if (v___x_808_ == 0)
{
lean_object* v___x_809_; lean_object* v___x_810_; 
lean_dec(v_a_805_);
lean_dec_ref(v_a_804_);
lean_dec(v_a_803_);
lean_dec_ref(v_a_802_);
lean_dec_ref(v_op_800_);
v___x_809_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_810_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_810_, 0, v___x_809_);
return v___x_810_;
}
else
{
lean_object* v___x_811_; lean_object* v___x_812_; lean_object* v___x_813_; 
v___x_811_ = l_Lean_Expr_appFn_x21(v_e_801_);
v___x_812_ = l_Lean_Expr_appArg_x21(v___x_811_);
lean_dec_ref(v___x_811_);
lean_inc(v_a_805_);
lean_inc_ref(v_a_804_);
lean_inc(v_a_803_);
lean_inc_ref(v_a_802_);
v___x_813_ = l_BitVec_fromExpr_x3f___redArg(v___x_812_, v_a_802_, v_a_803_, v_a_804_, v_a_805_);
if (lean_obj_tag(v___x_813_) == 0)
{
lean_object* v_a_814_; lean_object* v___x_816_; uint8_t v_isShared_817_; uint8_t v_isSharedCheck_861_; 
v_a_814_ = lean_ctor_get(v___x_813_, 0);
v_isSharedCheck_861_ = !lean_is_exclusive(v___x_813_);
if (v_isSharedCheck_861_ == 0)
{
v___x_816_ = v___x_813_;
v_isShared_817_ = v_isSharedCheck_861_;
goto v_resetjp_815_;
}
else
{
lean_inc(v_a_814_);
lean_dec(v___x_813_);
v___x_816_ = lean_box(0);
v_isShared_817_ = v_isSharedCheck_861_;
goto v_resetjp_815_;
}
v_resetjp_815_:
{
if (lean_obj_tag(v_a_814_) == 1)
{
lean_object* v_val_818_; lean_object* v___x_820_; uint8_t v_isShared_821_; uint8_t v_isSharedCheck_856_; 
v_val_818_ = lean_ctor_get(v_a_814_, 0);
v_isSharedCheck_856_ = !lean_is_exclusive(v_a_814_);
if (v_isSharedCheck_856_ == 0)
{
v___x_820_ = v_a_814_;
v_isShared_821_ = v_isSharedCheck_856_;
goto v_resetjp_819_;
}
else
{
lean_inc(v_val_818_);
lean_dec(v_a_814_);
v___x_820_ = lean_box(0);
v_isShared_821_ = v_isSharedCheck_856_;
goto v_resetjp_819_;
}
v_resetjp_819_:
{
lean_object* v___x_822_; lean_object* v___x_823_; 
v___x_822_ = l_Lean_Expr_appArg_x21(v_e_801_);
v___x_823_ = l_Lean_Meta_getNatValue_x3f(v___x_822_, v_a_802_, v_a_803_, v_a_804_, v_a_805_);
lean_dec_ref(v___x_822_);
if (lean_obj_tag(v___x_823_) == 0)
{
lean_object* v_a_824_; lean_object* v___x_826_; uint8_t v_isShared_827_; uint8_t v_isSharedCheck_847_; 
v_a_824_ = lean_ctor_get(v___x_823_, 0);
v_isSharedCheck_847_ = !lean_is_exclusive(v___x_823_);
if (v_isSharedCheck_847_ == 0)
{
v___x_826_ = v___x_823_;
v_isShared_827_ = v_isSharedCheck_847_;
goto v_resetjp_825_;
}
else
{
lean_inc(v_a_824_);
lean_dec(v___x_823_);
v___x_826_ = lean_box(0);
v_isShared_827_ = v_isSharedCheck_847_;
goto v_resetjp_825_;
}
v_resetjp_825_:
{
lean_object* v___y_829_; 
if (lean_obj_tag(v_a_824_) == 1)
{
lean_object* v_val_836_; lean_object* v_n_837_; lean_object* v_value_838_; lean_object* v___x_839_; uint8_t v___x_840_; 
lean_del_object(v___x_816_);
v_val_836_ = lean_ctor_get(v_a_824_, 0);
lean_inc(v_val_836_);
lean_dec_ref(v_a_824_);
v_n_837_ = lean_ctor_get(v_val_818_, 0);
lean_inc(v_n_837_);
v_value_838_ = lean_ctor_get(v_val_818_, 1);
lean_inc(v_value_838_);
lean_dec(v_val_818_);
v___x_839_ = lean_apply_3(v_op_800_, v_n_837_, v_value_838_, v_val_836_);
v___x_840_ = lean_unbox(v___x_839_);
if (v___x_840_ == 0)
{
lean_object* v___x_841_; 
v___x_841_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_829_ = v___x_841_;
goto v___jp_828_;
}
else
{
lean_object* v___x_842_; 
v___x_842_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_829_ = v___x_842_;
goto v___jp_828_;
}
}
else
{
lean_object* v___x_843_; lean_object* v___x_845_; 
lean_del_object(v___x_826_);
lean_dec(v_a_824_);
lean_del_object(v___x_820_);
lean_dec(v_val_818_);
lean_dec_ref(v_op_800_);
v___x_843_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_817_ == 0)
{
lean_ctor_set(v___x_816_, 0, v___x_843_);
v___x_845_ = v___x_816_;
goto v_reusejp_844_;
}
else
{
lean_object* v_reuseFailAlloc_846_; 
v_reuseFailAlloc_846_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_846_, 0, v___x_843_);
v___x_845_ = v_reuseFailAlloc_846_;
goto v_reusejp_844_;
}
v_reusejp_844_:
{
return v___x_845_;
}
}
v___jp_828_:
{
lean_object* v___x_831_; 
if (v_isShared_821_ == 0)
{
lean_ctor_set_tag(v___x_820_, 0);
lean_ctor_set(v___x_820_, 0, v___y_829_);
v___x_831_ = v___x_820_;
goto v_reusejp_830_;
}
else
{
lean_object* v_reuseFailAlloc_835_; 
v_reuseFailAlloc_835_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_835_, 0, v___y_829_);
v___x_831_ = v_reuseFailAlloc_835_;
goto v_reusejp_830_;
}
v_reusejp_830_:
{
lean_object* v___x_833_; 
if (v_isShared_827_ == 0)
{
lean_ctor_set(v___x_826_, 0, v___x_831_);
v___x_833_ = v___x_826_;
goto v_reusejp_832_;
}
else
{
lean_object* v_reuseFailAlloc_834_; 
v_reuseFailAlloc_834_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_834_, 0, v___x_831_);
v___x_833_ = v_reuseFailAlloc_834_;
goto v_reusejp_832_;
}
v_reusejp_832_:
{
return v___x_833_;
}
}
}
}
}
else
{
lean_object* v_a_848_; lean_object* v___x_850_; uint8_t v_isShared_851_; uint8_t v_isSharedCheck_855_; 
lean_del_object(v___x_820_);
lean_dec(v_val_818_);
lean_del_object(v___x_816_);
lean_dec_ref(v_op_800_);
v_a_848_ = lean_ctor_get(v___x_823_, 0);
v_isSharedCheck_855_ = !lean_is_exclusive(v___x_823_);
if (v_isSharedCheck_855_ == 0)
{
v___x_850_ = v___x_823_;
v_isShared_851_ = v_isSharedCheck_855_;
goto v_resetjp_849_;
}
else
{
lean_inc(v_a_848_);
lean_dec(v___x_823_);
v___x_850_ = lean_box(0);
v_isShared_851_ = v_isSharedCheck_855_;
goto v_resetjp_849_;
}
v_resetjp_849_:
{
lean_object* v___x_853_; 
if (v_isShared_851_ == 0)
{
v___x_853_ = v___x_850_;
goto v_reusejp_852_;
}
else
{
lean_object* v_reuseFailAlloc_854_; 
v_reuseFailAlloc_854_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_854_, 0, v_a_848_);
v___x_853_ = v_reuseFailAlloc_854_;
goto v_reusejp_852_;
}
v_reusejp_852_:
{
return v___x_853_;
}
}
}
}
}
else
{
lean_object* v___x_857_; lean_object* v___x_859_; 
lean_dec(v_a_814_);
lean_dec(v_a_805_);
lean_dec_ref(v_a_804_);
lean_dec(v_a_803_);
lean_dec_ref(v_a_802_);
lean_dec_ref(v_op_800_);
v___x_857_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_817_ == 0)
{
lean_ctor_set(v___x_816_, 0, v___x_857_);
v___x_859_ = v___x_816_;
goto v_reusejp_858_;
}
else
{
lean_object* v_reuseFailAlloc_860_; 
v_reuseFailAlloc_860_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_860_, 0, v___x_857_);
v___x_859_ = v_reuseFailAlloc_860_;
goto v_reusejp_858_;
}
v_reusejp_858_:
{
return v___x_859_;
}
}
}
}
else
{
lean_object* v_a_862_; lean_object* v___x_864_; uint8_t v_isShared_865_; uint8_t v_isSharedCheck_869_; 
lean_dec(v_a_805_);
lean_dec_ref(v_a_804_);
lean_dec(v_a_803_);
lean_dec_ref(v_a_802_);
lean_dec_ref(v_op_800_);
v_a_862_ = lean_ctor_get(v___x_813_, 0);
v_isSharedCheck_869_ = !lean_is_exclusive(v___x_813_);
if (v_isSharedCheck_869_ == 0)
{
v___x_864_ = v___x_813_;
v_isShared_865_ = v_isSharedCheck_869_;
goto v_resetjp_863_;
}
else
{
lean_inc(v_a_862_);
lean_dec(v___x_813_);
v___x_864_ = lean_box(0);
v_isShared_865_ = v_isSharedCheck_869_;
goto v_resetjp_863_;
}
v_resetjp_863_:
{
lean_object* v___x_867_; 
if (v_isShared_865_ == 0)
{
v___x_867_ = v___x_864_;
goto v_reusejp_866_;
}
else
{
lean_object* v_reuseFailAlloc_868_; 
v_reuseFailAlloc_868_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_868_, 0, v_a_862_);
v___x_867_ = v_reuseFailAlloc_868_;
goto v_reusejp_866_;
}
v_reusejp_866_:
{
return v___x_867_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetBit___redArg___boxed(lean_object* v_declName_870_, lean_object* v_op_871_, lean_object* v_e_872_, lean_object* v_a_873_, lean_object* v_a_874_, lean_object* v_a_875_, lean_object* v_a_876_, lean_object* v_a_877_){
_start:
{
lean_object* v_res_878_; 
v_res_878_ = l_BitVec_reduceGetBit___redArg(v_declName_870_, v_op_871_, v_e_872_, v_a_873_, v_a_874_, v_a_875_, v_a_876_);
lean_dec_ref(v_e_872_);
lean_dec(v_declName_870_);
return v_res_878_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetBit(lean_object* v_declName_879_, lean_object* v_op_880_, lean_object* v_e_881_, lean_object* v_a_882_, lean_object* v_a_883_, lean_object* v_a_884_, lean_object* v_a_885_, lean_object* v_a_886_, lean_object* v_a_887_, lean_object* v_a_888_){
_start:
{
lean_object* v___x_890_; uint8_t v___x_891_; 
v___x_890_ = lean_unsigned_to_nat(3u);
v___x_891_ = l_Lean_Expr_isAppOfArity(v_e_881_, v_declName_879_, v___x_890_);
if (v___x_891_ == 0)
{
lean_object* v___x_892_; lean_object* v___x_893_; 
lean_dec(v_a_888_);
lean_dec_ref(v_a_887_);
lean_dec(v_a_886_);
lean_dec_ref(v_a_885_);
lean_dec_ref(v_op_880_);
v___x_892_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_893_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_893_, 0, v___x_892_);
return v___x_893_;
}
else
{
lean_object* v___x_894_; lean_object* v___x_895_; lean_object* v___x_896_; 
v___x_894_ = l_Lean_Expr_appFn_x21(v_e_881_);
v___x_895_ = l_Lean_Expr_appArg_x21(v___x_894_);
lean_dec_ref(v___x_894_);
lean_inc(v_a_888_);
lean_inc_ref(v_a_887_);
lean_inc(v_a_886_);
lean_inc_ref(v_a_885_);
v___x_896_ = l_BitVec_fromExpr_x3f___redArg(v___x_895_, v_a_885_, v_a_886_, v_a_887_, v_a_888_);
if (lean_obj_tag(v___x_896_) == 0)
{
lean_object* v_a_897_; lean_object* v___x_899_; uint8_t v_isShared_900_; uint8_t v_isSharedCheck_944_; 
v_a_897_ = lean_ctor_get(v___x_896_, 0);
v_isSharedCheck_944_ = !lean_is_exclusive(v___x_896_);
if (v_isSharedCheck_944_ == 0)
{
v___x_899_ = v___x_896_;
v_isShared_900_ = v_isSharedCheck_944_;
goto v_resetjp_898_;
}
else
{
lean_inc(v_a_897_);
lean_dec(v___x_896_);
v___x_899_ = lean_box(0);
v_isShared_900_ = v_isSharedCheck_944_;
goto v_resetjp_898_;
}
v_resetjp_898_:
{
if (lean_obj_tag(v_a_897_) == 1)
{
lean_object* v_val_901_; lean_object* v___x_903_; uint8_t v_isShared_904_; uint8_t v_isSharedCheck_939_; 
v_val_901_ = lean_ctor_get(v_a_897_, 0);
v_isSharedCheck_939_ = !lean_is_exclusive(v_a_897_);
if (v_isSharedCheck_939_ == 0)
{
v___x_903_ = v_a_897_;
v_isShared_904_ = v_isSharedCheck_939_;
goto v_resetjp_902_;
}
else
{
lean_inc(v_val_901_);
lean_dec(v_a_897_);
v___x_903_ = lean_box(0);
v_isShared_904_ = v_isSharedCheck_939_;
goto v_resetjp_902_;
}
v_resetjp_902_:
{
lean_object* v___x_905_; lean_object* v___x_906_; 
v___x_905_ = l_Lean_Expr_appArg_x21(v_e_881_);
v___x_906_ = l_Lean_Meta_getNatValue_x3f(v___x_905_, v_a_885_, v_a_886_, v_a_887_, v_a_888_);
lean_dec_ref(v___x_905_);
if (lean_obj_tag(v___x_906_) == 0)
{
lean_object* v_a_907_; lean_object* v___x_909_; uint8_t v_isShared_910_; uint8_t v_isSharedCheck_930_; 
v_a_907_ = lean_ctor_get(v___x_906_, 0);
v_isSharedCheck_930_ = !lean_is_exclusive(v___x_906_);
if (v_isSharedCheck_930_ == 0)
{
v___x_909_ = v___x_906_;
v_isShared_910_ = v_isSharedCheck_930_;
goto v_resetjp_908_;
}
else
{
lean_inc(v_a_907_);
lean_dec(v___x_906_);
v___x_909_ = lean_box(0);
v_isShared_910_ = v_isSharedCheck_930_;
goto v_resetjp_908_;
}
v_resetjp_908_:
{
lean_object* v___y_912_; 
if (lean_obj_tag(v_a_907_) == 1)
{
lean_object* v_val_919_; lean_object* v_n_920_; lean_object* v_value_921_; lean_object* v___x_922_; uint8_t v___x_923_; 
lean_del_object(v___x_899_);
v_val_919_ = lean_ctor_get(v_a_907_, 0);
lean_inc(v_val_919_);
lean_dec_ref(v_a_907_);
v_n_920_ = lean_ctor_get(v_val_901_, 0);
lean_inc(v_n_920_);
v_value_921_ = lean_ctor_get(v_val_901_, 1);
lean_inc(v_value_921_);
lean_dec(v_val_901_);
v___x_922_ = lean_apply_3(v_op_880_, v_n_920_, v_value_921_, v_val_919_);
v___x_923_ = lean_unbox(v___x_922_);
if (v___x_923_ == 0)
{
lean_object* v___x_924_; 
v___x_924_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_912_ = v___x_924_;
goto v___jp_911_;
}
else
{
lean_object* v___x_925_; 
v___x_925_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_912_ = v___x_925_;
goto v___jp_911_;
}
}
else
{
lean_object* v___x_926_; lean_object* v___x_928_; 
lean_del_object(v___x_909_);
lean_dec(v_a_907_);
lean_del_object(v___x_903_);
lean_dec(v_val_901_);
lean_dec_ref(v_op_880_);
v___x_926_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_900_ == 0)
{
lean_ctor_set(v___x_899_, 0, v___x_926_);
v___x_928_ = v___x_899_;
goto v_reusejp_927_;
}
else
{
lean_object* v_reuseFailAlloc_929_; 
v_reuseFailAlloc_929_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_929_, 0, v___x_926_);
v___x_928_ = v_reuseFailAlloc_929_;
goto v_reusejp_927_;
}
v_reusejp_927_:
{
return v___x_928_;
}
}
v___jp_911_:
{
lean_object* v___x_914_; 
if (v_isShared_904_ == 0)
{
lean_ctor_set_tag(v___x_903_, 0);
lean_ctor_set(v___x_903_, 0, v___y_912_);
v___x_914_ = v___x_903_;
goto v_reusejp_913_;
}
else
{
lean_object* v_reuseFailAlloc_918_; 
v_reuseFailAlloc_918_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_918_, 0, v___y_912_);
v___x_914_ = v_reuseFailAlloc_918_;
goto v_reusejp_913_;
}
v_reusejp_913_:
{
lean_object* v___x_916_; 
if (v_isShared_910_ == 0)
{
lean_ctor_set(v___x_909_, 0, v___x_914_);
v___x_916_ = v___x_909_;
goto v_reusejp_915_;
}
else
{
lean_object* v_reuseFailAlloc_917_; 
v_reuseFailAlloc_917_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_917_, 0, v___x_914_);
v___x_916_ = v_reuseFailAlloc_917_;
goto v_reusejp_915_;
}
v_reusejp_915_:
{
return v___x_916_;
}
}
}
}
}
else
{
lean_object* v_a_931_; lean_object* v___x_933_; uint8_t v_isShared_934_; uint8_t v_isSharedCheck_938_; 
lean_del_object(v___x_903_);
lean_dec(v_val_901_);
lean_del_object(v___x_899_);
lean_dec_ref(v_op_880_);
v_a_931_ = lean_ctor_get(v___x_906_, 0);
v_isSharedCheck_938_ = !lean_is_exclusive(v___x_906_);
if (v_isSharedCheck_938_ == 0)
{
v___x_933_ = v___x_906_;
v_isShared_934_ = v_isSharedCheck_938_;
goto v_resetjp_932_;
}
else
{
lean_inc(v_a_931_);
lean_dec(v___x_906_);
v___x_933_ = lean_box(0);
v_isShared_934_ = v_isSharedCheck_938_;
goto v_resetjp_932_;
}
v_resetjp_932_:
{
lean_object* v___x_936_; 
if (v_isShared_934_ == 0)
{
v___x_936_ = v___x_933_;
goto v_reusejp_935_;
}
else
{
lean_object* v_reuseFailAlloc_937_; 
v_reuseFailAlloc_937_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_937_, 0, v_a_931_);
v___x_936_ = v_reuseFailAlloc_937_;
goto v_reusejp_935_;
}
v_reusejp_935_:
{
return v___x_936_;
}
}
}
}
}
else
{
lean_object* v___x_940_; lean_object* v___x_942_; 
lean_dec(v_a_897_);
lean_dec(v_a_888_);
lean_dec_ref(v_a_887_);
lean_dec(v_a_886_);
lean_dec_ref(v_a_885_);
lean_dec_ref(v_op_880_);
v___x_940_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_900_ == 0)
{
lean_ctor_set(v___x_899_, 0, v___x_940_);
v___x_942_ = v___x_899_;
goto v_reusejp_941_;
}
else
{
lean_object* v_reuseFailAlloc_943_; 
v_reuseFailAlloc_943_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_943_, 0, v___x_940_);
v___x_942_ = v_reuseFailAlloc_943_;
goto v_reusejp_941_;
}
v_reusejp_941_:
{
return v___x_942_;
}
}
}
}
else
{
lean_object* v_a_945_; lean_object* v___x_947_; uint8_t v_isShared_948_; uint8_t v_isSharedCheck_952_; 
lean_dec(v_a_888_);
lean_dec_ref(v_a_887_);
lean_dec(v_a_886_);
lean_dec_ref(v_a_885_);
lean_dec_ref(v_op_880_);
v_a_945_ = lean_ctor_get(v___x_896_, 0);
v_isSharedCheck_952_ = !lean_is_exclusive(v___x_896_);
if (v_isSharedCheck_952_ == 0)
{
v___x_947_ = v___x_896_;
v_isShared_948_ = v_isSharedCheck_952_;
goto v_resetjp_946_;
}
else
{
lean_inc(v_a_945_);
lean_dec(v___x_896_);
v___x_947_ = lean_box(0);
v_isShared_948_ = v_isSharedCheck_952_;
goto v_resetjp_946_;
}
v_resetjp_946_:
{
lean_object* v___x_950_; 
if (v_isShared_948_ == 0)
{
v___x_950_ = v___x_947_;
goto v_reusejp_949_;
}
else
{
lean_object* v_reuseFailAlloc_951_; 
v_reuseFailAlloc_951_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_951_, 0, v_a_945_);
v___x_950_ = v_reuseFailAlloc_951_;
goto v_reusejp_949_;
}
v_reusejp_949_:
{
return v___x_950_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetBit___boxed(lean_object* v_declName_953_, lean_object* v_op_954_, lean_object* v_e_955_, lean_object* v_a_956_, lean_object* v_a_957_, lean_object* v_a_958_, lean_object* v_a_959_, lean_object* v_a_960_, lean_object* v_a_961_, lean_object* v_a_962_, lean_object* v_a_963_){
_start:
{
lean_object* v_res_964_; 
v_res_964_ = l_BitVec_reduceGetBit(v_declName_953_, v_op_954_, v_e_955_, v_a_956_, v_a_957_, v_a_958_, v_a_959_, v_a_960_, v_a_961_, v_a_962_);
lean_dec(v_a_958_);
lean_dec_ref(v_a_957_);
lean_dec(v_a_956_);
lean_dec_ref(v_e_955_);
lean_dec(v_declName_953_);
return v_res_964_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShift___redArg(lean_object* v_declName_965_, lean_object* v_arity_966_, lean_object* v_op_967_, lean_object* v_e_968_, lean_object* v_a_969_, lean_object* v_a_970_, lean_object* v_a_971_, lean_object* v_a_972_, lean_object* v_a_973_){
_start:
{
uint8_t v___x_975_; 
v___x_975_ = l_Lean_Expr_isAppOfArity(v_e_968_, v_declName_965_, v_arity_966_);
if (v___x_975_ == 0)
{
lean_object* v___x_976_; lean_object* v___x_977_; 
lean_dec(v_a_973_);
lean_dec_ref(v_a_972_);
lean_dec(v_a_971_);
lean_dec_ref(v_a_970_);
lean_dec_ref(v_op_967_);
v___x_976_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_977_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_977_, 0, v___x_976_);
return v___x_977_;
}
else
{
lean_object* v___x_978_; lean_object* v___x_979_; lean_object* v___x_980_; 
v___x_978_ = l_Lean_Expr_appFn_x21(v_e_968_);
v___x_979_ = l_Lean_Expr_appArg_x21(v___x_978_);
lean_dec_ref(v___x_978_);
lean_inc(v_a_973_);
lean_inc_ref(v_a_972_);
lean_inc(v_a_971_);
lean_inc_ref(v_a_970_);
v___x_980_ = l_BitVec_fromExpr_x3f___redArg(v___x_979_, v_a_970_, v_a_971_, v_a_972_, v_a_973_);
if (lean_obj_tag(v___x_980_) == 0)
{
lean_object* v_a_981_; lean_object* v___x_983_; uint8_t v_isShared_984_; uint8_t v_isSharedCheck_1037_; 
v_a_981_ = lean_ctor_get(v___x_980_, 0);
v_isSharedCheck_1037_ = !lean_is_exclusive(v___x_980_);
if (v_isSharedCheck_1037_ == 0)
{
v___x_983_ = v___x_980_;
v_isShared_984_ = v_isSharedCheck_1037_;
goto v_resetjp_982_;
}
else
{
lean_inc(v_a_981_);
lean_dec(v___x_980_);
v___x_983_ = lean_box(0);
v_isShared_984_ = v_isSharedCheck_1037_;
goto v_resetjp_982_;
}
v_resetjp_982_:
{
if (lean_obj_tag(v_a_981_) == 1)
{
lean_object* v_val_985_; lean_object* v___x_986_; lean_object* v___x_987_; 
lean_del_object(v___x_983_);
v_val_985_ = lean_ctor_get(v_a_981_, 0);
lean_inc(v_val_985_);
lean_dec_ref(v_a_981_);
v___x_986_ = l_Lean_Expr_appArg_x21(v_e_968_);
lean_inc(v_a_973_);
lean_inc_ref(v_a_972_);
lean_inc(v_a_971_);
lean_inc_ref(v_a_970_);
v___x_987_ = l_Lean_Meta_getNatValue_x3f(v___x_986_, v_a_970_, v_a_971_, v_a_972_, v_a_973_);
lean_dec_ref(v___x_986_);
if (lean_obj_tag(v___x_987_) == 0)
{
lean_object* v_a_988_; lean_object* v___x_990_; uint8_t v_isShared_991_; uint8_t v_isSharedCheck_1024_; 
v_a_988_ = lean_ctor_get(v___x_987_, 0);
v_isSharedCheck_1024_ = !lean_is_exclusive(v___x_987_);
if (v_isSharedCheck_1024_ == 0)
{
v___x_990_ = v___x_987_;
v_isShared_991_ = v_isSharedCheck_1024_;
goto v_resetjp_989_;
}
else
{
lean_inc(v_a_988_);
lean_dec(v___x_987_);
v___x_990_ = lean_box(0);
v_isShared_991_ = v_isSharedCheck_1024_;
goto v_resetjp_989_;
}
v_resetjp_989_:
{
if (lean_obj_tag(v_a_988_) == 1)
{
lean_object* v_val_992_; lean_object* v___x_994_; uint8_t v_isShared_995_; uint8_t v_isSharedCheck_1019_; 
lean_del_object(v___x_990_);
v_val_992_ = lean_ctor_get(v_a_988_, 0);
v_isSharedCheck_1019_ = !lean_is_exclusive(v_a_988_);
if (v_isSharedCheck_1019_ == 0)
{
v___x_994_ = v_a_988_;
v_isShared_995_ = v_isSharedCheck_1019_;
goto v_resetjp_993_;
}
else
{
lean_inc(v_val_992_);
lean_dec(v_a_988_);
v___x_994_ = lean_box(0);
v_isShared_995_ = v_isSharedCheck_1019_;
goto v_resetjp_993_;
}
v_resetjp_993_:
{
lean_object* v_n_996_; lean_object* v_value_997_; lean_object* v___x_998_; lean_object* v___x_999_; 
v_n_996_ = lean_ctor_get(v_val_985_, 0);
lean_inc(v_n_996_);
v_value_997_ = lean_ctor_get(v_val_985_, 1);
lean_inc(v_value_997_);
lean_dec(v_val_985_);
lean_inc(v_n_996_);
v___x_998_ = lean_apply_3(v_op_967_, v_n_996_, v_value_997_, v_val_992_);
v___x_999_ = l_BitVec_toExpr_x27___redArg(v_n_996_, v___x_998_, v_a_969_, v_a_970_, v_a_971_, v_a_972_, v_a_973_);
if (lean_obj_tag(v___x_999_) == 0)
{
lean_object* v_a_1000_; lean_object* v___x_1002_; uint8_t v_isShared_1003_; uint8_t v_isSharedCheck_1010_; 
v_a_1000_ = lean_ctor_get(v___x_999_, 0);
v_isSharedCheck_1010_ = !lean_is_exclusive(v___x_999_);
if (v_isSharedCheck_1010_ == 0)
{
v___x_1002_ = v___x_999_;
v_isShared_1003_ = v_isSharedCheck_1010_;
goto v_resetjp_1001_;
}
else
{
lean_inc(v_a_1000_);
lean_dec(v___x_999_);
v___x_1002_ = lean_box(0);
v_isShared_1003_ = v_isSharedCheck_1010_;
goto v_resetjp_1001_;
}
v_resetjp_1001_:
{
lean_object* v___x_1005_; 
if (v_isShared_995_ == 0)
{
lean_ctor_set_tag(v___x_994_, 0);
lean_ctor_set(v___x_994_, 0, v_a_1000_);
v___x_1005_ = v___x_994_;
goto v_reusejp_1004_;
}
else
{
lean_object* v_reuseFailAlloc_1009_; 
v_reuseFailAlloc_1009_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1009_, 0, v_a_1000_);
v___x_1005_ = v_reuseFailAlloc_1009_;
goto v_reusejp_1004_;
}
v_reusejp_1004_:
{
lean_object* v___x_1007_; 
if (v_isShared_1003_ == 0)
{
lean_ctor_set(v___x_1002_, 0, v___x_1005_);
v___x_1007_ = v___x_1002_;
goto v_reusejp_1006_;
}
else
{
lean_object* v_reuseFailAlloc_1008_; 
v_reuseFailAlloc_1008_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1008_, 0, v___x_1005_);
v___x_1007_ = v_reuseFailAlloc_1008_;
goto v_reusejp_1006_;
}
v_reusejp_1006_:
{
return v___x_1007_;
}
}
}
}
else
{
lean_object* v_a_1011_; lean_object* v___x_1013_; uint8_t v_isShared_1014_; uint8_t v_isSharedCheck_1018_; 
lean_del_object(v___x_994_);
v_a_1011_ = lean_ctor_get(v___x_999_, 0);
v_isSharedCheck_1018_ = !lean_is_exclusive(v___x_999_);
if (v_isSharedCheck_1018_ == 0)
{
v___x_1013_ = v___x_999_;
v_isShared_1014_ = v_isSharedCheck_1018_;
goto v_resetjp_1012_;
}
else
{
lean_inc(v_a_1011_);
lean_dec(v___x_999_);
v___x_1013_ = lean_box(0);
v_isShared_1014_ = v_isSharedCheck_1018_;
goto v_resetjp_1012_;
}
v_resetjp_1012_:
{
lean_object* v___x_1016_; 
if (v_isShared_1014_ == 0)
{
v___x_1016_ = v___x_1013_;
goto v_reusejp_1015_;
}
else
{
lean_object* v_reuseFailAlloc_1017_; 
v_reuseFailAlloc_1017_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1017_, 0, v_a_1011_);
v___x_1016_ = v_reuseFailAlloc_1017_;
goto v_reusejp_1015_;
}
v_reusejp_1015_:
{
return v___x_1016_;
}
}
}
}
}
else
{
lean_object* v___x_1020_; lean_object* v___x_1022_; 
lean_dec(v_a_988_);
lean_dec(v_val_985_);
lean_dec(v_a_973_);
lean_dec_ref(v_a_972_);
lean_dec(v_a_971_);
lean_dec_ref(v_a_970_);
lean_dec_ref(v_op_967_);
v___x_1020_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_991_ == 0)
{
lean_ctor_set(v___x_990_, 0, v___x_1020_);
v___x_1022_ = v___x_990_;
goto v_reusejp_1021_;
}
else
{
lean_object* v_reuseFailAlloc_1023_; 
v_reuseFailAlloc_1023_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1023_, 0, v___x_1020_);
v___x_1022_ = v_reuseFailAlloc_1023_;
goto v_reusejp_1021_;
}
v_reusejp_1021_:
{
return v___x_1022_;
}
}
}
}
else
{
lean_object* v_a_1025_; lean_object* v___x_1027_; uint8_t v_isShared_1028_; uint8_t v_isSharedCheck_1032_; 
lean_dec(v_val_985_);
lean_dec(v_a_973_);
lean_dec_ref(v_a_972_);
lean_dec(v_a_971_);
lean_dec_ref(v_a_970_);
lean_dec_ref(v_op_967_);
v_a_1025_ = lean_ctor_get(v___x_987_, 0);
v_isSharedCheck_1032_ = !lean_is_exclusive(v___x_987_);
if (v_isSharedCheck_1032_ == 0)
{
v___x_1027_ = v___x_987_;
v_isShared_1028_ = v_isSharedCheck_1032_;
goto v_resetjp_1026_;
}
else
{
lean_inc(v_a_1025_);
lean_dec(v___x_987_);
v___x_1027_ = lean_box(0);
v_isShared_1028_ = v_isSharedCheck_1032_;
goto v_resetjp_1026_;
}
v_resetjp_1026_:
{
lean_object* v___x_1030_; 
if (v_isShared_1028_ == 0)
{
v___x_1030_ = v___x_1027_;
goto v_reusejp_1029_;
}
else
{
lean_object* v_reuseFailAlloc_1031_; 
v_reuseFailAlloc_1031_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1031_, 0, v_a_1025_);
v___x_1030_ = v_reuseFailAlloc_1031_;
goto v_reusejp_1029_;
}
v_reusejp_1029_:
{
return v___x_1030_;
}
}
}
}
else
{
lean_object* v___x_1033_; lean_object* v___x_1035_; 
lean_dec(v_a_981_);
lean_dec(v_a_973_);
lean_dec_ref(v_a_972_);
lean_dec(v_a_971_);
lean_dec_ref(v_a_970_);
lean_dec_ref(v_op_967_);
v___x_1033_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_984_ == 0)
{
lean_ctor_set(v___x_983_, 0, v___x_1033_);
v___x_1035_ = v___x_983_;
goto v_reusejp_1034_;
}
else
{
lean_object* v_reuseFailAlloc_1036_; 
v_reuseFailAlloc_1036_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1036_, 0, v___x_1033_);
v___x_1035_ = v_reuseFailAlloc_1036_;
goto v_reusejp_1034_;
}
v_reusejp_1034_:
{
return v___x_1035_;
}
}
}
}
else
{
lean_object* v_a_1038_; lean_object* v___x_1040_; uint8_t v_isShared_1041_; uint8_t v_isSharedCheck_1045_; 
lean_dec(v_a_973_);
lean_dec_ref(v_a_972_);
lean_dec(v_a_971_);
lean_dec_ref(v_a_970_);
lean_dec_ref(v_op_967_);
v_a_1038_ = lean_ctor_get(v___x_980_, 0);
v_isSharedCheck_1045_ = !lean_is_exclusive(v___x_980_);
if (v_isSharedCheck_1045_ == 0)
{
v___x_1040_ = v___x_980_;
v_isShared_1041_ = v_isSharedCheck_1045_;
goto v_resetjp_1039_;
}
else
{
lean_inc(v_a_1038_);
lean_dec(v___x_980_);
v___x_1040_ = lean_box(0);
v_isShared_1041_ = v_isSharedCheck_1045_;
goto v_resetjp_1039_;
}
v_resetjp_1039_:
{
lean_object* v___x_1043_; 
if (v_isShared_1041_ == 0)
{
v___x_1043_ = v___x_1040_;
goto v_reusejp_1042_;
}
else
{
lean_object* v_reuseFailAlloc_1044_; 
v_reuseFailAlloc_1044_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1044_, 0, v_a_1038_);
v___x_1043_ = v_reuseFailAlloc_1044_;
goto v_reusejp_1042_;
}
v_reusejp_1042_:
{
return v___x_1043_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShift___redArg___boxed(lean_object* v_declName_1046_, lean_object* v_arity_1047_, lean_object* v_op_1048_, lean_object* v_e_1049_, lean_object* v_a_1050_, lean_object* v_a_1051_, lean_object* v_a_1052_, lean_object* v_a_1053_, lean_object* v_a_1054_, lean_object* v_a_1055_){
_start:
{
lean_object* v_res_1056_; 
v_res_1056_ = l_BitVec_reduceShift___redArg(v_declName_1046_, v_arity_1047_, v_op_1048_, v_e_1049_, v_a_1050_, v_a_1051_, v_a_1052_, v_a_1053_, v_a_1054_);
lean_dec_ref(v_a_1050_);
lean_dec_ref(v_e_1049_);
lean_dec(v_declName_1046_);
return v_res_1056_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShift(lean_object* v_declName_1057_, lean_object* v_arity_1058_, lean_object* v_op_1059_, lean_object* v_e_1060_, lean_object* v_a_1061_, lean_object* v_a_1062_, lean_object* v_a_1063_, lean_object* v_a_1064_, lean_object* v_a_1065_, lean_object* v_a_1066_, lean_object* v_a_1067_){
_start:
{
uint8_t v___x_1069_; 
v___x_1069_ = l_Lean_Expr_isAppOfArity(v_e_1060_, v_declName_1057_, v_arity_1058_);
if (v___x_1069_ == 0)
{
lean_object* v___x_1070_; lean_object* v___x_1071_; 
lean_dec(v_a_1067_);
lean_dec_ref(v_a_1066_);
lean_dec(v_a_1065_);
lean_dec_ref(v_a_1064_);
lean_dec_ref(v_op_1059_);
v___x_1070_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_1071_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1071_, 0, v___x_1070_);
return v___x_1071_;
}
else
{
lean_object* v___x_1072_; lean_object* v___x_1073_; lean_object* v___x_1074_; 
v___x_1072_ = l_Lean_Expr_appFn_x21(v_e_1060_);
v___x_1073_ = l_Lean_Expr_appArg_x21(v___x_1072_);
lean_dec_ref(v___x_1072_);
lean_inc(v_a_1067_);
lean_inc_ref(v_a_1066_);
lean_inc(v_a_1065_);
lean_inc_ref(v_a_1064_);
v___x_1074_ = l_BitVec_fromExpr_x3f___redArg(v___x_1073_, v_a_1064_, v_a_1065_, v_a_1066_, v_a_1067_);
if (lean_obj_tag(v___x_1074_) == 0)
{
lean_object* v_a_1075_; lean_object* v___x_1077_; uint8_t v_isShared_1078_; uint8_t v_isSharedCheck_1131_; 
v_a_1075_ = lean_ctor_get(v___x_1074_, 0);
v_isSharedCheck_1131_ = !lean_is_exclusive(v___x_1074_);
if (v_isSharedCheck_1131_ == 0)
{
v___x_1077_ = v___x_1074_;
v_isShared_1078_ = v_isSharedCheck_1131_;
goto v_resetjp_1076_;
}
else
{
lean_inc(v_a_1075_);
lean_dec(v___x_1074_);
v___x_1077_ = lean_box(0);
v_isShared_1078_ = v_isSharedCheck_1131_;
goto v_resetjp_1076_;
}
v_resetjp_1076_:
{
if (lean_obj_tag(v_a_1075_) == 1)
{
lean_object* v_val_1079_; lean_object* v___x_1080_; lean_object* v___x_1081_; 
lean_del_object(v___x_1077_);
v_val_1079_ = lean_ctor_get(v_a_1075_, 0);
lean_inc(v_val_1079_);
lean_dec_ref(v_a_1075_);
v___x_1080_ = l_Lean_Expr_appArg_x21(v_e_1060_);
lean_inc(v_a_1067_);
lean_inc_ref(v_a_1066_);
lean_inc(v_a_1065_);
lean_inc_ref(v_a_1064_);
v___x_1081_ = l_Lean_Meta_getNatValue_x3f(v___x_1080_, v_a_1064_, v_a_1065_, v_a_1066_, v_a_1067_);
lean_dec_ref(v___x_1080_);
if (lean_obj_tag(v___x_1081_) == 0)
{
lean_object* v_a_1082_; lean_object* v___x_1084_; uint8_t v_isShared_1085_; uint8_t v_isSharedCheck_1118_; 
v_a_1082_ = lean_ctor_get(v___x_1081_, 0);
v_isSharedCheck_1118_ = !lean_is_exclusive(v___x_1081_);
if (v_isSharedCheck_1118_ == 0)
{
v___x_1084_ = v___x_1081_;
v_isShared_1085_ = v_isSharedCheck_1118_;
goto v_resetjp_1083_;
}
else
{
lean_inc(v_a_1082_);
lean_dec(v___x_1081_);
v___x_1084_ = lean_box(0);
v_isShared_1085_ = v_isSharedCheck_1118_;
goto v_resetjp_1083_;
}
v_resetjp_1083_:
{
if (lean_obj_tag(v_a_1082_) == 1)
{
lean_object* v_val_1086_; lean_object* v___x_1088_; uint8_t v_isShared_1089_; uint8_t v_isSharedCheck_1113_; 
lean_del_object(v___x_1084_);
v_val_1086_ = lean_ctor_get(v_a_1082_, 0);
v_isSharedCheck_1113_ = !lean_is_exclusive(v_a_1082_);
if (v_isSharedCheck_1113_ == 0)
{
v___x_1088_ = v_a_1082_;
v_isShared_1089_ = v_isSharedCheck_1113_;
goto v_resetjp_1087_;
}
else
{
lean_inc(v_val_1086_);
lean_dec(v_a_1082_);
v___x_1088_ = lean_box(0);
v_isShared_1089_ = v_isSharedCheck_1113_;
goto v_resetjp_1087_;
}
v_resetjp_1087_:
{
lean_object* v_n_1090_; lean_object* v_value_1091_; lean_object* v___x_1092_; lean_object* v___x_1093_; 
v_n_1090_ = lean_ctor_get(v_val_1079_, 0);
lean_inc(v_n_1090_);
v_value_1091_ = lean_ctor_get(v_val_1079_, 1);
lean_inc(v_value_1091_);
lean_dec(v_val_1079_);
lean_inc(v_n_1090_);
v___x_1092_ = lean_apply_3(v_op_1059_, v_n_1090_, v_value_1091_, v_val_1086_);
v___x_1093_ = l_BitVec_toExpr_x27___redArg(v_n_1090_, v___x_1092_, v_a_1062_, v_a_1064_, v_a_1065_, v_a_1066_, v_a_1067_);
if (lean_obj_tag(v___x_1093_) == 0)
{
lean_object* v_a_1094_; lean_object* v___x_1096_; uint8_t v_isShared_1097_; uint8_t v_isSharedCheck_1104_; 
v_a_1094_ = lean_ctor_get(v___x_1093_, 0);
v_isSharedCheck_1104_ = !lean_is_exclusive(v___x_1093_);
if (v_isSharedCheck_1104_ == 0)
{
v___x_1096_ = v___x_1093_;
v_isShared_1097_ = v_isSharedCheck_1104_;
goto v_resetjp_1095_;
}
else
{
lean_inc(v_a_1094_);
lean_dec(v___x_1093_);
v___x_1096_ = lean_box(0);
v_isShared_1097_ = v_isSharedCheck_1104_;
goto v_resetjp_1095_;
}
v_resetjp_1095_:
{
lean_object* v___x_1099_; 
if (v_isShared_1089_ == 0)
{
lean_ctor_set_tag(v___x_1088_, 0);
lean_ctor_set(v___x_1088_, 0, v_a_1094_);
v___x_1099_ = v___x_1088_;
goto v_reusejp_1098_;
}
else
{
lean_object* v_reuseFailAlloc_1103_; 
v_reuseFailAlloc_1103_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1103_, 0, v_a_1094_);
v___x_1099_ = v_reuseFailAlloc_1103_;
goto v_reusejp_1098_;
}
v_reusejp_1098_:
{
lean_object* v___x_1101_; 
if (v_isShared_1097_ == 0)
{
lean_ctor_set(v___x_1096_, 0, v___x_1099_);
v___x_1101_ = v___x_1096_;
goto v_reusejp_1100_;
}
else
{
lean_object* v_reuseFailAlloc_1102_; 
v_reuseFailAlloc_1102_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1102_, 0, v___x_1099_);
v___x_1101_ = v_reuseFailAlloc_1102_;
goto v_reusejp_1100_;
}
v_reusejp_1100_:
{
return v___x_1101_;
}
}
}
}
else
{
lean_object* v_a_1105_; lean_object* v___x_1107_; uint8_t v_isShared_1108_; uint8_t v_isSharedCheck_1112_; 
lean_del_object(v___x_1088_);
v_a_1105_ = lean_ctor_get(v___x_1093_, 0);
v_isSharedCheck_1112_ = !lean_is_exclusive(v___x_1093_);
if (v_isSharedCheck_1112_ == 0)
{
v___x_1107_ = v___x_1093_;
v_isShared_1108_ = v_isSharedCheck_1112_;
goto v_resetjp_1106_;
}
else
{
lean_inc(v_a_1105_);
lean_dec(v___x_1093_);
v___x_1107_ = lean_box(0);
v_isShared_1108_ = v_isSharedCheck_1112_;
goto v_resetjp_1106_;
}
v_resetjp_1106_:
{
lean_object* v___x_1110_; 
if (v_isShared_1108_ == 0)
{
v___x_1110_ = v___x_1107_;
goto v_reusejp_1109_;
}
else
{
lean_object* v_reuseFailAlloc_1111_; 
v_reuseFailAlloc_1111_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1111_, 0, v_a_1105_);
v___x_1110_ = v_reuseFailAlloc_1111_;
goto v_reusejp_1109_;
}
v_reusejp_1109_:
{
return v___x_1110_;
}
}
}
}
}
else
{
lean_object* v___x_1114_; lean_object* v___x_1116_; 
lean_dec(v_a_1082_);
lean_dec(v_val_1079_);
lean_dec(v_a_1067_);
lean_dec_ref(v_a_1066_);
lean_dec(v_a_1065_);
lean_dec_ref(v_a_1064_);
lean_dec_ref(v_op_1059_);
v___x_1114_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1085_ == 0)
{
lean_ctor_set(v___x_1084_, 0, v___x_1114_);
v___x_1116_ = v___x_1084_;
goto v_reusejp_1115_;
}
else
{
lean_object* v_reuseFailAlloc_1117_; 
v_reuseFailAlloc_1117_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1117_, 0, v___x_1114_);
v___x_1116_ = v_reuseFailAlloc_1117_;
goto v_reusejp_1115_;
}
v_reusejp_1115_:
{
return v___x_1116_;
}
}
}
}
else
{
lean_object* v_a_1119_; lean_object* v___x_1121_; uint8_t v_isShared_1122_; uint8_t v_isSharedCheck_1126_; 
lean_dec(v_val_1079_);
lean_dec(v_a_1067_);
lean_dec_ref(v_a_1066_);
lean_dec(v_a_1065_);
lean_dec_ref(v_a_1064_);
lean_dec_ref(v_op_1059_);
v_a_1119_ = lean_ctor_get(v___x_1081_, 0);
v_isSharedCheck_1126_ = !lean_is_exclusive(v___x_1081_);
if (v_isSharedCheck_1126_ == 0)
{
v___x_1121_ = v___x_1081_;
v_isShared_1122_ = v_isSharedCheck_1126_;
goto v_resetjp_1120_;
}
else
{
lean_inc(v_a_1119_);
lean_dec(v___x_1081_);
v___x_1121_ = lean_box(0);
v_isShared_1122_ = v_isSharedCheck_1126_;
goto v_resetjp_1120_;
}
v_resetjp_1120_:
{
lean_object* v___x_1124_; 
if (v_isShared_1122_ == 0)
{
v___x_1124_ = v___x_1121_;
goto v_reusejp_1123_;
}
else
{
lean_object* v_reuseFailAlloc_1125_; 
v_reuseFailAlloc_1125_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1125_, 0, v_a_1119_);
v___x_1124_ = v_reuseFailAlloc_1125_;
goto v_reusejp_1123_;
}
v_reusejp_1123_:
{
return v___x_1124_;
}
}
}
}
else
{
lean_object* v___x_1127_; lean_object* v___x_1129_; 
lean_dec(v_a_1075_);
lean_dec(v_a_1067_);
lean_dec_ref(v_a_1066_);
lean_dec(v_a_1065_);
lean_dec_ref(v_a_1064_);
lean_dec_ref(v_op_1059_);
v___x_1127_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1078_ == 0)
{
lean_ctor_set(v___x_1077_, 0, v___x_1127_);
v___x_1129_ = v___x_1077_;
goto v_reusejp_1128_;
}
else
{
lean_object* v_reuseFailAlloc_1130_; 
v_reuseFailAlloc_1130_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1130_, 0, v___x_1127_);
v___x_1129_ = v_reuseFailAlloc_1130_;
goto v_reusejp_1128_;
}
v_reusejp_1128_:
{
return v___x_1129_;
}
}
}
}
else
{
lean_object* v_a_1132_; lean_object* v___x_1134_; uint8_t v_isShared_1135_; uint8_t v_isSharedCheck_1139_; 
lean_dec(v_a_1067_);
lean_dec_ref(v_a_1066_);
lean_dec(v_a_1065_);
lean_dec_ref(v_a_1064_);
lean_dec_ref(v_op_1059_);
v_a_1132_ = lean_ctor_get(v___x_1074_, 0);
v_isSharedCheck_1139_ = !lean_is_exclusive(v___x_1074_);
if (v_isSharedCheck_1139_ == 0)
{
v___x_1134_ = v___x_1074_;
v_isShared_1135_ = v_isSharedCheck_1139_;
goto v_resetjp_1133_;
}
else
{
lean_inc(v_a_1132_);
lean_dec(v___x_1074_);
v___x_1134_ = lean_box(0);
v_isShared_1135_ = v_isSharedCheck_1139_;
goto v_resetjp_1133_;
}
v_resetjp_1133_:
{
lean_object* v___x_1137_; 
if (v_isShared_1135_ == 0)
{
v___x_1137_ = v___x_1134_;
goto v_reusejp_1136_;
}
else
{
lean_object* v_reuseFailAlloc_1138_; 
v_reuseFailAlloc_1138_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1138_, 0, v_a_1132_);
v___x_1137_ = v_reuseFailAlloc_1138_;
goto v_reusejp_1136_;
}
v_reusejp_1136_:
{
return v___x_1137_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShift___boxed(lean_object* v_declName_1140_, lean_object* v_arity_1141_, lean_object* v_op_1142_, lean_object* v_e_1143_, lean_object* v_a_1144_, lean_object* v_a_1145_, lean_object* v_a_1146_, lean_object* v_a_1147_, lean_object* v_a_1148_, lean_object* v_a_1149_, lean_object* v_a_1150_, lean_object* v_a_1151_){
_start:
{
lean_object* v_res_1152_; 
v_res_1152_ = l_BitVec_reduceShift(v_declName_1140_, v_arity_1141_, v_op_1142_, v_e_1143_, v_a_1144_, v_a_1145_, v_a_1146_, v_a_1147_, v_a_1148_, v_a_1149_, v_a_1150_);
lean_dec(v_a_1146_);
lean_dec_ref(v_a_1145_);
lean_dec(v_a_1144_);
lean_dec_ref(v_e_1143_);
lean_dec(v_declName_1140_);
return v_res_1152_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftWithBitVecLit___redArg(lean_object* v_declName_1153_, lean_object* v_e_1154_, lean_object* v_a_1155_, lean_object* v_a_1156_, lean_object* v_a_1157_, lean_object* v_a_1158_){
_start:
{
lean_object* v___x_1160_; uint8_t v___x_1161_; 
v___x_1160_ = lean_unsigned_to_nat(6u);
v___x_1161_ = l_Lean_Expr_isAppOfArity(v_e_1154_, v_declName_1153_, v___x_1160_);
if (v___x_1161_ == 0)
{
lean_object* v___x_1162_; lean_object* v___x_1163_; 
lean_dec(v_a_1158_);
lean_dec_ref(v_a_1157_);
lean_dec(v_a_1156_);
lean_dec_ref(v_a_1155_);
lean_dec(v_declName_1153_);
v___x_1162_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_1163_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1163_, 0, v___x_1162_);
return v___x_1163_;
}
else
{
lean_object* v___x_1164_; lean_object* v___x_1165_; 
v___x_1164_ = l_Lean_Expr_appArg_x21(v_e_1154_);
lean_inc(v_a_1158_);
lean_inc_ref(v_a_1157_);
lean_inc(v_a_1156_);
lean_inc_ref(v_a_1155_);
v___x_1165_ = l_BitVec_fromExpr_x3f___redArg(v___x_1164_, v_a_1155_, v_a_1156_, v_a_1157_, v_a_1158_);
if (lean_obj_tag(v___x_1165_) == 0)
{
lean_object* v_a_1166_; lean_object* v___x_1168_; uint8_t v_isShared_1169_; uint8_t v_isSharedCheck_1207_; 
v_a_1166_ = lean_ctor_get(v___x_1165_, 0);
v_isSharedCheck_1207_ = !lean_is_exclusive(v___x_1165_);
if (v_isSharedCheck_1207_ == 0)
{
v___x_1168_ = v___x_1165_;
v_isShared_1169_ = v_isSharedCheck_1207_;
goto v_resetjp_1167_;
}
else
{
lean_inc(v_a_1166_);
lean_dec(v___x_1165_);
v___x_1168_ = lean_box(0);
v_isShared_1169_ = v_isSharedCheck_1207_;
goto v_resetjp_1167_;
}
v_resetjp_1167_:
{
if (lean_obj_tag(v_a_1166_) == 1)
{
lean_object* v_val_1170_; lean_object* v___x_1172_; uint8_t v_isShared_1173_; uint8_t v_isSharedCheck_1202_; 
lean_del_object(v___x_1168_);
v_val_1170_ = lean_ctor_get(v_a_1166_, 0);
v_isSharedCheck_1202_ = !lean_is_exclusive(v_a_1166_);
if (v_isSharedCheck_1202_ == 0)
{
v___x_1172_ = v_a_1166_;
v_isShared_1173_ = v_isSharedCheck_1202_;
goto v_resetjp_1171_;
}
else
{
lean_inc(v_val_1170_);
lean_dec(v_a_1166_);
v___x_1172_ = lean_box(0);
v_isShared_1173_ = v_isSharedCheck_1202_;
goto v_resetjp_1171_;
}
v_resetjp_1171_:
{
lean_object* v_value_1174_; lean_object* v___x_1175_; lean_object* v_v_1176_; lean_object* v___x_1177_; lean_object* v___x_1178_; lean_object* v___x_1179_; lean_object* v___x_1180_; lean_object* v___x_1181_; lean_object* v___x_1182_; 
v_value_1174_ = lean_ctor_get(v_val_1170_, 1);
lean_inc(v_value_1174_);
lean_dec(v_val_1170_);
v___x_1175_ = l_Lean_Expr_appFn_x21(v_e_1154_);
v_v_1176_ = l_Lean_Expr_appArg_x21(v___x_1175_);
lean_dec_ref(v___x_1175_);
v___x_1177_ = l_Lean_mkNatLit(v_value_1174_);
v___x_1178_ = lean_unsigned_to_nat(2u);
v___x_1179_ = lean_mk_empty_array_with_capacity(v___x_1178_);
v___x_1180_ = lean_array_push(v___x_1179_, v_v_1176_);
v___x_1181_ = lean_array_push(v___x_1180_, v___x_1177_);
v___x_1182_ = l_Lean_Meta_mkAppM(v_declName_1153_, v___x_1181_, v_a_1155_, v_a_1156_, v_a_1157_, v_a_1158_);
if (lean_obj_tag(v___x_1182_) == 0)
{
lean_object* v_a_1183_; lean_object* v___x_1185_; uint8_t v_isShared_1186_; uint8_t v_isSharedCheck_1193_; 
v_a_1183_ = lean_ctor_get(v___x_1182_, 0);
v_isSharedCheck_1193_ = !lean_is_exclusive(v___x_1182_);
if (v_isSharedCheck_1193_ == 0)
{
v___x_1185_ = v___x_1182_;
v_isShared_1186_ = v_isSharedCheck_1193_;
goto v_resetjp_1184_;
}
else
{
lean_inc(v_a_1183_);
lean_dec(v___x_1182_);
v___x_1185_ = lean_box(0);
v_isShared_1186_ = v_isSharedCheck_1193_;
goto v_resetjp_1184_;
}
v_resetjp_1184_:
{
lean_object* v___x_1188_; 
if (v_isShared_1173_ == 0)
{
lean_ctor_set(v___x_1172_, 0, v_a_1183_);
v___x_1188_ = v___x_1172_;
goto v_reusejp_1187_;
}
else
{
lean_object* v_reuseFailAlloc_1192_; 
v_reuseFailAlloc_1192_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1192_, 0, v_a_1183_);
v___x_1188_ = v_reuseFailAlloc_1192_;
goto v_reusejp_1187_;
}
v_reusejp_1187_:
{
lean_object* v___x_1190_; 
if (v_isShared_1186_ == 0)
{
lean_ctor_set(v___x_1185_, 0, v___x_1188_);
v___x_1190_ = v___x_1185_;
goto v_reusejp_1189_;
}
else
{
lean_object* v_reuseFailAlloc_1191_; 
v_reuseFailAlloc_1191_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1191_, 0, v___x_1188_);
v___x_1190_ = v_reuseFailAlloc_1191_;
goto v_reusejp_1189_;
}
v_reusejp_1189_:
{
return v___x_1190_;
}
}
}
}
else
{
lean_object* v_a_1194_; lean_object* v___x_1196_; uint8_t v_isShared_1197_; uint8_t v_isSharedCheck_1201_; 
lean_del_object(v___x_1172_);
v_a_1194_ = lean_ctor_get(v___x_1182_, 0);
v_isSharedCheck_1201_ = !lean_is_exclusive(v___x_1182_);
if (v_isSharedCheck_1201_ == 0)
{
v___x_1196_ = v___x_1182_;
v_isShared_1197_ = v_isSharedCheck_1201_;
goto v_resetjp_1195_;
}
else
{
lean_inc(v_a_1194_);
lean_dec(v___x_1182_);
v___x_1196_ = lean_box(0);
v_isShared_1197_ = v_isSharedCheck_1201_;
goto v_resetjp_1195_;
}
v_resetjp_1195_:
{
lean_object* v___x_1199_; 
if (v_isShared_1197_ == 0)
{
v___x_1199_ = v___x_1196_;
goto v_reusejp_1198_;
}
else
{
lean_object* v_reuseFailAlloc_1200_; 
v_reuseFailAlloc_1200_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1200_, 0, v_a_1194_);
v___x_1199_ = v_reuseFailAlloc_1200_;
goto v_reusejp_1198_;
}
v_reusejp_1198_:
{
return v___x_1199_;
}
}
}
}
}
else
{
lean_object* v___x_1203_; lean_object* v___x_1205_; 
lean_dec(v_a_1166_);
lean_dec(v_a_1158_);
lean_dec_ref(v_a_1157_);
lean_dec(v_a_1156_);
lean_dec_ref(v_a_1155_);
lean_dec(v_declName_1153_);
v___x_1203_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1169_ == 0)
{
lean_ctor_set(v___x_1168_, 0, v___x_1203_);
v___x_1205_ = v___x_1168_;
goto v_reusejp_1204_;
}
else
{
lean_object* v_reuseFailAlloc_1206_; 
v_reuseFailAlloc_1206_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1206_, 0, v___x_1203_);
v___x_1205_ = v_reuseFailAlloc_1206_;
goto v_reusejp_1204_;
}
v_reusejp_1204_:
{
return v___x_1205_;
}
}
}
}
else
{
lean_object* v_a_1208_; lean_object* v___x_1210_; uint8_t v_isShared_1211_; uint8_t v_isSharedCheck_1215_; 
lean_dec(v_a_1158_);
lean_dec_ref(v_a_1157_);
lean_dec(v_a_1156_);
lean_dec_ref(v_a_1155_);
lean_dec(v_declName_1153_);
v_a_1208_ = lean_ctor_get(v___x_1165_, 0);
v_isSharedCheck_1215_ = !lean_is_exclusive(v___x_1165_);
if (v_isSharedCheck_1215_ == 0)
{
v___x_1210_ = v___x_1165_;
v_isShared_1211_ = v_isSharedCheck_1215_;
goto v_resetjp_1209_;
}
else
{
lean_inc(v_a_1208_);
lean_dec(v___x_1165_);
v___x_1210_ = lean_box(0);
v_isShared_1211_ = v_isSharedCheck_1215_;
goto v_resetjp_1209_;
}
v_resetjp_1209_:
{
lean_object* v___x_1213_; 
if (v_isShared_1211_ == 0)
{
v___x_1213_ = v___x_1210_;
goto v_reusejp_1212_;
}
else
{
lean_object* v_reuseFailAlloc_1214_; 
v_reuseFailAlloc_1214_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1214_, 0, v_a_1208_);
v___x_1213_ = v_reuseFailAlloc_1214_;
goto v_reusejp_1212_;
}
v_reusejp_1212_:
{
return v___x_1213_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftWithBitVecLit___redArg___boxed(lean_object* v_declName_1216_, lean_object* v_e_1217_, lean_object* v_a_1218_, lean_object* v_a_1219_, lean_object* v_a_1220_, lean_object* v_a_1221_, lean_object* v_a_1222_){
_start:
{
lean_object* v_res_1223_; 
v_res_1223_ = l_BitVec_reduceShiftWithBitVecLit___redArg(v_declName_1216_, v_e_1217_, v_a_1218_, v_a_1219_, v_a_1220_, v_a_1221_);
lean_dec_ref(v_e_1217_);
return v_res_1223_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftWithBitVecLit(lean_object* v_declName_1224_, lean_object* v_e_1225_, lean_object* v_a_1226_, lean_object* v_a_1227_, lean_object* v_a_1228_, lean_object* v_a_1229_, lean_object* v_a_1230_, lean_object* v_a_1231_, lean_object* v_a_1232_){
_start:
{
lean_object* v___x_1234_; uint8_t v___x_1235_; 
v___x_1234_ = lean_unsigned_to_nat(6u);
v___x_1235_ = l_Lean_Expr_isAppOfArity(v_e_1225_, v_declName_1224_, v___x_1234_);
if (v___x_1235_ == 0)
{
lean_object* v___x_1236_; lean_object* v___x_1237_; 
lean_dec(v_a_1232_);
lean_dec_ref(v_a_1231_);
lean_dec(v_a_1230_);
lean_dec_ref(v_a_1229_);
lean_dec(v_declName_1224_);
v___x_1236_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_1237_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1237_, 0, v___x_1236_);
return v___x_1237_;
}
else
{
lean_object* v___x_1238_; lean_object* v___x_1239_; 
v___x_1238_ = l_Lean_Expr_appArg_x21(v_e_1225_);
lean_inc(v_a_1232_);
lean_inc_ref(v_a_1231_);
lean_inc(v_a_1230_);
lean_inc_ref(v_a_1229_);
v___x_1239_ = l_BitVec_fromExpr_x3f___redArg(v___x_1238_, v_a_1229_, v_a_1230_, v_a_1231_, v_a_1232_);
if (lean_obj_tag(v___x_1239_) == 0)
{
lean_object* v_a_1240_; lean_object* v___x_1242_; uint8_t v_isShared_1243_; uint8_t v_isSharedCheck_1281_; 
v_a_1240_ = lean_ctor_get(v___x_1239_, 0);
v_isSharedCheck_1281_ = !lean_is_exclusive(v___x_1239_);
if (v_isSharedCheck_1281_ == 0)
{
v___x_1242_ = v___x_1239_;
v_isShared_1243_ = v_isSharedCheck_1281_;
goto v_resetjp_1241_;
}
else
{
lean_inc(v_a_1240_);
lean_dec(v___x_1239_);
v___x_1242_ = lean_box(0);
v_isShared_1243_ = v_isSharedCheck_1281_;
goto v_resetjp_1241_;
}
v_resetjp_1241_:
{
if (lean_obj_tag(v_a_1240_) == 1)
{
lean_object* v_val_1244_; lean_object* v___x_1246_; uint8_t v_isShared_1247_; uint8_t v_isSharedCheck_1276_; 
lean_del_object(v___x_1242_);
v_val_1244_ = lean_ctor_get(v_a_1240_, 0);
v_isSharedCheck_1276_ = !lean_is_exclusive(v_a_1240_);
if (v_isSharedCheck_1276_ == 0)
{
v___x_1246_ = v_a_1240_;
v_isShared_1247_ = v_isSharedCheck_1276_;
goto v_resetjp_1245_;
}
else
{
lean_inc(v_val_1244_);
lean_dec(v_a_1240_);
v___x_1246_ = lean_box(0);
v_isShared_1247_ = v_isSharedCheck_1276_;
goto v_resetjp_1245_;
}
v_resetjp_1245_:
{
lean_object* v_value_1248_; lean_object* v___x_1249_; lean_object* v_v_1250_; lean_object* v___x_1251_; lean_object* v___x_1252_; lean_object* v___x_1253_; lean_object* v___x_1254_; lean_object* v___x_1255_; lean_object* v___x_1256_; 
v_value_1248_ = lean_ctor_get(v_val_1244_, 1);
lean_inc(v_value_1248_);
lean_dec(v_val_1244_);
v___x_1249_ = l_Lean_Expr_appFn_x21(v_e_1225_);
v_v_1250_ = l_Lean_Expr_appArg_x21(v___x_1249_);
lean_dec_ref(v___x_1249_);
v___x_1251_ = l_Lean_mkNatLit(v_value_1248_);
v___x_1252_ = lean_unsigned_to_nat(2u);
v___x_1253_ = lean_mk_empty_array_with_capacity(v___x_1252_);
v___x_1254_ = lean_array_push(v___x_1253_, v_v_1250_);
v___x_1255_ = lean_array_push(v___x_1254_, v___x_1251_);
v___x_1256_ = l_Lean_Meta_mkAppM(v_declName_1224_, v___x_1255_, v_a_1229_, v_a_1230_, v_a_1231_, v_a_1232_);
if (lean_obj_tag(v___x_1256_) == 0)
{
lean_object* v_a_1257_; lean_object* v___x_1259_; uint8_t v_isShared_1260_; uint8_t v_isSharedCheck_1267_; 
v_a_1257_ = lean_ctor_get(v___x_1256_, 0);
v_isSharedCheck_1267_ = !lean_is_exclusive(v___x_1256_);
if (v_isSharedCheck_1267_ == 0)
{
v___x_1259_ = v___x_1256_;
v_isShared_1260_ = v_isSharedCheck_1267_;
goto v_resetjp_1258_;
}
else
{
lean_inc(v_a_1257_);
lean_dec(v___x_1256_);
v___x_1259_ = lean_box(0);
v_isShared_1260_ = v_isSharedCheck_1267_;
goto v_resetjp_1258_;
}
v_resetjp_1258_:
{
lean_object* v___x_1262_; 
if (v_isShared_1247_ == 0)
{
lean_ctor_set(v___x_1246_, 0, v_a_1257_);
v___x_1262_ = v___x_1246_;
goto v_reusejp_1261_;
}
else
{
lean_object* v_reuseFailAlloc_1266_; 
v_reuseFailAlloc_1266_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1266_, 0, v_a_1257_);
v___x_1262_ = v_reuseFailAlloc_1266_;
goto v_reusejp_1261_;
}
v_reusejp_1261_:
{
lean_object* v___x_1264_; 
if (v_isShared_1260_ == 0)
{
lean_ctor_set(v___x_1259_, 0, v___x_1262_);
v___x_1264_ = v___x_1259_;
goto v_reusejp_1263_;
}
else
{
lean_object* v_reuseFailAlloc_1265_; 
v_reuseFailAlloc_1265_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1265_, 0, v___x_1262_);
v___x_1264_ = v_reuseFailAlloc_1265_;
goto v_reusejp_1263_;
}
v_reusejp_1263_:
{
return v___x_1264_;
}
}
}
}
else
{
lean_object* v_a_1268_; lean_object* v___x_1270_; uint8_t v_isShared_1271_; uint8_t v_isSharedCheck_1275_; 
lean_del_object(v___x_1246_);
v_a_1268_ = lean_ctor_get(v___x_1256_, 0);
v_isSharedCheck_1275_ = !lean_is_exclusive(v___x_1256_);
if (v_isSharedCheck_1275_ == 0)
{
v___x_1270_ = v___x_1256_;
v_isShared_1271_ = v_isSharedCheck_1275_;
goto v_resetjp_1269_;
}
else
{
lean_inc(v_a_1268_);
lean_dec(v___x_1256_);
v___x_1270_ = lean_box(0);
v_isShared_1271_ = v_isSharedCheck_1275_;
goto v_resetjp_1269_;
}
v_resetjp_1269_:
{
lean_object* v___x_1273_; 
if (v_isShared_1271_ == 0)
{
v___x_1273_ = v___x_1270_;
goto v_reusejp_1272_;
}
else
{
lean_object* v_reuseFailAlloc_1274_; 
v_reuseFailAlloc_1274_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1274_, 0, v_a_1268_);
v___x_1273_ = v_reuseFailAlloc_1274_;
goto v_reusejp_1272_;
}
v_reusejp_1272_:
{
return v___x_1273_;
}
}
}
}
}
else
{
lean_object* v___x_1277_; lean_object* v___x_1279_; 
lean_dec(v_a_1240_);
lean_dec(v_a_1232_);
lean_dec_ref(v_a_1231_);
lean_dec(v_a_1230_);
lean_dec_ref(v_a_1229_);
lean_dec(v_declName_1224_);
v___x_1277_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1243_ == 0)
{
lean_ctor_set(v___x_1242_, 0, v___x_1277_);
v___x_1279_ = v___x_1242_;
goto v_reusejp_1278_;
}
else
{
lean_object* v_reuseFailAlloc_1280_; 
v_reuseFailAlloc_1280_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1280_, 0, v___x_1277_);
v___x_1279_ = v_reuseFailAlloc_1280_;
goto v_reusejp_1278_;
}
v_reusejp_1278_:
{
return v___x_1279_;
}
}
}
}
else
{
lean_object* v_a_1282_; lean_object* v___x_1284_; uint8_t v_isShared_1285_; uint8_t v_isSharedCheck_1289_; 
lean_dec(v_a_1232_);
lean_dec_ref(v_a_1231_);
lean_dec(v_a_1230_);
lean_dec_ref(v_a_1229_);
lean_dec(v_declName_1224_);
v_a_1282_ = lean_ctor_get(v___x_1239_, 0);
v_isSharedCheck_1289_ = !lean_is_exclusive(v___x_1239_);
if (v_isSharedCheck_1289_ == 0)
{
v___x_1284_ = v___x_1239_;
v_isShared_1285_ = v_isSharedCheck_1289_;
goto v_resetjp_1283_;
}
else
{
lean_inc(v_a_1282_);
lean_dec(v___x_1239_);
v___x_1284_ = lean_box(0);
v_isShared_1285_ = v_isSharedCheck_1289_;
goto v_resetjp_1283_;
}
v_resetjp_1283_:
{
lean_object* v___x_1287_; 
if (v_isShared_1285_ == 0)
{
v___x_1287_ = v___x_1284_;
goto v_reusejp_1286_;
}
else
{
lean_object* v_reuseFailAlloc_1288_; 
v_reuseFailAlloc_1288_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1288_, 0, v_a_1282_);
v___x_1287_ = v_reuseFailAlloc_1288_;
goto v_reusejp_1286_;
}
v_reusejp_1286_:
{
return v___x_1287_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftWithBitVecLit___boxed(lean_object* v_declName_1290_, lean_object* v_e_1291_, lean_object* v_a_1292_, lean_object* v_a_1293_, lean_object* v_a_1294_, lean_object* v_a_1295_, lean_object* v_a_1296_, lean_object* v_a_1297_, lean_object* v_a_1298_, lean_object* v_a_1299_){
_start:
{
lean_object* v_res_1300_; 
v_res_1300_ = l_BitVec_reduceShiftWithBitVecLit(v_declName_1290_, v_e_1291_, v_a_1292_, v_a_1293_, v_a_1294_, v_a_1295_, v_a_1296_, v_a_1297_, v_a_1298_);
lean_dec(v_a_1294_);
lean_dec_ref(v_a_1293_);
lean_dec(v_a_1292_);
lean_dec_ref(v_e_1291_);
return v_res_1300_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBinPred___redArg(lean_object* v_declName_1303_, lean_object* v_arity_1304_, lean_object* v_op_1305_, lean_object* v_e_1306_, lean_object* v_a_1307_, lean_object* v_a_1308_, lean_object* v_a_1309_, lean_object* v_a_1310_){
_start:
{
uint8_t v___x_1312_; 
v___x_1312_ = l_Lean_Expr_isAppOfArity(v_e_1306_, v_declName_1303_, v_arity_1304_);
if (v___x_1312_ == 0)
{
lean_object* v___x_1313_; lean_object* v___x_1314_; 
lean_dec(v_a_1310_);
lean_dec_ref(v_a_1309_);
lean_dec(v_a_1308_);
lean_dec_ref(v_a_1307_);
lean_dec_ref(v_e_1306_);
lean_dec_ref(v_op_1305_);
v___x_1313_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_1314_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1314_, 0, v___x_1313_);
return v___x_1314_;
}
else
{
lean_object* v___x_1315_; lean_object* v___x_1316_; lean_object* v___x_1317_; 
v___x_1315_ = l_Lean_Expr_appFn_x21(v_e_1306_);
v___x_1316_ = l_Lean_Expr_appArg_x21(v___x_1315_);
lean_dec_ref(v___x_1315_);
lean_inc(v_a_1310_);
lean_inc_ref(v_a_1309_);
lean_inc(v_a_1308_);
lean_inc_ref(v_a_1307_);
v___x_1317_ = l_BitVec_fromExpr_x3f___redArg(v___x_1316_, v_a_1307_, v_a_1308_, v_a_1309_, v_a_1310_);
if (lean_obj_tag(v___x_1317_) == 0)
{
lean_object* v_a_1318_; lean_object* v___x_1320_; uint8_t v_isShared_1321_; uint8_t v_isSharedCheck_1359_; 
v_a_1318_ = lean_ctor_get(v___x_1317_, 0);
v_isSharedCheck_1359_ = !lean_is_exclusive(v___x_1317_);
if (v_isSharedCheck_1359_ == 0)
{
v___x_1320_ = v___x_1317_;
v_isShared_1321_ = v_isSharedCheck_1359_;
goto v_resetjp_1319_;
}
else
{
lean_inc(v_a_1318_);
lean_dec(v___x_1317_);
v___x_1320_ = lean_box(0);
v_isShared_1321_ = v_isSharedCheck_1359_;
goto v_resetjp_1319_;
}
v_resetjp_1319_:
{
if (lean_obj_tag(v_a_1318_) == 1)
{
lean_object* v_val_1322_; lean_object* v___x_1323_; lean_object* v___x_1324_; 
lean_del_object(v___x_1320_);
v_val_1322_ = lean_ctor_get(v_a_1318_, 0);
lean_inc(v_val_1322_);
lean_dec_ref(v_a_1318_);
v___x_1323_ = l_Lean_Expr_appArg_x21(v_e_1306_);
lean_inc(v_a_1310_);
lean_inc_ref(v_a_1309_);
lean_inc(v_a_1308_);
lean_inc_ref(v_a_1307_);
v___x_1324_ = l_BitVec_fromExpr_x3f___redArg(v___x_1323_, v_a_1307_, v_a_1308_, v_a_1309_, v_a_1310_);
if (lean_obj_tag(v___x_1324_) == 0)
{
lean_object* v_a_1325_; lean_object* v___x_1327_; uint8_t v_isShared_1328_; uint8_t v_isSharedCheck_1346_; 
v_a_1325_ = lean_ctor_get(v___x_1324_, 0);
v_isSharedCheck_1346_ = !lean_is_exclusive(v___x_1324_);
if (v_isSharedCheck_1346_ == 0)
{
v___x_1327_ = v___x_1324_;
v_isShared_1328_ = v_isSharedCheck_1346_;
goto v_resetjp_1326_;
}
else
{
lean_inc(v_a_1325_);
lean_dec(v___x_1324_);
v___x_1327_ = lean_box(0);
v_isShared_1328_ = v_isSharedCheck_1346_;
goto v_resetjp_1326_;
}
v_resetjp_1326_:
{
if (lean_obj_tag(v_a_1325_) == 1)
{
lean_object* v_val_1329_; lean_object* v_n_1330_; lean_object* v_value_1331_; lean_object* v_n_1332_; lean_object* v_value_1333_; uint8_t v___x_1334_; 
v_val_1329_ = lean_ctor_get(v_a_1325_, 0);
lean_inc(v_val_1329_);
lean_dec_ref(v_a_1325_);
v_n_1330_ = lean_ctor_get(v_val_1322_, 0);
lean_inc(v_n_1330_);
v_value_1331_ = lean_ctor_get(v_val_1322_, 1);
lean_inc(v_value_1331_);
lean_dec(v_val_1322_);
v_n_1332_ = lean_ctor_get(v_val_1329_, 0);
lean_inc(v_n_1332_);
v_value_1333_ = lean_ctor_get(v_val_1329_, 1);
lean_inc(v_value_1333_);
lean_dec(v_val_1329_);
v___x_1334_ = lean_nat_dec_eq(v_n_1330_, v_n_1332_);
lean_dec(v_n_1332_);
if (v___x_1334_ == 0)
{
lean_object* v___x_1335_; lean_object* v___x_1337_; 
lean_dec(v_value_1333_);
lean_dec(v_value_1331_);
lean_dec(v_n_1330_);
lean_dec(v_a_1310_);
lean_dec_ref(v_a_1309_);
lean_dec(v_a_1308_);
lean_dec_ref(v_a_1307_);
lean_dec_ref(v_e_1306_);
lean_dec_ref(v_op_1305_);
v___x_1335_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_1328_ == 0)
{
lean_ctor_set(v___x_1327_, 0, v___x_1335_);
v___x_1337_ = v___x_1327_;
goto v_reusejp_1336_;
}
else
{
lean_object* v_reuseFailAlloc_1338_; 
v_reuseFailAlloc_1338_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1338_, 0, v___x_1335_);
v___x_1337_ = v_reuseFailAlloc_1338_;
goto v_reusejp_1336_;
}
v_reusejp_1336_:
{
return v___x_1337_;
}
}
else
{
lean_object* v___x_1339_; uint8_t v___x_1340_; lean_object* v___x_1341_; 
lean_del_object(v___x_1327_);
v___x_1339_ = lean_apply_3(v_op_1305_, v_n_1330_, v_value_1331_, v_value_1333_);
v___x_1340_ = lean_unbox(v___x_1339_);
v___x_1341_ = l_Lean_Meta_Simp_evalPropStep___redArg(v_e_1306_, v___x_1340_, v_a_1307_, v_a_1308_, v_a_1309_, v_a_1310_);
return v___x_1341_;
}
}
else
{
lean_object* v___x_1342_; lean_object* v___x_1344_; 
lean_dec(v_a_1325_);
lean_dec(v_val_1322_);
lean_dec(v_a_1310_);
lean_dec_ref(v_a_1309_);
lean_dec(v_a_1308_);
lean_dec_ref(v_a_1307_);
lean_dec_ref(v_e_1306_);
lean_dec_ref(v_op_1305_);
v___x_1342_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_1328_ == 0)
{
lean_ctor_set(v___x_1327_, 0, v___x_1342_);
v___x_1344_ = v___x_1327_;
goto v_reusejp_1343_;
}
else
{
lean_object* v_reuseFailAlloc_1345_; 
v_reuseFailAlloc_1345_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1345_, 0, v___x_1342_);
v___x_1344_ = v_reuseFailAlloc_1345_;
goto v_reusejp_1343_;
}
v_reusejp_1343_:
{
return v___x_1344_;
}
}
}
}
else
{
lean_object* v_a_1347_; lean_object* v___x_1349_; uint8_t v_isShared_1350_; uint8_t v_isSharedCheck_1354_; 
lean_dec(v_val_1322_);
lean_dec(v_a_1310_);
lean_dec_ref(v_a_1309_);
lean_dec(v_a_1308_);
lean_dec_ref(v_a_1307_);
lean_dec_ref(v_e_1306_);
lean_dec_ref(v_op_1305_);
v_a_1347_ = lean_ctor_get(v___x_1324_, 0);
v_isSharedCheck_1354_ = !lean_is_exclusive(v___x_1324_);
if (v_isSharedCheck_1354_ == 0)
{
v___x_1349_ = v___x_1324_;
v_isShared_1350_ = v_isSharedCheck_1354_;
goto v_resetjp_1348_;
}
else
{
lean_inc(v_a_1347_);
lean_dec(v___x_1324_);
v___x_1349_ = lean_box(0);
v_isShared_1350_ = v_isSharedCheck_1354_;
goto v_resetjp_1348_;
}
v_resetjp_1348_:
{
lean_object* v___x_1352_; 
if (v_isShared_1350_ == 0)
{
v___x_1352_ = v___x_1349_;
goto v_reusejp_1351_;
}
else
{
lean_object* v_reuseFailAlloc_1353_; 
v_reuseFailAlloc_1353_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1353_, 0, v_a_1347_);
v___x_1352_ = v_reuseFailAlloc_1353_;
goto v_reusejp_1351_;
}
v_reusejp_1351_:
{
return v___x_1352_;
}
}
}
}
else
{
lean_object* v___x_1355_; lean_object* v___x_1357_; 
lean_dec(v_a_1318_);
lean_dec(v_a_1310_);
lean_dec_ref(v_a_1309_);
lean_dec(v_a_1308_);
lean_dec_ref(v_a_1307_);
lean_dec_ref(v_e_1306_);
lean_dec_ref(v_op_1305_);
v___x_1355_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_1321_ == 0)
{
lean_ctor_set(v___x_1320_, 0, v___x_1355_);
v___x_1357_ = v___x_1320_;
goto v_reusejp_1356_;
}
else
{
lean_object* v_reuseFailAlloc_1358_; 
v_reuseFailAlloc_1358_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1358_, 0, v___x_1355_);
v___x_1357_ = v_reuseFailAlloc_1358_;
goto v_reusejp_1356_;
}
v_reusejp_1356_:
{
return v___x_1357_;
}
}
}
}
else
{
lean_object* v_a_1360_; lean_object* v___x_1362_; uint8_t v_isShared_1363_; uint8_t v_isSharedCheck_1367_; 
lean_dec(v_a_1310_);
lean_dec_ref(v_a_1309_);
lean_dec(v_a_1308_);
lean_dec_ref(v_a_1307_);
lean_dec_ref(v_e_1306_);
lean_dec_ref(v_op_1305_);
v_a_1360_ = lean_ctor_get(v___x_1317_, 0);
v_isSharedCheck_1367_ = !lean_is_exclusive(v___x_1317_);
if (v_isSharedCheck_1367_ == 0)
{
v___x_1362_ = v___x_1317_;
v_isShared_1363_ = v_isSharedCheck_1367_;
goto v_resetjp_1361_;
}
else
{
lean_inc(v_a_1360_);
lean_dec(v___x_1317_);
v___x_1362_ = lean_box(0);
v_isShared_1363_ = v_isSharedCheck_1367_;
goto v_resetjp_1361_;
}
v_resetjp_1361_:
{
lean_object* v___x_1365_; 
if (v_isShared_1363_ == 0)
{
v___x_1365_ = v___x_1362_;
goto v_reusejp_1364_;
}
else
{
lean_object* v_reuseFailAlloc_1366_; 
v_reuseFailAlloc_1366_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1366_, 0, v_a_1360_);
v___x_1365_ = v_reuseFailAlloc_1366_;
goto v_reusejp_1364_;
}
v_reusejp_1364_:
{
return v___x_1365_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBinPred___redArg___boxed(lean_object* v_declName_1368_, lean_object* v_arity_1369_, lean_object* v_op_1370_, lean_object* v_e_1371_, lean_object* v_a_1372_, lean_object* v_a_1373_, lean_object* v_a_1374_, lean_object* v_a_1375_, lean_object* v_a_1376_){
_start:
{
lean_object* v_res_1377_; 
v_res_1377_ = l_BitVec_reduceBinPred___redArg(v_declName_1368_, v_arity_1369_, v_op_1370_, v_e_1371_, v_a_1372_, v_a_1373_, v_a_1374_, v_a_1375_);
lean_dec(v_declName_1368_);
return v_res_1377_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBinPred(lean_object* v_declName_1378_, lean_object* v_arity_1379_, lean_object* v_op_1380_, lean_object* v_e_1381_, lean_object* v_a_1382_, lean_object* v_a_1383_, lean_object* v_a_1384_, lean_object* v_a_1385_, lean_object* v_a_1386_, lean_object* v_a_1387_, lean_object* v_a_1388_){
_start:
{
uint8_t v___x_1390_; 
v___x_1390_ = l_Lean_Expr_isAppOfArity(v_e_1381_, v_declName_1378_, v_arity_1379_);
if (v___x_1390_ == 0)
{
lean_object* v___x_1391_; lean_object* v___x_1392_; 
lean_dec(v_a_1388_);
lean_dec_ref(v_a_1387_);
lean_dec(v_a_1386_);
lean_dec_ref(v_a_1385_);
lean_dec_ref(v_e_1381_);
lean_dec_ref(v_op_1380_);
v___x_1391_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_1392_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1392_, 0, v___x_1391_);
return v___x_1392_;
}
else
{
lean_object* v___x_1393_; lean_object* v___x_1394_; lean_object* v___x_1395_; 
v___x_1393_ = l_Lean_Expr_appFn_x21(v_e_1381_);
v___x_1394_ = l_Lean_Expr_appArg_x21(v___x_1393_);
lean_dec_ref(v___x_1393_);
lean_inc(v_a_1388_);
lean_inc_ref(v_a_1387_);
lean_inc(v_a_1386_);
lean_inc_ref(v_a_1385_);
v___x_1395_ = l_BitVec_fromExpr_x3f___redArg(v___x_1394_, v_a_1385_, v_a_1386_, v_a_1387_, v_a_1388_);
if (lean_obj_tag(v___x_1395_) == 0)
{
lean_object* v_a_1396_; lean_object* v___x_1398_; uint8_t v_isShared_1399_; uint8_t v_isSharedCheck_1437_; 
v_a_1396_ = lean_ctor_get(v___x_1395_, 0);
v_isSharedCheck_1437_ = !lean_is_exclusive(v___x_1395_);
if (v_isSharedCheck_1437_ == 0)
{
v___x_1398_ = v___x_1395_;
v_isShared_1399_ = v_isSharedCheck_1437_;
goto v_resetjp_1397_;
}
else
{
lean_inc(v_a_1396_);
lean_dec(v___x_1395_);
v___x_1398_ = lean_box(0);
v_isShared_1399_ = v_isSharedCheck_1437_;
goto v_resetjp_1397_;
}
v_resetjp_1397_:
{
if (lean_obj_tag(v_a_1396_) == 1)
{
lean_object* v_val_1400_; lean_object* v___x_1401_; lean_object* v___x_1402_; 
lean_del_object(v___x_1398_);
v_val_1400_ = lean_ctor_get(v_a_1396_, 0);
lean_inc(v_val_1400_);
lean_dec_ref(v_a_1396_);
v___x_1401_ = l_Lean_Expr_appArg_x21(v_e_1381_);
lean_inc(v_a_1388_);
lean_inc_ref(v_a_1387_);
lean_inc(v_a_1386_);
lean_inc_ref(v_a_1385_);
v___x_1402_ = l_BitVec_fromExpr_x3f___redArg(v___x_1401_, v_a_1385_, v_a_1386_, v_a_1387_, v_a_1388_);
if (lean_obj_tag(v___x_1402_) == 0)
{
lean_object* v_a_1403_; lean_object* v___x_1405_; uint8_t v_isShared_1406_; uint8_t v_isSharedCheck_1424_; 
v_a_1403_ = lean_ctor_get(v___x_1402_, 0);
v_isSharedCheck_1424_ = !lean_is_exclusive(v___x_1402_);
if (v_isSharedCheck_1424_ == 0)
{
v___x_1405_ = v___x_1402_;
v_isShared_1406_ = v_isSharedCheck_1424_;
goto v_resetjp_1404_;
}
else
{
lean_inc(v_a_1403_);
lean_dec(v___x_1402_);
v___x_1405_ = lean_box(0);
v_isShared_1406_ = v_isSharedCheck_1424_;
goto v_resetjp_1404_;
}
v_resetjp_1404_:
{
if (lean_obj_tag(v_a_1403_) == 1)
{
lean_object* v_val_1407_; lean_object* v_n_1408_; lean_object* v_value_1409_; lean_object* v_n_1410_; lean_object* v_value_1411_; uint8_t v___x_1412_; 
v_val_1407_ = lean_ctor_get(v_a_1403_, 0);
lean_inc(v_val_1407_);
lean_dec_ref(v_a_1403_);
v_n_1408_ = lean_ctor_get(v_val_1400_, 0);
lean_inc(v_n_1408_);
v_value_1409_ = lean_ctor_get(v_val_1400_, 1);
lean_inc(v_value_1409_);
lean_dec(v_val_1400_);
v_n_1410_ = lean_ctor_get(v_val_1407_, 0);
lean_inc(v_n_1410_);
v_value_1411_ = lean_ctor_get(v_val_1407_, 1);
lean_inc(v_value_1411_);
lean_dec(v_val_1407_);
v___x_1412_ = lean_nat_dec_eq(v_n_1408_, v_n_1410_);
lean_dec(v_n_1410_);
if (v___x_1412_ == 0)
{
lean_object* v___x_1413_; lean_object* v___x_1415_; 
lean_dec(v_value_1411_);
lean_dec(v_value_1409_);
lean_dec(v_n_1408_);
lean_dec(v_a_1388_);
lean_dec_ref(v_a_1387_);
lean_dec(v_a_1386_);
lean_dec_ref(v_a_1385_);
lean_dec_ref(v_e_1381_);
lean_dec_ref(v_op_1380_);
v___x_1413_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_1406_ == 0)
{
lean_ctor_set(v___x_1405_, 0, v___x_1413_);
v___x_1415_ = v___x_1405_;
goto v_reusejp_1414_;
}
else
{
lean_object* v_reuseFailAlloc_1416_; 
v_reuseFailAlloc_1416_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1416_, 0, v___x_1413_);
v___x_1415_ = v_reuseFailAlloc_1416_;
goto v_reusejp_1414_;
}
v_reusejp_1414_:
{
return v___x_1415_;
}
}
else
{
lean_object* v___x_1417_; uint8_t v___x_1418_; lean_object* v___x_1419_; 
lean_del_object(v___x_1405_);
v___x_1417_ = lean_apply_3(v_op_1380_, v_n_1408_, v_value_1409_, v_value_1411_);
v___x_1418_ = lean_unbox(v___x_1417_);
v___x_1419_ = l_Lean_Meta_Simp_evalPropStep___redArg(v_e_1381_, v___x_1418_, v_a_1385_, v_a_1386_, v_a_1387_, v_a_1388_);
return v___x_1419_;
}
}
else
{
lean_object* v___x_1420_; lean_object* v___x_1422_; 
lean_dec(v_a_1403_);
lean_dec(v_val_1400_);
lean_dec(v_a_1388_);
lean_dec_ref(v_a_1387_);
lean_dec(v_a_1386_);
lean_dec_ref(v_a_1385_);
lean_dec_ref(v_e_1381_);
lean_dec_ref(v_op_1380_);
v___x_1420_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_1406_ == 0)
{
lean_ctor_set(v___x_1405_, 0, v___x_1420_);
v___x_1422_ = v___x_1405_;
goto v_reusejp_1421_;
}
else
{
lean_object* v_reuseFailAlloc_1423_; 
v_reuseFailAlloc_1423_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1423_, 0, v___x_1420_);
v___x_1422_ = v_reuseFailAlloc_1423_;
goto v_reusejp_1421_;
}
v_reusejp_1421_:
{
return v___x_1422_;
}
}
}
}
else
{
lean_object* v_a_1425_; lean_object* v___x_1427_; uint8_t v_isShared_1428_; uint8_t v_isSharedCheck_1432_; 
lean_dec(v_val_1400_);
lean_dec(v_a_1388_);
lean_dec_ref(v_a_1387_);
lean_dec(v_a_1386_);
lean_dec_ref(v_a_1385_);
lean_dec_ref(v_e_1381_);
lean_dec_ref(v_op_1380_);
v_a_1425_ = lean_ctor_get(v___x_1402_, 0);
v_isSharedCheck_1432_ = !lean_is_exclusive(v___x_1402_);
if (v_isSharedCheck_1432_ == 0)
{
v___x_1427_ = v___x_1402_;
v_isShared_1428_ = v_isSharedCheck_1432_;
goto v_resetjp_1426_;
}
else
{
lean_inc(v_a_1425_);
lean_dec(v___x_1402_);
v___x_1427_ = lean_box(0);
v_isShared_1428_ = v_isSharedCheck_1432_;
goto v_resetjp_1426_;
}
v_resetjp_1426_:
{
lean_object* v___x_1430_; 
if (v_isShared_1428_ == 0)
{
v___x_1430_ = v___x_1427_;
goto v_reusejp_1429_;
}
else
{
lean_object* v_reuseFailAlloc_1431_; 
v_reuseFailAlloc_1431_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1431_, 0, v_a_1425_);
v___x_1430_ = v_reuseFailAlloc_1431_;
goto v_reusejp_1429_;
}
v_reusejp_1429_:
{
return v___x_1430_;
}
}
}
}
else
{
lean_object* v___x_1433_; lean_object* v___x_1435_; 
lean_dec(v_a_1396_);
lean_dec(v_a_1388_);
lean_dec_ref(v_a_1387_);
lean_dec(v_a_1386_);
lean_dec_ref(v_a_1385_);
lean_dec_ref(v_e_1381_);
lean_dec_ref(v_op_1380_);
v___x_1433_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_1399_ == 0)
{
lean_ctor_set(v___x_1398_, 0, v___x_1433_);
v___x_1435_ = v___x_1398_;
goto v_reusejp_1434_;
}
else
{
lean_object* v_reuseFailAlloc_1436_; 
v_reuseFailAlloc_1436_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1436_, 0, v___x_1433_);
v___x_1435_ = v_reuseFailAlloc_1436_;
goto v_reusejp_1434_;
}
v_reusejp_1434_:
{
return v___x_1435_;
}
}
}
}
else
{
lean_object* v_a_1438_; lean_object* v___x_1440_; uint8_t v_isShared_1441_; uint8_t v_isSharedCheck_1445_; 
lean_dec(v_a_1388_);
lean_dec_ref(v_a_1387_);
lean_dec(v_a_1386_);
lean_dec_ref(v_a_1385_);
lean_dec_ref(v_e_1381_);
lean_dec_ref(v_op_1380_);
v_a_1438_ = lean_ctor_get(v___x_1395_, 0);
v_isSharedCheck_1445_ = !lean_is_exclusive(v___x_1395_);
if (v_isSharedCheck_1445_ == 0)
{
v___x_1440_ = v___x_1395_;
v_isShared_1441_ = v_isSharedCheck_1445_;
goto v_resetjp_1439_;
}
else
{
lean_inc(v_a_1438_);
lean_dec(v___x_1395_);
v___x_1440_ = lean_box(0);
v_isShared_1441_ = v_isSharedCheck_1445_;
goto v_resetjp_1439_;
}
v_resetjp_1439_:
{
lean_object* v___x_1443_; 
if (v_isShared_1441_ == 0)
{
v___x_1443_ = v___x_1440_;
goto v_reusejp_1442_;
}
else
{
lean_object* v_reuseFailAlloc_1444_; 
v_reuseFailAlloc_1444_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1444_, 0, v_a_1438_);
v___x_1443_ = v_reuseFailAlloc_1444_;
goto v_reusejp_1442_;
}
v_reusejp_1442_:
{
return v___x_1443_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBinPred___boxed(lean_object* v_declName_1446_, lean_object* v_arity_1447_, lean_object* v_op_1448_, lean_object* v_e_1449_, lean_object* v_a_1450_, lean_object* v_a_1451_, lean_object* v_a_1452_, lean_object* v_a_1453_, lean_object* v_a_1454_, lean_object* v_a_1455_, lean_object* v_a_1456_, lean_object* v_a_1457_){
_start:
{
lean_object* v_res_1458_; 
v_res_1458_ = l_BitVec_reduceBinPred(v_declName_1446_, v_arity_1447_, v_op_1448_, v_e_1449_, v_a_1450_, v_a_1451_, v_a_1452_, v_a_1453_, v_a_1454_, v_a_1455_, v_a_1456_);
lean_dec(v_a_1452_);
lean_dec_ref(v_a_1451_);
lean_dec(v_a_1450_);
lean_dec(v_declName_1446_);
return v_res_1458_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBoolPred___redArg(lean_object* v_declName_1459_, lean_object* v_arity_1460_, lean_object* v_op_1461_, lean_object* v_e_1462_, lean_object* v_a_1463_, lean_object* v_a_1464_, lean_object* v_a_1465_, lean_object* v_a_1466_){
_start:
{
uint8_t v___x_1468_; 
v___x_1468_ = l_Lean_Expr_isAppOfArity(v_e_1462_, v_declName_1459_, v_arity_1460_);
if (v___x_1468_ == 0)
{
lean_object* v___x_1469_; lean_object* v___x_1470_; 
lean_dec(v_a_1466_);
lean_dec_ref(v_a_1465_);
lean_dec(v_a_1464_);
lean_dec_ref(v_a_1463_);
lean_dec_ref(v_op_1461_);
v___x_1469_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_1470_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1470_, 0, v___x_1469_);
return v___x_1470_;
}
else
{
lean_object* v___x_1471_; lean_object* v___x_1472_; lean_object* v___x_1473_; 
v___x_1471_ = l_Lean_Expr_appFn_x21(v_e_1462_);
v___x_1472_ = l_Lean_Expr_appArg_x21(v___x_1471_);
lean_dec_ref(v___x_1471_);
lean_inc(v_a_1466_);
lean_inc_ref(v_a_1465_);
lean_inc(v_a_1464_);
lean_inc_ref(v_a_1463_);
v___x_1473_ = l_BitVec_fromExpr_x3f___redArg(v___x_1472_, v_a_1463_, v_a_1464_, v_a_1465_, v_a_1466_);
if (lean_obj_tag(v___x_1473_) == 0)
{
lean_object* v_a_1474_; lean_object* v___x_1476_; uint8_t v_isShared_1477_; uint8_t v_isSharedCheck_1528_; 
v_a_1474_ = lean_ctor_get(v___x_1473_, 0);
v_isSharedCheck_1528_ = !lean_is_exclusive(v___x_1473_);
if (v_isSharedCheck_1528_ == 0)
{
v___x_1476_ = v___x_1473_;
v_isShared_1477_ = v_isSharedCheck_1528_;
goto v_resetjp_1475_;
}
else
{
lean_inc(v_a_1474_);
lean_dec(v___x_1473_);
v___x_1476_ = lean_box(0);
v_isShared_1477_ = v_isSharedCheck_1528_;
goto v_resetjp_1475_;
}
v_resetjp_1475_:
{
if (lean_obj_tag(v_a_1474_) == 1)
{
lean_object* v_val_1478_; lean_object* v___x_1480_; uint8_t v_isShared_1481_; uint8_t v_isSharedCheck_1523_; 
v_val_1478_ = lean_ctor_get(v_a_1474_, 0);
v_isSharedCheck_1523_ = !lean_is_exclusive(v_a_1474_);
if (v_isSharedCheck_1523_ == 0)
{
v___x_1480_ = v_a_1474_;
v_isShared_1481_ = v_isSharedCheck_1523_;
goto v_resetjp_1479_;
}
else
{
lean_inc(v_val_1478_);
lean_dec(v_a_1474_);
v___x_1480_ = lean_box(0);
v_isShared_1481_ = v_isSharedCheck_1523_;
goto v_resetjp_1479_;
}
v_resetjp_1479_:
{
lean_object* v___x_1482_; lean_object* v___x_1483_; 
v___x_1482_ = l_Lean_Expr_appArg_x21(v_e_1462_);
v___x_1483_ = l_BitVec_fromExpr_x3f___redArg(v___x_1482_, v_a_1463_, v_a_1464_, v_a_1465_, v_a_1466_);
if (lean_obj_tag(v___x_1483_) == 0)
{
lean_object* v_a_1484_; lean_object* v___x_1486_; uint8_t v_isShared_1487_; uint8_t v_isSharedCheck_1514_; 
v_a_1484_ = lean_ctor_get(v___x_1483_, 0);
v_isSharedCheck_1514_ = !lean_is_exclusive(v___x_1483_);
if (v_isSharedCheck_1514_ == 0)
{
v___x_1486_ = v___x_1483_;
v_isShared_1487_ = v_isSharedCheck_1514_;
goto v_resetjp_1485_;
}
else
{
lean_inc(v_a_1484_);
lean_dec(v___x_1483_);
v___x_1486_ = lean_box(0);
v_isShared_1487_ = v_isSharedCheck_1514_;
goto v_resetjp_1485_;
}
v_resetjp_1485_:
{
lean_object* v___y_1489_; 
if (lean_obj_tag(v_a_1484_) == 1)
{
lean_object* v_val_1496_; lean_object* v_n_1497_; lean_object* v_value_1498_; lean_object* v_n_1499_; lean_object* v_value_1500_; uint8_t v___x_1501_; 
v_val_1496_ = lean_ctor_get(v_a_1484_, 0);
lean_inc(v_val_1496_);
lean_dec_ref(v_a_1484_);
v_n_1497_ = lean_ctor_get(v_val_1478_, 0);
lean_inc(v_n_1497_);
v_value_1498_ = lean_ctor_get(v_val_1478_, 1);
lean_inc(v_value_1498_);
lean_dec(v_val_1478_);
v_n_1499_ = lean_ctor_get(v_val_1496_, 0);
lean_inc(v_n_1499_);
v_value_1500_ = lean_ctor_get(v_val_1496_, 1);
lean_inc(v_value_1500_);
lean_dec(v_val_1496_);
v___x_1501_ = lean_nat_dec_eq(v_n_1497_, v_n_1499_);
lean_dec(v_n_1499_);
if (v___x_1501_ == 0)
{
lean_object* v___x_1502_; lean_object* v___x_1504_; 
lean_dec(v_value_1500_);
lean_dec(v_value_1498_);
lean_dec(v_n_1497_);
lean_del_object(v___x_1486_);
lean_del_object(v___x_1480_);
lean_dec_ref(v_op_1461_);
v___x_1502_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1477_ == 0)
{
lean_ctor_set(v___x_1476_, 0, v___x_1502_);
v___x_1504_ = v___x_1476_;
goto v_reusejp_1503_;
}
else
{
lean_object* v_reuseFailAlloc_1505_; 
v_reuseFailAlloc_1505_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1505_, 0, v___x_1502_);
v___x_1504_ = v_reuseFailAlloc_1505_;
goto v_reusejp_1503_;
}
v_reusejp_1503_:
{
return v___x_1504_;
}
}
else
{
lean_object* v___x_1506_; uint8_t v___x_1507_; 
lean_del_object(v___x_1476_);
v___x_1506_ = lean_apply_3(v_op_1461_, v_n_1497_, v_value_1498_, v_value_1500_);
v___x_1507_ = lean_unbox(v___x_1506_);
if (v___x_1507_ == 0)
{
lean_object* v___x_1508_; 
v___x_1508_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_1489_ = v___x_1508_;
goto v___jp_1488_;
}
else
{
lean_object* v___x_1509_; 
v___x_1509_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_1489_ = v___x_1509_;
goto v___jp_1488_;
}
}
}
else
{
lean_object* v___x_1510_; lean_object* v___x_1512_; 
lean_del_object(v___x_1486_);
lean_dec(v_a_1484_);
lean_del_object(v___x_1480_);
lean_dec(v_val_1478_);
lean_dec_ref(v_op_1461_);
v___x_1510_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1477_ == 0)
{
lean_ctor_set(v___x_1476_, 0, v___x_1510_);
v___x_1512_ = v___x_1476_;
goto v_reusejp_1511_;
}
else
{
lean_object* v_reuseFailAlloc_1513_; 
v_reuseFailAlloc_1513_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1513_, 0, v___x_1510_);
v___x_1512_ = v_reuseFailAlloc_1513_;
goto v_reusejp_1511_;
}
v_reusejp_1511_:
{
return v___x_1512_;
}
}
v___jp_1488_:
{
lean_object* v___x_1491_; 
if (v_isShared_1481_ == 0)
{
lean_ctor_set_tag(v___x_1480_, 0);
lean_ctor_set(v___x_1480_, 0, v___y_1489_);
v___x_1491_ = v___x_1480_;
goto v_reusejp_1490_;
}
else
{
lean_object* v_reuseFailAlloc_1495_; 
v_reuseFailAlloc_1495_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1495_, 0, v___y_1489_);
v___x_1491_ = v_reuseFailAlloc_1495_;
goto v_reusejp_1490_;
}
v_reusejp_1490_:
{
lean_object* v___x_1493_; 
if (v_isShared_1487_ == 0)
{
lean_ctor_set(v___x_1486_, 0, v___x_1491_);
v___x_1493_ = v___x_1486_;
goto v_reusejp_1492_;
}
else
{
lean_object* v_reuseFailAlloc_1494_; 
v_reuseFailAlloc_1494_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1494_, 0, v___x_1491_);
v___x_1493_ = v_reuseFailAlloc_1494_;
goto v_reusejp_1492_;
}
v_reusejp_1492_:
{
return v___x_1493_;
}
}
}
}
}
else
{
lean_object* v_a_1515_; lean_object* v___x_1517_; uint8_t v_isShared_1518_; uint8_t v_isSharedCheck_1522_; 
lean_del_object(v___x_1480_);
lean_dec(v_val_1478_);
lean_del_object(v___x_1476_);
lean_dec_ref(v_op_1461_);
v_a_1515_ = lean_ctor_get(v___x_1483_, 0);
v_isSharedCheck_1522_ = !lean_is_exclusive(v___x_1483_);
if (v_isSharedCheck_1522_ == 0)
{
v___x_1517_ = v___x_1483_;
v_isShared_1518_ = v_isSharedCheck_1522_;
goto v_resetjp_1516_;
}
else
{
lean_inc(v_a_1515_);
lean_dec(v___x_1483_);
v___x_1517_ = lean_box(0);
v_isShared_1518_ = v_isSharedCheck_1522_;
goto v_resetjp_1516_;
}
v_resetjp_1516_:
{
lean_object* v___x_1520_; 
if (v_isShared_1518_ == 0)
{
v___x_1520_ = v___x_1517_;
goto v_reusejp_1519_;
}
else
{
lean_object* v_reuseFailAlloc_1521_; 
v_reuseFailAlloc_1521_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1521_, 0, v_a_1515_);
v___x_1520_ = v_reuseFailAlloc_1521_;
goto v_reusejp_1519_;
}
v_reusejp_1519_:
{
return v___x_1520_;
}
}
}
}
}
else
{
lean_object* v___x_1524_; lean_object* v___x_1526_; 
lean_dec(v_a_1474_);
lean_dec(v_a_1466_);
lean_dec_ref(v_a_1465_);
lean_dec(v_a_1464_);
lean_dec_ref(v_a_1463_);
lean_dec_ref(v_op_1461_);
v___x_1524_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1477_ == 0)
{
lean_ctor_set(v___x_1476_, 0, v___x_1524_);
v___x_1526_ = v___x_1476_;
goto v_reusejp_1525_;
}
else
{
lean_object* v_reuseFailAlloc_1527_; 
v_reuseFailAlloc_1527_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1527_, 0, v___x_1524_);
v___x_1526_ = v_reuseFailAlloc_1527_;
goto v_reusejp_1525_;
}
v_reusejp_1525_:
{
return v___x_1526_;
}
}
}
}
else
{
lean_object* v_a_1529_; lean_object* v___x_1531_; uint8_t v_isShared_1532_; uint8_t v_isSharedCheck_1536_; 
lean_dec(v_a_1466_);
lean_dec_ref(v_a_1465_);
lean_dec(v_a_1464_);
lean_dec_ref(v_a_1463_);
lean_dec_ref(v_op_1461_);
v_a_1529_ = lean_ctor_get(v___x_1473_, 0);
v_isSharedCheck_1536_ = !lean_is_exclusive(v___x_1473_);
if (v_isSharedCheck_1536_ == 0)
{
v___x_1531_ = v___x_1473_;
v_isShared_1532_ = v_isSharedCheck_1536_;
goto v_resetjp_1530_;
}
else
{
lean_inc(v_a_1529_);
lean_dec(v___x_1473_);
v___x_1531_ = lean_box(0);
v_isShared_1532_ = v_isSharedCheck_1536_;
goto v_resetjp_1530_;
}
v_resetjp_1530_:
{
lean_object* v___x_1534_; 
if (v_isShared_1532_ == 0)
{
v___x_1534_ = v___x_1531_;
goto v_reusejp_1533_;
}
else
{
lean_object* v_reuseFailAlloc_1535_; 
v_reuseFailAlloc_1535_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1535_, 0, v_a_1529_);
v___x_1534_ = v_reuseFailAlloc_1535_;
goto v_reusejp_1533_;
}
v_reusejp_1533_:
{
return v___x_1534_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBoolPred___redArg___boxed(lean_object* v_declName_1537_, lean_object* v_arity_1538_, lean_object* v_op_1539_, lean_object* v_e_1540_, lean_object* v_a_1541_, lean_object* v_a_1542_, lean_object* v_a_1543_, lean_object* v_a_1544_, lean_object* v_a_1545_){
_start:
{
lean_object* v_res_1546_; 
v_res_1546_ = l_BitVec_reduceBoolPred___redArg(v_declName_1537_, v_arity_1538_, v_op_1539_, v_e_1540_, v_a_1541_, v_a_1542_, v_a_1543_, v_a_1544_);
lean_dec_ref(v_e_1540_);
lean_dec(v_declName_1537_);
return v_res_1546_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBoolPred(lean_object* v_declName_1547_, lean_object* v_arity_1548_, lean_object* v_op_1549_, lean_object* v_e_1550_, lean_object* v_a_1551_, lean_object* v_a_1552_, lean_object* v_a_1553_, lean_object* v_a_1554_, lean_object* v_a_1555_, lean_object* v_a_1556_, lean_object* v_a_1557_){
_start:
{
uint8_t v___x_1559_; 
v___x_1559_ = l_Lean_Expr_isAppOfArity(v_e_1550_, v_declName_1547_, v_arity_1548_);
if (v___x_1559_ == 0)
{
lean_object* v___x_1560_; lean_object* v___x_1561_; 
lean_dec(v_a_1557_);
lean_dec_ref(v_a_1556_);
lean_dec(v_a_1555_);
lean_dec_ref(v_a_1554_);
lean_dec_ref(v_op_1549_);
v___x_1560_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_1561_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1561_, 0, v___x_1560_);
return v___x_1561_;
}
else
{
lean_object* v___x_1562_; lean_object* v___x_1563_; lean_object* v___x_1564_; 
v___x_1562_ = l_Lean_Expr_appFn_x21(v_e_1550_);
v___x_1563_ = l_Lean_Expr_appArg_x21(v___x_1562_);
lean_dec_ref(v___x_1562_);
lean_inc(v_a_1557_);
lean_inc_ref(v_a_1556_);
lean_inc(v_a_1555_);
lean_inc_ref(v_a_1554_);
v___x_1564_ = l_BitVec_fromExpr_x3f___redArg(v___x_1563_, v_a_1554_, v_a_1555_, v_a_1556_, v_a_1557_);
if (lean_obj_tag(v___x_1564_) == 0)
{
lean_object* v_a_1565_; lean_object* v___x_1567_; uint8_t v_isShared_1568_; uint8_t v_isSharedCheck_1619_; 
v_a_1565_ = lean_ctor_get(v___x_1564_, 0);
v_isSharedCheck_1619_ = !lean_is_exclusive(v___x_1564_);
if (v_isSharedCheck_1619_ == 0)
{
v___x_1567_ = v___x_1564_;
v_isShared_1568_ = v_isSharedCheck_1619_;
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_1619_;
goto v_resetjp_1566_;
}
v_resetjp_1566_:
{
if (lean_obj_tag(v_a_1565_) == 1)
{
lean_object* v_val_1569_; lean_object* v___x_1571_; uint8_t v_isShared_1572_; uint8_t v_isSharedCheck_1614_; 
v_val_1569_ = lean_ctor_get(v_a_1565_, 0);
v_isSharedCheck_1614_ = !lean_is_exclusive(v_a_1565_);
if (v_isSharedCheck_1614_ == 0)
{
v___x_1571_ = v_a_1565_;
v_isShared_1572_ = v_isSharedCheck_1614_;
goto v_resetjp_1570_;
}
else
{
lean_inc(v_val_1569_);
lean_dec(v_a_1565_);
v___x_1571_ = lean_box(0);
v_isShared_1572_ = v_isSharedCheck_1614_;
goto v_resetjp_1570_;
}
v_resetjp_1570_:
{
lean_object* v___x_1573_; lean_object* v___x_1574_; 
v___x_1573_ = l_Lean_Expr_appArg_x21(v_e_1550_);
v___x_1574_ = l_BitVec_fromExpr_x3f___redArg(v___x_1573_, v_a_1554_, v_a_1555_, v_a_1556_, v_a_1557_);
if (lean_obj_tag(v___x_1574_) == 0)
{
lean_object* v_a_1575_; lean_object* v___x_1577_; uint8_t v_isShared_1578_; uint8_t v_isSharedCheck_1605_; 
v_a_1575_ = lean_ctor_get(v___x_1574_, 0);
v_isSharedCheck_1605_ = !lean_is_exclusive(v___x_1574_);
if (v_isSharedCheck_1605_ == 0)
{
v___x_1577_ = v___x_1574_;
v_isShared_1578_ = v_isSharedCheck_1605_;
goto v_resetjp_1576_;
}
else
{
lean_inc(v_a_1575_);
lean_dec(v___x_1574_);
v___x_1577_ = lean_box(0);
v_isShared_1578_ = v_isSharedCheck_1605_;
goto v_resetjp_1576_;
}
v_resetjp_1576_:
{
lean_object* v___y_1580_; 
if (lean_obj_tag(v_a_1575_) == 1)
{
lean_object* v_val_1587_; lean_object* v_n_1588_; lean_object* v_value_1589_; lean_object* v_n_1590_; lean_object* v_value_1591_; uint8_t v___x_1592_; 
v_val_1587_ = lean_ctor_get(v_a_1575_, 0);
lean_inc(v_val_1587_);
lean_dec_ref(v_a_1575_);
v_n_1588_ = lean_ctor_get(v_val_1569_, 0);
lean_inc(v_n_1588_);
v_value_1589_ = lean_ctor_get(v_val_1569_, 1);
lean_inc(v_value_1589_);
lean_dec(v_val_1569_);
v_n_1590_ = lean_ctor_get(v_val_1587_, 0);
lean_inc(v_n_1590_);
v_value_1591_ = lean_ctor_get(v_val_1587_, 1);
lean_inc(v_value_1591_);
lean_dec(v_val_1587_);
v___x_1592_ = lean_nat_dec_eq(v_n_1588_, v_n_1590_);
lean_dec(v_n_1590_);
if (v___x_1592_ == 0)
{
lean_object* v___x_1593_; lean_object* v___x_1595_; 
lean_dec(v_value_1591_);
lean_dec(v_value_1589_);
lean_dec(v_n_1588_);
lean_del_object(v___x_1577_);
lean_del_object(v___x_1571_);
lean_dec_ref(v_op_1549_);
v___x_1593_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1568_ == 0)
{
lean_ctor_set(v___x_1567_, 0, v___x_1593_);
v___x_1595_ = v___x_1567_;
goto v_reusejp_1594_;
}
else
{
lean_object* v_reuseFailAlloc_1596_; 
v_reuseFailAlloc_1596_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1596_, 0, v___x_1593_);
v___x_1595_ = v_reuseFailAlloc_1596_;
goto v_reusejp_1594_;
}
v_reusejp_1594_:
{
return v___x_1595_;
}
}
else
{
lean_object* v___x_1597_; uint8_t v___x_1598_; 
lean_del_object(v___x_1567_);
v___x_1597_ = lean_apply_3(v_op_1549_, v_n_1588_, v_value_1589_, v_value_1591_);
v___x_1598_ = lean_unbox(v___x_1597_);
if (v___x_1598_ == 0)
{
lean_object* v___x_1599_; 
v___x_1599_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_1580_ = v___x_1599_;
goto v___jp_1579_;
}
else
{
lean_object* v___x_1600_; 
v___x_1600_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_1580_ = v___x_1600_;
goto v___jp_1579_;
}
}
}
else
{
lean_object* v___x_1601_; lean_object* v___x_1603_; 
lean_del_object(v___x_1577_);
lean_dec(v_a_1575_);
lean_del_object(v___x_1571_);
lean_dec(v_val_1569_);
lean_dec_ref(v_op_1549_);
v___x_1601_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1568_ == 0)
{
lean_ctor_set(v___x_1567_, 0, v___x_1601_);
v___x_1603_ = v___x_1567_;
goto v_reusejp_1602_;
}
else
{
lean_object* v_reuseFailAlloc_1604_; 
v_reuseFailAlloc_1604_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1604_, 0, v___x_1601_);
v___x_1603_ = v_reuseFailAlloc_1604_;
goto v_reusejp_1602_;
}
v_reusejp_1602_:
{
return v___x_1603_;
}
}
v___jp_1579_:
{
lean_object* v___x_1582_; 
if (v_isShared_1572_ == 0)
{
lean_ctor_set_tag(v___x_1571_, 0);
lean_ctor_set(v___x_1571_, 0, v___y_1580_);
v___x_1582_ = v___x_1571_;
goto v_reusejp_1581_;
}
else
{
lean_object* v_reuseFailAlloc_1586_; 
v_reuseFailAlloc_1586_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1586_, 0, v___y_1580_);
v___x_1582_ = v_reuseFailAlloc_1586_;
goto v_reusejp_1581_;
}
v_reusejp_1581_:
{
lean_object* v___x_1584_; 
if (v_isShared_1578_ == 0)
{
lean_ctor_set(v___x_1577_, 0, v___x_1582_);
v___x_1584_ = v___x_1577_;
goto v_reusejp_1583_;
}
else
{
lean_object* v_reuseFailAlloc_1585_; 
v_reuseFailAlloc_1585_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1585_, 0, v___x_1582_);
v___x_1584_ = v_reuseFailAlloc_1585_;
goto v_reusejp_1583_;
}
v_reusejp_1583_:
{
return v___x_1584_;
}
}
}
}
}
else
{
lean_object* v_a_1606_; lean_object* v___x_1608_; uint8_t v_isShared_1609_; uint8_t v_isSharedCheck_1613_; 
lean_del_object(v___x_1571_);
lean_dec(v_val_1569_);
lean_del_object(v___x_1567_);
lean_dec_ref(v_op_1549_);
v_a_1606_ = lean_ctor_get(v___x_1574_, 0);
v_isSharedCheck_1613_ = !lean_is_exclusive(v___x_1574_);
if (v_isSharedCheck_1613_ == 0)
{
v___x_1608_ = v___x_1574_;
v_isShared_1609_ = v_isSharedCheck_1613_;
goto v_resetjp_1607_;
}
else
{
lean_inc(v_a_1606_);
lean_dec(v___x_1574_);
v___x_1608_ = lean_box(0);
v_isShared_1609_ = v_isSharedCheck_1613_;
goto v_resetjp_1607_;
}
v_resetjp_1607_:
{
lean_object* v___x_1611_; 
if (v_isShared_1609_ == 0)
{
v___x_1611_ = v___x_1608_;
goto v_reusejp_1610_;
}
else
{
lean_object* v_reuseFailAlloc_1612_; 
v_reuseFailAlloc_1612_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1612_, 0, v_a_1606_);
v___x_1611_ = v_reuseFailAlloc_1612_;
goto v_reusejp_1610_;
}
v_reusejp_1610_:
{
return v___x_1611_;
}
}
}
}
}
else
{
lean_object* v___x_1615_; lean_object* v___x_1617_; 
lean_dec(v_a_1565_);
lean_dec(v_a_1557_);
lean_dec_ref(v_a_1556_);
lean_dec(v_a_1555_);
lean_dec_ref(v_a_1554_);
lean_dec_ref(v_op_1549_);
v___x_1615_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1568_ == 0)
{
lean_ctor_set(v___x_1567_, 0, v___x_1615_);
v___x_1617_ = v___x_1567_;
goto v_reusejp_1616_;
}
else
{
lean_object* v_reuseFailAlloc_1618_; 
v_reuseFailAlloc_1618_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1618_, 0, v___x_1615_);
v___x_1617_ = v_reuseFailAlloc_1618_;
goto v_reusejp_1616_;
}
v_reusejp_1616_:
{
return v___x_1617_;
}
}
}
}
else
{
lean_object* v_a_1620_; lean_object* v___x_1622_; uint8_t v_isShared_1623_; uint8_t v_isSharedCheck_1627_; 
lean_dec(v_a_1557_);
lean_dec_ref(v_a_1556_);
lean_dec(v_a_1555_);
lean_dec_ref(v_a_1554_);
lean_dec_ref(v_op_1549_);
v_a_1620_ = lean_ctor_get(v___x_1564_, 0);
v_isSharedCheck_1627_ = !lean_is_exclusive(v___x_1564_);
if (v_isSharedCheck_1627_ == 0)
{
v___x_1622_ = v___x_1564_;
v_isShared_1623_ = v_isSharedCheck_1627_;
goto v_resetjp_1621_;
}
else
{
lean_inc(v_a_1620_);
lean_dec(v___x_1564_);
v___x_1622_ = lean_box(0);
v_isShared_1623_ = v_isSharedCheck_1627_;
goto v_resetjp_1621_;
}
v_resetjp_1621_:
{
lean_object* v___x_1625_; 
if (v_isShared_1623_ == 0)
{
v___x_1625_ = v___x_1622_;
goto v_reusejp_1624_;
}
else
{
lean_object* v_reuseFailAlloc_1626_; 
v_reuseFailAlloc_1626_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1626_, 0, v_a_1620_);
v___x_1625_ = v_reuseFailAlloc_1626_;
goto v_reusejp_1624_;
}
v_reusejp_1624_:
{
return v___x_1625_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBoolPred___boxed(lean_object* v_declName_1628_, lean_object* v_arity_1629_, lean_object* v_op_1630_, lean_object* v_e_1631_, lean_object* v_a_1632_, lean_object* v_a_1633_, lean_object* v_a_1634_, lean_object* v_a_1635_, lean_object* v_a_1636_, lean_object* v_a_1637_, lean_object* v_a_1638_, lean_object* v_a_1639_){
_start:
{
lean_object* v_res_1640_; 
v_res_1640_ = l_BitVec_reduceBoolPred(v_declName_1628_, v_arity_1629_, v_op_1630_, v_e_1631_, v_a_1632_, v_a_1633_, v_a_1634_, v_a_1635_, v_a_1636_, v_a_1637_, v_a_1638_);
lean_dec(v_a_1634_);
lean_dec_ref(v_a_1633_);
lean_dec(v_a_1632_);
lean_dec_ref(v_e_1631_);
lean_dec(v_declName_1628_);
return v_res_1640_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___redArg(lean_object* v_e_1646_, lean_object* v_a_1647_, lean_object* v_a_1648_, lean_object* v_a_1649_, lean_object* v_a_1650_, lean_object* v_a_1651_){
_start:
{
lean_object* v___x_1653_; lean_object* v___x_1654_; uint8_t v___x_1655_; 
v___x_1653_ = ((lean_object*)(l_BitVec_reduceNeg___redArg___closed__2));
v___x_1654_ = lean_unsigned_to_nat(3u);
v___x_1655_ = l_Lean_Expr_isAppOfArity(v_e_1646_, v___x_1653_, v___x_1654_);
if (v___x_1655_ == 0)
{
lean_object* v___x_1656_; lean_object* v___x_1657_; 
lean_dec(v_a_1651_);
lean_dec_ref(v_a_1650_);
lean_dec(v_a_1649_);
lean_dec_ref(v_a_1648_);
v___x_1656_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_1657_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1657_, 0, v___x_1656_);
return v___x_1657_;
}
else
{
lean_object* v___x_1658_; lean_object* v___x_1659_; 
v___x_1658_ = l_Lean_Expr_appArg_x21(v_e_1646_);
lean_inc(v_a_1651_);
lean_inc_ref(v_a_1650_);
lean_inc(v_a_1649_);
lean_inc_ref(v_a_1648_);
v___x_1659_ = l_BitVec_fromExpr_x3f___redArg(v___x_1658_, v_a_1648_, v_a_1649_, v_a_1650_, v_a_1651_);
if (lean_obj_tag(v___x_1659_) == 0)
{
lean_object* v_a_1660_; lean_object* v___x_1662_; uint8_t v_isShared_1663_; uint8_t v_isSharedCheck_1696_; 
v_a_1660_ = lean_ctor_get(v___x_1659_, 0);
v_isSharedCheck_1696_ = !lean_is_exclusive(v___x_1659_);
if (v_isSharedCheck_1696_ == 0)
{
v___x_1662_ = v___x_1659_;
v_isShared_1663_ = v_isSharedCheck_1696_;
goto v_resetjp_1661_;
}
else
{
lean_inc(v_a_1660_);
lean_dec(v___x_1659_);
v___x_1662_ = lean_box(0);
v_isShared_1663_ = v_isSharedCheck_1696_;
goto v_resetjp_1661_;
}
v_resetjp_1661_:
{
if (lean_obj_tag(v_a_1660_) == 1)
{
lean_object* v_val_1664_; lean_object* v___x_1666_; uint8_t v_isShared_1667_; uint8_t v_isSharedCheck_1691_; 
lean_del_object(v___x_1662_);
v_val_1664_ = lean_ctor_get(v_a_1660_, 0);
v_isSharedCheck_1691_ = !lean_is_exclusive(v_a_1660_);
if (v_isSharedCheck_1691_ == 0)
{
v___x_1666_ = v_a_1660_;
v_isShared_1667_ = v_isSharedCheck_1691_;
goto v_resetjp_1665_;
}
else
{
lean_inc(v_val_1664_);
lean_dec(v_a_1660_);
v___x_1666_ = lean_box(0);
v_isShared_1667_ = v_isSharedCheck_1691_;
goto v_resetjp_1665_;
}
v_resetjp_1665_:
{
lean_object* v_n_1668_; lean_object* v_value_1669_; lean_object* v___x_1670_; lean_object* v___x_1671_; 
v_n_1668_ = lean_ctor_get(v_val_1664_, 0);
lean_inc(v_n_1668_);
v_value_1669_ = lean_ctor_get(v_val_1664_, 1);
lean_inc(v_value_1669_);
lean_dec(v_val_1664_);
v___x_1670_ = l_BitVec_neg(v_n_1668_, v_value_1669_);
lean_dec(v_value_1669_);
v___x_1671_ = l_BitVec_toExpr_x27___redArg(v_n_1668_, v___x_1670_, v_a_1647_, v_a_1648_, v_a_1649_, v_a_1650_, v_a_1651_);
if (lean_obj_tag(v___x_1671_) == 0)
{
lean_object* v_a_1672_; lean_object* v___x_1674_; uint8_t v_isShared_1675_; uint8_t v_isSharedCheck_1682_; 
v_a_1672_ = lean_ctor_get(v___x_1671_, 0);
v_isSharedCheck_1682_ = !lean_is_exclusive(v___x_1671_);
if (v_isSharedCheck_1682_ == 0)
{
v___x_1674_ = v___x_1671_;
v_isShared_1675_ = v_isSharedCheck_1682_;
goto v_resetjp_1673_;
}
else
{
lean_inc(v_a_1672_);
lean_dec(v___x_1671_);
v___x_1674_ = lean_box(0);
v_isShared_1675_ = v_isSharedCheck_1682_;
goto v_resetjp_1673_;
}
v_resetjp_1673_:
{
lean_object* v___x_1677_; 
if (v_isShared_1667_ == 0)
{
lean_ctor_set_tag(v___x_1666_, 0);
lean_ctor_set(v___x_1666_, 0, v_a_1672_);
v___x_1677_ = v___x_1666_;
goto v_reusejp_1676_;
}
else
{
lean_object* v_reuseFailAlloc_1681_; 
v_reuseFailAlloc_1681_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1681_, 0, v_a_1672_);
v___x_1677_ = v_reuseFailAlloc_1681_;
goto v_reusejp_1676_;
}
v_reusejp_1676_:
{
lean_object* v___x_1679_; 
if (v_isShared_1675_ == 0)
{
lean_ctor_set(v___x_1674_, 0, v___x_1677_);
v___x_1679_ = v___x_1674_;
goto v_reusejp_1678_;
}
else
{
lean_object* v_reuseFailAlloc_1680_; 
v_reuseFailAlloc_1680_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1680_, 0, v___x_1677_);
v___x_1679_ = v_reuseFailAlloc_1680_;
goto v_reusejp_1678_;
}
v_reusejp_1678_:
{
return v___x_1679_;
}
}
}
}
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_1666_);
v_a_1683_ = lean_ctor_get(v___x_1671_, 0);
v_isSharedCheck_1690_ = !lean_is_exclusive(v___x_1671_);
if (v_isSharedCheck_1690_ == 0)
{
v___x_1685_ = v___x_1671_;
v_isShared_1686_ = v_isSharedCheck_1690_;
goto v_resetjp_1684_;
}
else
{
lean_inc(v_a_1683_);
lean_dec(v___x_1671_);
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_1692_; lean_object* v___x_1694_; 
lean_dec(v_a_1660_);
lean_dec(v_a_1651_);
lean_dec_ref(v_a_1650_);
lean_dec(v_a_1649_);
lean_dec_ref(v_a_1648_);
v___x_1692_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1663_ == 0)
{
lean_ctor_set(v___x_1662_, 0, v___x_1692_);
v___x_1694_ = v___x_1662_;
goto v_reusejp_1693_;
}
else
{
lean_object* v_reuseFailAlloc_1695_; 
v_reuseFailAlloc_1695_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1695_, 0, v___x_1692_);
v___x_1694_ = v_reuseFailAlloc_1695_;
goto v_reusejp_1693_;
}
v_reusejp_1693_:
{
return v___x_1694_;
}
}
}
}
else
{
lean_object* v_a_1697_; lean_object* v___x_1699_; uint8_t v_isShared_1700_; uint8_t v_isSharedCheck_1704_; 
lean_dec(v_a_1651_);
lean_dec_ref(v_a_1650_);
lean_dec(v_a_1649_);
lean_dec_ref(v_a_1648_);
v_a_1697_ = lean_ctor_get(v___x_1659_, 0);
v_isSharedCheck_1704_ = !lean_is_exclusive(v___x_1659_);
if (v_isSharedCheck_1704_ == 0)
{
v___x_1699_ = v___x_1659_;
v_isShared_1700_ = v_isSharedCheck_1704_;
goto v_resetjp_1698_;
}
else
{
lean_inc(v_a_1697_);
lean_dec(v___x_1659_);
v___x_1699_ = lean_box(0);
v_isShared_1700_ = v_isSharedCheck_1704_;
goto v_resetjp_1698_;
}
v_resetjp_1698_:
{
lean_object* v___x_1702_; 
if (v_isShared_1700_ == 0)
{
v___x_1702_ = v___x_1699_;
goto v_reusejp_1701_;
}
else
{
lean_object* v_reuseFailAlloc_1703_; 
v_reuseFailAlloc_1703_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1703_, 0, v_a_1697_);
v___x_1702_ = v_reuseFailAlloc_1703_;
goto v_reusejp_1701_;
}
v_reusejp_1701_:
{
return v___x_1702_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___redArg___boxed(lean_object* v_e_1705_, lean_object* v_a_1706_, lean_object* v_a_1707_, lean_object* v_a_1708_, lean_object* v_a_1709_, lean_object* v_a_1710_, lean_object* v_a_1711_){
_start:
{
lean_object* v_res_1712_; 
v_res_1712_ = l_BitVec_reduceNeg___redArg(v_e_1705_, v_a_1706_, v_a_1707_, v_a_1708_, v_a_1709_, v_a_1710_);
lean_dec_ref(v_a_1706_);
lean_dec_ref(v_e_1705_);
return v_res_1712_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNeg(lean_object* v_e_1713_, lean_object* v_a_1714_, lean_object* v_a_1715_, lean_object* v_a_1716_, lean_object* v_a_1717_, lean_object* v_a_1718_, lean_object* v_a_1719_, lean_object* v_a_1720_){
_start:
{
lean_object* v___x_1722_; 
v___x_1722_ = l_BitVec_reduceNeg___redArg(v_e_1713_, v_a_1715_, v_a_1717_, v_a_1718_, v_a_1719_, v_a_1720_);
return v___x_1722_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___boxed(lean_object* v_e_1723_, lean_object* v_a_1724_, lean_object* v_a_1725_, lean_object* v_a_1726_, lean_object* v_a_1727_, lean_object* v_a_1728_, lean_object* v_a_1729_, lean_object* v_a_1730_, lean_object* v_a_1731_){
_start:
{
lean_object* v_res_1732_; 
v_res_1732_ = l_BitVec_reduceNeg(v_e_1723_, v_a_1724_, v_a_1725_, v_a_1726_, v_a_1727_, v_a_1728_, v_a_1729_, v_a_1730_);
lean_dec(v_a_1726_);
lean_dec_ref(v_a_1725_);
lean_dec(v_a_1724_);
lean_dec_ref(v_e_1723_);
return v_res_1732_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_(){
_start:
{
lean_object* v___x_1754_; lean_object* v___x_1755_; lean_object* v___x_1756_; lean_object* v___x_1757_; 
v___x_1754_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_1755_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__4_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_1756_ = lean_alloc_closure((void*)(l_BitVec_reduceNeg___boxed), 9, 0);
v___x_1757_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_1754_, v___x_1755_, v___x_1756_);
return v___x_1757_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19____boxed(lean_object* v_a_1758_){
_start:
{
lean_object* v_res_1759_; 
v_res_1759_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_();
return v_res_1759_;
}
}
static lean_object* _init_l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_(void){
_start:
{
lean_object* v___x_1760_; lean_object* v___x_1761_; 
v___x_1760_ = lean_alloc_closure((void*)(l_BitVec_reduceNeg___boxed), 9, 0);
v___x_1761_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_1761_, 0, v___x_1760_);
return v___x_1761_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_1763_; uint8_t v___x_1764_; lean_object* v___x_1765_; lean_object* v___x_1766_; 
v___x_1763_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_1764_ = 1;
v___x_1765_ = lean_obj_once(&l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_, &l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21__once, _init_l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_);
v___x_1766_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_1763_, v___x_1764_, v___x_1765_);
return v___x_1766_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21____boxed(lean_object* v_a_1767_){
_start:
{
lean_object* v_res_1768_; 
v_res_1768_ = l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_();
return v_res_1768_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_1770_; uint8_t v___x_1771_; lean_object* v___x_1772_; lean_object* v___x_1773_; 
v___x_1770_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_1771_ = 1;
v___x_1772_ = lean_obj_once(&l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_, &l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21__once, _init_l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_);
v___x_1773_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_1770_, v___x_1771_, v___x_1772_);
return v___x_1773_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_23____boxed(lean_object* v_a_1774_){
_start:
{
lean_object* v_res_1775_; 
v_res_1775_ = l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_23_();
return v_res_1775_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNot___redArg(lean_object* v_e_1781_, lean_object* v_a_1782_, lean_object* v_a_1783_, lean_object* v_a_1784_, lean_object* v_a_1785_, lean_object* v_a_1786_){
_start:
{
lean_object* v___x_1788_; lean_object* v___x_1789_; uint8_t v___x_1790_; 
v___x_1788_ = ((lean_object*)(l_BitVec_reduceNot___redArg___closed__2));
v___x_1789_ = lean_unsigned_to_nat(3u);
v___x_1790_ = l_Lean_Expr_isAppOfArity(v_e_1781_, v___x_1788_, v___x_1789_);
if (v___x_1790_ == 0)
{
lean_object* v___x_1791_; lean_object* v___x_1792_; 
lean_dec(v_a_1786_);
lean_dec_ref(v_a_1785_);
lean_dec(v_a_1784_);
lean_dec_ref(v_a_1783_);
v___x_1791_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_1792_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1792_, 0, v___x_1791_);
return v___x_1792_;
}
else
{
lean_object* v___x_1793_; lean_object* v___x_1794_; 
v___x_1793_ = l_Lean_Expr_appArg_x21(v_e_1781_);
lean_inc(v_a_1786_);
lean_inc_ref(v_a_1785_);
lean_inc(v_a_1784_);
lean_inc_ref(v_a_1783_);
v___x_1794_ = l_BitVec_fromExpr_x3f___redArg(v___x_1793_, v_a_1783_, v_a_1784_, v_a_1785_, v_a_1786_);
if (lean_obj_tag(v___x_1794_) == 0)
{
lean_object* v_a_1795_; lean_object* v___x_1797_; uint8_t v_isShared_1798_; uint8_t v_isSharedCheck_1831_; 
v_a_1795_ = lean_ctor_get(v___x_1794_, 0);
v_isSharedCheck_1831_ = !lean_is_exclusive(v___x_1794_);
if (v_isSharedCheck_1831_ == 0)
{
v___x_1797_ = v___x_1794_;
v_isShared_1798_ = v_isSharedCheck_1831_;
goto v_resetjp_1796_;
}
else
{
lean_inc(v_a_1795_);
lean_dec(v___x_1794_);
v___x_1797_ = lean_box(0);
v_isShared_1798_ = v_isSharedCheck_1831_;
goto v_resetjp_1796_;
}
v_resetjp_1796_:
{
if (lean_obj_tag(v_a_1795_) == 1)
{
lean_object* v_val_1799_; lean_object* v___x_1801_; uint8_t v_isShared_1802_; uint8_t v_isSharedCheck_1826_; 
lean_del_object(v___x_1797_);
v_val_1799_ = lean_ctor_get(v_a_1795_, 0);
v_isSharedCheck_1826_ = !lean_is_exclusive(v_a_1795_);
if (v_isSharedCheck_1826_ == 0)
{
v___x_1801_ = v_a_1795_;
v_isShared_1802_ = v_isSharedCheck_1826_;
goto v_resetjp_1800_;
}
else
{
lean_inc(v_val_1799_);
lean_dec(v_a_1795_);
v___x_1801_ = lean_box(0);
v_isShared_1802_ = v_isSharedCheck_1826_;
goto v_resetjp_1800_;
}
v_resetjp_1800_:
{
lean_object* v_n_1803_; lean_object* v_value_1804_; lean_object* v___x_1805_; lean_object* v___x_1806_; 
v_n_1803_ = lean_ctor_get(v_val_1799_, 0);
lean_inc(v_n_1803_);
v_value_1804_ = lean_ctor_get(v_val_1799_, 1);
lean_inc(v_value_1804_);
lean_dec(v_val_1799_);
v___x_1805_ = l_BitVec_not(v_n_1803_, v_value_1804_);
lean_dec(v_value_1804_);
v___x_1806_ = l_BitVec_toExpr_x27___redArg(v_n_1803_, v___x_1805_, v_a_1782_, v_a_1783_, v_a_1784_, v_a_1785_, v_a_1786_);
if (lean_obj_tag(v___x_1806_) == 0)
{
lean_object* v_a_1807_; lean_object* v___x_1809_; uint8_t v_isShared_1810_; uint8_t v_isSharedCheck_1817_; 
v_a_1807_ = lean_ctor_get(v___x_1806_, 0);
v_isSharedCheck_1817_ = !lean_is_exclusive(v___x_1806_);
if (v_isSharedCheck_1817_ == 0)
{
v___x_1809_ = v___x_1806_;
v_isShared_1810_ = v_isSharedCheck_1817_;
goto v_resetjp_1808_;
}
else
{
lean_inc(v_a_1807_);
lean_dec(v___x_1806_);
v___x_1809_ = lean_box(0);
v_isShared_1810_ = v_isSharedCheck_1817_;
goto v_resetjp_1808_;
}
v_resetjp_1808_:
{
lean_object* v___x_1812_; 
if (v_isShared_1802_ == 0)
{
lean_ctor_set_tag(v___x_1801_, 0);
lean_ctor_set(v___x_1801_, 0, v_a_1807_);
v___x_1812_ = v___x_1801_;
goto v_reusejp_1811_;
}
else
{
lean_object* v_reuseFailAlloc_1816_; 
v_reuseFailAlloc_1816_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1816_, 0, v_a_1807_);
v___x_1812_ = v_reuseFailAlloc_1816_;
goto v_reusejp_1811_;
}
v_reusejp_1811_:
{
lean_object* v___x_1814_; 
if (v_isShared_1810_ == 0)
{
lean_ctor_set(v___x_1809_, 0, v___x_1812_);
v___x_1814_ = v___x_1809_;
goto v_reusejp_1813_;
}
else
{
lean_object* v_reuseFailAlloc_1815_; 
v_reuseFailAlloc_1815_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1815_, 0, v___x_1812_);
v___x_1814_ = v_reuseFailAlloc_1815_;
goto v_reusejp_1813_;
}
v_reusejp_1813_:
{
return v___x_1814_;
}
}
}
}
else
{
lean_object* v_a_1818_; lean_object* v___x_1820_; uint8_t v_isShared_1821_; uint8_t v_isSharedCheck_1825_; 
lean_del_object(v___x_1801_);
v_a_1818_ = lean_ctor_get(v___x_1806_, 0);
v_isSharedCheck_1825_ = !lean_is_exclusive(v___x_1806_);
if (v_isSharedCheck_1825_ == 0)
{
v___x_1820_ = v___x_1806_;
v_isShared_1821_ = v_isSharedCheck_1825_;
goto v_resetjp_1819_;
}
else
{
lean_inc(v_a_1818_);
lean_dec(v___x_1806_);
v___x_1820_ = lean_box(0);
v_isShared_1821_ = v_isSharedCheck_1825_;
goto v_resetjp_1819_;
}
v_resetjp_1819_:
{
lean_object* v___x_1823_; 
if (v_isShared_1821_ == 0)
{
v___x_1823_ = v___x_1820_;
goto v_reusejp_1822_;
}
else
{
lean_object* v_reuseFailAlloc_1824_; 
v_reuseFailAlloc_1824_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1824_, 0, v_a_1818_);
v___x_1823_ = v_reuseFailAlloc_1824_;
goto v_reusejp_1822_;
}
v_reusejp_1822_:
{
return v___x_1823_;
}
}
}
}
}
else
{
lean_object* v___x_1827_; lean_object* v___x_1829_; 
lean_dec(v_a_1795_);
lean_dec(v_a_1786_);
lean_dec_ref(v_a_1785_);
lean_dec(v_a_1784_);
lean_dec_ref(v_a_1783_);
v___x_1827_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1798_ == 0)
{
lean_ctor_set(v___x_1797_, 0, v___x_1827_);
v___x_1829_ = v___x_1797_;
goto v_reusejp_1828_;
}
else
{
lean_object* v_reuseFailAlloc_1830_; 
v_reuseFailAlloc_1830_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1830_, 0, v___x_1827_);
v___x_1829_ = v_reuseFailAlloc_1830_;
goto v_reusejp_1828_;
}
v_reusejp_1828_:
{
return v___x_1829_;
}
}
}
}
else
{
lean_object* v_a_1832_; lean_object* v___x_1834_; uint8_t v_isShared_1835_; uint8_t v_isSharedCheck_1839_; 
lean_dec(v_a_1786_);
lean_dec_ref(v_a_1785_);
lean_dec(v_a_1784_);
lean_dec_ref(v_a_1783_);
v_a_1832_ = lean_ctor_get(v___x_1794_, 0);
v_isSharedCheck_1839_ = !lean_is_exclusive(v___x_1794_);
if (v_isSharedCheck_1839_ == 0)
{
v___x_1834_ = v___x_1794_;
v_isShared_1835_ = v_isSharedCheck_1839_;
goto v_resetjp_1833_;
}
else
{
lean_inc(v_a_1832_);
lean_dec(v___x_1794_);
v___x_1834_ = lean_box(0);
v_isShared_1835_ = v_isSharedCheck_1839_;
goto v_resetjp_1833_;
}
v_resetjp_1833_:
{
lean_object* v___x_1837_; 
if (v_isShared_1835_ == 0)
{
v___x_1837_ = v___x_1834_;
goto v_reusejp_1836_;
}
else
{
lean_object* v_reuseFailAlloc_1838_; 
v_reuseFailAlloc_1838_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1838_, 0, v_a_1832_);
v___x_1837_ = v_reuseFailAlloc_1838_;
goto v_reusejp_1836_;
}
v_reusejp_1836_:
{
return v___x_1837_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNot___redArg___boxed(lean_object* v_e_1840_, lean_object* v_a_1841_, lean_object* v_a_1842_, lean_object* v_a_1843_, lean_object* v_a_1844_, lean_object* v_a_1845_, lean_object* v_a_1846_){
_start:
{
lean_object* v_res_1847_; 
v_res_1847_ = l_BitVec_reduceNot___redArg(v_e_1840_, v_a_1841_, v_a_1842_, v_a_1843_, v_a_1844_, v_a_1845_);
lean_dec_ref(v_a_1841_);
lean_dec_ref(v_e_1840_);
return v_res_1847_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNot(lean_object* v_e_1848_, lean_object* v_a_1849_, lean_object* v_a_1850_, lean_object* v_a_1851_, lean_object* v_a_1852_, lean_object* v_a_1853_, lean_object* v_a_1854_, lean_object* v_a_1855_){
_start:
{
lean_object* v___x_1857_; 
v___x_1857_ = l_BitVec_reduceNot___redArg(v_e_1848_, v_a_1850_, v_a_1852_, v_a_1853_, v_a_1854_, v_a_1855_);
return v___x_1857_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNot___boxed(lean_object* v_e_1858_, lean_object* v_a_1859_, lean_object* v_a_1860_, lean_object* v_a_1861_, lean_object* v_a_1862_, lean_object* v_a_1863_, lean_object* v_a_1864_, lean_object* v_a_1865_, lean_object* v_a_1866_){
_start:
{
lean_object* v_res_1867_; 
v_res_1867_ = l_BitVec_reduceNot(v_e_1858_, v_a_1859_, v_a_1860_, v_a_1861_, v_a_1862_, v_a_1863_, v_a_1864_, v_a_1865_);
lean_dec(v_a_1861_);
lean_dec_ref(v_a_1860_);
lean_dec(v_a_1859_);
lean_dec_ref(v_e_1858_);
return v_res_1867_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_(){
_start:
{
lean_object* v___x_1886_; lean_object* v___x_1887_; lean_object* v___x_1888_; lean_object* v___x_1889_; 
v___x_1886_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_));
v___x_1887_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_));
v___x_1888_ = lean_alloc_closure((void*)(l_BitVec_reduceNot___boxed), 9, 0);
v___x_1889_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_1886_, v___x_1887_, v___x_1888_);
return v___x_1889_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19____boxed(lean_object* v_a_1890_){
_start:
{
lean_object* v_res_1891_; 
v_res_1891_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_();
return v_res_1891_;
}
}
static lean_object* _init_l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_(void){
_start:
{
lean_object* v___x_1892_; lean_object* v___x_1893_; 
v___x_1892_ = lean_alloc_closure((void*)(l_BitVec_reduceNot___boxed), 9, 0);
v___x_1893_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_1893_, 0, v___x_1892_);
return v___x_1893_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_1895_; uint8_t v___x_1896_; lean_object* v___x_1897_; lean_object* v___x_1898_; 
v___x_1895_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_));
v___x_1896_ = 1;
v___x_1897_ = lean_obj_once(&l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_, &l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21__once, _init_l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_);
v___x_1898_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_1895_, v___x_1896_, v___x_1897_);
return v___x_1898_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21____boxed(lean_object* v_a_1899_){
_start:
{
lean_object* v_res_1900_; 
v_res_1900_ = l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_();
return v_res_1900_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_1902_; uint8_t v___x_1903_; lean_object* v___x_1904_; lean_object* v___x_1905_; 
v___x_1902_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_));
v___x_1903_ = 1;
v___x_1904_ = lean_obj_once(&l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_, &l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21__once, _init_l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_);
v___x_1905_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_1902_, v___x_1903_, v___x_1904_);
return v___x_1905_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_23____boxed(lean_object* v_a_1906_){
_start:
{
lean_object* v_res_1907_; 
v_res_1907_ = l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_23_();
return v_res_1907_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___redArg(lean_object* v_e_1912_, lean_object* v_a_1913_, lean_object* v_a_1914_, lean_object* v_a_1915_, lean_object* v_a_1916_, lean_object* v_a_1917_){
_start:
{
lean_object* v___x_1919_; lean_object* v___x_1920_; uint8_t v___x_1921_; 
v___x_1919_ = ((lean_object*)(l_BitVec_reduceAbs___redArg___closed__1));
v___x_1920_ = lean_unsigned_to_nat(2u);
v___x_1921_ = l_Lean_Expr_isAppOfArity(v_e_1912_, v___x_1919_, v___x_1920_);
if (v___x_1921_ == 0)
{
lean_object* v___x_1922_; lean_object* v___x_1923_; 
lean_dec(v_a_1917_);
lean_dec_ref(v_a_1916_);
lean_dec(v_a_1915_);
lean_dec_ref(v_a_1914_);
v___x_1922_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_1923_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_1923_, 0, v___x_1922_);
return v___x_1923_;
}
else
{
lean_object* v___x_1924_; lean_object* v___x_1925_; 
v___x_1924_ = l_Lean_Expr_appArg_x21(v_e_1912_);
lean_inc(v_a_1917_);
lean_inc_ref(v_a_1916_);
lean_inc(v_a_1915_);
lean_inc_ref(v_a_1914_);
v___x_1925_ = l_BitVec_fromExpr_x3f___redArg(v___x_1924_, v_a_1914_, v_a_1915_, v_a_1916_, v_a_1917_);
if (lean_obj_tag(v___x_1925_) == 0)
{
lean_object* v_a_1926_; lean_object* v___x_1928_; uint8_t v_isShared_1929_; uint8_t v_isSharedCheck_1962_; 
v_a_1926_ = lean_ctor_get(v___x_1925_, 0);
v_isSharedCheck_1962_ = !lean_is_exclusive(v___x_1925_);
if (v_isSharedCheck_1962_ == 0)
{
v___x_1928_ = v___x_1925_;
v_isShared_1929_ = v_isSharedCheck_1962_;
goto v_resetjp_1927_;
}
else
{
lean_inc(v_a_1926_);
lean_dec(v___x_1925_);
v___x_1928_ = lean_box(0);
v_isShared_1929_ = v_isSharedCheck_1962_;
goto v_resetjp_1927_;
}
v_resetjp_1927_:
{
if (lean_obj_tag(v_a_1926_) == 1)
{
lean_object* v_val_1930_; lean_object* v___x_1932_; uint8_t v_isShared_1933_; uint8_t v_isSharedCheck_1957_; 
lean_del_object(v___x_1928_);
v_val_1930_ = lean_ctor_get(v_a_1926_, 0);
v_isSharedCheck_1957_ = !lean_is_exclusive(v_a_1926_);
if (v_isSharedCheck_1957_ == 0)
{
v___x_1932_ = v_a_1926_;
v_isShared_1933_ = v_isSharedCheck_1957_;
goto v_resetjp_1931_;
}
else
{
lean_inc(v_val_1930_);
lean_dec(v_a_1926_);
v___x_1932_ = lean_box(0);
v_isShared_1933_ = v_isSharedCheck_1957_;
goto v_resetjp_1931_;
}
v_resetjp_1931_:
{
lean_object* v_n_1934_; lean_object* v_value_1935_; lean_object* v___x_1936_; lean_object* v___x_1937_; 
v_n_1934_ = lean_ctor_get(v_val_1930_, 0);
lean_inc(v_n_1934_);
v_value_1935_ = lean_ctor_get(v_val_1930_, 1);
lean_inc(v_value_1935_);
lean_dec(v_val_1930_);
v___x_1936_ = l_BitVec_abs(v_n_1934_, v_value_1935_);
lean_dec(v_value_1935_);
v___x_1937_ = l_BitVec_toExpr_x27___redArg(v_n_1934_, v___x_1936_, v_a_1913_, v_a_1914_, v_a_1915_, v_a_1916_, v_a_1917_);
if (lean_obj_tag(v___x_1937_) == 0)
{
lean_object* v_a_1938_; lean_object* v___x_1940_; uint8_t v_isShared_1941_; uint8_t v_isSharedCheck_1948_; 
v_a_1938_ = lean_ctor_get(v___x_1937_, 0);
v_isSharedCheck_1948_ = !lean_is_exclusive(v___x_1937_);
if (v_isSharedCheck_1948_ == 0)
{
v___x_1940_ = v___x_1937_;
v_isShared_1941_ = v_isSharedCheck_1948_;
goto v_resetjp_1939_;
}
else
{
lean_inc(v_a_1938_);
lean_dec(v___x_1937_);
v___x_1940_ = lean_box(0);
v_isShared_1941_ = v_isSharedCheck_1948_;
goto v_resetjp_1939_;
}
v_resetjp_1939_:
{
lean_object* v___x_1943_; 
if (v_isShared_1933_ == 0)
{
lean_ctor_set_tag(v___x_1932_, 0);
lean_ctor_set(v___x_1932_, 0, v_a_1938_);
v___x_1943_ = v___x_1932_;
goto v_reusejp_1942_;
}
else
{
lean_object* v_reuseFailAlloc_1947_; 
v_reuseFailAlloc_1947_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1947_, 0, v_a_1938_);
v___x_1943_ = v_reuseFailAlloc_1947_;
goto v_reusejp_1942_;
}
v_reusejp_1942_:
{
lean_object* v___x_1945_; 
if (v_isShared_1941_ == 0)
{
lean_ctor_set(v___x_1940_, 0, v___x_1943_);
v___x_1945_ = v___x_1940_;
goto v_reusejp_1944_;
}
else
{
lean_object* v_reuseFailAlloc_1946_; 
v_reuseFailAlloc_1946_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1946_, 0, v___x_1943_);
v___x_1945_ = v_reuseFailAlloc_1946_;
goto v_reusejp_1944_;
}
v_reusejp_1944_:
{
return v___x_1945_;
}
}
}
}
else
{
lean_object* v_a_1949_; lean_object* v___x_1951_; uint8_t v_isShared_1952_; uint8_t v_isSharedCheck_1956_; 
lean_del_object(v___x_1932_);
v_a_1949_ = lean_ctor_get(v___x_1937_, 0);
v_isSharedCheck_1956_ = !lean_is_exclusive(v___x_1937_);
if (v_isSharedCheck_1956_ == 0)
{
v___x_1951_ = v___x_1937_;
v_isShared_1952_ = v_isSharedCheck_1956_;
goto v_resetjp_1950_;
}
else
{
lean_inc(v_a_1949_);
lean_dec(v___x_1937_);
v___x_1951_ = lean_box(0);
v_isShared_1952_ = v_isSharedCheck_1956_;
goto v_resetjp_1950_;
}
v_resetjp_1950_:
{
lean_object* v___x_1954_; 
if (v_isShared_1952_ == 0)
{
v___x_1954_ = v___x_1951_;
goto v_reusejp_1953_;
}
else
{
lean_object* v_reuseFailAlloc_1955_; 
v_reuseFailAlloc_1955_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1955_, 0, v_a_1949_);
v___x_1954_ = v_reuseFailAlloc_1955_;
goto v_reusejp_1953_;
}
v_reusejp_1953_:
{
return v___x_1954_;
}
}
}
}
}
else
{
lean_object* v___x_1958_; lean_object* v___x_1960_; 
lean_dec(v_a_1926_);
lean_dec(v_a_1917_);
lean_dec_ref(v_a_1916_);
lean_dec(v_a_1915_);
lean_dec_ref(v_a_1914_);
v___x_1958_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_1929_ == 0)
{
lean_ctor_set(v___x_1928_, 0, v___x_1958_);
v___x_1960_ = v___x_1928_;
goto v_reusejp_1959_;
}
else
{
lean_object* v_reuseFailAlloc_1961_; 
v_reuseFailAlloc_1961_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1961_, 0, v___x_1958_);
v___x_1960_ = v_reuseFailAlloc_1961_;
goto v_reusejp_1959_;
}
v_reusejp_1959_:
{
return v___x_1960_;
}
}
}
}
else
{
lean_object* v_a_1963_; lean_object* v___x_1965_; uint8_t v_isShared_1966_; uint8_t v_isSharedCheck_1970_; 
lean_dec(v_a_1917_);
lean_dec_ref(v_a_1916_);
lean_dec(v_a_1915_);
lean_dec_ref(v_a_1914_);
v_a_1963_ = lean_ctor_get(v___x_1925_, 0);
v_isSharedCheck_1970_ = !lean_is_exclusive(v___x_1925_);
if (v_isSharedCheck_1970_ == 0)
{
v___x_1965_ = v___x_1925_;
v_isShared_1966_ = v_isSharedCheck_1970_;
goto v_resetjp_1964_;
}
else
{
lean_inc(v_a_1963_);
lean_dec(v___x_1925_);
v___x_1965_ = lean_box(0);
v_isShared_1966_ = v_isSharedCheck_1970_;
goto v_resetjp_1964_;
}
v_resetjp_1964_:
{
lean_object* v___x_1968_; 
if (v_isShared_1966_ == 0)
{
v___x_1968_ = v___x_1965_;
goto v_reusejp_1967_;
}
else
{
lean_object* v_reuseFailAlloc_1969_; 
v_reuseFailAlloc_1969_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_1969_, 0, v_a_1963_);
v___x_1968_ = v_reuseFailAlloc_1969_;
goto v_reusejp_1967_;
}
v_reusejp_1967_:
{
return v___x_1968_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___redArg___boxed(lean_object* v_e_1971_, lean_object* v_a_1972_, lean_object* v_a_1973_, lean_object* v_a_1974_, lean_object* v_a_1975_, lean_object* v_a_1976_, lean_object* v_a_1977_){
_start:
{
lean_object* v_res_1978_; 
v_res_1978_ = l_BitVec_reduceAbs___redArg(v_e_1971_, v_a_1972_, v_a_1973_, v_a_1974_, v_a_1975_, v_a_1976_);
lean_dec_ref(v_a_1972_);
lean_dec_ref(v_e_1971_);
return v_res_1978_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAbs(lean_object* v_e_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_BitVec_reduceAbs___redArg(v_e_1979_, v_a_1981_, v_a_1983_, v_a_1984_, v_a_1985_, v_a_1986_);
return v___x_1988_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___boxed(lean_object* v_e_1989_, lean_object* v_a_1990_, lean_object* v_a_1991_, lean_object* v_a_1992_, lean_object* v_a_1993_, lean_object* v_a_1994_, lean_object* v_a_1995_, lean_object* v_a_1996_, lean_object* v_a_1997_){
_start:
{
lean_object* v_res_1998_; 
v_res_1998_ = l_BitVec_reduceAbs(v_e_1989_, v_a_1990_, v_a_1991_, v_a_1992_, v_a_1993_, v_a_1994_, v_a_1995_, v_a_1996_);
lean_dec(v_a_1992_);
lean_dec_ref(v_a_1991_);
lean_dec(v_a_1990_);
lean_dec_ref(v_e_1989_);
return v_res_1998_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_(){
_start:
{
lean_object* v___x_2014_; lean_object* v___x_2015_; lean_object* v___x_2016_; lean_object* v___x_2017_; 
v___x_2014_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_));
v___x_2015_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_));
v___x_2016_ = lean_alloc_closure((void*)(l_BitVec_reduceAbs___boxed), 9, 0);
v___x_2017_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_2014_, v___x_2015_, v___x_2016_);
return v___x_2017_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13____boxed(lean_object* v_a_2018_){
_start:
{
lean_object* v_res_2019_; 
v_res_2019_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_();
return v_res_2019_;
}
}
static lean_object* _init_l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_(void){
_start:
{
lean_object* v___x_2020_; lean_object* v___x_2021_; 
v___x_2020_ = lean_alloc_closure((void*)(l_BitVec_reduceAbs___boxed), 9, 0);
v___x_2021_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2021_, 0, v___x_2020_);
return v___x_2021_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_(){
_start:
{
lean_object* v___x_2023_; uint8_t v___x_2024_; lean_object* v___x_2025_; lean_object* v___x_2026_; 
v___x_2023_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_));
v___x_2024_ = 1;
v___x_2025_ = lean_obj_once(&l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_, &l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15__once, _init_l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_);
v___x_2026_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_2023_, v___x_2024_, v___x_2025_);
return v___x_2026_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15____boxed(lean_object* v_a_2027_){
_start:
{
lean_object* v_res_2028_; 
v_res_2028_ = l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_();
return v_res_2028_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_17_(){
_start:
{
lean_object* v___x_2030_; uint8_t v___x_2031_; lean_object* v___x_2032_; lean_object* v___x_2033_; 
v___x_2030_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_));
v___x_2031_ = 1;
v___x_2032_ = lean_obj_once(&l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_, &l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15__once, _init_l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_);
v___x_2033_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_2030_, v___x_2031_, v___x_2032_);
return v___x_2033_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_17____boxed(lean_object* v_a_2034_){
_start:
{
lean_object* v_res_2035_; 
v_res_2035_ = l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_17_();
return v_res_2035_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___redArg(lean_object* v_e_2041_, lean_object* v_a_2042_, lean_object* v_a_2043_, lean_object* v_a_2044_, lean_object* v_a_2045_, lean_object* v_a_2046_){
_start:
{
lean_object* v___x_2048_; lean_object* v___x_2049_; uint8_t v___x_2050_; 
v___x_2048_ = ((lean_object*)(l_BitVec_reduceAnd___redArg___closed__2));
v___x_2049_ = lean_unsigned_to_nat(6u);
v___x_2050_ = l_Lean_Expr_isAppOfArity(v_e_2041_, v___x_2048_, v___x_2049_);
if (v___x_2050_ == 0)
{
lean_object* v___x_2051_; lean_object* v___x_2052_; 
lean_dec(v_a_2046_);
lean_dec_ref(v_a_2045_);
lean_dec(v_a_2044_);
lean_dec_ref(v_a_2043_);
v___x_2051_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_2052_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2052_, 0, v___x_2051_);
return v___x_2052_;
}
else
{
lean_object* v___x_2053_; lean_object* v___x_2054_; lean_object* v___x_2055_; 
v___x_2053_ = l_Lean_Expr_appFn_x21(v_e_2041_);
v___x_2054_ = l_Lean_Expr_appArg_x21(v___x_2053_);
lean_dec_ref(v___x_2053_);
lean_inc(v_a_2046_);
lean_inc_ref(v_a_2045_);
lean_inc(v_a_2044_);
lean_inc_ref(v_a_2043_);
v___x_2055_ = l_BitVec_fromExpr_x3f___redArg(v___x_2054_, v_a_2043_, v_a_2044_, v_a_2045_, v_a_2046_);
if (lean_obj_tag(v___x_2055_) == 0)
{
lean_object* v_a_2056_; lean_object* v___x_2058_; uint8_t v_isShared_2059_; uint8_t v_isSharedCheck_2119_; 
v_a_2056_ = lean_ctor_get(v___x_2055_, 0);
v_isSharedCheck_2119_ = !lean_is_exclusive(v___x_2055_);
if (v_isSharedCheck_2119_ == 0)
{
v___x_2058_ = v___x_2055_;
v_isShared_2059_ = v_isSharedCheck_2119_;
goto v_resetjp_2057_;
}
else
{
lean_inc(v_a_2056_);
lean_dec(v___x_2055_);
v___x_2058_ = lean_box(0);
v_isShared_2059_ = v_isSharedCheck_2119_;
goto v_resetjp_2057_;
}
v_resetjp_2057_:
{
if (lean_obj_tag(v_a_2056_) == 1)
{
lean_object* v_val_2060_; lean_object* v___x_2061_; lean_object* v___x_2062_; 
lean_del_object(v___x_2058_);
v_val_2060_ = lean_ctor_get(v_a_2056_, 0);
lean_inc(v_val_2060_);
lean_dec_ref(v_a_2056_);
v___x_2061_ = l_Lean_Expr_appArg_x21(v_e_2041_);
lean_inc(v_a_2046_);
lean_inc_ref(v_a_2045_);
lean_inc(v_a_2044_);
lean_inc_ref(v_a_2043_);
v___x_2062_ = l_BitVec_fromExpr_x3f___redArg(v___x_2061_, v_a_2043_, v_a_2044_, v_a_2045_, v_a_2046_);
if (lean_obj_tag(v___x_2062_) == 0)
{
lean_object* v_a_2063_; lean_object* v___x_2065_; uint8_t v_isShared_2066_; uint8_t v_isSharedCheck_2106_; 
v_a_2063_ = lean_ctor_get(v___x_2062_, 0);
v_isSharedCheck_2106_ = !lean_is_exclusive(v___x_2062_);
if (v_isSharedCheck_2106_ == 0)
{
v___x_2065_ = v___x_2062_;
v_isShared_2066_ = v_isSharedCheck_2106_;
goto v_resetjp_2064_;
}
else
{
lean_inc(v_a_2063_);
lean_dec(v___x_2062_);
v___x_2065_ = lean_box(0);
v_isShared_2066_ = v_isSharedCheck_2106_;
goto v_resetjp_2064_;
}
v_resetjp_2064_:
{
if (lean_obj_tag(v_a_2063_) == 1)
{
lean_object* v_val_2067_; lean_object* v___x_2069_; uint8_t v_isShared_2070_; uint8_t v_isSharedCheck_2101_; 
v_val_2067_ = lean_ctor_get(v_a_2063_, 0);
v_isSharedCheck_2101_ = !lean_is_exclusive(v_a_2063_);
if (v_isSharedCheck_2101_ == 0)
{
v___x_2069_ = v_a_2063_;
v_isShared_2070_ = v_isSharedCheck_2101_;
goto v_resetjp_2068_;
}
else
{
lean_inc(v_val_2067_);
lean_dec(v_a_2063_);
v___x_2069_ = lean_box(0);
v_isShared_2070_ = v_isSharedCheck_2101_;
goto v_resetjp_2068_;
}
v_resetjp_2068_:
{
lean_object* v_n_2071_; lean_object* v_value_2072_; lean_object* v_n_2073_; lean_object* v_value_2074_; uint8_t v___x_2075_; 
v_n_2071_ = lean_ctor_get(v_val_2060_, 0);
lean_inc(v_n_2071_);
v_value_2072_ = lean_ctor_get(v_val_2060_, 1);
lean_inc(v_value_2072_);
lean_dec(v_val_2060_);
v_n_2073_ = lean_ctor_get(v_val_2067_, 0);
lean_inc(v_n_2073_);
v_value_2074_ = lean_ctor_get(v_val_2067_, 1);
lean_inc(v_value_2074_);
lean_dec(v_val_2067_);
v___x_2075_ = lean_nat_dec_eq(v_n_2071_, v_n_2073_);
lean_dec(v_n_2073_);
if (v___x_2075_ == 0)
{
lean_object* v___x_2076_; lean_object* v___x_2078_; 
lean_dec(v_value_2074_);
lean_dec(v_value_2072_);
lean_dec(v_n_2071_);
lean_del_object(v___x_2069_);
lean_dec(v_a_2046_);
lean_dec_ref(v_a_2045_);
lean_dec(v_a_2044_);
lean_dec_ref(v_a_2043_);
v___x_2076_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2066_ == 0)
{
lean_ctor_set(v___x_2065_, 0, v___x_2076_);
v___x_2078_ = v___x_2065_;
goto v_reusejp_2077_;
}
else
{
lean_object* v_reuseFailAlloc_2079_; 
v_reuseFailAlloc_2079_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2079_, 0, v___x_2076_);
v___x_2078_ = v_reuseFailAlloc_2079_;
goto v_reusejp_2077_;
}
v_reusejp_2077_:
{
return v___x_2078_;
}
}
else
{
lean_object* v___x_2080_; lean_object* v___x_2081_; 
lean_del_object(v___x_2065_);
v___x_2080_ = lean_nat_land(v_value_2072_, v_value_2074_);
lean_dec(v_value_2074_);
lean_dec(v_value_2072_);
v___x_2081_ = l_BitVec_toExpr_x27___redArg(v_n_2071_, v___x_2080_, v_a_2042_, v_a_2043_, v_a_2044_, v_a_2045_, v_a_2046_);
if (lean_obj_tag(v___x_2081_) == 0)
{
lean_object* v_a_2082_; lean_object* v___x_2084_; uint8_t v_isShared_2085_; uint8_t v_isSharedCheck_2092_; 
v_a_2082_ = lean_ctor_get(v___x_2081_, 0);
v_isSharedCheck_2092_ = !lean_is_exclusive(v___x_2081_);
if (v_isSharedCheck_2092_ == 0)
{
v___x_2084_ = v___x_2081_;
v_isShared_2085_ = v_isSharedCheck_2092_;
goto v_resetjp_2083_;
}
else
{
lean_inc(v_a_2082_);
lean_dec(v___x_2081_);
v___x_2084_ = lean_box(0);
v_isShared_2085_ = v_isSharedCheck_2092_;
goto v_resetjp_2083_;
}
v_resetjp_2083_:
{
lean_object* v___x_2087_; 
if (v_isShared_2070_ == 0)
{
lean_ctor_set_tag(v___x_2069_, 0);
lean_ctor_set(v___x_2069_, 0, v_a_2082_);
v___x_2087_ = v___x_2069_;
goto v_reusejp_2086_;
}
else
{
lean_object* v_reuseFailAlloc_2091_; 
v_reuseFailAlloc_2091_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2091_, 0, v_a_2082_);
v___x_2087_ = v_reuseFailAlloc_2091_;
goto v_reusejp_2086_;
}
v_reusejp_2086_:
{
lean_object* v___x_2089_; 
if (v_isShared_2085_ == 0)
{
lean_ctor_set(v___x_2084_, 0, v___x_2087_);
v___x_2089_ = v___x_2084_;
goto v_reusejp_2088_;
}
else
{
lean_object* v_reuseFailAlloc_2090_; 
v_reuseFailAlloc_2090_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2090_, 0, v___x_2087_);
v___x_2089_ = v_reuseFailAlloc_2090_;
goto v_reusejp_2088_;
}
v_reusejp_2088_:
{
return v___x_2089_;
}
}
}
}
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_2069_);
v_a_2093_ = lean_ctor_get(v___x_2081_, 0);
v_isSharedCheck_2100_ = !lean_is_exclusive(v___x_2081_);
if (v_isSharedCheck_2100_ == 0)
{
v___x_2095_ = v___x_2081_;
v_isShared_2096_ = v_isSharedCheck_2100_;
goto v_resetjp_2094_;
}
else
{
lean_inc(v_a_2093_);
lean_dec(v___x_2081_);
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_2102_; lean_object* v___x_2104_; 
lean_dec(v_a_2063_);
lean_dec(v_val_2060_);
lean_dec(v_a_2046_);
lean_dec_ref(v_a_2045_);
lean_dec(v_a_2044_);
lean_dec_ref(v_a_2043_);
v___x_2102_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2066_ == 0)
{
lean_ctor_set(v___x_2065_, 0, v___x_2102_);
v___x_2104_ = v___x_2065_;
goto v_reusejp_2103_;
}
else
{
lean_object* v_reuseFailAlloc_2105_; 
v_reuseFailAlloc_2105_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2105_, 0, v___x_2102_);
v___x_2104_ = v_reuseFailAlloc_2105_;
goto v_reusejp_2103_;
}
v_reusejp_2103_:
{
return v___x_2104_;
}
}
}
}
else
{
lean_object* v_a_2107_; lean_object* v___x_2109_; uint8_t v_isShared_2110_; uint8_t v_isSharedCheck_2114_; 
lean_dec(v_val_2060_);
lean_dec(v_a_2046_);
lean_dec_ref(v_a_2045_);
lean_dec(v_a_2044_);
lean_dec_ref(v_a_2043_);
v_a_2107_ = lean_ctor_get(v___x_2062_, 0);
v_isSharedCheck_2114_ = !lean_is_exclusive(v___x_2062_);
if (v_isSharedCheck_2114_ == 0)
{
v___x_2109_ = v___x_2062_;
v_isShared_2110_ = v_isSharedCheck_2114_;
goto v_resetjp_2108_;
}
else
{
lean_inc(v_a_2107_);
lean_dec(v___x_2062_);
v___x_2109_ = lean_box(0);
v_isShared_2110_ = v_isSharedCheck_2114_;
goto v_resetjp_2108_;
}
v_resetjp_2108_:
{
lean_object* v___x_2112_; 
if (v_isShared_2110_ == 0)
{
v___x_2112_ = v___x_2109_;
goto v_reusejp_2111_;
}
else
{
lean_object* v_reuseFailAlloc_2113_; 
v_reuseFailAlloc_2113_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2113_, 0, v_a_2107_);
v___x_2112_ = v_reuseFailAlloc_2113_;
goto v_reusejp_2111_;
}
v_reusejp_2111_:
{
return v___x_2112_;
}
}
}
}
else
{
lean_object* v___x_2115_; lean_object* v___x_2117_; 
lean_dec(v_a_2056_);
lean_dec(v_a_2046_);
lean_dec_ref(v_a_2045_);
lean_dec(v_a_2044_);
lean_dec_ref(v_a_2043_);
v___x_2115_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2059_ == 0)
{
lean_ctor_set(v___x_2058_, 0, v___x_2115_);
v___x_2117_ = v___x_2058_;
goto v_reusejp_2116_;
}
else
{
lean_object* v_reuseFailAlloc_2118_; 
v_reuseFailAlloc_2118_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2118_, 0, v___x_2115_);
v___x_2117_ = v_reuseFailAlloc_2118_;
goto v_reusejp_2116_;
}
v_reusejp_2116_:
{
return v___x_2117_;
}
}
}
}
else
{
lean_object* v_a_2120_; lean_object* v___x_2122_; uint8_t v_isShared_2123_; uint8_t v_isSharedCheck_2127_; 
lean_dec(v_a_2046_);
lean_dec_ref(v_a_2045_);
lean_dec(v_a_2044_);
lean_dec_ref(v_a_2043_);
v_a_2120_ = lean_ctor_get(v___x_2055_, 0);
v_isSharedCheck_2127_ = !lean_is_exclusive(v___x_2055_);
if (v_isSharedCheck_2127_ == 0)
{
v___x_2122_ = v___x_2055_;
v_isShared_2123_ = v_isSharedCheck_2127_;
goto v_resetjp_2121_;
}
else
{
lean_inc(v_a_2120_);
lean_dec(v___x_2055_);
v___x_2122_ = lean_box(0);
v_isShared_2123_ = v_isSharedCheck_2127_;
goto v_resetjp_2121_;
}
v_resetjp_2121_:
{
lean_object* v___x_2125_; 
if (v_isShared_2123_ == 0)
{
v___x_2125_ = v___x_2122_;
goto v_reusejp_2124_;
}
else
{
lean_object* v_reuseFailAlloc_2126_; 
v_reuseFailAlloc_2126_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2126_, 0, v_a_2120_);
v___x_2125_ = v_reuseFailAlloc_2126_;
goto v_reusejp_2124_;
}
v_reusejp_2124_:
{
return v___x_2125_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___redArg___boxed(lean_object* v_e_2128_, lean_object* v_a_2129_, lean_object* v_a_2130_, lean_object* v_a_2131_, lean_object* v_a_2132_, lean_object* v_a_2133_, lean_object* v_a_2134_){
_start:
{
lean_object* v_res_2135_; 
v_res_2135_ = l_BitVec_reduceAnd___redArg(v_e_2128_, v_a_2129_, v_a_2130_, v_a_2131_, v_a_2132_, v_a_2133_);
lean_dec_ref(v_a_2129_);
lean_dec_ref(v_e_2128_);
return v_res_2135_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAnd(lean_object* v_e_2136_, lean_object* v_a_2137_, lean_object* v_a_2138_, lean_object* v_a_2139_, lean_object* v_a_2140_, lean_object* v_a_2141_, lean_object* v_a_2142_, lean_object* v_a_2143_){
_start:
{
lean_object* v___x_2145_; 
v___x_2145_ = l_BitVec_reduceAnd___redArg(v_e_2136_, v_a_2138_, v_a_2140_, v_a_2141_, v_a_2142_, v_a_2143_);
return v___x_2145_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___boxed(lean_object* v_e_2146_, lean_object* v_a_2147_, lean_object* v_a_2148_, lean_object* v_a_2149_, lean_object* v_a_2150_, lean_object* v_a_2151_, lean_object* v_a_2152_, lean_object* v_a_2153_, lean_object* v_a_2154_){
_start:
{
lean_object* v_res_2155_; 
v_res_2155_ = l_BitVec_reduceAnd(v_e_2146_, v_a_2147_, v_a_2148_, v_a_2149_, v_a_2150_, v_a_2151_, v_a_2152_, v_a_2153_);
lean_dec(v_a_2149_);
lean_dec_ref(v_a_2148_);
lean_dec(v_a_2147_);
lean_dec_ref(v_e_2146_);
return v_res_2155_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_2163_; lean_object* v___x_2164_; lean_object* v___x_2165_; lean_object* v___x_2166_; lean_object* v___x_2167_; lean_object* v___x_2168_; lean_object* v___x_2169_; lean_object* v___x_2170_; lean_object* v___x_2171_; lean_object* v___x_2172_; lean_object* v___x_2173_; lean_object* v___x_2174_; lean_object* v___x_2175_; lean_object* v___x_2176_; lean_object* v___x_2177_; 
v___x_2163_ = lean_box(0);
v___x_2164_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_2165_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_));
v___x_2166_ = lean_unsigned_to_nat(10u);
v___x_2167_ = lean_mk_empty_array_with_capacity(v___x_2166_);
v___x_2168_ = lean_array_push(v___x_2167_, v___x_2165_);
v___x_2169_ = lean_array_push(v___x_2168_, v___x_2164_);
v___x_2170_ = lean_array_push(v___x_2169_, v___x_2163_);
v___x_2171_ = lean_array_push(v___x_2170_, v___x_2164_);
v___x_2172_ = lean_array_push(v___x_2171_, v___x_2163_);
v___x_2173_ = lean_array_push(v___x_2172_, v___x_2164_);
v___x_2174_ = lean_array_push(v___x_2173_, v___x_2163_);
v___x_2175_ = lean_array_push(v___x_2174_, v___x_2163_);
v___x_2176_ = lean_array_push(v___x_2175_, v___x_2163_);
v___x_2177_ = lean_array_push(v___x_2176_, v___x_2163_);
return v___x_2177_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_2179_; lean_object* v___x_2180_; lean_object* v___x_2181_; lean_object* v___x_2182_; 
v___x_2179_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_));
v___x_2180_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_);
v___x_2181_ = lean_alloc_closure((void*)(l_BitVec_reduceAnd___boxed), 9, 0);
v___x_2182_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_2179_, v___x_2180_, v___x_2181_);
return v___x_2182_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20____boxed(lean_object* v_a_2183_){
_start:
{
lean_object* v_res_2184_; 
v_res_2184_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_();
return v_res_2184_;
}
}
static lean_object* _init_l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_2185_; lean_object* v___x_2186_; 
v___x_2185_ = lean_alloc_closure((void*)(l_BitVec_reduceAnd___boxed), 9, 0);
v___x_2186_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2186_, 0, v___x_2185_);
return v___x_2186_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_2188_; uint8_t v___x_2189_; lean_object* v___x_2190_; lean_object* v___x_2191_; 
v___x_2188_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_));
v___x_2189_ = 1;
v___x_2190_ = lean_obj_once(&l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_, &l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22__once, _init_l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_);
v___x_2191_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_2188_, v___x_2189_, v___x_2190_);
return v___x_2191_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22____boxed(lean_object* v_a_2192_){
_start:
{
lean_object* v_res_2193_; 
v_res_2193_ = l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_();
return v_res_2193_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_2195_; uint8_t v___x_2196_; lean_object* v___x_2197_; lean_object* v___x_2198_; 
v___x_2195_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_));
v___x_2196_ = 1;
v___x_2197_ = lean_obj_once(&l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_, &l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22__once, _init_l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_);
v___x_2198_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_2195_, v___x_2196_, v___x_2197_);
return v___x_2198_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_24____boxed(lean_object* v_a_2199_){
_start:
{
lean_object* v_res_2200_; 
v_res_2200_ = l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_24_();
return v_res_2200_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOr___redArg(lean_object* v_e_2206_, lean_object* v_a_2207_, lean_object* v_a_2208_, lean_object* v_a_2209_, lean_object* v_a_2210_, lean_object* v_a_2211_){
_start:
{
lean_object* v___x_2213_; lean_object* v___x_2214_; uint8_t v___x_2215_; 
v___x_2213_ = ((lean_object*)(l_BitVec_reduceOr___redArg___closed__2));
v___x_2214_ = lean_unsigned_to_nat(6u);
v___x_2215_ = l_Lean_Expr_isAppOfArity(v_e_2206_, v___x_2213_, v___x_2214_);
if (v___x_2215_ == 0)
{
lean_object* v___x_2216_; lean_object* v___x_2217_; 
lean_dec(v_a_2211_);
lean_dec_ref(v_a_2210_);
lean_dec(v_a_2209_);
lean_dec_ref(v_a_2208_);
v___x_2216_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_2217_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2217_, 0, v___x_2216_);
return v___x_2217_;
}
else
{
lean_object* v___x_2218_; lean_object* v___x_2219_; lean_object* v___x_2220_; 
v___x_2218_ = l_Lean_Expr_appFn_x21(v_e_2206_);
v___x_2219_ = l_Lean_Expr_appArg_x21(v___x_2218_);
lean_dec_ref(v___x_2218_);
lean_inc(v_a_2211_);
lean_inc_ref(v_a_2210_);
lean_inc(v_a_2209_);
lean_inc_ref(v_a_2208_);
v___x_2220_ = l_BitVec_fromExpr_x3f___redArg(v___x_2219_, v_a_2208_, v_a_2209_, v_a_2210_, v_a_2211_);
if (lean_obj_tag(v___x_2220_) == 0)
{
lean_object* v_a_2221_; lean_object* v___x_2223_; uint8_t v_isShared_2224_; uint8_t v_isSharedCheck_2284_; 
v_a_2221_ = lean_ctor_get(v___x_2220_, 0);
v_isSharedCheck_2284_ = !lean_is_exclusive(v___x_2220_);
if (v_isSharedCheck_2284_ == 0)
{
v___x_2223_ = v___x_2220_;
v_isShared_2224_ = v_isSharedCheck_2284_;
goto v_resetjp_2222_;
}
else
{
lean_inc(v_a_2221_);
lean_dec(v___x_2220_);
v___x_2223_ = lean_box(0);
v_isShared_2224_ = v_isSharedCheck_2284_;
goto v_resetjp_2222_;
}
v_resetjp_2222_:
{
if (lean_obj_tag(v_a_2221_) == 1)
{
lean_object* v_val_2225_; lean_object* v___x_2226_; lean_object* v___x_2227_; 
lean_del_object(v___x_2223_);
v_val_2225_ = lean_ctor_get(v_a_2221_, 0);
lean_inc(v_val_2225_);
lean_dec_ref(v_a_2221_);
v___x_2226_ = l_Lean_Expr_appArg_x21(v_e_2206_);
lean_inc(v_a_2211_);
lean_inc_ref(v_a_2210_);
lean_inc(v_a_2209_);
lean_inc_ref(v_a_2208_);
v___x_2227_ = l_BitVec_fromExpr_x3f___redArg(v___x_2226_, v_a_2208_, v_a_2209_, v_a_2210_, v_a_2211_);
if (lean_obj_tag(v___x_2227_) == 0)
{
lean_object* v_a_2228_; lean_object* v___x_2230_; uint8_t v_isShared_2231_; uint8_t v_isSharedCheck_2271_; 
v_a_2228_ = lean_ctor_get(v___x_2227_, 0);
v_isSharedCheck_2271_ = !lean_is_exclusive(v___x_2227_);
if (v_isSharedCheck_2271_ == 0)
{
v___x_2230_ = v___x_2227_;
v_isShared_2231_ = v_isSharedCheck_2271_;
goto v_resetjp_2229_;
}
else
{
lean_inc(v_a_2228_);
lean_dec(v___x_2227_);
v___x_2230_ = lean_box(0);
v_isShared_2231_ = v_isSharedCheck_2271_;
goto v_resetjp_2229_;
}
v_resetjp_2229_:
{
if (lean_obj_tag(v_a_2228_) == 1)
{
lean_object* v_val_2232_; lean_object* v___x_2234_; uint8_t v_isShared_2235_; uint8_t v_isSharedCheck_2266_; 
v_val_2232_ = lean_ctor_get(v_a_2228_, 0);
v_isSharedCheck_2266_ = !lean_is_exclusive(v_a_2228_);
if (v_isSharedCheck_2266_ == 0)
{
v___x_2234_ = v_a_2228_;
v_isShared_2235_ = v_isSharedCheck_2266_;
goto v_resetjp_2233_;
}
else
{
lean_inc(v_val_2232_);
lean_dec(v_a_2228_);
v___x_2234_ = lean_box(0);
v_isShared_2235_ = v_isSharedCheck_2266_;
goto v_resetjp_2233_;
}
v_resetjp_2233_:
{
lean_object* v_n_2236_; lean_object* v_value_2237_; lean_object* v_n_2238_; lean_object* v_value_2239_; uint8_t v___x_2240_; 
v_n_2236_ = lean_ctor_get(v_val_2225_, 0);
lean_inc(v_n_2236_);
v_value_2237_ = lean_ctor_get(v_val_2225_, 1);
lean_inc(v_value_2237_);
lean_dec(v_val_2225_);
v_n_2238_ = lean_ctor_get(v_val_2232_, 0);
lean_inc(v_n_2238_);
v_value_2239_ = lean_ctor_get(v_val_2232_, 1);
lean_inc(v_value_2239_);
lean_dec(v_val_2232_);
v___x_2240_ = lean_nat_dec_eq(v_n_2236_, v_n_2238_);
lean_dec(v_n_2238_);
if (v___x_2240_ == 0)
{
lean_object* v___x_2241_; lean_object* v___x_2243_; 
lean_dec(v_value_2239_);
lean_dec(v_value_2237_);
lean_dec(v_n_2236_);
lean_del_object(v___x_2234_);
lean_dec(v_a_2211_);
lean_dec_ref(v_a_2210_);
lean_dec(v_a_2209_);
lean_dec_ref(v_a_2208_);
v___x_2241_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2231_ == 0)
{
lean_ctor_set(v___x_2230_, 0, v___x_2241_);
v___x_2243_ = v___x_2230_;
goto v_reusejp_2242_;
}
else
{
lean_object* v_reuseFailAlloc_2244_; 
v_reuseFailAlloc_2244_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2244_, 0, v___x_2241_);
v___x_2243_ = v_reuseFailAlloc_2244_;
goto v_reusejp_2242_;
}
v_reusejp_2242_:
{
return v___x_2243_;
}
}
else
{
lean_object* v___x_2245_; lean_object* v___x_2246_; 
lean_del_object(v___x_2230_);
v___x_2245_ = lean_nat_lor(v_value_2237_, v_value_2239_);
lean_dec(v_value_2239_);
lean_dec(v_value_2237_);
v___x_2246_ = l_BitVec_toExpr_x27___redArg(v_n_2236_, v___x_2245_, v_a_2207_, v_a_2208_, v_a_2209_, v_a_2210_, v_a_2211_);
if (lean_obj_tag(v___x_2246_) == 0)
{
lean_object* v_a_2247_; lean_object* v___x_2249_; uint8_t v_isShared_2250_; uint8_t v_isSharedCheck_2257_; 
v_a_2247_ = lean_ctor_get(v___x_2246_, 0);
v_isSharedCheck_2257_ = !lean_is_exclusive(v___x_2246_);
if (v_isSharedCheck_2257_ == 0)
{
v___x_2249_ = v___x_2246_;
v_isShared_2250_ = v_isSharedCheck_2257_;
goto v_resetjp_2248_;
}
else
{
lean_inc(v_a_2247_);
lean_dec(v___x_2246_);
v___x_2249_ = lean_box(0);
v_isShared_2250_ = v_isSharedCheck_2257_;
goto v_resetjp_2248_;
}
v_resetjp_2248_:
{
lean_object* v___x_2252_; 
if (v_isShared_2235_ == 0)
{
lean_ctor_set_tag(v___x_2234_, 0);
lean_ctor_set(v___x_2234_, 0, v_a_2247_);
v___x_2252_ = v___x_2234_;
goto v_reusejp_2251_;
}
else
{
lean_object* v_reuseFailAlloc_2256_; 
v_reuseFailAlloc_2256_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2256_, 0, v_a_2247_);
v___x_2252_ = v_reuseFailAlloc_2256_;
goto v_reusejp_2251_;
}
v_reusejp_2251_:
{
lean_object* v___x_2254_; 
if (v_isShared_2250_ == 0)
{
lean_ctor_set(v___x_2249_, 0, v___x_2252_);
v___x_2254_ = v___x_2249_;
goto v_reusejp_2253_;
}
else
{
lean_object* v_reuseFailAlloc_2255_; 
v_reuseFailAlloc_2255_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2255_, 0, v___x_2252_);
v___x_2254_ = v_reuseFailAlloc_2255_;
goto v_reusejp_2253_;
}
v_reusejp_2253_:
{
return v___x_2254_;
}
}
}
}
else
{
lean_object* v_a_2258_; lean_object* v___x_2260_; uint8_t v_isShared_2261_; uint8_t v_isSharedCheck_2265_; 
lean_del_object(v___x_2234_);
v_a_2258_ = lean_ctor_get(v___x_2246_, 0);
v_isSharedCheck_2265_ = !lean_is_exclusive(v___x_2246_);
if (v_isSharedCheck_2265_ == 0)
{
v___x_2260_ = v___x_2246_;
v_isShared_2261_ = v_isSharedCheck_2265_;
goto v_resetjp_2259_;
}
else
{
lean_inc(v_a_2258_);
lean_dec(v___x_2246_);
v___x_2260_ = lean_box(0);
v_isShared_2261_ = v_isSharedCheck_2265_;
goto v_resetjp_2259_;
}
v_resetjp_2259_:
{
lean_object* v___x_2263_; 
if (v_isShared_2261_ == 0)
{
v___x_2263_ = v___x_2260_;
goto v_reusejp_2262_;
}
else
{
lean_object* v_reuseFailAlloc_2264_; 
v_reuseFailAlloc_2264_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2264_, 0, v_a_2258_);
v___x_2263_ = v_reuseFailAlloc_2264_;
goto v_reusejp_2262_;
}
v_reusejp_2262_:
{
return v___x_2263_;
}
}
}
}
}
}
else
{
lean_object* v___x_2267_; lean_object* v___x_2269_; 
lean_dec(v_a_2228_);
lean_dec(v_val_2225_);
lean_dec(v_a_2211_);
lean_dec_ref(v_a_2210_);
lean_dec(v_a_2209_);
lean_dec_ref(v_a_2208_);
v___x_2267_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2231_ == 0)
{
lean_ctor_set(v___x_2230_, 0, v___x_2267_);
v___x_2269_ = v___x_2230_;
goto v_reusejp_2268_;
}
else
{
lean_object* v_reuseFailAlloc_2270_; 
v_reuseFailAlloc_2270_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2270_, 0, v___x_2267_);
v___x_2269_ = v_reuseFailAlloc_2270_;
goto v_reusejp_2268_;
}
v_reusejp_2268_:
{
return v___x_2269_;
}
}
}
}
else
{
lean_object* v_a_2272_; lean_object* v___x_2274_; uint8_t v_isShared_2275_; uint8_t v_isSharedCheck_2279_; 
lean_dec(v_val_2225_);
lean_dec(v_a_2211_);
lean_dec_ref(v_a_2210_);
lean_dec(v_a_2209_);
lean_dec_ref(v_a_2208_);
v_a_2272_ = lean_ctor_get(v___x_2227_, 0);
v_isSharedCheck_2279_ = !lean_is_exclusive(v___x_2227_);
if (v_isSharedCheck_2279_ == 0)
{
v___x_2274_ = v___x_2227_;
v_isShared_2275_ = v_isSharedCheck_2279_;
goto v_resetjp_2273_;
}
else
{
lean_inc(v_a_2272_);
lean_dec(v___x_2227_);
v___x_2274_ = lean_box(0);
v_isShared_2275_ = v_isSharedCheck_2279_;
goto v_resetjp_2273_;
}
v_resetjp_2273_:
{
lean_object* v___x_2277_; 
if (v_isShared_2275_ == 0)
{
v___x_2277_ = v___x_2274_;
goto v_reusejp_2276_;
}
else
{
lean_object* v_reuseFailAlloc_2278_; 
v_reuseFailAlloc_2278_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2278_, 0, v_a_2272_);
v___x_2277_ = v_reuseFailAlloc_2278_;
goto v_reusejp_2276_;
}
v_reusejp_2276_:
{
return v___x_2277_;
}
}
}
}
else
{
lean_object* v___x_2280_; lean_object* v___x_2282_; 
lean_dec(v_a_2221_);
lean_dec(v_a_2211_);
lean_dec_ref(v_a_2210_);
lean_dec(v_a_2209_);
lean_dec_ref(v_a_2208_);
v___x_2280_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2224_ == 0)
{
lean_ctor_set(v___x_2223_, 0, v___x_2280_);
v___x_2282_ = v___x_2223_;
goto v_reusejp_2281_;
}
else
{
lean_object* v_reuseFailAlloc_2283_; 
v_reuseFailAlloc_2283_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2283_, 0, v___x_2280_);
v___x_2282_ = v_reuseFailAlloc_2283_;
goto v_reusejp_2281_;
}
v_reusejp_2281_:
{
return v___x_2282_;
}
}
}
}
else
{
lean_object* v_a_2285_; lean_object* v___x_2287_; uint8_t v_isShared_2288_; uint8_t v_isSharedCheck_2292_; 
lean_dec(v_a_2211_);
lean_dec_ref(v_a_2210_);
lean_dec(v_a_2209_);
lean_dec_ref(v_a_2208_);
v_a_2285_ = lean_ctor_get(v___x_2220_, 0);
v_isSharedCheck_2292_ = !lean_is_exclusive(v___x_2220_);
if (v_isSharedCheck_2292_ == 0)
{
v___x_2287_ = v___x_2220_;
v_isShared_2288_ = v_isSharedCheck_2292_;
goto v_resetjp_2286_;
}
else
{
lean_inc(v_a_2285_);
lean_dec(v___x_2220_);
v___x_2287_ = lean_box(0);
v_isShared_2288_ = v_isSharedCheck_2292_;
goto v_resetjp_2286_;
}
v_resetjp_2286_:
{
lean_object* v___x_2290_; 
if (v_isShared_2288_ == 0)
{
v___x_2290_ = v___x_2287_;
goto v_reusejp_2289_;
}
else
{
lean_object* v_reuseFailAlloc_2291_; 
v_reuseFailAlloc_2291_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2291_, 0, v_a_2285_);
v___x_2290_ = v_reuseFailAlloc_2291_;
goto v_reusejp_2289_;
}
v_reusejp_2289_:
{
return v___x_2290_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOr___redArg___boxed(lean_object* v_e_2293_, lean_object* v_a_2294_, lean_object* v_a_2295_, lean_object* v_a_2296_, lean_object* v_a_2297_, lean_object* v_a_2298_, lean_object* v_a_2299_){
_start:
{
lean_object* v_res_2300_; 
v_res_2300_ = l_BitVec_reduceOr___redArg(v_e_2293_, v_a_2294_, v_a_2295_, v_a_2296_, v_a_2297_, v_a_2298_);
lean_dec_ref(v_a_2294_);
lean_dec_ref(v_e_2293_);
return v_res_2300_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOr(lean_object* v_e_2301_, lean_object* v_a_2302_, lean_object* v_a_2303_, lean_object* v_a_2304_, lean_object* v_a_2305_, lean_object* v_a_2306_, lean_object* v_a_2307_, lean_object* v_a_2308_){
_start:
{
lean_object* v___x_2310_; 
v___x_2310_ = l_BitVec_reduceOr___redArg(v_e_2301_, v_a_2303_, v_a_2305_, v_a_2306_, v_a_2307_, v_a_2308_);
return v___x_2310_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOr___boxed(lean_object* v_e_2311_, lean_object* v_a_2312_, lean_object* v_a_2313_, lean_object* v_a_2314_, lean_object* v_a_2315_, lean_object* v_a_2316_, lean_object* v_a_2317_, lean_object* v_a_2318_, lean_object* v_a_2319_){
_start:
{
lean_object* v_res_2320_; 
v_res_2320_ = l_BitVec_reduceOr(v_e_2311_, v_a_2312_, v_a_2313_, v_a_2314_, v_a_2315_, v_a_2316_, v_a_2317_, v_a_2318_);
lean_dec(v_a_2314_);
lean_dec_ref(v_a_2313_);
lean_dec(v_a_2312_);
lean_dec_ref(v_e_2311_);
return v_res_2320_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_2328_; lean_object* v___x_2329_; lean_object* v___x_2330_; lean_object* v___x_2331_; lean_object* v___x_2332_; lean_object* v___x_2333_; lean_object* v___x_2334_; lean_object* v___x_2335_; lean_object* v___x_2336_; lean_object* v___x_2337_; lean_object* v___x_2338_; lean_object* v___x_2339_; lean_object* v___x_2340_; lean_object* v___x_2341_; lean_object* v___x_2342_; 
v___x_2328_ = lean_box(0);
v___x_2329_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_2330_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_));
v___x_2331_ = lean_unsigned_to_nat(10u);
v___x_2332_ = lean_mk_empty_array_with_capacity(v___x_2331_);
v___x_2333_ = lean_array_push(v___x_2332_, v___x_2330_);
v___x_2334_ = lean_array_push(v___x_2333_, v___x_2329_);
v___x_2335_ = lean_array_push(v___x_2334_, v___x_2328_);
v___x_2336_ = lean_array_push(v___x_2335_, v___x_2329_);
v___x_2337_ = lean_array_push(v___x_2336_, v___x_2328_);
v___x_2338_ = lean_array_push(v___x_2337_, v___x_2329_);
v___x_2339_ = lean_array_push(v___x_2338_, v___x_2328_);
v___x_2340_ = lean_array_push(v___x_2339_, v___x_2328_);
v___x_2341_ = lean_array_push(v___x_2340_, v___x_2328_);
v___x_2342_ = lean_array_push(v___x_2341_, v___x_2328_);
return v___x_2342_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_2344_; lean_object* v___x_2345_; lean_object* v___x_2346_; lean_object* v___x_2347_; 
v___x_2344_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_));
v___x_2345_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_);
v___x_2346_ = lean_alloc_closure((void*)(l_BitVec_reduceOr___boxed), 9, 0);
v___x_2347_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_2344_, v___x_2345_, v___x_2346_);
return v___x_2347_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20____boxed(lean_object* v_a_2348_){
_start:
{
lean_object* v_res_2349_; 
v_res_2349_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_();
return v_res_2349_;
}
}
static lean_object* _init_l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_2350_; lean_object* v___x_2351_; 
v___x_2350_ = lean_alloc_closure((void*)(l_BitVec_reduceOr___boxed), 9, 0);
v___x_2351_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2351_, 0, v___x_2350_);
return v___x_2351_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_2353_; uint8_t v___x_2354_; lean_object* v___x_2355_; lean_object* v___x_2356_; 
v___x_2353_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_));
v___x_2354_ = 1;
v___x_2355_ = lean_obj_once(&l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_, &l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22__once, _init_l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_);
v___x_2356_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_2353_, v___x_2354_, v___x_2355_);
return v___x_2356_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22____boxed(lean_object* v_a_2357_){
_start:
{
lean_object* v_res_2358_; 
v_res_2358_ = l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_();
return v_res_2358_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_2360_; uint8_t v___x_2361_; lean_object* v___x_2362_; lean_object* v___x_2363_; 
v___x_2360_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_));
v___x_2361_ = 1;
v___x_2362_ = lean_obj_once(&l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_, &l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22__once, _init_l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_);
v___x_2363_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_2360_, v___x_2361_, v___x_2362_);
return v___x_2363_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_24____boxed(lean_object* v_a_2364_){
_start:
{
lean_object* v_res_2365_; 
v_res_2365_ = l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_24_();
return v_res_2365_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___redArg(lean_object* v_e_2371_, lean_object* v_a_2372_, lean_object* v_a_2373_, lean_object* v_a_2374_, lean_object* v_a_2375_, lean_object* v_a_2376_){
_start:
{
lean_object* v___x_2378_; lean_object* v___x_2379_; uint8_t v___x_2380_; 
v___x_2378_ = ((lean_object*)(l_BitVec_reduceXOr___redArg___closed__2));
v___x_2379_ = lean_unsigned_to_nat(6u);
v___x_2380_ = l_Lean_Expr_isAppOfArity(v_e_2371_, v___x_2378_, v___x_2379_);
if (v___x_2380_ == 0)
{
lean_object* v___x_2381_; lean_object* v___x_2382_; 
lean_dec(v_a_2376_);
lean_dec_ref(v_a_2375_);
lean_dec(v_a_2374_);
lean_dec_ref(v_a_2373_);
v___x_2381_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_2382_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2382_, 0, v___x_2381_);
return v___x_2382_;
}
else
{
lean_object* v___x_2383_; lean_object* v___x_2384_; lean_object* v___x_2385_; 
v___x_2383_ = l_Lean_Expr_appFn_x21(v_e_2371_);
v___x_2384_ = l_Lean_Expr_appArg_x21(v___x_2383_);
lean_dec_ref(v___x_2383_);
lean_inc(v_a_2376_);
lean_inc_ref(v_a_2375_);
lean_inc(v_a_2374_);
lean_inc_ref(v_a_2373_);
v___x_2385_ = l_BitVec_fromExpr_x3f___redArg(v___x_2384_, v_a_2373_, v_a_2374_, v_a_2375_, v_a_2376_);
if (lean_obj_tag(v___x_2385_) == 0)
{
lean_object* v_a_2386_; lean_object* v___x_2388_; uint8_t v_isShared_2389_; uint8_t v_isSharedCheck_2449_; 
v_a_2386_ = lean_ctor_get(v___x_2385_, 0);
v_isSharedCheck_2449_ = !lean_is_exclusive(v___x_2385_);
if (v_isSharedCheck_2449_ == 0)
{
v___x_2388_ = v___x_2385_;
v_isShared_2389_ = v_isSharedCheck_2449_;
goto v_resetjp_2387_;
}
else
{
lean_inc(v_a_2386_);
lean_dec(v___x_2385_);
v___x_2388_ = lean_box(0);
v_isShared_2389_ = v_isSharedCheck_2449_;
goto v_resetjp_2387_;
}
v_resetjp_2387_:
{
if (lean_obj_tag(v_a_2386_) == 1)
{
lean_object* v_val_2390_; lean_object* v___x_2391_; lean_object* v___x_2392_; 
lean_del_object(v___x_2388_);
v_val_2390_ = lean_ctor_get(v_a_2386_, 0);
lean_inc(v_val_2390_);
lean_dec_ref(v_a_2386_);
v___x_2391_ = l_Lean_Expr_appArg_x21(v_e_2371_);
lean_inc(v_a_2376_);
lean_inc_ref(v_a_2375_);
lean_inc(v_a_2374_);
lean_inc_ref(v_a_2373_);
v___x_2392_ = l_BitVec_fromExpr_x3f___redArg(v___x_2391_, v_a_2373_, v_a_2374_, v_a_2375_, v_a_2376_);
if (lean_obj_tag(v___x_2392_) == 0)
{
lean_object* v_a_2393_; lean_object* v___x_2395_; uint8_t v_isShared_2396_; uint8_t v_isSharedCheck_2436_; 
v_a_2393_ = lean_ctor_get(v___x_2392_, 0);
v_isSharedCheck_2436_ = !lean_is_exclusive(v___x_2392_);
if (v_isSharedCheck_2436_ == 0)
{
v___x_2395_ = v___x_2392_;
v_isShared_2396_ = v_isSharedCheck_2436_;
goto v_resetjp_2394_;
}
else
{
lean_inc(v_a_2393_);
lean_dec(v___x_2392_);
v___x_2395_ = lean_box(0);
v_isShared_2396_ = v_isSharedCheck_2436_;
goto v_resetjp_2394_;
}
v_resetjp_2394_:
{
if (lean_obj_tag(v_a_2393_) == 1)
{
lean_object* v_val_2397_; lean_object* v___x_2399_; uint8_t v_isShared_2400_; uint8_t v_isSharedCheck_2431_; 
v_val_2397_ = lean_ctor_get(v_a_2393_, 0);
v_isSharedCheck_2431_ = !lean_is_exclusive(v_a_2393_);
if (v_isSharedCheck_2431_ == 0)
{
v___x_2399_ = v_a_2393_;
v_isShared_2400_ = v_isSharedCheck_2431_;
goto v_resetjp_2398_;
}
else
{
lean_inc(v_val_2397_);
lean_dec(v_a_2393_);
v___x_2399_ = lean_box(0);
v_isShared_2400_ = v_isSharedCheck_2431_;
goto v_resetjp_2398_;
}
v_resetjp_2398_:
{
lean_object* v_n_2401_; lean_object* v_value_2402_; lean_object* v_n_2403_; lean_object* v_value_2404_; uint8_t v___x_2405_; 
v_n_2401_ = lean_ctor_get(v_val_2390_, 0);
lean_inc(v_n_2401_);
v_value_2402_ = lean_ctor_get(v_val_2390_, 1);
lean_inc(v_value_2402_);
lean_dec(v_val_2390_);
v_n_2403_ = lean_ctor_get(v_val_2397_, 0);
lean_inc(v_n_2403_);
v_value_2404_ = lean_ctor_get(v_val_2397_, 1);
lean_inc(v_value_2404_);
lean_dec(v_val_2397_);
v___x_2405_ = lean_nat_dec_eq(v_n_2401_, v_n_2403_);
lean_dec(v_n_2403_);
if (v___x_2405_ == 0)
{
lean_object* v___x_2406_; lean_object* v___x_2408_; 
lean_dec(v_value_2404_);
lean_dec(v_value_2402_);
lean_dec(v_n_2401_);
lean_del_object(v___x_2399_);
lean_dec(v_a_2376_);
lean_dec_ref(v_a_2375_);
lean_dec(v_a_2374_);
lean_dec_ref(v_a_2373_);
v___x_2406_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2396_ == 0)
{
lean_ctor_set(v___x_2395_, 0, v___x_2406_);
v___x_2408_ = v___x_2395_;
goto v_reusejp_2407_;
}
else
{
lean_object* v_reuseFailAlloc_2409_; 
v_reuseFailAlloc_2409_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2409_, 0, v___x_2406_);
v___x_2408_ = v_reuseFailAlloc_2409_;
goto v_reusejp_2407_;
}
v_reusejp_2407_:
{
return v___x_2408_;
}
}
else
{
lean_object* v___x_2410_; lean_object* v___x_2411_; 
lean_del_object(v___x_2395_);
v___x_2410_ = lean_nat_lxor(v_value_2402_, v_value_2404_);
lean_dec(v_value_2404_);
lean_dec(v_value_2402_);
v___x_2411_ = l_BitVec_toExpr_x27___redArg(v_n_2401_, v___x_2410_, v_a_2372_, v_a_2373_, v_a_2374_, v_a_2375_, v_a_2376_);
if (lean_obj_tag(v___x_2411_) == 0)
{
lean_object* v_a_2412_; lean_object* v___x_2414_; uint8_t v_isShared_2415_; uint8_t v_isSharedCheck_2422_; 
v_a_2412_ = lean_ctor_get(v___x_2411_, 0);
v_isSharedCheck_2422_ = !lean_is_exclusive(v___x_2411_);
if (v_isSharedCheck_2422_ == 0)
{
v___x_2414_ = v___x_2411_;
v_isShared_2415_ = v_isSharedCheck_2422_;
goto v_resetjp_2413_;
}
else
{
lean_inc(v_a_2412_);
lean_dec(v___x_2411_);
v___x_2414_ = lean_box(0);
v_isShared_2415_ = v_isSharedCheck_2422_;
goto v_resetjp_2413_;
}
v_resetjp_2413_:
{
lean_object* v___x_2417_; 
if (v_isShared_2400_ == 0)
{
lean_ctor_set_tag(v___x_2399_, 0);
lean_ctor_set(v___x_2399_, 0, v_a_2412_);
v___x_2417_ = v___x_2399_;
goto v_reusejp_2416_;
}
else
{
lean_object* v_reuseFailAlloc_2421_; 
v_reuseFailAlloc_2421_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2421_, 0, v_a_2412_);
v___x_2417_ = v_reuseFailAlloc_2421_;
goto v_reusejp_2416_;
}
v_reusejp_2416_:
{
lean_object* v___x_2419_; 
if (v_isShared_2415_ == 0)
{
lean_ctor_set(v___x_2414_, 0, v___x_2417_);
v___x_2419_ = v___x_2414_;
goto v_reusejp_2418_;
}
else
{
lean_object* v_reuseFailAlloc_2420_; 
v_reuseFailAlloc_2420_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2420_, 0, v___x_2417_);
v___x_2419_ = v_reuseFailAlloc_2420_;
goto v_reusejp_2418_;
}
v_reusejp_2418_:
{
return v___x_2419_;
}
}
}
}
else
{
lean_object* v_a_2423_; lean_object* v___x_2425_; uint8_t v_isShared_2426_; uint8_t v_isSharedCheck_2430_; 
lean_del_object(v___x_2399_);
v_a_2423_ = lean_ctor_get(v___x_2411_, 0);
v_isSharedCheck_2430_ = !lean_is_exclusive(v___x_2411_);
if (v_isSharedCheck_2430_ == 0)
{
v___x_2425_ = v___x_2411_;
v_isShared_2426_ = v_isSharedCheck_2430_;
goto v_resetjp_2424_;
}
else
{
lean_inc(v_a_2423_);
lean_dec(v___x_2411_);
v___x_2425_ = lean_box(0);
v_isShared_2426_ = v_isSharedCheck_2430_;
goto v_resetjp_2424_;
}
v_resetjp_2424_:
{
lean_object* v___x_2428_; 
if (v_isShared_2426_ == 0)
{
v___x_2428_ = v___x_2425_;
goto v_reusejp_2427_;
}
else
{
lean_object* v_reuseFailAlloc_2429_; 
v_reuseFailAlloc_2429_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2429_, 0, v_a_2423_);
v___x_2428_ = v_reuseFailAlloc_2429_;
goto v_reusejp_2427_;
}
v_reusejp_2427_:
{
return v___x_2428_;
}
}
}
}
}
}
else
{
lean_object* v___x_2432_; lean_object* v___x_2434_; 
lean_dec(v_a_2393_);
lean_dec(v_val_2390_);
lean_dec(v_a_2376_);
lean_dec_ref(v_a_2375_);
lean_dec(v_a_2374_);
lean_dec_ref(v_a_2373_);
v___x_2432_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2396_ == 0)
{
lean_ctor_set(v___x_2395_, 0, v___x_2432_);
v___x_2434_ = v___x_2395_;
goto v_reusejp_2433_;
}
else
{
lean_object* v_reuseFailAlloc_2435_; 
v_reuseFailAlloc_2435_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2435_, 0, v___x_2432_);
v___x_2434_ = v_reuseFailAlloc_2435_;
goto v_reusejp_2433_;
}
v_reusejp_2433_:
{
return v___x_2434_;
}
}
}
}
else
{
lean_object* v_a_2437_; lean_object* v___x_2439_; uint8_t v_isShared_2440_; uint8_t v_isSharedCheck_2444_; 
lean_dec(v_val_2390_);
lean_dec(v_a_2376_);
lean_dec_ref(v_a_2375_);
lean_dec(v_a_2374_);
lean_dec_ref(v_a_2373_);
v_a_2437_ = lean_ctor_get(v___x_2392_, 0);
v_isSharedCheck_2444_ = !lean_is_exclusive(v___x_2392_);
if (v_isSharedCheck_2444_ == 0)
{
v___x_2439_ = v___x_2392_;
v_isShared_2440_ = v_isSharedCheck_2444_;
goto v_resetjp_2438_;
}
else
{
lean_inc(v_a_2437_);
lean_dec(v___x_2392_);
v___x_2439_ = lean_box(0);
v_isShared_2440_ = v_isSharedCheck_2444_;
goto v_resetjp_2438_;
}
v_resetjp_2438_:
{
lean_object* v___x_2442_; 
if (v_isShared_2440_ == 0)
{
v___x_2442_ = v___x_2439_;
goto v_reusejp_2441_;
}
else
{
lean_object* v_reuseFailAlloc_2443_; 
v_reuseFailAlloc_2443_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2443_, 0, v_a_2437_);
v___x_2442_ = v_reuseFailAlloc_2443_;
goto v_reusejp_2441_;
}
v_reusejp_2441_:
{
return v___x_2442_;
}
}
}
}
else
{
lean_object* v___x_2445_; lean_object* v___x_2447_; 
lean_dec(v_a_2386_);
lean_dec(v_a_2376_);
lean_dec_ref(v_a_2375_);
lean_dec(v_a_2374_);
lean_dec_ref(v_a_2373_);
v___x_2445_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2389_ == 0)
{
lean_ctor_set(v___x_2388_, 0, v___x_2445_);
v___x_2447_ = v___x_2388_;
goto v_reusejp_2446_;
}
else
{
lean_object* v_reuseFailAlloc_2448_; 
v_reuseFailAlloc_2448_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2448_, 0, v___x_2445_);
v___x_2447_ = v_reuseFailAlloc_2448_;
goto v_reusejp_2446_;
}
v_reusejp_2446_:
{
return v___x_2447_;
}
}
}
}
else
{
lean_object* v_a_2450_; lean_object* v___x_2452_; uint8_t v_isShared_2453_; uint8_t v_isSharedCheck_2457_; 
lean_dec(v_a_2376_);
lean_dec_ref(v_a_2375_);
lean_dec(v_a_2374_);
lean_dec_ref(v_a_2373_);
v_a_2450_ = lean_ctor_get(v___x_2385_, 0);
v_isSharedCheck_2457_ = !lean_is_exclusive(v___x_2385_);
if (v_isSharedCheck_2457_ == 0)
{
v___x_2452_ = v___x_2385_;
v_isShared_2453_ = v_isSharedCheck_2457_;
goto v_resetjp_2451_;
}
else
{
lean_inc(v_a_2450_);
lean_dec(v___x_2385_);
v___x_2452_ = lean_box(0);
v_isShared_2453_ = v_isSharedCheck_2457_;
goto v_resetjp_2451_;
}
v_resetjp_2451_:
{
lean_object* v___x_2455_; 
if (v_isShared_2453_ == 0)
{
v___x_2455_ = v___x_2452_;
goto v_reusejp_2454_;
}
else
{
lean_object* v_reuseFailAlloc_2456_; 
v_reuseFailAlloc_2456_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2456_, 0, v_a_2450_);
v___x_2455_ = v_reuseFailAlloc_2456_;
goto v_reusejp_2454_;
}
v_reusejp_2454_:
{
return v___x_2455_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___redArg___boxed(lean_object* v_e_2458_, lean_object* v_a_2459_, lean_object* v_a_2460_, lean_object* v_a_2461_, lean_object* v_a_2462_, lean_object* v_a_2463_, lean_object* v_a_2464_){
_start:
{
lean_object* v_res_2465_; 
v_res_2465_ = l_BitVec_reduceXOr___redArg(v_e_2458_, v_a_2459_, v_a_2460_, v_a_2461_, v_a_2462_, v_a_2463_);
lean_dec_ref(v_a_2459_);
lean_dec_ref(v_e_2458_);
return v_res_2465_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceXOr(lean_object* v_e_2466_, lean_object* v_a_2467_, lean_object* v_a_2468_, lean_object* v_a_2469_, lean_object* v_a_2470_, lean_object* v_a_2471_, lean_object* v_a_2472_, lean_object* v_a_2473_){
_start:
{
lean_object* v___x_2475_; 
v___x_2475_ = l_BitVec_reduceXOr___redArg(v_e_2466_, v_a_2468_, v_a_2470_, v_a_2471_, v_a_2472_, v_a_2473_);
return v___x_2475_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___boxed(lean_object* v_e_2476_, lean_object* v_a_2477_, lean_object* v_a_2478_, lean_object* v_a_2479_, lean_object* v_a_2480_, lean_object* v_a_2481_, lean_object* v_a_2482_, lean_object* v_a_2483_, lean_object* v_a_2484_){
_start:
{
lean_object* v_res_2485_; 
v_res_2485_ = l_BitVec_reduceXOr(v_e_2476_, v_a_2477_, v_a_2478_, v_a_2479_, v_a_2480_, v_a_2481_, v_a_2482_, v_a_2483_);
lean_dec(v_a_2479_);
lean_dec_ref(v_a_2478_);
lean_dec(v_a_2477_);
lean_dec_ref(v_e_2476_);
return v_res_2485_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_2493_; lean_object* v___x_2494_; lean_object* v___x_2495_; lean_object* v___x_2496_; lean_object* v___x_2497_; lean_object* v___x_2498_; lean_object* v___x_2499_; lean_object* v___x_2500_; lean_object* v___x_2501_; lean_object* v___x_2502_; lean_object* v___x_2503_; lean_object* v___x_2504_; lean_object* v___x_2505_; lean_object* v___x_2506_; lean_object* v___x_2507_; 
v___x_2493_ = lean_box(0);
v___x_2494_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_2495_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_));
v___x_2496_ = lean_unsigned_to_nat(10u);
v___x_2497_ = lean_mk_empty_array_with_capacity(v___x_2496_);
v___x_2498_ = lean_array_push(v___x_2497_, v___x_2495_);
v___x_2499_ = lean_array_push(v___x_2498_, v___x_2494_);
v___x_2500_ = lean_array_push(v___x_2499_, v___x_2493_);
v___x_2501_ = lean_array_push(v___x_2500_, v___x_2494_);
v___x_2502_ = lean_array_push(v___x_2501_, v___x_2493_);
v___x_2503_ = lean_array_push(v___x_2502_, v___x_2494_);
v___x_2504_ = lean_array_push(v___x_2503_, v___x_2493_);
v___x_2505_ = lean_array_push(v___x_2504_, v___x_2493_);
v___x_2506_ = lean_array_push(v___x_2505_, v___x_2493_);
v___x_2507_ = lean_array_push(v___x_2506_, v___x_2493_);
return v___x_2507_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_2509_; lean_object* v___x_2510_; lean_object* v___x_2511_; lean_object* v___x_2512_; 
v___x_2509_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_));
v___x_2510_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_);
v___x_2511_ = lean_alloc_closure((void*)(l_BitVec_reduceXOr___boxed), 9, 0);
v___x_2512_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_2509_, v___x_2510_, v___x_2511_);
return v___x_2512_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20____boxed(lean_object* v_a_2513_){
_start:
{
lean_object* v_res_2514_; 
v_res_2514_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_();
return v_res_2514_;
}
}
static lean_object* _init_l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_2515_; lean_object* v___x_2516_; 
v___x_2515_ = lean_alloc_closure((void*)(l_BitVec_reduceXOr___boxed), 9, 0);
v___x_2516_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2516_, 0, v___x_2515_);
return v___x_2516_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_2518_; uint8_t v___x_2519_; lean_object* v___x_2520_; lean_object* v___x_2521_; 
v___x_2518_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_));
v___x_2519_ = 1;
v___x_2520_ = lean_obj_once(&l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_, &l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22__once, _init_l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_);
v___x_2521_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_2518_, v___x_2519_, v___x_2520_);
return v___x_2521_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22____boxed(lean_object* v_a_2522_){
_start:
{
lean_object* v_res_2523_; 
v_res_2523_ = l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_();
return v_res_2523_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_2525_; uint8_t v___x_2526_; lean_object* v___x_2527_; lean_object* v___x_2528_; 
v___x_2525_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_));
v___x_2526_ = 1;
v___x_2527_ = lean_obj_once(&l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_, &l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22__once, _init_l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_);
v___x_2528_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_2525_, v___x_2526_, v___x_2527_);
return v___x_2528_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_24____boxed(lean_object* v_a_2529_){
_start:
{
lean_object* v_res_2530_; 
v_res_2530_ = l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_24_();
return v_res_2530_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___redArg(lean_object* v_e_2536_, lean_object* v_a_2537_, lean_object* v_a_2538_, lean_object* v_a_2539_, lean_object* v_a_2540_, lean_object* v_a_2541_){
_start:
{
lean_object* v___x_2543_; lean_object* v___x_2544_; uint8_t v___x_2545_; 
v___x_2543_ = ((lean_object*)(l_BitVec_reduceAdd___redArg___closed__2));
v___x_2544_ = lean_unsigned_to_nat(6u);
v___x_2545_ = l_Lean_Expr_isAppOfArity(v_e_2536_, v___x_2543_, v___x_2544_);
if (v___x_2545_ == 0)
{
lean_object* v___x_2546_; lean_object* v___x_2547_; 
lean_dec(v_a_2541_);
lean_dec_ref(v_a_2540_);
lean_dec(v_a_2539_);
lean_dec_ref(v_a_2538_);
v___x_2546_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_2547_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2547_, 0, v___x_2546_);
return v___x_2547_;
}
else
{
lean_object* v___x_2548_; lean_object* v___x_2549_; lean_object* v___x_2550_; 
v___x_2548_ = l_Lean_Expr_appFn_x21(v_e_2536_);
v___x_2549_ = l_Lean_Expr_appArg_x21(v___x_2548_);
lean_dec_ref(v___x_2548_);
lean_inc(v_a_2541_);
lean_inc_ref(v_a_2540_);
lean_inc(v_a_2539_);
lean_inc_ref(v_a_2538_);
v___x_2550_ = l_BitVec_fromExpr_x3f___redArg(v___x_2549_, v_a_2538_, v_a_2539_, v_a_2540_, v_a_2541_);
if (lean_obj_tag(v___x_2550_) == 0)
{
lean_object* v_a_2551_; lean_object* v___x_2553_; uint8_t v_isShared_2554_; uint8_t v_isSharedCheck_2614_; 
v_a_2551_ = lean_ctor_get(v___x_2550_, 0);
v_isSharedCheck_2614_ = !lean_is_exclusive(v___x_2550_);
if (v_isSharedCheck_2614_ == 0)
{
v___x_2553_ = v___x_2550_;
v_isShared_2554_ = v_isSharedCheck_2614_;
goto v_resetjp_2552_;
}
else
{
lean_inc(v_a_2551_);
lean_dec(v___x_2550_);
v___x_2553_ = lean_box(0);
v_isShared_2554_ = v_isSharedCheck_2614_;
goto v_resetjp_2552_;
}
v_resetjp_2552_:
{
if (lean_obj_tag(v_a_2551_) == 1)
{
lean_object* v_val_2555_; lean_object* v___x_2556_; lean_object* v___x_2557_; 
lean_del_object(v___x_2553_);
v_val_2555_ = lean_ctor_get(v_a_2551_, 0);
lean_inc(v_val_2555_);
lean_dec_ref(v_a_2551_);
v___x_2556_ = l_Lean_Expr_appArg_x21(v_e_2536_);
lean_inc(v_a_2541_);
lean_inc_ref(v_a_2540_);
lean_inc(v_a_2539_);
lean_inc_ref(v_a_2538_);
v___x_2557_ = l_BitVec_fromExpr_x3f___redArg(v___x_2556_, v_a_2538_, v_a_2539_, v_a_2540_, v_a_2541_);
if (lean_obj_tag(v___x_2557_) == 0)
{
lean_object* v_a_2558_; lean_object* v___x_2560_; uint8_t v_isShared_2561_; uint8_t v_isSharedCheck_2601_; 
v_a_2558_ = lean_ctor_get(v___x_2557_, 0);
v_isSharedCheck_2601_ = !lean_is_exclusive(v___x_2557_);
if (v_isSharedCheck_2601_ == 0)
{
v___x_2560_ = v___x_2557_;
v_isShared_2561_ = v_isSharedCheck_2601_;
goto v_resetjp_2559_;
}
else
{
lean_inc(v_a_2558_);
lean_dec(v___x_2557_);
v___x_2560_ = lean_box(0);
v_isShared_2561_ = v_isSharedCheck_2601_;
goto v_resetjp_2559_;
}
v_resetjp_2559_:
{
if (lean_obj_tag(v_a_2558_) == 1)
{
lean_object* v_val_2562_; lean_object* v___x_2564_; uint8_t v_isShared_2565_; uint8_t v_isSharedCheck_2596_; 
v_val_2562_ = lean_ctor_get(v_a_2558_, 0);
v_isSharedCheck_2596_ = !lean_is_exclusive(v_a_2558_);
if (v_isSharedCheck_2596_ == 0)
{
v___x_2564_ = v_a_2558_;
v_isShared_2565_ = v_isSharedCheck_2596_;
goto v_resetjp_2563_;
}
else
{
lean_inc(v_val_2562_);
lean_dec(v_a_2558_);
v___x_2564_ = lean_box(0);
v_isShared_2565_ = v_isSharedCheck_2596_;
goto v_resetjp_2563_;
}
v_resetjp_2563_:
{
lean_object* v_n_2566_; lean_object* v_value_2567_; lean_object* v_n_2568_; lean_object* v_value_2569_; uint8_t v___x_2570_; 
v_n_2566_ = lean_ctor_get(v_val_2555_, 0);
lean_inc(v_n_2566_);
v_value_2567_ = lean_ctor_get(v_val_2555_, 1);
lean_inc(v_value_2567_);
lean_dec(v_val_2555_);
v_n_2568_ = lean_ctor_get(v_val_2562_, 0);
lean_inc(v_n_2568_);
v_value_2569_ = lean_ctor_get(v_val_2562_, 1);
lean_inc(v_value_2569_);
lean_dec(v_val_2562_);
v___x_2570_ = lean_nat_dec_eq(v_n_2566_, v_n_2568_);
lean_dec(v_n_2568_);
if (v___x_2570_ == 0)
{
lean_object* v___x_2571_; lean_object* v___x_2573_; 
lean_dec(v_value_2569_);
lean_dec(v_value_2567_);
lean_dec(v_n_2566_);
lean_del_object(v___x_2564_);
lean_dec(v_a_2541_);
lean_dec_ref(v_a_2540_);
lean_dec(v_a_2539_);
lean_dec_ref(v_a_2538_);
v___x_2571_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2561_ == 0)
{
lean_ctor_set(v___x_2560_, 0, v___x_2571_);
v___x_2573_ = v___x_2560_;
goto v_reusejp_2572_;
}
else
{
lean_object* v_reuseFailAlloc_2574_; 
v_reuseFailAlloc_2574_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2574_, 0, v___x_2571_);
v___x_2573_ = v_reuseFailAlloc_2574_;
goto v_reusejp_2572_;
}
v_reusejp_2572_:
{
return v___x_2573_;
}
}
else
{
lean_object* v___x_2575_; lean_object* v___x_2576_; 
lean_del_object(v___x_2560_);
v___x_2575_ = l_BitVec_add(v_n_2566_, v_value_2567_, v_value_2569_);
lean_dec(v_value_2569_);
lean_dec(v_value_2567_);
v___x_2576_ = l_BitVec_toExpr_x27___redArg(v_n_2566_, v___x_2575_, v_a_2537_, v_a_2538_, v_a_2539_, v_a_2540_, v_a_2541_);
if (lean_obj_tag(v___x_2576_) == 0)
{
lean_object* v_a_2577_; lean_object* v___x_2579_; uint8_t v_isShared_2580_; uint8_t v_isSharedCheck_2587_; 
v_a_2577_ = lean_ctor_get(v___x_2576_, 0);
v_isSharedCheck_2587_ = !lean_is_exclusive(v___x_2576_);
if (v_isSharedCheck_2587_ == 0)
{
v___x_2579_ = v___x_2576_;
v_isShared_2580_ = v_isSharedCheck_2587_;
goto v_resetjp_2578_;
}
else
{
lean_inc(v_a_2577_);
lean_dec(v___x_2576_);
v___x_2579_ = lean_box(0);
v_isShared_2580_ = v_isSharedCheck_2587_;
goto v_resetjp_2578_;
}
v_resetjp_2578_:
{
lean_object* v___x_2582_; 
if (v_isShared_2565_ == 0)
{
lean_ctor_set_tag(v___x_2564_, 0);
lean_ctor_set(v___x_2564_, 0, v_a_2577_);
v___x_2582_ = v___x_2564_;
goto v_reusejp_2581_;
}
else
{
lean_object* v_reuseFailAlloc_2586_; 
v_reuseFailAlloc_2586_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2586_, 0, v_a_2577_);
v___x_2582_ = v_reuseFailAlloc_2586_;
goto v_reusejp_2581_;
}
v_reusejp_2581_:
{
lean_object* v___x_2584_; 
if (v_isShared_2580_ == 0)
{
lean_ctor_set(v___x_2579_, 0, v___x_2582_);
v___x_2584_ = v___x_2579_;
goto v_reusejp_2583_;
}
else
{
lean_object* v_reuseFailAlloc_2585_; 
v_reuseFailAlloc_2585_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2585_, 0, v___x_2582_);
v___x_2584_ = v_reuseFailAlloc_2585_;
goto v_reusejp_2583_;
}
v_reusejp_2583_:
{
return v___x_2584_;
}
}
}
}
else
{
lean_object* v_a_2588_; lean_object* v___x_2590_; uint8_t v_isShared_2591_; uint8_t v_isSharedCheck_2595_; 
lean_del_object(v___x_2564_);
v_a_2588_ = lean_ctor_get(v___x_2576_, 0);
v_isSharedCheck_2595_ = !lean_is_exclusive(v___x_2576_);
if (v_isSharedCheck_2595_ == 0)
{
v___x_2590_ = v___x_2576_;
v_isShared_2591_ = v_isSharedCheck_2595_;
goto v_resetjp_2589_;
}
else
{
lean_inc(v_a_2588_);
lean_dec(v___x_2576_);
v___x_2590_ = lean_box(0);
v_isShared_2591_ = v_isSharedCheck_2595_;
goto v_resetjp_2589_;
}
v_resetjp_2589_:
{
lean_object* v___x_2593_; 
if (v_isShared_2591_ == 0)
{
v___x_2593_ = v___x_2590_;
goto v_reusejp_2592_;
}
else
{
lean_object* v_reuseFailAlloc_2594_; 
v_reuseFailAlloc_2594_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2594_, 0, v_a_2588_);
v___x_2593_ = v_reuseFailAlloc_2594_;
goto v_reusejp_2592_;
}
v_reusejp_2592_:
{
return v___x_2593_;
}
}
}
}
}
}
else
{
lean_object* v___x_2597_; lean_object* v___x_2599_; 
lean_dec(v_a_2558_);
lean_dec(v_val_2555_);
lean_dec(v_a_2541_);
lean_dec_ref(v_a_2540_);
lean_dec(v_a_2539_);
lean_dec_ref(v_a_2538_);
v___x_2597_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2561_ == 0)
{
lean_ctor_set(v___x_2560_, 0, v___x_2597_);
v___x_2599_ = v___x_2560_;
goto v_reusejp_2598_;
}
else
{
lean_object* v_reuseFailAlloc_2600_; 
v_reuseFailAlloc_2600_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2600_, 0, v___x_2597_);
v___x_2599_ = v_reuseFailAlloc_2600_;
goto v_reusejp_2598_;
}
v_reusejp_2598_:
{
return v___x_2599_;
}
}
}
}
else
{
lean_object* v_a_2602_; lean_object* v___x_2604_; uint8_t v_isShared_2605_; uint8_t v_isSharedCheck_2609_; 
lean_dec(v_val_2555_);
lean_dec(v_a_2541_);
lean_dec_ref(v_a_2540_);
lean_dec(v_a_2539_);
lean_dec_ref(v_a_2538_);
v_a_2602_ = lean_ctor_get(v___x_2557_, 0);
v_isSharedCheck_2609_ = !lean_is_exclusive(v___x_2557_);
if (v_isSharedCheck_2609_ == 0)
{
v___x_2604_ = v___x_2557_;
v_isShared_2605_ = v_isSharedCheck_2609_;
goto v_resetjp_2603_;
}
else
{
lean_inc(v_a_2602_);
lean_dec(v___x_2557_);
v___x_2604_ = lean_box(0);
v_isShared_2605_ = v_isSharedCheck_2609_;
goto v_resetjp_2603_;
}
v_resetjp_2603_:
{
lean_object* v___x_2607_; 
if (v_isShared_2605_ == 0)
{
v___x_2607_ = v___x_2604_;
goto v_reusejp_2606_;
}
else
{
lean_object* v_reuseFailAlloc_2608_; 
v_reuseFailAlloc_2608_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2608_, 0, v_a_2602_);
v___x_2607_ = v_reuseFailAlloc_2608_;
goto v_reusejp_2606_;
}
v_reusejp_2606_:
{
return v___x_2607_;
}
}
}
}
else
{
lean_object* v___x_2610_; lean_object* v___x_2612_; 
lean_dec(v_a_2551_);
lean_dec(v_a_2541_);
lean_dec_ref(v_a_2540_);
lean_dec(v_a_2539_);
lean_dec_ref(v_a_2538_);
v___x_2610_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2554_ == 0)
{
lean_ctor_set(v___x_2553_, 0, v___x_2610_);
v___x_2612_ = v___x_2553_;
goto v_reusejp_2611_;
}
else
{
lean_object* v_reuseFailAlloc_2613_; 
v_reuseFailAlloc_2613_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2613_, 0, v___x_2610_);
v___x_2612_ = v_reuseFailAlloc_2613_;
goto v_reusejp_2611_;
}
v_reusejp_2611_:
{
return v___x_2612_;
}
}
}
}
else
{
lean_object* v_a_2615_; lean_object* v___x_2617_; uint8_t v_isShared_2618_; uint8_t v_isSharedCheck_2622_; 
lean_dec(v_a_2541_);
lean_dec_ref(v_a_2540_);
lean_dec(v_a_2539_);
lean_dec_ref(v_a_2538_);
v_a_2615_ = lean_ctor_get(v___x_2550_, 0);
v_isSharedCheck_2622_ = !lean_is_exclusive(v___x_2550_);
if (v_isSharedCheck_2622_ == 0)
{
v___x_2617_ = v___x_2550_;
v_isShared_2618_ = v_isSharedCheck_2622_;
goto v_resetjp_2616_;
}
else
{
lean_inc(v_a_2615_);
lean_dec(v___x_2550_);
v___x_2617_ = lean_box(0);
v_isShared_2618_ = v_isSharedCheck_2622_;
goto v_resetjp_2616_;
}
v_resetjp_2616_:
{
lean_object* v___x_2620_; 
if (v_isShared_2618_ == 0)
{
v___x_2620_ = v___x_2617_;
goto v_reusejp_2619_;
}
else
{
lean_object* v_reuseFailAlloc_2621_; 
v_reuseFailAlloc_2621_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2621_, 0, v_a_2615_);
v___x_2620_ = v_reuseFailAlloc_2621_;
goto v_reusejp_2619_;
}
v_reusejp_2619_:
{
return v___x_2620_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___redArg___boxed(lean_object* v_e_2623_, lean_object* v_a_2624_, lean_object* v_a_2625_, lean_object* v_a_2626_, lean_object* v_a_2627_, lean_object* v_a_2628_, lean_object* v_a_2629_){
_start:
{
lean_object* v_res_2630_; 
v_res_2630_ = l_BitVec_reduceAdd___redArg(v_e_2623_, v_a_2624_, v_a_2625_, v_a_2626_, v_a_2627_, v_a_2628_);
lean_dec_ref(v_a_2624_);
lean_dec_ref(v_e_2623_);
return v_res_2630_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAdd(lean_object* v_e_2631_, lean_object* v_a_2632_, lean_object* v_a_2633_, lean_object* v_a_2634_, lean_object* v_a_2635_, lean_object* v_a_2636_, lean_object* v_a_2637_, lean_object* v_a_2638_){
_start:
{
lean_object* v___x_2640_; 
v___x_2640_ = l_BitVec_reduceAdd___redArg(v_e_2631_, v_a_2633_, v_a_2635_, v_a_2636_, v_a_2637_, v_a_2638_);
return v___x_2640_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___boxed(lean_object* v_e_2641_, lean_object* v_a_2642_, lean_object* v_a_2643_, lean_object* v_a_2644_, lean_object* v_a_2645_, lean_object* v_a_2646_, lean_object* v_a_2647_, lean_object* v_a_2648_, lean_object* v_a_2649_){
_start:
{
lean_object* v_res_2650_; 
v_res_2650_ = l_BitVec_reduceAdd(v_e_2641_, v_a_2642_, v_a_2643_, v_a_2644_, v_a_2645_, v_a_2646_, v_a_2647_, v_a_2648_);
lean_dec(v_a_2644_);
lean_dec_ref(v_a_2643_);
lean_dec(v_a_2642_);
lean_dec_ref(v_e_2641_);
return v_res_2650_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_2658_; lean_object* v___x_2659_; lean_object* v___x_2660_; lean_object* v___x_2661_; lean_object* v___x_2662_; lean_object* v___x_2663_; lean_object* v___x_2664_; lean_object* v___x_2665_; lean_object* v___x_2666_; lean_object* v___x_2667_; lean_object* v___x_2668_; lean_object* v___x_2669_; lean_object* v___x_2670_; lean_object* v___x_2671_; lean_object* v___x_2672_; 
v___x_2658_ = lean_box(0);
v___x_2659_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_2660_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_));
v___x_2661_ = lean_unsigned_to_nat(10u);
v___x_2662_ = lean_mk_empty_array_with_capacity(v___x_2661_);
v___x_2663_ = lean_array_push(v___x_2662_, v___x_2660_);
v___x_2664_ = lean_array_push(v___x_2663_, v___x_2659_);
v___x_2665_ = lean_array_push(v___x_2664_, v___x_2658_);
v___x_2666_ = lean_array_push(v___x_2665_, v___x_2659_);
v___x_2667_ = lean_array_push(v___x_2666_, v___x_2658_);
v___x_2668_ = lean_array_push(v___x_2667_, v___x_2659_);
v___x_2669_ = lean_array_push(v___x_2668_, v___x_2658_);
v___x_2670_ = lean_array_push(v___x_2669_, v___x_2658_);
v___x_2671_ = lean_array_push(v___x_2670_, v___x_2658_);
v___x_2672_ = lean_array_push(v___x_2671_, v___x_2658_);
return v___x_2672_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_2674_; lean_object* v___x_2675_; lean_object* v___x_2676_; lean_object* v___x_2677_; 
v___x_2674_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_));
v___x_2675_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_);
v___x_2676_ = lean_alloc_closure((void*)(l_BitVec_reduceAdd___boxed), 9, 0);
v___x_2677_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_2674_, v___x_2675_, v___x_2676_);
return v___x_2677_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20____boxed(lean_object* v_a_2678_){
_start:
{
lean_object* v_res_2679_; 
v_res_2679_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_();
return v_res_2679_;
}
}
static lean_object* _init_l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_2680_; lean_object* v___x_2681_; 
v___x_2680_ = lean_alloc_closure((void*)(l_BitVec_reduceAdd___boxed), 9, 0);
v___x_2681_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2681_, 0, v___x_2680_);
return v___x_2681_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_2683_; uint8_t v___x_2684_; lean_object* v___x_2685_; lean_object* v___x_2686_; 
v___x_2683_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_));
v___x_2684_ = 1;
v___x_2685_ = lean_obj_once(&l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_, &l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22__once, _init_l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_);
v___x_2686_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_2683_, v___x_2684_, v___x_2685_);
return v___x_2686_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22____boxed(lean_object* v_a_2687_){
_start:
{
lean_object* v_res_2688_; 
v_res_2688_ = l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_();
return v_res_2688_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_2690_; uint8_t v___x_2691_; lean_object* v___x_2692_; lean_object* v___x_2693_; 
v___x_2690_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_));
v___x_2691_ = 1;
v___x_2692_ = lean_obj_once(&l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_, &l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22__once, _init_l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_);
v___x_2693_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_2690_, v___x_2691_, v___x_2692_);
return v___x_2693_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_24____boxed(lean_object* v_a_2694_){
_start:
{
lean_object* v_res_2695_; 
v_res_2695_ = l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_24_();
return v_res_2695_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMul___redArg(lean_object* v_e_2701_, lean_object* v_a_2702_, lean_object* v_a_2703_, lean_object* v_a_2704_, lean_object* v_a_2705_, lean_object* v_a_2706_){
_start:
{
lean_object* v___x_2708_; lean_object* v___x_2709_; uint8_t v___x_2710_; 
v___x_2708_ = ((lean_object*)(l_BitVec_reduceMul___redArg___closed__2));
v___x_2709_ = lean_unsigned_to_nat(6u);
v___x_2710_ = l_Lean_Expr_isAppOfArity(v_e_2701_, v___x_2708_, v___x_2709_);
if (v___x_2710_ == 0)
{
lean_object* v___x_2711_; lean_object* v___x_2712_; 
lean_dec(v_a_2706_);
lean_dec_ref(v_a_2705_);
lean_dec(v_a_2704_);
lean_dec_ref(v_a_2703_);
v___x_2711_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_2712_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2712_, 0, v___x_2711_);
return v___x_2712_;
}
else
{
lean_object* v___x_2713_; lean_object* v___x_2714_; lean_object* v___x_2715_; 
v___x_2713_ = l_Lean_Expr_appFn_x21(v_e_2701_);
v___x_2714_ = l_Lean_Expr_appArg_x21(v___x_2713_);
lean_dec_ref(v___x_2713_);
lean_inc(v_a_2706_);
lean_inc_ref(v_a_2705_);
lean_inc(v_a_2704_);
lean_inc_ref(v_a_2703_);
v___x_2715_ = l_BitVec_fromExpr_x3f___redArg(v___x_2714_, v_a_2703_, v_a_2704_, v_a_2705_, v_a_2706_);
if (lean_obj_tag(v___x_2715_) == 0)
{
lean_object* v_a_2716_; lean_object* v___x_2718_; uint8_t v_isShared_2719_; uint8_t v_isSharedCheck_2779_; 
v_a_2716_ = lean_ctor_get(v___x_2715_, 0);
v_isSharedCheck_2779_ = !lean_is_exclusive(v___x_2715_);
if (v_isSharedCheck_2779_ == 0)
{
v___x_2718_ = v___x_2715_;
v_isShared_2719_ = v_isSharedCheck_2779_;
goto v_resetjp_2717_;
}
else
{
lean_inc(v_a_2716_);
lean_dec(v___x_2715_);
v___x_2718_ = lean_box(0);
v_isShared_2719_ = v_isSharedCheck_2779_;
goto v_resetjp_2717_;
}
v_resetjp_2717_:
{
if (lean_obj_tag(v_a_2716_) == 1)
{
lean_object* v_val_2720_; lean_object* v___x_2721_; lean_object* v___x_2722_; 
lean_del_object(v___x_2718_);
v_val_2720_ = lean_ctor_get(v_a_2716_, 0);
lean_inc(v_val_2720_);
lean_dec_ref(v_a_2716_);
v___x_2721_ = l_Lean_Expr_appArg_x21(v_e_2701_);
lean_inc(v_a_2706_);
lean_inc_ref(v_a_2705_);
lean_inc(v_a_2704_);
lean_inc_ref(v_a_2703_);
v___x_2722_ = l_BitVec_fromExpr_x3f___redArg(v___x_2721_, v_a_2703_, v_a_2704_, v_a_2705_, v_a_2706_);
if (lean_obj_tag(v___x_2722_) == 0)
{
lean_object* v_a_2723_; lean_object* v___x_2725_; uint8_t v_isShared_2726_; uint8_t v_isSharedCheck_2766_; 
v_a_2723_ = lean_ctor_get(v___x_2722_, 0);
v_isSharedCheck_2766_ = !lean_is_exclusive(v___x_2722_);
if (v_isSharedCheck_2766_ == 0)
{
v___x_2725_ = v___x_2722_;
v_isShared_2726_ = v_isSharedCheck_2766_;
goto v_resetjp_2724_;
}
else
{
lean_inc(v_a_2723_);
lean_dec(v___x_2722_);
v___x_2725_ = lean_box(0);
v_isShared_2726_ = v_isSharedCheck_2766_;
goto v_resetjp_2724_;
}
v_resetjp_2724_:
{
if (lean_obj_tag(v_a_2723_) == 1)
{
lean_object* v_val_2727_; lean_object* v___x_2729_; uint8_t v_isShared_2730_; uint8_t v_isSharedCheck_2761_; 
v_val_2727_ = lean_ctor_get(v_a_2723_, 0);
v_isSharedCheck_2761_ = !lean_is_exclusive(v_a_2723_);
if (v_isSharedCheck_2761_ == 0)
{
v___x_2729_ = v_a_2723_;
v_isShared_2730_ = v_isSharedCheck_2761_;
goto v_resetjp_2728_;
}
else
{
lean_inc(v_val_2727_);
lean_dec(v_a_2723_);
v___x_2729_ = lean_box(0);
v_isShared_2730_ = v_isSharedCheck_2761_;
goto v_resetjp_2728_;
}
v_resetjp_2728_:
{
lean_object* v_n_2731_; lean_object* v_value_2732_; lean_object* v_n_2733_; lean_object* v_value_2734_; uint8_t v___x_2735_; 
v_n_2731_ = lean_ctor_get(v_val_2720_, 0);
lean_inc(v_n_2731_);
v_value_2732_ = lean_ctor_get(v_val_2720_, 1);
lean_inc(v_value_2732_);
lean_dec(v_val_2720_);
v_n_2733_ = lean_ctor_get(v_val_2727_, 0);
lean_inc(v_n_2733_);
v_value_2734_ = lean_ctor_get(v_val_2727_, 1);
lean_inc(v_value_2734_);
lean_dec(v_val_2727_);
v___x_2735_ = lean_nat_dec_eq(v_n_2731_, v_n_2733_);
lean_dec(v_n_2733_);
if (v___x_2735_ == 0)
{
lean_object* v___x_2736_; lean_object* v___x_2738_; 
lean_dec(v_value_2734_);
lean_dec(v_value_2732_);
lean_dec(v_n_2731_);
lean_del_object(v___x_2729_);
lean_dec(v_a_2706_);
lean_dec_ref(v_a_2705_);
lean_dec(v_a_2704_);
lean_dec_ref(v_a_2703_);
v___x_2736_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2726_ == 0)
{
lean_ctor_set(v___x_2725_, 0, v___x_2736_);
v___x_2738_ = v___x_2725_;
goto v_reusejp_2737_;
}
else
{
lean_object* v_reuseFailAlloc_2739_; 
v_reuseFailAlloc_2739_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2739_, 0, v___x_2736_);
v___x_2738_ = v_reuseFailAlloc_2739_;
goto v_reusejp_2737_;
}
v_reusejp_2737_:
{
return v___x_2738_;
}
}
else
{
lean_object* v___x_2740_; lean_object* v___x_2741_; 
lean_del_object(v___x_2725_);
v___x_2740_ = l_BitVec_mul(v_n_2731_, v_value_2732_, v_value_2734_);
lean_dec(v_value_2734_);
lean_dec(v_value_2732_);
v___x_2741_ = l_BitVec_toExpr_x27___redArg(v_n_2731_, v___x_2740_, v_a_2702_, v_a_2703_, v_a_2704_, v_a_2705_, v_a_2706_);
if (lean_obj_tag(v___x_2741_) == 0)
{
lean_object* v_a_2742_; lean_object* v___x_2744_; uint8_t v_isShared_2745_; uint8_t v_isSharedCheck_2752_; 
v_a_2742_ = lean_ctor_get(v___x_2741_, 0);
v_isSharedCheck_2752_ = !lean_is_exclusive(v___x_2741_);
if (v_isSharedCheck_2752_ == 0)
{
v___x_2744_ = v___x_2741_;
v_isShared_2745_ = v_isSharedCheck_2752_;
goto v_resetjp_2743_;
}
else
{
lean_inc(v_a_2742_);
lean_dec(v___x_2741_);
v___x_2744_ = lean_box(0);
v_isShared_2745_ = v_isSharedCheck_2752_;
goto v_resetjp_2743_;
}
v_resetjp_2743_:
{
lean_object* v___x_2747_; 
if (v_isShared_2730_ == 0)
{
lean_ctor_set_tag(v___x_2729_, 0);
lean_ctor_set(v___x_2729_, 0, v_a_2742_);
v___x_2747_ = v___x_2729_;
goto v_reusejp_2746_;
}
else
{
lean_object* v_reuseFailAlloc_2751_; 
v_reuseFailAlloc_2751_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2751_, 0, v_a_2742_);
v___x_2747_ = v_reuseFailAlloc_2751_;
goto v_reusejp_2746_;
}
v_reusejp_2746_:
{
lean_object* v___x_2749_; 
if (v_isShared_2745_ == 0)
{
lean_ctor_set(v___x_2744_, 0, v___x_2747_);
v___x_2749_ = v___x_2744_;
goto v_reusejp_2748_;
}
else
{
lean_object* v_reuseFailAlloc_2750_; 
v_reuseFailAlloc_2750_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2750_, 0, v___x_2747_);
v___x_2749_ = v_reuseFailAlloc_2750_;
goto v_reusejp_2748_;
}
v_reusejp_2748_:
{
return v___x_2749_;
}
}
}
}
else
{
lean_object* v_a_2753_; lean_object* v___x_2755_; uint8_t v_isShared_2756_; uint8_t v_isSharedCheck_2760_; 
lean_del_object(v___x_2729_);
v_a_2753_ = lean_ctor_get(v___x_2741_, 0);
v_isSharedCheck_2760_ = !lean_is_exclusive(v___x_2741_);
if (v_isSharedCheck_2760_ == 0)
{
v___x_2755_ = v___x_2741_;
v_isShared_2756_ = v_isSharedCheck_2760_;
goto v_resetjp_2754_;
}
else
{
lean_inc(v_a_2753_);
lean_dec(v___x_2741_);
v___x_2755_ = lean_box(0);
v_isShared_2756_ = v_isSharedCheck_2760_;
goto v_resetjp_2754_;
}
v_resetjp_2754_:
{
lean_object* v___x_2758_; 
if (v_isShared_2756_ == 0)
{
v___x_2758_ = v___x_2755_;
goto v_reusejp_2757_;
}
else
{
lean_object* v_reuseFailAlloc_2759_; 
v_reuseFailAlloc_2759_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2759_, 0, v_a_2753_);
v___x_2758_ = v_reuseFailAlloc_2759_;
goto v_reusejp_2757_;
}
v_reusejp_2757_:
{
return v___x_2758_;
}
}
}
}
}
}
else
{
lean_object* v___x_2762_; lean_object* v___x_2764_; 
lean_dec(v_a_2723_);
lean_dec(v_val_2720_);
lean_dec(v_a_2706_);
lean_dec_ref(v_a_2705_);
lean_dec(v_a_2704_);
lean_dec_ref(v_a_2703_);
v___x_2762_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2726_ == 0)
{
lean_ctor_set(v___x_2725_, 0, v___x_2762_);
v___x_2764_ = v___x_2725_;
goto v_reusejp_2763_;
}
else
{
lean_object* v_reuseFailAlloc_2765_; 
v_reuseFailAlloc_2765_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2765_, 0, v___x_2762_);
v___x_2764_ = v_reuseFailAlloc_2765_;
goto v_reusejp_2763_;
}
v_reusejp_2763_:
{
return v___x_2764_;
}
}
}
}
else
{
lean_object* v_a_2767_; lean_object* v___x_2769_; uint8_t v_isShared_2770_; uint8_t v_isSharedCheck_2774_; 
lean_dec(v_val_2720_);
lean_dec(v_a_2706_);
lean_dec_ref(v_a_2705_);
lean_dec(v_a_2704_);
lean_dec_ref(v_a_2703_);
v_a_2767_ = lean_ctor_get(v___x_2722_, 0);
v_isSharedCheck_2774_ = !lean_is_exclusive(v___x_2722_);
if (v_isSharedCheck_2774_ == 0)
{
v___x_2769_ = v___x_2722_;
v_isShared_2770_ = v_isSharedCheck_2774_;
goto v_resetjp_2768_;
}
else
{
lean_inc(v_a_2767_);
lean_dec(v___x_2722_);
v___x_2769_ = lean_box(0);
v_isShared_2770_ = v_isSharedCheck_2774_;
goto v_resetjp_2768_;
}
v_resetjp_2768_:
{
lean_object* v___x_2772_; 
if (v_isShared_2770_ == 0)
{
v___x_2772_ = v___x_2769_;
goto v_reusejp_2771_;
}
else
{
lean_object* v_reuseFailAlloc_2773_; 
v_reuseFailAlloc_2773_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2773_, 0, v_a_2767_);
v___x_2772_ = v_reuseFailAlloc_2773_;
goto v_reusejp_2771_;
}
v_reusejp_2771_:
{
return v___x_2772_;
}
}
}
}
else
{
lean_object* v___x_2775_; lean_object* v___x_2777_; 
lean_dec(v_a_2716_);
lean_dec(v_a_2706_);
lean_dec_ref(v_a_2705_);
lean_dec(v_a_2704_);
lean_dec_ref(v_a_2703_);
v___x_2775_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2719_ == 0)
{
lean_ctor_set(v___x_2718_, 0, v___x_2775_);
v___x_2777_ = v___x_2718_;
goto v_reusejp_2776_;
}
else
{
lean_object* v_reuseFailAlloc_2778_; 
v_reuseFailAlloc_2778_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2778_, 0, v___x_2775_);
v___x_2777_ = v_reuseFailAlloc_2778_;
goto v_reusejp_2776_;
}
v_reusejp_2776_:
{
return v___x_2777_;
}
}
}
}
else
{
lean_object* v_a_2780_; lean_object* v___x_2782_; uint8_t v_isShared_2783_; uint8_t v_isSharedCheck_2787_; 
lean_dec(v_a_2706_);
lean_dec_ref(v_a_2705_);
lean_dec(v_a_2704_);
lean_dec_ref(v_a_2703_);
v_a_2780_ = lean_ctor_get(v___x_2715_, 0);
v_isSharedCheck_2787_ = !lean_is_exclusive(v___x_2715_);
if (v_isSharedCheck_2787_ == 0)
{
v___x_2782_ = v___x_2715_;
v_isShared_2783_ = v_isSharedCheck_2787_;
goto v_resetjp_2781_;
}
else
{
lean_inc(v_a_2780_);
lean_dec(v___x_2715_);
v___x_2782_ = lean_box(0);
v_isShared_2783_ = v_isSharedCheck_2787_;
goto v_resetjp_2781_;
}
v_resetjp_2781_:
{
lean_object* v___x_2785_; 
if (v_isShared_2783_ == 0)
{
v___x_2785_ = v___x_2782_;
goto v_reusejp_2784_;
}
else
{
lean_object* v_reuseFailAlloc_2786_; 
v_reuseFailAlloc_2786_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2786_, 0, v_a_2780_);
v___x_2785_ = v_reuseFailAlloc_2786_;
goto v_reusejp_2784_;
}
v_reusejp_2784_:
{
return v___x_2785_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMul___redArg___boxed(lean_object* v_e_2788_, lean_object* v_a_2789_, lean_object* v_a_2790_, lean_object* v_a_2791_, lean_object* v_a_2792_, lean_object* v_a_2793_, lean_object* v_a_2794_){
_start:
{
lean_object* v_res_2795_; 
v_res_2795_ = l_BitVec_reduceMul___redArg(v_e_2788_, v_a_2789_, v_a_2790_, v_a_2791_, v_a_2792_, v_a_2793_);
lean_dec_ref(v_a_2789_);
lean_dec_ref(v_e_2788_);
return v_res_2795_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMul(lean_object* v_e_2796_, lean_object* v_a_2797_, lean_object* v_a_2798_, lean_object* v_a_2799_, lean_object* v_a_2800_, lean_object* v_a_2801_, lean_object* v_a_2802_, lean_object* v_a_2803_){
_start:
{
lean_object* v___x_2805_; 
v___x_2805_ = l_BitVec_reduceMul___redArg(v_e_2796_, v_a_2798_, v_a_2800_, v_a_2801_, v_a_2802_, v_a_2803_);
return v___x_2805_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMul___boxed(lean_object* v_e_2806_, lean_object* v_a_2807_, lean_object* v_a_2808_, lean_object* v_a_2809_, lean_object* v_a_2810_, lean_object* v_a_2811_, lean_object* v_a_2812_, lean_object* v_a_2813_, lean_object* v_a_2814_){
_start:
{
lean_object* v_res_2815_; 
v_res_2815_ = l_BitVec_reduceMul(v_e_2806_, v_a_2807_, v_a_2808_, v_a_2809_, v_a_2810_, v_a_2811_, v_a_2812_, v_a_2813_);
lean_dec(v_a_2809_);
lean_dec_ref(v_a_2808_);
lean_dec(v_a_2807_);
lean_dec_ref(v_e_2806_);
return v_res_2815_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_2823_; lean_object* v___x_2824_; lean_object* v___x_2825_; lean_object* v___x_2826_; lean_object* v___x_2827_; lean_object* v___x_2828_; lean_object* v___x_2829_; lean_object* v___x_2830_; lean_object* v___x_2831_; lean_object* v___x_2832_; lean_object* v___x_2833_; lean_object* v___x_2834_; lean_object* v___x_2835_; lean_object* v___x_2836_; lean_object* v___x_2837_; 
v___x_2823_ = lean_box(0);
v___x_2824_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_2825_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_));
v___x_2826_ = lean_unsigned_to_nat(10u);
v___x_2827_ = lean_mk_empty_array_with_capacity(v___x_2826_);
v___x_2828_ = lean_array_push(v___x_2827_, v___x_2825_);
v___x_2829_ = lean_array_push(v___x_2828_, v___x_2824_);
v___x_2830_ = lean_array_push(v___x_2829_, v___x_2823_);
v___x_2831_ = lean_array_push(v___x_2830_, v___x_2824_);
v___x_2832_ = lean_array_push(v___x_2831_, v___x_2823_);
v___x_2833_ = lean_array_push(v___x_2832_, v___x_2824_);
v___x_2834_ = lean_array_push(v___x_2833_, v___x_2823_);
v___x_2835_ = lean_array_push(v___x_2834_, v___x_2823_);
v___x_2836_ = lean_array_push(v___x_2835_, v___x_2823_);
v___x_2837_ = lean_array_push(v___x_2836_, v___x_2823_);
return v___x_2837_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_2839_; lean_object* v___x_2840_; lean_object* v___x_2841_; lean_object* v___x_2842_; 
v___x_2839_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_));
v___x_2840_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_);
v___x_2841_ = lean_alloc_closure((void*)(l_BitVec_reduceMul___boxed), 9, 0);
v___x_2842_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_2839_, v___x_2840_, v___x_2841_);
return v___x_2842_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20____boxed(lean_object* v_a_2843_){
_start:
{
lean_object* v_res_2844_; 
v_res_2844_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_();
return v_res_2844_;
}
}
static lean_object* _init_l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_2845_; lean_object* v___x_2846_; 
v___x_2845_ = lean_alloc_closure((void*)(l_BitVec_reduceMul___boxed), 9, 0);
v___x_2846_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_2846_, 0, v___x_2845_);
return v___x_2846_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_2848_; uint8_t v___x_2849_; lean_object* v___x_2850_; lean_object* v___x_2851_; 
v___x_2848_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_));
v___x_2849_ = 1;
v___x_2850_ = lean_obj_once(&l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_, &l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22__once, _init_l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_);
v___x_2851_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_2848_, v___x_2849_, v___x_2850_);
return v___x_2851_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22____boxed(lean_object* v_a_2852_){
_start:
{
lean_object* v_res_2853_; 
v_res_2853_ = l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_();
return v_res_2853_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_2855_; uint8_t v___x_2856_; lean_object* v___x_2857_; lean_object* v___x_2858_; 
v___x_2855_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_));
v___x_2856_ = 1;
v___x_2857_ = lean_obj_once(&l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_, &l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22__once, _init_l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_);
v___x_2858_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_2855_, v___x_2856_, v___x_2857_);
return v___x_2858_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_24____boxed(lean_object* v_a_2859_){
_start:
{
lean_object* v_res_2860_; 
v_res_2860_ = l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_24_();
return v_res_2860_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSub___redArg(lean_object* v_e_2866_, lean_object* v_a_2867_, lean_object* v_a_2868_, lean_object* v_a_2869_, lean_object* v_a_2870_, lean_object* v_a_2871_){
_start:
{
lean_object* v___x_2873_; lean_object* v___x_2874_; uint8_t v___x_2875_; 
v___x_2873_ = ((lean_object*)(l_BitVec_reduceSub___redArg___closed__2));
v___x_2874_ = lean_unsigned_to_nat(6u);
v___x_2875_ = l_Lean_Expr_isAppOfArity(v_e_2866_, v___x_2873_, v___x_2874_);
if (v___x_2875_ == 0)
{
lean_object* v___x_2876_; lean_object* v___x_2877_; 
lean_dec(v_a_2871_);
lean_dec_ref(v_a_2870_);
lean_dec(v_a_2869_);
lean_dec_ref(v_a_2868_);
v___x_2876_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_2877_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_2877_, 0, v___x_2876_);
return v___x_2877_;
}
else
{
lean_object* v___x_2878_; lean_object* v___x_2879_; lean_object* v___x_2880_; 
v___x_2878_ = l_Lean_Expr_appFn_x21(v_e_2866_);
v___x_2879_ = l_Lean_Expr_appArg_x21(v___x_2878_);
lean_dec_ref(v___x_2878_);
lean_inc(v_a_2871_);
lean_inc_ref(v_a_2870_);
lean_inc(v_a_2869_);
lean_inc_ref(v_a_2868_);
v___x_2880_ = l_BitVec_fromExpr_x3f___redArg(v___x_2879_, v_a_2868_, v_a_2869_, v_a_2870_, v_a_2871_);
if (lean_obj_tag(v___x_2880_) == 0)
{
lean_object* v_a_2881_; lean_object* v___x_2883_; uint8_t v_isShared_2884_; uint8_t v_isSharedCheck_2944_; 
v_a_2881_ = lean_ctor_get(v___x_2880_, 0);
v_isSharedCheck_2944_ = !lean_is_exclusive(v___x_2880_);
if (v_isSharedCheck_2944_ == 0)
{
v___x_2883_ = v___x_2880_;
v_isShared_2884_ = v_isSharedCheck_2944_;
goto v_resetjp_2882_;
}
else
{
lean_inc(v_a_2881_);
lean_dec(v___x_2880_);
v___x_2883_ = lean_box(0);
v_isShared_2884_ = v_isSharedCheck_2944_;
goto v_resetjp_2882_;
}
v_resetjp_2882_:
{
if (lean_obj_tag(v_a_2881_) == 1)
{
lean_object* v_val_2885_; lean_object* v___x_2886_; lean_object* v___x_2887_; 
lean_del_object(v___x_2883_);
v_val_2885_ = lean_ctor_get(v_a_2881_, 0);
lean_inc(v_val_2885_);
lean_dec_ref(v_a_2881_);
v___x_2886_ = l_Lean_Expr_appArg_x21(v_e_2866_);
lean_inc(v_a_2871_);
lean_inc_ref(v_a_2870_);
lean_inc(v_a_2869_);
lean_inc_ref(v_a_2868_);
v___x_2887_ = l_BitVec_fromExpr_x3f___redArg(v___x_2886_, v_a_2868_, v_a_2869_, v_a_2870_, v_a_2871_);
if (lean_obj_tag(v___x_2887_) == 0)
{
lean_object* v_a_2888_; lean_object* v___x_2890_; uint8_t v_isShared_2891_; uint8_t v_isSharedCheck_2931_; 
v_a_2888_ = lean_ctor_get(v___x_2887_, 0);
v_isSharedCheck_2931_ = !lean_is_exclusive(v___x_2887_);
if (v_isSharedCheck_2931_ == 0)
{
v___x_2890_ = v___x_2887_;
v_isShared_2891_ = v_isSharedCheck_2931_;
goto v_resetjp_2889_;
}
else
{
lean_inc(v_a_2888_);
lean_dec(v___x_2887_);
v___x_2890_ = lean_box(0);
v_isShared_2891_ = v_isSharedCheck_2931_;
goto v_resetjp_2889_;
}
v_resetjp_2889_:
{
if (lean_obj_tag(v_a_2888_) == 1)
{
lean_object* v_val_2892_; lean_object* v___x_2894_; uint8_t v_isShared_2895_; uint8_t v_isSharedCheck_2926_; 
v_val_2892_ = lean_ctor_get(v_a_2888_, 0);
v_isSharedCheck_2926_ = !lean_is_exclusive(v_a_2888_);
if (v_isSharedCheck_2926_ == 0)
{
v___x_2894_ = v_a_2888_;
v_isShared_2895_ = v_isSharedCheck_2926_;
goto v_resetjp_2893_;
}
else
{
lean_inc(v_val_2892_);
lean_dec(v_a_2888_);
v___x_2894_ = lean_box(0);
v_isShared_2895_ = v_isSharedCheck_2926_;
goto v_resetjp_2893_;
}
v_resetjp_2893_:
{
lean_object* v_n_2896_; lean_object* v_value_2897_; lean_object* v_n_2898_; lean_object* v_value_2899_; uint8_t v___x_2900_; 
v_n_2896_ = lean_ctor_get(v_val_2885_, 0);
lean_inc(v_n_2896_);
v_value_2897_ = lean_ctor_get(v_val_2885_, 1);
lean_inc(v_value_2897_);
lean_dec(v_val_2885_);
v_n_2898_ = lean_ctor_get(v_val_2892_, 0);
lean_inc(v_n_2898_);
v_value_2899_ = lean_ctor_get(v_val_2892_, 1);
lean_inc(v_value_2899_);
lean_dec(v_val_2892_);
v___x_2900_ = lean_nat_dec_eq(v_n_2896_, v_n_2898_);
lean_dec(v_n_2898_);
if (v___x_2900_ == 0)
{
lean_object* v___x_2901_; lean_object* v___x_2903_; 
lean_dec(v_value_2899_);
lean_dec(v_value_2897_);
lean_dec(v_n_2896_);
lean_del_object(v___x_2894_);
lean_dec(v_a_2871_);
lean_dec_ref(v_a_2870_);
lean_dec(v_a_2869_);
lean_dec_ref(v_a_2868_);
v___x_2901_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2891_ == 0)
{
lean_ctor_set(v___x_2890_, 0, v___x_2901_);
v___x_2903_ = v___x_2890_;
goto v_reusejp_2902_;
}
else
{
lean_object* v_reuseFailAlloc_2904_; 
v_reuseFailAlloc_2904_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2904_, 0, v___x_2901_);
v___x_2903_ = v_reuseFailAlloc_2904_;
goto v_reusejp_2902_;
}
v_reusejp_2902_:
{
return v___x_2903_;
}
}
else
{
lean_object* v___x_2905_; lean_object* v___x_2906_; 
lean_del_object(v___x_2890_);
v___x_2905_ = l_BitVec_sub(v_n_2896_, v_value_2897_, v_value_2899_);
lean_dec(v_value_2899_);
lean_dec(v_value_2897_);
v___x_2906_ = l_BitVec_toExpr_x27___redArg(v_n_2896_, v___x_2905_, v_a_2867_, v_a_2868_, v_a_2869_, v_a_2870_, v_a_2871_);
if (lean_obj_tag(v___x_2906_) == 0)
{
lean_object* v_a_2907_; lean_object* v___x_2909_; uint8_t v_isShared_2910_; uint8_t v_isSharedCheck_2917_; 
v_a_2907_ = lean_ctor_get(v___x_2906_, 0);
v_isSharedCheck_2917_ = !lean_is_exclusive(v___x_2906_);
if (v_isSharedCheck_2917_ == 0)
{
v___x_2909_ = v___x_2906_;
v_isShared_2910_ = v_isSharedCheck_2917_;
goto v_resetjp_2908_;
}
else
{
lean_inc(v_a_2907_);
lean_dec(v___x_2906_);
v___x_2909_ = lean_box(0);
v_isShared_2910_ = v_isSharedCheck_2917_;
goto v_resetjp_2908_;
}
v_resetjp_2908_:
{
lean_object* v___x_2912_; 
if (v_isShared_2895_ == 0)
{
lean_ctor_set_tag(v___x_2894_, 0);
lean_ctor_set(v___x_2894_, 0, v_a_2907_);
v___x_2912_ = v___x_2894_;
goto v_reusejp_2911_;
}
else
{
lean_object* v_reuseFailAlloc_2916_; 
v_reuseFailAlloc_2916_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2916_, 0, v_a_2907_);
v___x_2912_ = v_reuseFailAlloc_2916_;
goto v_reusejp_2911_;
}
v_reusejp_2911_:
{
lean_object* v___x_2914_; 
if (v_isShared_2910_ == 0)
{
lean_ctor_set(v___x_2909_, 0, v___x_2912_);
v___x_2914_ = v___x_2909_;
goto v_reusejp_2913_;
}
else
{
lean_object* v_reuseFailAlloc_2915_; 
v_reuseFailAlloc_2915_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2915_, 0, v___x_2912_);
v___x_2914_ = v_reuseFailAlloc_2915_;
goto v_reusejp_2913_;
}
v_reusejp_2913_:
{
return v___x_2914_;
}
}
}
}
else
{
lean_object* v_a_2918_; lean_object* v___x_2920_; uint8_t v_isShared_2921_; uint8_t v_isSharedCheck_2925_; 
lean_del_object(v___x_2894_);
v_a_2918_ = lean_ctor_get(v___x_2906_, 0);
v_isSharedCheck_2925_ = !lean_is_exclusive(v___x_2906_);
if (v_isSharedCheck_2925_ == 0)
{
v___x_2920_ = v___x_2906_;
v_isShared_2921_ = v_isSharedCheck_2925_;
goto v_resetjp_2919_;
}
else
{
lean_inc(v_a_2918_);
lean_dec(v___x_2906_);
v___x_2920_ = lean_box(0);
v_isShared_2921_ = v_isSharedCheck_2925_;
goto v_resetjp_2919_;
}
v_resetjp_2919_:
{
lean_object* v___x_2923_; 
if (v_isShared_2921_ == 0)
{
v___x_2923_ = v___x_2920_;
goto v_reusejp_2922_;
}
else
{
lean_object* v_reuseFailAlloc_2924_; 
v_reuseFailAlloc_2924_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2924_, 0, v_a_2918_);
v___x_2923_ = v_reuseFailAlloc_2924_;
goto v_reusejp_2922_;
}
v_reusejp_2922_:
{
return v___x_2923_;
}
}
}
}
}
}
else
{
lean_object* v___x_2927_; lean_object* v___x_2929_; 
lean_dec(v_a_2888_);
lean_dec(v_val_2885_);
lean_dec(v_a_2871_);
lean_dec_ref(v_a_2870_);
lean_dec(v_a_2869_);
lean_dec_ref(v_a_2868_);
v___x_2927_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2891_ == 0)
{
lean_ctor_set(v___x_2890_, 0, v___x_2927_);
v___x_2929_ = v___x_2890_;
goto v_reusejp_2928_;
}
else
{
lean_object* v_reuseFailAlloc_2930_; 
v_reuseFailAlloc_2930_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2930_, 0, v___x_2927_);
v___x_2929_ = v_reuseFailAlloc_2930_;
goto v_reusejp_2928_;
}
v_reusejp_2928_:
{
return v___x_2929_;
}
}
}
}
else
{
lean_object* v_a_2932_; lean_object* v___x_2934_; uint8_t v_isShared_2935_; uint8_t v_isSharedCheck_2939_; 
lean_dec(v_val_2885_);
lean_dec(v_a_2871_);
lean_dec_ref(v_a_2870_);
lean_dec(v_a_2869_);
lean_dec_ref(v_a_2868_);
v_a_2932_ = lean_ctor_get(v___x_2887_, 0);
v_isSharedCheck_2939_ = !lean_is_exclusive(v___x_2887_);
if (v_isSharedCheck_2939_ == 0)
{
v___x_2934_ = v___x_2887_;
v_isShared_2935_ = v_isSharedCheck_2939_;
goto v_resetjp_2933_;
}
else
{
lean_inc(v_a_2932_);
lean_dec(v___x_2887_);
v___x_2934_ = lean_box(0);
v_isShared_2935_ = v_isSharedCheck_2939_;
goto v_resetjp_2933_;
}
v_resetjp_2933_:
{
lean_object* v___x_2937_; 
if (v_isShared_2935_ == 0)
{
v___x_2937_ = v___x_2934_;
goto v_reusejp_2936_;
}
else
{
lean_object* v_reuseFailAlloc_2938_; 
v_reuseFailAlloc_2938_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2938_, 0, v_a_2932_);
v___x_2937_ = v_reuseFailAlloc_2938_;
goto v_reusejp_2936_;
}
v_reusejp_2936_:
{
return v___x_2937_;
}
}
}
}
else
{
lean_object* v___x_2940_; lean_object* v___x_2942_; 
lean_dec(v_a_2881_);
lean_dec(v_a_2871_);
lean_dec_ref(v_a_2870_);
lean_dec(v_a_2869_);
lean_dec_ref(v_a_2868_);
v___x_2940_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_2884_ == 0)
{
lean_ctor_set(v___x_2883_, 0, v___x_2940_);
v___x_2942_ = v___x_2883_;
goto v_reusejp_2941_;
}
else
{
lean_object* v_reuseFailAlloc_2943_; 
v_reuseFailAlloc_2943_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2943_, 0, v___x_2940_);
v___x_2942_ = v_reuseFailAlloc_2943_;
goto v_reusejp_2941_;
}
v_reusejp_2941_:
{
return v___x_2942_;
}
}
}
}
else
{
lean_object* v_a_2945_; lean_object* v___x_2947_; uint8_t v_isShared_2948_; uint8_t v_isSharedCheck_2952_; 
lean_dec(v_a_2871_);
lean_dec_ref(v_a_2870_);
lean_dec(v_a_2869_);
lean_dec_ref(v_a_2868_);
v_a_2945_ = lean_ctor_get(v___x_2880_, 0);
v_isSharedCheck_2952_ = !lean_is_exclusive(v___x_2880_);
if (v_isSharedCheck_2952_ == 0)
{
v___x_2947_ = v___x_2880_;
v_isShared_2948_ = v_isSharedCheck_2952_;
goto v_resetjp_2946_;
}
else
{
lean_inc(v_a_2945_);
lean_dec(v___x_2880_);
v___x_2947_ = lean_box(0);
v_isShared_2948_ = v_isSharedCheck_2952_;
goto v_resetjp_2946_;
}
v_resetjp_2946_:
{
lean_object* v___x_2950_; 
if (v_isShared_2948_ == 0)
{
v___x_2950_ = v___x_2947_;
goto v_reusejp_2949_;
}
else
{
lean_object* v_reuseFailAlloc_2951_; 
v_reuseFailAlloc_2951_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_2951_, 0, v_a_2945_);
v___x_2950_ = v_reuseFailAlloc_2951_;
goto v_reusejp_2949_;
}
v_reusejp_2949_:
{
return v___x_2950_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSub___redArg___boxed(lean_object* v_e_2953_, lean_object* v_a_2954_, lean_object* v_a_2955_, lean_object* v_a_2956_, lean_object* v_a_2957_, lean_object* v_a_2958_, lean_object* v_a_2959_){
_start:
{
lean_object* v_res_2960_; 
v_res_2960_ = l_BitVec_reduceSub___redArg(v_e_2953_, v_a_2954_, v_a_2955_, v_a_2956_, v_a_2957_, v_a_2958_);
lean_dec_ref(v_a_2954_);
lean_dec_ref(v_e_2953_);
return v_res_2960_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSub(lean_object* v_e_2961_, lean_object* v_a_2962_, lean_object* v_a_2963_, lean_object* v_a_2964_, lean_object* v_a_2965_, lean_object* v_a_2966_, lean_object* v_a_2967_, lean_object* v_a_2968_){
_start:
{
lean_object* v___x_2970_; 
v___x_2970_ = l_BitVec_reduceSub___redArg(v_e_2961_, v_a_2963_, v_a_2965_, v_a_2966_, v_a_2967_, v_a_2968_);
return v___x_2970_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSub___boxed(lean_object* v_e_2971_, lean_object* v_a_2972_, lean_object* v_a_2973_, lean_object* v_a_2974_, lean_object* v_a_2975_, lean_object* v_a_2976_, lean_object* v_a_2977_, lean_object* v_a_2978_, lean_object* v_a_2979_){
_start:
{
lean_object* v_res_2980_; 
v_res_2980_ = l_BitVec_reduceSub(v_e_2971_, v_a_2972_, v_a_2973_, v_a_2974_, v_a_2975_, v_a_2976_, v_a_2977_, v_a_2978_);
lean_dec(v_a_2974_);
lean_dec_ref(v_a_2973_);
lean_dec(v_a_2972_);
lean_dec_ref(v_e_2971_);
return v_res_2980_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_2988_; lean_object* v___x_2989_; lean_object* v___x_2990_; lean_object* v___x_2991_; lean_object* v___x_2992_; lean_object* v___x_2993_; lean_object* v___x_2994_; lean_object* v___x_2995_; lean_object* v___x_2996_; lean_object* v___x_2997_; lean_object* v___x_2998_; lean_object* v___x_2999_; lean_object* v___x_3000_; lean_object* v___x_3001_; lean_object* v___x_3002_; 
v___x_2988_ = lean_box(0);
v___x_2989_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_2990_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_));
v___x_2991_ = lean_unsigned_to_nat(10u);
v___x_2992_ = lean_mk_empty_array_with_capacity(v___x_2991_);
v___x_2993_ = lean_array_push(v___x_2992_, v___x_2990_);
v___x_2994_ = lean_array_push(v___x_2993_, v___x_2989_);
v___x_2995_ = lean_array_push(v___x_2994_, v___x_2988_);
v___x_2996_ = lean_array_push(v___x_2995_, v___x_2989_);
v___x_2997_ = lean_array_push(v___x_2996_, v___x_2988_);
v___x_2998_ = lean_array_push(v___x_2997_, v___x_2989_);
v___x_2999_ = lean_array_push(v___x_2998_, v___x_2988_);
v___x_3000_ = lean_array_push(v___x_2999_, v___x_2988_);
v___x_3001_ = lean_array_push(v___x_3000_, v___x_2988_);
v___x_3002_ = lean_array_push(v___x_3001_, v___x_2988_);
return v___x_3002_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_3004_; lean_object* v___x_3005_; lean_object* v___x_3006_; lean_object* v___x_3007_; 
v___x_3004_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_));
v___x_3005_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_);
v___x_3006_ = lean_alloc_closure((void*)(l_BitVec_reduceSub___boxed), 9, 0);
v___x_3007_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_3004_, v___x_3005_, v___x_3006_);
return v___x_3007_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20____boxed(lean_object* v_a_3008_){
_start:
{
lean_object* v_res_3009_; 
v_res_3009_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_();
return v_res_3009_;
}
}
static lean_object* _init_l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_3010_; lean_object* v___x_3011_; 
v___x_3010_ = lean_alloc_closure((void*)(l_BitVec_reduceSub___boxed), 9, 0);
v___x_3011_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3011_, 0, v___x_3010_);
return v___x_3011_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_3013_; uint8_t v___x_3014_; lean_object* v___x_3015_; lean_object* v___x_3016_; 
v___x_3013_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_));
v___x_3014_ = 1;
v___x_3015_ = lean_obj_once(&l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_, &l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22__once, _init_l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_);
v___x_3016_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_3013_, v___x_3014_, v___x_3015_);
return v___x_3016_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22____boxed(lean_object* v_a_3017_){
_start:
{
lean_object* v_res_3018_; 
v_res_3018_ = l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_();
return v_res_3018_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_3020_; uint8_t v___x_3021_; lean_object* v___x_3022_; lean_object* v___x_3023_; 
v___x_3020_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_));
v___x_3021_ = 1;
v___x_3022_ = lean_obj_once(&l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_, &l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22__once, _init_l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_);
v___x_3023_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_3020_, v___x_3021_, v___x_3022_);
return v___x_3023_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_24____boxed(lean_object* v_a_3024_){
_start:
{
lean_object* v_res_3025_; 
v_res_3025_ = l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_24_();
return v_res_3025_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___redArg(lean_object* v_e_3031_, lean_object* v_a_3032_, lean_object* v_a_3033_, lean_object* v_a_3034_, lean_object* v_a_3035_, lean_object* v_a_3036_){
_start:
{
lean_object* v___x_3038_; lean_object* v___x_3039_; uint8_t v___x_3040_; 
v___x_3038_ = ((lean_object*)(l_BitVec_reduceDiv___redArg___closed__2));
v___x_3039_ = lean_unsigned_to_nat(6u);
v___x_3040_ = l_Lean_Expr_isAppOfArity(v_e_3031_, v___x_3038_, v___x_3039_);
if (v___x_3040_ == 0)
{
lean_object* v___x_3041_; lean_object* v___x_3042_; 
lean_dec(v_a_3036_);
lean_dec_ref(v_a_3035_);
lean_dec(v_a_3034_);
lean_dec_ref(v_a_3033_);
v___x_3041_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_3042_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3042_, 0, v___x_3041_);
return v___x_3042_;
}
else
{
lean_object* v___x_3043_; lean_object* v___x_3044_; lean_object* v___x_3045_; 
v___x_3043_ = l_Lean_Expr_appFn_x21(v_e_3031_);
v___x_3044_ = l_Lean_Expr_appArg_x21(v___x_3043_);
lean_dec_ref(v___x_3043_);
lean_inc(v_a_3036_);
lean_inc_ref(v_a_3035_);
lean_inc(v_a_3034_);
lean_inc_ref(v_a_3033_);
v___x_3045_ = l_BitVec_fromExpr_x3f___redArg(v___x_3044_, v_a_3033_, v_a_3034_, v_a_3035_, v_a_3036_);
if (lean_obj_tag(v___x_3045_) == 0)
{
lean_object* v_a_3046_; lean_object* v___x_3048_; uint8_t v_isShared_3049_; uint8_t v_isSharedCheck_3109_; 
v_a_3046_ = lean_ctor_get(v___x_3045_, 0);
v_isSharedCheck_3109_ = !lean_is_exclusive(v___x_3045_);
if (v_isSharedCheck_3109_ == 0)
{
v___x_3048_ = v___x_3045_;
v_isShared_3049_ = v_isSharedCheck_3109_;
goto v_resetjp_3047_;
}
else
{
lean_inc(v_a_3046_);
lean_dec(v___x_3045_);
v___x_3048_ = lean_box(0);
v_isShared_3049_ = v_isSharedCheck_3109_;
goto v_resetjp_3047_;
}
v_resetjp_3047_:
{
if (lean_obj_tag(v_a_3046_) == 1)
{
lean_object* v_val_3050_; lean_object* v___x_3051_; lean_object* v___x_3052_; 
lean_del_object(v___x_3048_);
v_val_3050_ = lean_ctor_get(v_a_3046_, 0);
lean_inc(v_val_3050_);
lean_dec_ref(v_a_3046_);
v___x_3051_ = l_Lean_Expr_appArg_x21(v_e_3031_);
lean_inc(v_a_3036_);
lean_inc_ref(v_a_3035_);
lean_inc(v_a_3034_);
lean_inc_ref(v_a_3033_);
v___x_3052_ = l_BitVec_fromExpr_x3f___redArg(v___x_3051_, v_a_3033_, v_a_3034_, v_a_3035_, v_a_3036_);
if (lean_obj_tag(v___x_3052_) == 0)
{
lean_object* v_a_3053_; lean_object* v___x_3055_; uint8_t v_isShared_3056_; uint8_t v_isSharedCheck_3096_; 
v_a_3053_ = lean_ctor_get(v___x_3052_, 0);
v_isSharedCheck_3096_ = !lean_is_exclusive(v___x_3052_);
if (v_isSharedCheck_3096_ == 0)
{
v___x_3055_ = v___x_3052_;
v_isShared_3056_ = v_isSharedCheck_3096_;
goto v_resetjp_3054_;
}
else
{
lean_inc(v_a_3053_);
lean_dec(v___x_3052_);
v___x_3055_ = lean_box(0);
v_isShared_3056_ = v_isSharedCheck_3096_;
goto v_resetjp_3054_;
}
v_resetjp_3054_:
{
if (lean_obj_tag(v_a_3053_) == 1)
{
lean_object* v_val_3057_; lean_object* v___x_3059_; uint8_t v_isShared_3060_; uint8_t v_isSharedCheck_3091_; 
v_val_3057_ = lean_ctor_get(v_a_3053_, 0);
v_isSharedCheck_3091_ = !lean_is_exclusive(v_a_3053_);
if (v_isSharedCheck_3091_ == 0)
{
v___x_3059_ = v_a_3053_;
v_isShared_3060_ = v_isSharedCheck_3091_;
goto v_resetjp_3058_;
}
else
{
lean_inc(v_val_3057_);
lean_dec(v_a_3053_);
v___x_3059_ = lean_box(0);
v_isShared_3060_ = v_isSharedCheck_3091_;
goto v_resetjp_3058_;
}
v_resetjp_3058_:
{
lean_object* v_n_3061_; lean_object* v_value_3062_; lean_object* v_n_3063_; lean_object* v_value_3064_; uint8_t v___x_3065_; 
v_n_3061_ = lean_ctor_get(v_val_3050_, 0);
lean_inc(v_n_3061_);
v_value_3062_ = lean_ctor_get(v_val_3050_, 1);
lean_inc(v_value_3062_);
lean_dec(v_val_3050_);
v_n_3063_ = lean_ctor_get(v_val_3057_, 0);
lean_inc(v_n_3063_);
v_value_3064_ = lean_ctor_get(v_val_3057_, 1);
lean_inc(v_value_3064_);
lean_dec(v_val_3057_);
v___x_3065_ = lean_nat_dec_eq(v_n_3061_, v_n_3063_);
lean_dec(v_n_3063_);
if (v___x_3065_ == 0)
{
lean_object* v___x_3066_; lean_object* v___x_3068_; 
lean_dec(v_value_3064_);
lean_dec(v_value_3062_);
lean_dec(v_n_3061_);
lean_del_object(v___x_3059_);
lean_dec(v_a_3036_);
lean_dec_ref(v_a_3035_);
lean_dec(v_a_3034_);
lean_dec_ref(v_a_3033_);
v___x_3066_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3056_ == 0)
{
lean_ctor_set(v___x_3055_, 0, v___x_3066_);
v___x_3068_ = v___x_3055_;
goto v_reusejp_3067_;
}
else
{
lean_object* v_reuseFailAlloc_3069_; 
v_reuseFailAlloc_3069_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3069_, 0, v___x_3066_);
v___x_3068_ = v_reuseFailAlloc_3069_;
goto v_reusejp_3067_;
}
v_reusejp_3067_:
{
return v___x_3068_;
}
}
else
{
lean_object* v___x_3070_; lean_object* v___x_3071_; 
lean_del_object(v___x_3055_);
v___x_3070_ = lean_nat_div(v_value_3062_, v_value_3064_);
lean_dec(v_value_3064_);
lean_dec(v_value_3062_);
v___x_3071_ = l_BitVec_toExpr_x27___redArg(v_n_3061_, v___x_3070_, v_a_3032_, v_a_3033_, v_a_3034_, v_a_3035_, v_a_3036_);
if (lean_obj_tag(v___x_3071_) == 0)
{
lean_object* v_a_3072_; lean_object* v___x_3074_; uint8_t v_isShared_3075_; uint8_t v_isSharedCheck_3082_; 
v_a_3072_ = lean_ctor_get(v___x_3071_, 0);
v_isSharedCheck_3082_ = !lean_is_exclusive(v___x_3071_);
if (v_isSharedCheck_3082_ == 0)
{
v___x_3074_ = v___x_3071_;
v_isShared_3075_ = v_isSharedCheck_3082_;
goto v_resetjp_3073_;
}
else
{
lean_inc(v_a_3072_);
lean_dec(v___x_3071_);
v___x_3074_ = lean_box(0);
v_isShared_3075_ = v_isSharedCheck_3082_;
goto v_resetjp_3073_;
}
v_resetjp_3073_:
{
lean_object* v___x_3077_; 
if (v_isShared_3060_ == 0)
{
lean_ctor_set_tag(v___x_3059_, 0);
lean_ctor_set(v___x_3059_, 0, v_a_3072_);
v___x_3077_ = v___x_3059_;
goto v_reusejp_3076_;
}
else
{
lean_object* v_reuseFailAlloc_3081_; 
v_reuseFailAlloc_3081_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3081_, 0, v_a_3072_);
v___x_3077_ = v_reuseFailAlloc_3081_;
goto v_reusejp_3076_;
}
v_reusejp_3076_:
{
lean_object* v___x_3079_; 
if (v_isShared_3075_ == 0)
{
lean_ctor_set(v___x_3074_, 0, v___x_3077_);
v___x_3079_ = v___x_3074_;
goto v_reusejp_3078_;
}
else
{
lean_object* v_reuseFailAlloc_3080_; 
v_reuseFailAlloc_3080_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3080_, 0, v___x_3077_);
v___x_3079_ = v_reuseFailAlloc_3080_;
goto v_reusejp_3078_;
}
v_reusejp_3078_:
{
return v___x_3079_;
}
}
}
}
else
{
lean_object* v_a_3083_; lean_object* v___x_3085_; uint8_t v_isShared_3086_; uint8_t v_isSharedCheck_3090_; 
lean_del_object(v___x_3059_);
v_a_3083_ = lean_ctor_get(v___x_3071_, 0);
v_isSharedCheck_3090_ = !lean_is_exclusive(v___x_3071_);
if (v_isSharedCheck_3090_ == 0)
{
v___x_3085_ = v___x_3071_;
v_isShared_3086_ = v_isSharedCheck_3090_;
goto v_resetjp_3084_;
}
else
{
lean_inc(v_a_3083_);
lean_dec(v___x_3071_);
v___x_3085_ = lean_box(0);
v_isShared_3086_ = v_isSharedCheck_3090_;
goto v_resetjp_3084_;
}
v_resetjp_3084_:
{
lean_object* v___x_3088_; 
if (v_isShared_3086_ == 0)
{
v___x_3088_ = v___x_3085_;
goto v_reusejp_3087_;
}
else
{
lean_object* v_reuseFailAlloc_3089_; 
v_reuseFailAlloc_3089_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3089_, 0, v_a_3083_);
v___x_3088_ = v_reuseFailAlloc_3089_;
goto v_reusejp_3087_;
}
v_reusejp_3087_:
{
return v___x_3088_;
}
}
}
}
}
}
else
{
lean_object* v___x_3092_; lean_object* v___x_3094_; 
lean_dec(v_a_3053_);
lean_dec(v_val_3050_);
lean_dec(v_a_3036_);
lean_dec_ref(v_a_3035_);
lean_dec(v_a_3034_);
lean_dec_ref(v_a_3033_);
v___x_3092_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3056_ == 0)
{
lean_ctor_set(v___x_3055_, 0, v___x_3092_);
v___x_3094_ = v___x_3055_;
goto v_reusejp_3093_;
}
else
{
lean_object* v_reuseFailAlloc_3095_; 
v_reuseFailAlloc_3095_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3095_, 0, v___x_3092_);
v___x_3094_ = v_reuseFailAlloc_3095_;
goto v_reusejp_3093_;
}
v_reusejp_3093_:
{
return v___x_3094_;
}
}
}
}
else
{
lean_object* v_a_3097_; lean_object* v___x_3099_; uint8_t v_isShared_3100_; uint8_t v_isSharedCheck_3104_; 
lean_dec(v_val_3050_);
lean_dec(v_a_3036_);
lean_dec_ref(v_a_3035_);
lean_dec(v_a_3034_);
lean_dec_ref(v_a_3033_);
v_a_3097_ = lean_ctor_get(v___x_3052_, 0);
v_isSharedCheck_3104_ = !lean_is_exclusive(v___x_3052_);
if (v_isSharedCheck_3104_ == 0)
{
v___x_3099_ = v___x_3052_;
v_isShared_3100_ = v_isSharedCheck_3104_;
goto v_resetjp_3098_;
}
else
{
lean_inc(v_a_3097_);
lean_dec(v___x_3052_);
v___x_3099_ = lean_box(0);
v_isShared_3100_ = v_isSharedCheck_3104_;
goto v_resetjp_3098_;
}
v_resetjp_3098_:
{
lean_object* v___x_3102_; 
if (v_isShared_3100_ == 0)
{
v___x_3102_ = v___x_3099_;
goto v_reusejp_3101_;
}
else
{
lean_object* v_reuseFailAlloc_3103_; 
v_reuseFailAlloc_3103_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3103_, 0, v_a_3097_);
v___x_3102_ = v_reuseFailAlloc_3103_;
goto v_reusejp_3101_;
}
v_reusejp_3101_:
{
return v___x_3102_;
}
}
}
}
else
{
lean_object* v___x_3105_; lean_object* v___x_3107_; 
lean_dec(v_a_3046_);
lean_dec(v_a_3036_);
lean_dec_ref(v_a_3035_);
lean_dec(v_a_3034_);
lean_dec_ref(v_a_3033_);
v___x_3105_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3049_ == 0)
{
lean_ctor_set(v___x_3048_, 0, v___x_3105_);
v___x_3107_ = v___x_3048_;
goto v_reusejp_3106_;
}
else
{
lean_object* v_reuseFailAlloc_3108_; 
v_reuseFailAlloc_3108_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3108_, 0, v___x_3105_);
v___x_3107_ = v_reuseFailAlloc_3108_;
goto v_reusejp_3106_;
}
v_reusejp_3106_:
{
return v___x_3107_;
}
}
}
}
else
{
lean_object* v_a_3110_; lean_object* v___x_3112_; uint8_t v_isShared_3113_; uint8_t v_isSharedCheck_3117_; 
lean_dec(v_a_3036_);
lean_dec_ref(v_a_3035_);
lean_dec(v_a_3034_);
lean_dec_ref(v_a_3033_);
v_a_3110_ = lean_ctor_get(v___x_3045_, 0);
v_isSharedCheck_3117_ = !lean_is_exclusive(v___x_3045_);
if (v_isSharedCheck_3117_ == 0)
{
v___x_3112_ = v___x_3045_;
v_isShared_3113_ = v_isSharedCheck_3117_;
goto v_resetjp_3111_;
}
else
{
lean_inc(v_a_3110_);
lean_dec(v___x_3045_);
v___x_3112_ = lean_box(0);
v_isShared_3113_ = v_isSharedCheck_3117_;
goto v_resetjp_3111_;
}
v_resetjp_3111_:
{
lean_object* v___x_3115_; 
if (v_isShared_3113_ == 0)
{
v___x_3115_ = v___x_3112_;
goto v_reusejp_3114_;
}
else
{
lean_object* v_reuseFailAlloc_3116_; 
v_reuseFailAlloc_3116_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3116_, 0, v_a_3110_);
v___x_3115_ = v_reuseFailAlloc_3116_;
goto v_reusejp_3114_;
}
v_reusejp_3114_:
{
return v___x_3115_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___redArg___boxed(lean_object* v_e_3118_, lean_object* v_a_3119_, lean_object* v_a_3120_, lean_object* v_a_3121_, lean_object* v_a_3122_, lean_object* v_a_3123_, lean_object* v_a_3124_){
_start:
{
lean_object* v_res_3125_; 
v_res_3125_ = l_BitVec_reduceDiv___redArg(v_e_3118_, v_a_3119_, v_a_3120_, v_a_3121_, v_a_3122_, v_a_3123_);
lean_dec_ref(v_a_3119_);
lean_dec_ref(v_e_3118_);
return v_res_3125_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceDiv(lean_object* v_e_3126_, lean_object* v_a_3127_, lean_object* v_a_3128_, lean_object* v_a_3129_, lean_object* v_a_3130_, lean_object* v_a_3131_, lean_object* v_a_3132_, lean_object* v_a_3133_){
_start:
{
lean_object* v___x_3135_; 
v___x_3135_ = l_BitVec_reduceDiv___redArg(v_e_3126_, v_a_3128_, v_a_3130_, v_a_3131_, v_a_3132_, v_a_3133_);
return v___x_3135_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___boxed(lean_object* v_e_3136_, lean_object* v_a_3137_, lean_object* v_a_3138_, lean_object* v_a_3139_, lean_object* v_a_3140_, lean_object* v_a_3141_, lean_object* v_a_3142_, lean_object* v_a_3143_, lean_object* v_a_3144_){
_start:
{
lean_object* v_res_3145_; 
v_res_3145_ = l_BitVec_reduceDiv(v_e_3136_, v_a_3137_, v_a_3138_, v_a_3139_, v_a_3140_, v_a_3141_, v_a_3142_, v_a_3143_);
lean_dec(v_a_3139_);
lean_dec_ref(v_a_3138_);
lean_dec(v_a_3137_);
lean_dec_ref(v_e_3136_);
return v_res_3145_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_3153_; lean_object* v___x_3154_; lean_object* v___x_3155_; lean_object* v___x_3156_; lean_object* v___x_3157_; lean_object* v___x_3158_; lean_object* v___x_3159_; lean_object* v___x_3160_; lean_object* v___x_3161_; lean_object* v___x_3162_; lean_object* v___x_3163_; lean_object* v___x_3164_; lean_object* v___x_3165_; lean_object* v___x_3166_; lean_object* v___x_3167_; 
v___x_3153_ = lean_box(0);
v___x_3154_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_3155_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_));
v___x_3156_ = lean_unsigned_to_nat(10u);
v___x_3157_ = lean_mk_empty_array_with_capacity(v___x_3156_);
v___x_3158_ = lean_array_push(v___x_3157_, v___x_3155_);
v___x_3159_ = lean_array_push(v___x_3158_, v___x_3154_);
v___x_3160_ = lean_array_push(v___x_3159_, v___x_3153_);
v___x_3161_ = lean_array_push(v___x_3160_, v___x_3154_);
v___x_3162_ = lean_array_push(v___x_3161_, v___x_3153_);
v___x_3163_ = lean_array_push(v___x_3162_, v___x_3154_);
v___x_3164_ = lean_array_push(v___x_3163_, v___x_3153_);
v___x_3165_ = lean_array_push(v___x_3164_, v___x_3153_);
v___x_3166_ = lean_array_push(v___x_3165_, v___x_3153_);
v___x_3167_ = lean_array_push(v___x_3166_, v___x_3153_);
return v___x_3167_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_3169_; lean_object* v___x_3170_; lean_object* v___x_3171_; lean_object* v___x_3172_; 
v___x_3169_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_));
v___x_3170_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_);
v___x_3171_ = lean_alloc_closure((void*)(l_BitVec_reduceDiv___boxed), 9, 0);
v___x_3172_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_3169_, v___x_3170_, v___x_3171_);
return v___x_3172_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20____boxed(lean_object* v_a_3173_){
_start:
{
lean_object* v_res_3174_; 
v_res_3174_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_();
return v_res_3174_;
}
}
static lean_object* _init_l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_3175_; lean_object* v___x_3176_; 
v___x_3175_ = lean_alloc_closure((void*)(l_BitVec_reduceDiv___boxed), 9, 0);
v___x_3176_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3176_, 0, v___x_3175_);
return v___x_3176_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_3178_; uint8_t v___x_3179_; lean_object* v___x_3180_; lean_object* v___x_3181_; 
v___x_3178_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_));
v___x_3179_ = 1;
v___x_3180_ = lean_obj_once(&l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_, &l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22__once, _init_l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_);
v___x_3181_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_3178_, v___x_3179_, v___x_3180_);
return v___x_3181_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22____boxed(lean_object* v_a_3182_){
_start:
{
lean_object* v_res_3183_; 
v_res_3183_ = l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_();
return v_res_3183_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_3185_; uint8_t v___x_3186_; lean_object* v___x_3187_; lean_object* v___x_3188_; 
v___x_3185_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_));
v___x_3186_ = 1;
v___x_3187_ = lean_obj_once(&l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_, &l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22__once, _init_l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_);
v___x_3188_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_3185_, v___x_3186_, v___x_3187_);
return v___x_3188_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_24____boxed(lean_object* v_a_3189_){
_start:
{
lean_object* v_res_3190_; 
v_res_3190_ = l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_24_();
return v_res_3190_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMod___redArg(lean_object* v_e_3196_, lean_object* v_a_3197_, lean_object* v_a_3198_, lean_object* v_a_3199_, lean_object* v_a_3200_, lean_object* v_a_3201_){
_start:
{
lean_object* v___x_3203_; lean_object* v___x_3204_; uint8_t v___x_3205_; 
v___x_3203_ = ((lean_object*)(l_BitVec_reduceMod___redArg___closed__2));
v___x_3204_ = lean_unsigned_to_nat(6u);
v___x_3205_ = l_Lean_Expr_isAppOfArity(v_e_3196_, v___x_3203_, v___x_3204_);
if (v___x_3205_ == 0)
{
lean_object* v___x_3206_; lean_object* v___x_3207_; 
lean_dec(v_a_3201_);
lean_dec_ref(v_a_3200_);
lean_dec(v_a_3199_);
lean_dec_ref(v_a_3198_);
v___x_3206_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_3207_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3207_, 0, v___x_3206_);
return v___x_3207_;
}
else
{
lean_object* v___x_3208_; lean_object* v___x_3209_; lean_object* v___x_3210_; 
v___x_3208_ = l_Lean_Expr_appFn_x21(v_e_3196_);
v___x_3209_ = l_Lean_Expr_appArg_x21(v___x_3208_);
lean_dec_ref(v___x_3208_);
lean_inc(v_a_3201_);
lean_inc_ref(v_a_3200_);
lean_inc(v_a_3199_);
lean_inc_ref(v_a_3198_);
v___x_3210_ = l_BitVec_fromExpr_x3f___redArg(v___x_3209_, v_a_3198_, v_a_3199_, v_a_3200_, v_a_3201_);
if (lean_obj_tag(v___x_3210_) == 0)
{
lean_object* v_a_3211_; lean_object* v___x_3213_; uint8_t v_isShared_3214_; uint8_t v_isSharedCheck_3274_; 
v_a_3211_ = lean_ctor_get(v___x_3210_, 0);
v_isSharedCheck_3274_ = !lean_is_exclusive(v___x_3210_);
if (v_isSharedCheck_3274_ == 0)
{
v___x_3213_ = v___x_3210_;
v_isShared_3214_ = v_isSharedCheck_3274_;
goto v_resetjp_3212_;
}
else
{
lean_inc(v_a_3211_);
lean_dec(v___x_3210_);
v___x_3213_ = lean_box(0);
v_isShared_3214_ = v_isSharedCheck_3274_;
goto v_resetjp_3212_;
}
v_resetjp_3212_:
{
if (lean_obj_tag(v_a_3211_) == 1)
{
lean_object* v_val_3215_; lean_object* v___x_3216_; lean_object* v___x_3217_; 
lean_del_object(v___x_3213_);
v_val_3215_ = lean_ctor_get(v_a_3211_, 0);
lean_inc(v_val_3215_);
lean_dec_ref(v_a_3211_);
v___x_3216_ = l_Lean_Expr_appArg_x21(v_e_3196_);
lean_inc(v_a_3201_);
lean_inc_ref(v_a_3200_);
lean_inc(v_a_3199_);
lean_inc_ref(v_a_3198_);
v___x_3217_ = l_BitVec_fromExpr_x3f___redArg(v___x_3216_, v_a_3198_, v_a_3199_, v_a_3200_, v_a_3201_);
if (lean_obj_tag(v___x_3217_) == 0)
{
lean_object* v_a_3218_; lean_object* v___x_3220_; uint8_t v_isShared_3221_; uint8_t v_isSharedCheck_3261_; 
v_a_3218_ = lean_ctor_get(v___x_3217_, 0);
v_isSharedCheck_3261_ = !lean_is_exclusive(v___x_3217_);
if (v_isSharedCheck_3261_ == 0)
{
v___x_3220_ = v___x_3217_;
v_isShared_3221_ = v_isSharedCheck_3261_;
goto v_resetjp_3219_;
}
else
{
lean_inc(v_a_3218_);
lean_dec(v___x_3217_);
v___x_3220_ = lean_box(0);
v_isShared_3221_ = v_isSharedCheck_3261_;
goto v_resetjp_3219_;
}
v_resetjp_3219_:
{
if (lean_obj_tag(v_a_3218_) == 1)
{
lean_object* v_val_3222_; lean_object* v___x_3224_; uint8_t v_isShared_3225_; uint8_t v_isSharedCheck_3256_; 
v_val_3222_ = lean_ctor_get(v_a_3218_, 0);
v_isSharedCheck_3256_ = !lean_is_exclusive(v_a_3218_);
if (v_isSharedCheck_3256_ == 0)
{
v___x_3224_ = v_a_3218_;
v_isShared_3225_ = v_isSharedCheck_3256_;
goto v_resetjp_3223_;
}
else
{
lean_inc(v_val_3222_);
lean_dec(v_a_3218_);
v___x_3224_ = lean_box(0);
v_isShared_3225_ = v_isSharedCheck_3256_;
goto v_resetjp_3223_;
}
v_resetjp_3223_:
{
lean_object* v_n_3226_; lean_object* v_value_3227_; lean_object* v_n_3228_; lean_object* v_value_3229_; uint8_t v___x_3230_; 
v_n_3226_ = lean_ctor_get(v_val_3215_, 0);
lean_inc(v_n_3226_);
v_value_3227_ = lean_ctor_get(v_val_3215_, 1);
lean_inc(v_value_3227_);
lean_dec(v_val_3215_);
v_n_3228_ = lean_ctor_get(v_val_3222_, 0);
lean_inc(v_n_3228_);
v_value_3229_ = lean_ctor_get(v_val_3222_, 1);
lean_inc(v_value_3229_);
lean_dec(v_val_3222_);
v___x_3230_ = lean_nat_dec_eq(v_n_3226_, v_n_3228_);
lean_dec(v_n_3228_);
if (v___x_3230_ == 0)
{
lean_object* v___x_3231_; lean_object* v___x_3233_; 
lean_dec(v_value_3229_);
lean_dec(v_value_3227_);
lean_dec(v_n_3226_);
lean_del_object(v___x_3224_);
lean_dec(v_a_3201_);
lean_dec_ref(v_a_3200_);
lean_dec(v_a_3199_);
lean_dec_ref(v_a_3198_);
v___x_3231_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3221_ == 0)
{
lean_ctor_set(v___x_3220_, 0, v___x_3231_);
v___x_3233_ = v___x_3220_;
goto v_reusejp_3232_;
}
else
{
lean_object* v_reuseFailAlloc_3234_; 
v_reuseFailAlloc_3234_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3234_, 0, v___x_3231_);
v___x_3233_ = v_reuseFailAlloc_3234_;
goto v_reusejp_3232_;
}
v_reusejp_3232_:
{
return v___x_3233_;
}
}
else
{
lean_object* v___x_3235_; lean_object* v___x_3236_; 
lean_del_object(v___x_3220_);
v___x_3235_ = lean_nat_mod(v_value_3227_, v_value_3229_);
lean_dec(v_value_3229_);
lean_dec(v_value_3227_);
v___x_3236_ = l_BitVec_toExpr_x27___redArg(v_n_3226_, v___x_3235_, v_a_3197_, v_a_3198_, v_a_3199_, v_a_3200_, v_a_3201_);
if (lean_obj_tag(v___x_3236_) == 0)
{
lean_object* v_a_3237_; lean_object* v___x_3239_; uint8_t v_isShared_3240_; uint8_t v_isSharedCheck_3247_; 
v_a_3237_ = lean_ctor_get(v___x_3236_, 0);
v_isSharedCheck_3247_ = !lean_is_exclusive(v___x_3236_);
if (v_isSharedCheck_3247_ == 0)
{
v___x_3239_ = v___x_3236_;
v_isShared_3240_ = v_isSharedCheck_3247_;
goto v_resetjp_3238_;
}
else
{
lean_inc(v_a_3237_);
lean_dec(v___x_3236_);
v___x_3239_ = lean_box(0);
v_isShared_3240_ = v_isSharedCheck_3247_;
goto v_resetjp_3238_;
}
v_resetjp_3238_:
{
lean_object* v___x_3242_; 
if (v_isShared_3225_ == 0)
{
lean_ctor_set_tag(v___x_3224_, 0);
lean_ctor_set(v___x_3224_, 0, v_a_3237_);
v___x_3242_ = v___x_3224_;
goto v_reusejp_3241_;
}
else
{
lean_object* v_reuseFailAlloc_3246_; 
v_reuseFailAlloc_3246_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3246_, 0, v_a_3237_);
v___x_3242_ = v_reuseFailAlloc_3246_;
goto v_reusejp_3241_;
}
v_reusejp_3241_:
{
lean_object* v___x_3244_; 
if (v_isShared_3240_ == 0)
{
lean_ctor_set(v___x_3239_, 0, v___x_3242_);
v___x_3244_ = v___x_3239_;
goto v_reusejp_3243_;
}
else
{
lean_object* v_reuseFailAlloc_3245_; 
v_reuseFailAlloc_3245_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3245_, 0, v___x_3242_);
v___x_3244_ = v_reuseFailAlloc_3245_;
goto v_reusejp_3243_;
}
v_reusejp_3243_:
{
return v___x_3244_;
}
}
}
}
else
{
lean_object* v_a_3248_; lean_object* v___x_3250_; uint8_t v_isShared_3251_; uint8_t v_isSharedCheck_3255_; 
lean_del_object(v___x_3224_);
v_a_3248_ = lean_ctor_get(v___x_3236_, 0);
v_isSharedCheck_3255_ = !lean_is_exclusive(v___x_3236_);
if (v_isSharedCheck_3255_ == 0)
{
v___x_3250_ = v___x_3236_;
v_isShared_3251_ = v_isSharedCheck_3255_;
goto v_resetjp_3249_;
}
else
{
lean_inc(v_a_3248_);
lean_dec(v___x_3236_);
v___x_3250_ = lean_box(0);
v_isShared_3251_ = v_isSharedCheck_3255_;
goto v_resetjp_3249_;
}
v_resetjp_3249_:
{
lean_object* v___x_3253_; 
if (v_isShared_3251_ == 0)
{
v___x_3253_ = v___x_3250_;
goto v_reusejp_3252_;
}
else
{
lean_object* v_reuseFailAlloc_3254_; 
v_reuseFailAlloc_3254_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3254_, 0, v_a_3248_);
v___x_3253_ = v_reuseFailAlloc_3254_;
goto v_reusejp_3252_;
}
v_reusejp_3252_:
{
return v___x_3253_;
}
}
}
}
}
}
else
{
lean_object* v___x_3257_; lean_object* v___x_3259_; 
lean_dec(v_a_3218_);
lean_dec(v_val_3215_);
lean_dec(v_a_3201_);
lean_dec_ref(v_a_3200_);
lean_dec(v_a_3199_);
lean_dec_ref(v_a_3198_);
v___x_3257_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3221_ == 0)
{
lean_ctor_set(v___x_3220_, 0, v___x_3257_);
v___x_3259_ = v___x_3220_;
goto v_reusejp_3258_;
}
else
{
lean_object* v_reuseFailAlloc_3260_; 
v_reuseFailAlloc_3260_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3260_, 0, v___x_3257_);
v___x_3259_ = v_reuseFailAlloc_3260_;
goto v_reusejp_3258_;
}
v_reusejp_3258_:
{
return v___x_3259_;
}
}
}
}
else
{
lean_object* v_a_3262_; lean_object* v___x_3264_; uint8_t v_isShared_3265_; uint8_t v_isSharedCheck_3269_; 
lean_dec(v_val_3215_);
lean_dec(v_a_3201_);
lean_dec_ref(v_a_3200_);
lean_dec(v_a_3199_);
lean_dec_ref(v_a_3198_);
v_a_3262_ = lean_ctor_get(v___x_3217_, 0);
v_isSharedCheck_3269_ = !lean_is_exclusive(v___x_3217_);
if (v_isSharedCheck_3269_ == 0)
{
v___x_3264_ = v___x_3217_;
v_isShared_3265_ = v_isSharedCheck_3269_;
goto v_resetjp_3263_;
}
else
{
lean_inc(v_a_3262_);
lean_dec(v___x_3217_);
v___x_3264_ = lean_box(0);
v_isShared_3265_ = v_isSharedCheck_3269_;
goto v_resetjp_3263_;
}
v_resetjp_3263_:
{
lean_object* v___x_3267_; 
if (v_isShared_3265_ == 0)
{
v___x_3267_ = v___x_3264_;
goto v_reusejp_3266_;
}
else
{
lean_object* v_reuseFailAlloc_3268_; 
v_reuseFailAlloc_3268_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3268_, 0, v_a_3262_);
v___x_3267_ = v_reuseFailAlloc_3268_;
goto v_reusejp_3266_;
}
v_reusejp_3266_:
{
return v___x_3267_;
}
}
}
}
else
{
lean_object* v___x_3270_; lean_object* v___x_3272_; 
lean_dec(v_a_3211_);
lean_dec(v_a_3201_);
lean_dec_ref(v_a_3200_);
lean_dec(v_a_3199_);
lean_dec_ref(v_a_3198_);
v___x_3270_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3214_ == 0)
{
lean_ctor_set(v___x_3213_, 0, v___x_3270_);
v___x_3272_ = v___x_3213_;
goto v_reusejp_3271_;
}
else
{
lean_object* v_reuseFailAlloc_3273_; 
v_reuseFailAlloc_3273_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3273_, 0, v___x_3270_);
v___x_3272_ = v_reuseFailAlloc_3273_;
goto v_reusejp_3271_;
}
v_reusejp_3271_:
{
return v___x_3272_;
}
}
}
}
else
{
lean_object* v_a_3275_; lean_object* v___x_3277_; uint8_t v_isShared_3278_; uint8_t v_isSharedCheck_3282_; 
lean_dec(v_a_3201_);
lean_dec_ref(v_a_3200_);
lean_dec(v_a_3199_);
lean_dec_ref(v_a_3198_);
v_a_3275_ = lean_ctor_get(v___x_3210_, 0);
v_isSharedCheck_3282_ = !lean_is_exclusive(v___x_3210_);
if (v_isSharedCheck_3282_ == 0)
{
v___x_3277_ = v___x_3210_;
v_isShared_3278_ = v_isSharedCheck_3282_;
goto v_resetjp_3276_;
}
else
{
lean_inc(v_a_3275_);
lean_dec(v___x_3210_);
v___x_3277_ = lean_box(0);
v_isShared_3278_ = v_isSharedCheck_3282_;
goto v_resetjp_3276_;
}
v_resetjp_3276_:
{
lean_object* v___x_3280_; 
if (v_isShared_3278_ == 0)
{
v___x_3280_ = v___x_3277_;
goto v_reusejp_3279_;
}
else
{
lean_object* v_reuseFailAlloc_3281_; 
v_reuseFailAlloc_3281_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3281_, 0, v_a_3275_);
v___x_3280_ = v_reuseFailAlloc_3281_;
goto v_reusejp_3279_;
}
v_reusejp_3279_:
{
return v___x_3280_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMod___redArg___boxed(lean_object* v_e_3283_, lean_object* v_a_3284_, lean_object* v_a_3285_, lean_object* v_a_3286_, lean_object* v_a_3287_, lean_object* v_a_3288_, lean_object* v_a_3289_){
_start:
{
lean_object* v_res_3290_; 
v_res_3290_ = l_BitVec_reduceMod___redArg(v_e_3283_, v_a_3284_, v_a_3285_, v_a_3286_, v_a_3287_, v_a_3288_);
lean_dec_ref(v_a_3284_);
lean_dec_ref(v_e_3283_);
return v_res_3290_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMod(lean_object* v_e_3291_, lean_object* v_a_3292_, lean_object* v_a_3293_, lean_object* v_a_3294_, lean_object* v_a_3295_, lean_object* v_a_3296_, lean_object* v_a_3297_, lean_object* v_a_3298_){
_start:
{
lean_object* v___x_3300_; 
v___x_3300_ = l_BitVec_reduceMod___redArg(v_e_3291_, v_a_3293_, v_a_3295_, v_a_3296_, v_a_3297_, v_a_3298_);
return v___x_3300_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMod___boxed(lean_object* v_e_3301_, lean_object* v_a_3302_, lean_object* v_a_3303_, lean_object* v_a_3304_, lean_object* v_a_3305_, lean_object* v_a_3306_, lean_object* v_a_3307_, lean_object* v_a_3308_, lean_object* v_a_3309_){
_start:
{
lean_object* v_res_3310_; 
v_res_3310_ = l_BitVec_reduceMod(v_e_3301_, v_a_3302_, v_a_3303_, v_a_3304_, v_a_3305_, v_a_3306_, v_a_3307_, v_a_3308_);
lean_dec(v_a_3304_);
lean_dec_ref(v_a_3303_);
lean_dec(v_a_3302_);
lean_dec_ref(v_e_3301_);
return v_res_3310_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_3318_; lean_object* v___x_3319_; lean_object* v___x_3320_; lean_object* v___x_3321_; lean_object* v___x_3322_; lean_object* v___x_3323_; lean_object* v___x_3324_; lean_object* v___x_3325_; lean_object* v___x_3326_; lean_object* v___x_3327_; lean_object* v___x_3328_; lean_object* v___x_3329_; lean_object* v___x_3330_; lean_object* v___x_3331_; lean_object* v___x_3332_; 
v___x_3318_ = lean_box(0);
v___x_3319_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_3320_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_));
v___x_3321_ = lean_unsigned_to_nat(10u);
v___x_3322_ = lean_mk_empty_array_with_capacity(v___x_3321_);
v___x_3323_ = lean_array_push(v___x_3322_, v___x_3320_);
v___x_3324_ = lean_array_push(v___x_3323_, v___x_3319_);
v___x_3325_ = lean_array_push(v___x_3324_, v___x_3318_);
v___x_3326_ = lean_array_push(v___x_3325_, v___x_3319_);
v___x_3327_ = lean_array_push(v___x_3326_, v___x_3318_);
v___x_3328_ = lean_array_push(v___x_3327_, v___x_3319_);
v___x_3329_ = lean_array_push(v___x_3328_, v___x_3318_);
v___x_3330_ = lean_array_push(v___x_3329_, v___x_3318_);
v___x_3331_ = lean_array_push(v___x_3330_, v___x_3318_);
v___x_3332_ = lean_array_push(v___x_3331_, v___x_3318_);
return v___x_3332_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_3334_; lean_object* v___x_3335_; lean_object* v___x_3336_; lean_object* v___x_3337_; 
v___x_3334_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_));
v___x_3335_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_);
v___x_3336_ = lean_alloc_closure((void*)(l_BitVec_reduceMod___boxed), 9, 0);
v___x_3337_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_3334_, v___x_3335_, v___x_3336_);
return v___x_3337_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20____boxed(lean_object* v_a_3338_){
_start:
{
lean_object* v_res_3339_; 
v_res_3339_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_();
return v_res_3339_;
}
}
static lean_object* _init_l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_3340_; lean_object* v___x_3341_; 
v___x_3340_ = lean_alloc_closure((void*)(l_BitVec_reduceMod___boxed), 9, 0);
v___x_3341_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3341_, 0, v___x_3340_);
return v___x_3341_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_3343_; uint8_t v___x_3344_; lean_object* v___x_3345_; lean_object* v___x_3346_; 
v___x_3343_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_));
v___x_3344_ = 1;
v___x_3345_ = lean_obj_once(&l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_, &l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22__once, _init_l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_);
v___x_3346_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_3343_, v___x_3344_, v___x_3345_);
return v___x_3346_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22____boxed(lean_object* v_a_3347_){
_start:
{
lean_object* v_res_3348_; 
v_res_3348_ = l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_();
return v_res_3348_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_3350_; uint8_t v___x_3351_; lean_object* v___x_3352_; lean_object* v___x_3353_; 
v___x_3350_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_));
v___x_3351_ = 1;
v___x_3352_ = lean_obj_once(&l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_, &l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22__once, _init_l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_);
v___x_3353_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_3350_, v___x_3351_, v___x_3352_);
return v___x_3353_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_24____boxed(lean_object* v_a_3354_){
_start:
{
lean_object* v_res_3355_; 
v_res_3355_ = l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_24_();
return v_res_3355_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___redArg(lean_object* v_e_3360_, lean_object* v_a_3361_, lean_object* v_a_3362_, lean_object* v_a_3363_, lean_object* v_a_3364_, lean_object* v_a_3365_){
_start:
{
lean_object* v___x_3367_; lean_object* v___x_3368_; uint8_t v___x_3369_; 
v___x_3367_ = ((lean_object*)(l_BitVec_reduceUMod___redArg___closed__1));
v___x_3368_ = lean_unsigned_to_nat(3u);
v___x_3369_ = l_Lean_Expr_isAppOfArity(v_e_3360_, v___x_3367_, v___x_3368_);
if (v___x_3369_ == 0)
{
lean_object* v___x_3370_; lean_object* v___x_3371_; 
lean_dec(v_a_3365_);
lean_dec_ref(v_a_3364_);
lean_dec(v_a_3363_);
lean_dec_ref(v_a_3362_);
v___x_3370_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_3371_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3371_, 0, v___x_3370_);
return v___x_3371_;
}
else
{
lean_object* v___x_3372_; lean_object* v___x_3373_; lean_object* v___x_3374_; 
v___x_3372_ = l_Lean_Expr_appFn_x21(v_e_3360_);
v___x_3373_ = l_Lean_Expr_appArg_x21(v___x_3372_);
lean_dec_ref(v___x_3372_);
lean_inc(v_a_3365_);
lean_inc_ref(v_a_3364_);
lean_inc(v_a_3363_);
lean_inc_ref(v_a_3362_);
v___x_3374_ = l_BitVec_fromExpr_x3f___redArg(v___x_3373_, v_a_3362_, v_a_3363_, v_a_3364_, v_a_3365_);
if (lean_obj_tag(v___x_3374_) == 0)
{
lean_object* v_a_3375_; lean_object* v___x_3377_; uint8_t v_isShared_3378_; uint8_t v_isSharedCheck_3438_; 
v_a_3375_ = lean_ctor_get(v___x_3374_, 0);
v_isSharedCheck_3438_ = !lean_is_exclusive(v___x_3374_);
if (v_isSharedCheck_3438_ == 0)
{
v___x_3377_ = v___x_3374_;
v_isShared_3378_ = v_isSharedCheck_3438_;
goto v_resetjp_3376_;
}
else
{
lean_inc(v_a_3375_);
lean_dec(v___x_3374_);
v___x_3377_ = lean_box(0);
v_isShared_3378_ = v_isSharedCheck_3438_;
goto v_resetjp_3376_;
}
v_resetjp_3376_:
{
if (lean_obj_tag(v_a_3375_) == 1)
{
lean_object* v_val_3379_; lean_object* v___x_3380_; lean_object* v___x_3381_; 
lean_del_object(v___x_3377_);
v_val_3379_ = lean_ctor_get(v_a_3375_, 0);
lean_inc(v_val_3379_);
lean_dec_ref(v_a_3375_);
v___x_3380_ = l_Lean_Expr_appArg_x21(v_e_3360_);
lean_inc(v_a_3365_);
lean_inc_ref(v_a_3364_);
lean_inc(v_a_3363_);
lean_inc_ref(v_a_3362_);
v___x_3381_ = l_BitVec_fromExpr_x3f___redArg(v___x_3380_, v_a_3362_, v_a_3363_, v_a_3364_, v_a_3365_);
if (lean_obj_tag(v___x_3381_) == 0)
{
lean_object* v_a_3382_; lean_object* v___x_3384_; uint8_t v_isShared_3385_; uint8_t v_isSharedCheck_3425_; 
v_a_3382_ = lean_ctor_get(v___x_3381_, 0);
v_isSharedCheck_3425_ = !lean_is_exclusive(v___x_3381_);
if (v_isSharedCheck_3425_ == 0)
{
v___x_3384_ = v___x_3381_;
v_isShared_3385_ = v_isSharedCheck_3425_;
goto v_resetjp_3383_;
}
else
{
lean_inc(v_a_3382_);
lean_dec(v___x_3381_);
v___x_3384_ = lean_box(0);
v_isShared_3385_ = v_isSharedCheck_3425_;
goto v_resetjp_3383_;
}
v_resetjp_3383_:
{
if (lean_obj_tag(v_a_3382_) == 1)
{
lean_object* v_val_3386_; lean_object* v___x_3388_; uint8_t v_isShared_3389_; uint8_t v_isSharedCheck_3420_; 
v_val_3386_ = lean_ctor_get(v_a_3382_, 0);
v_isSharedCheck_3420_ = !lean_is_exclusive(v_a_3382_);
if (v_isSharedCheck_3420_ == 0)
{
v___x_3388_ = v_a_3382_;
v_isShared_3389_ = v_isSharedCheck_3420_;
goto v_resetjp_3387_;
}
else
{
lean_inc(v_val_3386_);
lean_dec(v_a_3382_);
v___x_3388_ = lean_box(0);
v_isShared_3389_ = v_isSharedCheck_3420_;
goto v_resetjp_3387_;
}
v_resetjp_3387_:
{
lean_object* v_n_3390_; lean_object* v_value_3391_; lean_object* v_n_3392_; lean_object* v_value_3393_; uint8_t v___x_3394_; 
v_n_3390_ = lean_ctor_get(v_val_3379_, 0);
lean_inc(v_n_3390_);
v_value_3391_ = lean_ctor_get(v_val_3379_, 1);
lean_inc(v_value_3391_);
lean_dec(v_val_3379_);
v_n_3392_ = lean_ctor_get(v_val_3386_, 0);
lean_inc(v_n_3392_);
v_value_3393_ = lean_ctor_get(v_val_3386_, 1);
lean_inc(v_value_3393_);
lean_dec(v_val_3386_);
v___x_3394_ = lean_nat_dec_eq(v_n_3390_, v_n_3392_);
lean_dec(v_n_3392_);
if (v___x_3394_ == 0)
{
lean_object* v___x_3395_; lean_object* v___x_3397_; 
lean_dec(v_value_3393_);
lean_dec(v_value_3391_);
lean_dec(v_n_3390_);
lean_del_object(v___x_3388_);
lean_dec(v_a_3365_);
lean_dec_ref(v_a_3364_);
lean_dec(v_a_3363_);
lean_dec_ref(v_a_3362_);
v___x_3395_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3385_ == 0)
{
lean_ctor_set(v___x_3384_, 0, v___x_3395_);
v___x_3397_ = v___x_3384_;
goto v_reusejp_3396_;
}
else
{
lean_object* v_reuseFailAlloc_3398_; 
v_reuseFailAlloc_3398_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3398_, 0, v___x_3395_);
v___x_3397_ = v_reuseFailAlloc_3398_;
goto v_reusejp_3396_;
}
v_reusejp_3396_:
{
return v___x_3397_;
}
}
else
{
lean_object* v___x_3399_; lean_object* v___x_3400_; 
lean_del_object(v___x_3384_);
v___x_3399_ = lean_nat_mod(v_value_3391_, v_value_3393_);
lean_dec(v_value_3393_);
lean_dec(v_value_3391_);
v___x_3400_ = l_BitVec_toExpr_x27___redArg(v_n_3390_, v___x_3399_, v_a_3361_, v_a_3362_, v_a_3363_, v_a_3364_, v_a_3365_);
if (lean_obj_tag(v___x_3400_) == 0)
{
lean_object* v_a_3401_; lean_object* v___x_3403_; uint8_t v_isShared_3404_; uint8_t v_isSharedCheck_3411_; 
v_a_3401_ = lean_ctor_get(v___x_3400_, 0);
v_isSharedCheck_3411_ = !lean_is_exclusive(v___x_3400_);
if (v_isSharedCheck_3411_ == 0)
{
v___x_3403_ = v___x_3400_;
v_isShared_3404_ = v_isSharedCheck_3411_;
goto v_resetjp_3402_;
}
else
{
lean_inc(v_a_3401_);
lean_dec(v___x_3400_);
v___x_3403_ = lean_box(0);
v_isShared_3404_ = v_isSharedCheck_3411_;
goto v_resetjp_3402_;
}
v_resetjp_3402_:
{
lean_object* v___x_3406_; 
if (v_isShared_3389_ == 0)
{
lean_ctor_set_tag(v___x_3388_, 0);
lean_ctor_set(v___x_3388_, 0, v_a_3401_);
v___x_3406_ = v___x_3388_;
goto v_reusejp_3405_;
}
else
{
lean_object* v_reuseFailAlloc_3410_; 
v_reuseFailAlloc_3410_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3410_, 0, v_a_3401_);
v___x_3406_ = v_reuseFailAlloc_3410_;
goto v_reusejp_3405_;
}
v_reusejp_3405_:
{
lean_object* v___x_3408_; 
if (v_isShared_3404_ == 0)
{
lean_ctor_set(v___x_3403_, 0, v___x_3406_);
v___x_3408_ = v___x_3403_;
goto v_reusejp_3407_;
}
else
{
lean_object* v_reuseFailAlloc_3409_; 
v_reuseFailAlloc_3409_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3409_, 0, v___x_3406_);
v___x_3408_ = v_reuseFailAlloc_3409_;
goto v_reusejp_3407_;
}
v_reusejp_3407_:
{
return v___x_3408_;
}
}
}
}
else
{
lean_object* v_a_3412_; lean_object* v___x_3414_; uint8_t v_isShared_3415_; uint8_t v_isSharedCheck_3419_; 
lean_del_object(v___x_3388_);
v_a_3412_ = lean_ctor_get(v___x_3400_, 0);
v_isSharedCheck_3419_ = !lean_is_exclusive(v___x_3400_);
if (v_isSharedCheck_3419_ == 0)
{
v___x_3414_ = v___x_3400_;
v_isShared_3415_ = v_isSharedCheck_3419_;
goto v_resetjp_3413_;
}
else
{
lean_inc(v_a_3412_);
lean_dec(v___x_3400_);
v___x_3414_ = lean_box(0);
v_isShared_3415_ = v_isSharedCheck_3419_;
goto v_resetjp_3413_;
}
v_resetjp_3413_:
{
lean_object* v___x_3417_; 
if (v_isShared_3415_ == 0)
{
v___x_3417_ = v___x_3414_;
goto v_reusejp_3416_;
}
else
{
lean_object* v_reuseFailAlloc_3418_; 
v_reuseFailAlloc_3418_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3418_, 0, v_a_3412_);
v___x_3417_ = v_reuseFailAlloc_3418_;
goto v_reusejp_3416_;
}
v_reusejp_3416_:
{
return v___x_3417_;
}
}
}
}
}
}
else
{
lean_object* v___x_3421_; lean_object* v___x_3423_; 
lean_dec(v_a_3382_);
lean_dec(v_val_3379_);
lean_dec(v_a_3365_);
lean_dec_ref(v_a_3364_);
lean_dec(v_a_3363_);
lean_dec_ref(v_a_3362_);
v___x_3421_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3385_ == 0)
{
lean_ctor_set(v___x_3384_, 0, v___x_3421_);
v___x_3423_ = v___x_3384_;
goto v_reusejp_3422_;
}
else
{
lean_object* v_reuseFailAlloc_3424_; 
v_reuseFailAlloc_3424_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3424_, 0, v___x_3421_);
v___x_3423_ = v_reuseFailAlloc_3424_;
goto v_reusejp_3422_;
}
v_reusejp_3422_:
{
return v___x_3423_;
}
}
}
}
else
{
lean_object* v_a_3426_; lean_object* v___x_3428_; uint8_t v_isShared_3429_; uint8_t v_isSharedCheck_3433_; 
lean_dec(v_val_3379_);
lean_dec(v_a_3365_);
lean_dec_ref(v_a_3364_);
lean_dec(v_a_3363_);
lean_dec_ref(v_a_3362_);
v_a_3426_ = lean_ctor_get(v___x_3381_, 0);
v_isSharedCheck_3433_ = !lean_is_exclusive(v___x_3381_);
if (v_isSharedCheck_3433_ == 0)
{
v___x_3428_ = v___x_3381_;
v_isShared_3429_ = v_isSharedCheck_3433_;
goto v_resetjp_3427_;
}
else
{
lean_inc(v_a_3426_);
lean_dec(v___x_3381_);
v___x_3428_ = lean_box(0);
v_isShared_3429_ = v_isSharedCheck_3433_;
goto v_resetjp_3427_;
}
v_resetjp_3427_:
{
lean_object* v___x_3431_; 
if (v_isShared_3429_ == 0)
{
v___x_3431_ = v___x_3428_;
goto v_reusejp_3430_;
}
else
{
lean_object* v_reuseFailAlloc_3432_; 
v_reuseFailAlloc_3432_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3432_, 0, v_a_3426_);
v___x_3431_ = v_reuseFailAlloc_3432_;
goto v_reusejp_3430_;
}
v_reusejp_3430_:
{
return v___x_3431_;
}
}
}
}
else
{
lean_object* v___x_3434_; lean_object* v___x_3436_; 
lean_dec(v_a_3375_);
lean_dec(v_a_3365_);
lean_dec_ref(v_a_3364_);
lean_dec(v_a_3363_);
lean_dec_ref(v_a_3362_);
v___x_3434_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3378_ == 0)
{
lean_ctor_set(v___x_3377_, 0, v___x_3434_);
v___x_3436_ = v___x_3377_;
goto v_reusejp_3435_;
}
else
{
lean_object* v_reuseFailAlloc_3437_; 
v_reuseFailAlloc_3437_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3437_, 0, v___x_3434_);
v___x_3436_ = v_reuseFailAlloc_3437_;
goto v_reusejp_3435_;
}
v_reusejp_3435_:
{
return v___x_3436_;
}
}
}
}
else
{
lean_object* v_a_3439_; lean_object* v___x_3441_; uint8_t v_isShared_3442_; uint8_t v_isSharedCheck_3446_; 
lean_dec(v_a_3365_);
lean_dec_ref(v_a_3364_);
lean_dec(v_a_3363_);
lean_dec_ref(v_a_3362_);
v_a_3439_ = lean_ctor_get(v___x_3374_, 0);
v_isSharedCheck_3446_ = !lean_is_exclusive(v___x_3374_);
if (v_isSharedCheck_3446_ == 0)
{
v___x_3441_ = v___x_3374_;
v_isShared_3442_ = v_isSharedCheck_3446_;
goto v_resetjp_3440_;
}
else
{
lean_inc(v_a_3439_);
lean_dec(v___x_3374_);
v___x_3441_ = lean_box(0);
v_isShared_3442_ = v_isSharedCheck_3446_;
goto v_resetjp_3440_;
}
v_resetjp_3440_:
{
lean_object* v___x_3444_; 
if (v_isShared_3442_ == 0)
{
v___x_3444_ = v___x_3441_;
goto v_reusejp_3443_;
}
else
{
lean_object* v_reuseFailAlloc_3445_; 
v_reuseFailAlloc_3445_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3445_, 0, v_a_3439_);
v___x_3444_ = v_reuseFailAlloc_3445_;
goto v_reusejp_3443_;
}
v_reusejp_3443_:
{
return v___x_3444_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___redArg___boxed(lean_object* v_e_3447_, lean_object* v_a_3448_, lean_object* v_a_3449_, lean_object* v_a_3450_, lean_object* v_a_3451_, lean_object* v_a_3452_, lean_object* v_a_3453_){
_start:
{
lean_object* v_res_3454_; 
v_res_3454_ = l_BitVec_reduceUMod___redArg(v_e_3447_, v_a_3448_, v_a_3449_, v_a_3450_, v_a_3451_, v_a_3452_);
lean_dec_ref(v_a_3448_);
lean_dec_ref(v_e_3447_);
return v_res_3454_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUMod(lean_object* v_e_3455_, lean_object* v_a_3456_, lean_object* v_a_3457_, lean_object* v_a_3458_, lean_object* v_a_3459_, lean_object* v_a_3460_, lean_object* v_a_3461_, lean_object* v_a_3462_){
_start:
{
lean_object* v___x_3464_; 
v___x_3464_ = l_BitVec_reduceUMod___redArg(v_e_3455_, v_a_3457_, v_a_3459_, v_a_3460_, v_a_3461_, v_a_3462_);
return v___x_3464_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___boxed(lean_object* v_e_3465_, lean_object* v_a_3466_, lean_object* v_a_3467_, lean_object* v_a_3468_, lean_object* v_a_3469_, lean_object* v_a_3470_, lean_object* v_a_3471_, lean_object* v_a_3472_, lean_object* v_a_3473_){
_start:
{
lean_object* v_res_3474_; 
v_res_3474_ = l_BitVec_reduceUMod(v_e_3465_, v_a_3466_, v_a_3467_, v_a_3468_, v_a_3469_, v_a_3470_, v_a_3471_, v_a_3472_);
lean_dec(v_a_3468_);
lean_dec_ref(v_a_3467_);
lean_dec(v_a_3466_);
lean_dec_ref(v_e_3465_);
return v_res_3474_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_3491_; lean_object* v___x_3492_; lean_object* v___x_3493_; lean_object* v___x_3494_; 
v___x_3491_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_));
v___x_3492_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_));
v___x_3493_ = lean_alloc_closure((void*)(l_BitVec_reduceUMod___boxed), 9, 0);
v___x_3494_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_3491_, v___x_3492_, v___x_3493_);
return v___x_3494_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18____boxed(lean_object* v_a_3495_){
_start:
{
lean_object* v_res_3496_; 
v_res_3496_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_();
return v_res_3496_;
}
}
static lean_object* _init_l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_3497_; lean_object* v___x_3498_; 
v___x_3497_ = lean_alloc_closure((void*)(l_BitVec_reduceUMod___boxed), 9, 0);
v___x_3498_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3498_, 0, v___x_3497_);
return v___x_3498_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_3500_; uint8_t v___x_3501_; lean_object* v___x_3502_; lean_object* v___x_3503_; 
v___x_3500_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_));
v___x_3501_ = 1;
v___x_3502_ = lean_obj_once(&l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_, &l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20__once, _init_l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_);
v___x_3503_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_3500_, v___x_3501_, v___x_3502_);
return v___x_3503_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20____boxed(lean_object* v_a_3504_){
_start:
{
lean_object* v_res_3505_; 
v_res_3505_ = l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_();
return v_res_3505_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_3507_; uint8_t v___x_3508_; lean_object* v___x_3509_; lean_object* v___x_3510_; 
v___x_3507_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_));
v___x_3508_ = 1;
v___x_3509_ = lean_obj_once(&l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_, &l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20__once, _init_l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_);
v___x_3510_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_3507_, v___x_3508_, v___x_3509_);
return v___x_3510_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_22____boxed(lean_object* v_a_3511_){
_start:
{
lean_object* v_res_3512_; 
v_res_3512_ = l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_22_();
return v_res_3512_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___redArg(lean_object* v_e_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_){
_start:
{
lean_object* v___x_3524_; lean_object* v___x_3525_; uint8_t v___x_3526_; 
v___x_3524_ = ((lean_object*)(l_BitVec_reduceUDiv___redArg___closed__1));
v___x_3525_ = lean_unsigned_to_nat(3u);
v___x_3526_ = l_Lean_Expr_isAppOfArity(v_e_3517_, v___x_3524_, v___x_3525_);
if (v___x_3526_ == 0)
{
lean_object* v___x_3527_; lean_object* v___x_3528_; 
lean_dec(v_a_3522_);
lean_dec_ref(v_a_3521_);
lean_dec(v_a_3520_);
lean_dec_ref(v_a_3519_);
v___x_3527_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_3528_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3528_, 0, v___x_3527_);
return v___x_3528_;
}
else
{
lean_object* v___x_3529_; lean_object* v___x_3530_; lean_object* v___x_3531_; 
v___x_3529_ = l_Lean_Expr_appFn_x21(v_e_3517_);
v___x_3530_ = l_Lean_Expr_appArg_x21(v___x_3529_);
lean_dec_ref(v___x_3529_);
lean_inc(v_a_3522_);
lean_inc_ref(v_a_3521_);
lean_inc(v_a_3520_);
lean_inc_ref(v_a_3519_);
v___x_3531_ = l_BitVec_fromExpr_x3f___redArg(v___x_3530_, v_a_3519_, v_a_3520_, v_a_3521_, v_a_3522_);
if (lean_obj_tag(v___x_3531_) == 0)
{
lean_object* v_a_3532_; lean_object* v___x_3534_; uint8_t v_isShared_3535_; uint8_t v_isSharedCheck_3595_; 
v_a_3532_ = lean_ctor_get(v___x_3531_, 0);
v_isSharedCheck_3595_ = !lean_is_exclusive(v___x_3531_);
if (v_isSharedCheck_3595_ == 0)
{
v___x_3534_ = v___x_3531_;
v_isShared_3535_ = v_isSharedCheck_3595_;
goto v_resetjp_3533_;
}
else
{
lean_inc(v_a_3532_);
lean_dec(v___x_3531_);
v___x_3534_ = lean_box(0);
v_isShared_3535_ = v_isSharedCheck_3595_;
goto v_resetjp_3533_;
}
v_resetjp_3533_:
{
if (lean_obj_tag(v_a_3532_) == 1)
{
lean_object* v_val_3536_; lean_object* v___x_3537_; lean_object* v___x_3538_; 
lean_del_object(v___x_3534_);
v_val_3536_ = lean_ctor_get(v_a_3532_, 0);
lean_inc(v_val_3536_);
lean_dec_ref(v_a_3532_);
v___x_3537_ = l_Lean_Expr_appArg_x21(v_e_3517_);
lean_inc(v_a_3522_);
lean_inc_ref(v_a_3521_);
lean_inc(v_a_3520_);
lean_inc_ref(v_a_3519_);
v___x_3538_ = l_BitVec_fromExpr_x3f___redArg(v___x_3537_, v_a_3519_, v_a_3520_, v_a_3521_, v_a_3522_);
if (lean_obj_tag(v___x_3538_) == 0)
{
lean_object* v_a_3539_; lean_object* v___x_3541_; uint8_t v_isShared_3542_; uint8_t v_isSharedCheck_3582_; 
v_a_3539_ = lean_ctor_get(v___x_3538_, 0);
v_isSharedCheck_3582_ = !lean_is_exclusive(v___x_3538_);
if (v_isSharedCheck_3582_ == 0)
{
v___x_3541_ = v___x_3538_;
v_isShared_3542_ = v_isSharedCheck_3582_;
goto v_resetjp_3540_;
}
else
{
lean_inc(v_a_3539_);
lean_dec(v___x_3538_);
v___x_3541_ = lean_box(0);
v_isShared_3542_ = v_isSharedCheck_3582_;
goto v_resetjp_3540_;
}
v_resetjp_3540_:
{
if (lean_obj_tag(v_a_3539_) == 1)
{
lean_object* v_val_3543_; lean_object* v___x_3545_; uint8_t v_isShared_3546_; uint8_t v_isSharedCheck_3577_; 
v_val_3543_ = lean_ctor_get(v_a_3539_, 0);
v_isSharedCheck_3577_ = !lean_is_exclusive(v_a_3539_);
if (v_isSharedCheck_3577_ == 0)
{
v___x_3545_ = v_a_3539_;
v_isShared_3546_ = v_isSharedCheck_3577_;
goto v_resetjp_3544_;
}
else
{
lean_inc(v_val_3543_);
lean_dec(v_a_3539_);
v___x_3545_ = lean_box(0);
v_isShared_3546_ = v_isSharedCheck_3577_;
goto v_resetjp_3544_;
}
v_resetjp_3544_:
{
lean_object* v_n_3547_; lean_object* v_value_3548_; lean_object* v_n_3549_; lean_object* v_value_3550_; uint8_t v___x_3551_; 
v_n_3547_ = lean_ctor_get(v_val_3536_, 0);
lean_inc(v_n_3547_);
v_value_3548_ = lean_ctor_get(v_val_3536_, 1);
lean_inc(v_value_3548_);
lean_dec(v_val_3536_);
v_n_3549_ = lean_ctor_get(v_val_3543_, 0);
lean_inc(v_n_3549_);
v_value_3550_ = lean_ctor_get(v_val_3543_, 1);
lean_inc(v_value_3550_);
lean_dec(v_val_3543_);
v___x_3551_ = lean_nat_dec_eq(v_n_3547_, v_n_3549_);
lean_dec(v_n_3549_);
if (v___x_3551_ == 0)
{
lean_object* v___x_3552_; lean_object* v___x_3554_; 
lean_dec(v_value_3550_);
lean_dec(v_value_3548_);
lean_dec(v_n_3547_);
lean_del_object(v___x_3545_);
lean_dec(v_a_3522_);
lean_dec_ref(v_a_3521_);
lean_dec(v_a_3520_);
lean_dec_ref(v_a_3519_);
v___x_3552_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3542_ == 0)
{
lean_ctor_set(v___x_3541_, 0, v___x_3552_);
v___x_3554_ = v___x_3541_;
goto v_reusejp_3553_;
}
else
{
lean_object* v_reuseFailAlloc_3555_; 
v_reuseFailAlloc_3555_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3555_, 0, v___x_3552_);
v___x_3554_ = v_reuseFailAlloc_3555_;
goto v_reusejp_3553_;
}
v_reusejp_3553_:
{
return v___x_3554_;
}
}
else
{
lean_object* v___x_3556_; lean_object* v___x_3557_; 
lean_del_object(v___x_3541_);
v___x_3556_ = lean_nat_div(v_value_3548_, v_value_3550_);
lean_dec(v_value_3550_);
lean_dec(v_value_3548_);
v___x_3557_ = l_BitVec_toExpr_x27___redArg(v_n_3547_, v___x_3556_, v_a_3518_, v_a_3519_, v_a_3520_, v_a_3521_, v_a_3522_);
if (lean_obj_tag(v___x_3557_) == 0)
{
lean_object* v_a_3558_; lean_object* v___x_3560_; uint8_t v_isShared_3561_; uint8_t v_isSharedCheck_3568_; 
v_a_3558_ = lean_ctor_get(v___x_3557_, 0);
v_isSharedCheck_3568_ = !lean_is_exclusive(v___x_3557_);
if (v_isSharedCheck_3568_ == 0)
{
v___x_3560_ = v___x_3557_;
v_isShared_3561_ = v_isSharedCheck_3568_;
goto v_resetjp_3559_;
}
else
{
lean_inc(v_a_3558_);
lean_dec(v___x_3557_);
v___x_3560_ = lean_box(0);
v_isShared_3561_ = v_isSharedCheck_3568_;
goto v_resetjp_3559_;
}
v_resetjp_3559_:
{
lean_object* v___x_3563_; 
if (v_isShared_3546_ == 0)
{
lean_ctor_set_tag(v___x_3545_, 0);
lean_ctor_set(v___x_3545_, 0, v_a_3558_);
v___x_3563_ = v___x_3545_;
goto v_reusejp_3562_;
}
else
{
lean_object* v_reuseFailAlloc_3567_; 
v_reuseFailAlloc_3567_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3567_, 0, v_a_3558_);
v___x_3563_ = v_reuseFailAlloc_3567_;
goto v_reusejp_3562_;
}
v_reusejp_3562_:
{
lean_object* v___x_3565_; 
if (v_isShared_3561_ == 0)
{
lean_ctor_set(v___x_3560_, 0, v___x_3563_);
v___x_3565_ = v___x_3560_;
goto v_reusejp_3564_;
}
else
{
lean_object* v_reuseFailAlloc_3566_; 
v_reuseFailAlloc_3566_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3566_, 0, v___x_3563_);
v___x_3565_ = v_reuseFailAlloc_3566_;
goto v_reusejp_3564_;
}
v_reusejp_3564_:
{
return v___x_3565_;
}
}
}
}
else
{
lean_object* v_a_3569_; lean_object* v___x_3571_; uint8_t v_isShared_3572_; uint8_t v_isSharedCheck_3576_; 
lean_del_object(v___x_3545_);
v_a_3569_ = lean_ctor_get(v___x_3557_, 0);
v_isSharedCheck_3576_ = !lean_is_exclusive(v___x_3557_);
if (v_isSharedCheck_3576_ == 0)
{
v___x_3571_ = v___x_3557_;
v_isShared_3572_ = v_isSharedCheck_3576_;
goto v_resetjp_3570_;
}
else
{
lean_inc(v_a_3569_);
lean_dec(v___x_3557_);
v___x_3571_ = lean_box(0);
v_isShared_3572_ = v_isSharedCheck_3576_;
goto v_resetjp_3570_;
}
v_resetjp_3570_:
{
lean_object* v___x_3574_; 
if (v_isShared_3572_ == 0)
{
v___x_3574_ = v___x_3571_;
goto v_reusejp_3573_;
}
else
{
lean_object* v_reuseFailAlloc_3575_; 
v_reuseFailAlloc_3575_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3575_, 0, v_a_3569_);
v___x_3574_ = v_reuseFailAlloc_3575_;
goto v_reusejp_3573_;
}
v_reusejp_3573_:
{
return v___x_3574_;
}
}
}
}
}
}
else
{
lean_object* v___x_3578_; lean_object* v___x_3580_; 
lean_dec(v_a_3539_);
lean_dec(v_val_3536_);
lean_dec(v_a_3522_);
lean_dec_ref(v_a_3521_);
lean_dec(v_a_3520_);
lean_dec_ref(v_a_3519_);
v___x_3578_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3542_ == 0)
{
lean_ctor_set(v___x_3541_, 0, v___x_3578_);
v___x_3580_ = v___x_3541_;
goto v_reusejp_3579_;
}
else
{
lean_object* v_reuseFailAlloc_3581_; 
v_reuseFailAlloc_3581_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3581_, 0, v___x_3578_);
v___x_3580_ = v_reuseFailAlloc_3581_;
goto v_reusejp_3579_;
}
v_reusejp_3579_:
{
return v___x_3580_;
}
}
}
}
else
{
lean_object* v_a_3583_; lean_object* v___x_3585_; uint8_t v_isShared_3586_; uint8_t v_isSharedCheck_3590_; 
lean_dec(v_val_3536_);
lean_dec(v_a_3522_);
lean_dec_ref(v_a_3521_);
lean_dec(v_a_3520_);
lean_dec_ref(v_a_3519_);
v_a_3583_ = lean_ctor_get(v___x_3538_, 0);
v_isSharedCheck_3590_ = !lean_is_exclusive(v___x_3538_);
if (v_isSharedCheck_3590_ == 0)
{
v___x_3585_ = v___x_3538_;
v_isShared_3586_ = v_isSharedCheck_3590_;
goto v_resetjp_3584_;
}
else
{
lean_inc(v_a_3583_);
lean_dec(v___x_3538_);
v___x_3585_ = lean_box(0);
v_isShared_3586_ = v_isSharedCheck_3590_;
goto v_resetjp_3584_;
}
v_resetjp_3584_:
{
lean_object* v___x_3588_; 
if (v_isShared_3586_ == 0)
{
v___x_3588_ = v___x_3585_;
goto v_reusejp_3587_;
}
else
{
lean_object* v_reuseFailAlloc_3589_; 
v_reuseFailAlloc_3589_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3589_, 0, v_a_3583_);
v___x_3588_ = v_reuseFailAlloc_3589_;
goto v_reusejp_3587_;
}
v_reusejp_3587_:
{
return v___x_3588_;
}
}
}
}
else
{
lean_object* v___x_3591_; lean_object* v___x_3593_; 
lean_dec(v_a_3532_);
lean_dec(v_a_3522_);
lean_dec_ref(v_a_3521_);
lean_dec(v_a_3520_);
lean_dec_ref(v_a_3519_);
v___x_3591_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3535_ == 0)
{
lean_ctor_set(v___x_3534_, 0, v___x_3591_);
v___x_3593_ = v___x_3534_;
goto v_reusejp_3592_;
}
else
{
lean_object* v_reuseFailAlloc_3594_; 
v_reuseFailAlloc_3594_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3594_, 0, v___x_3591_);
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_3522_);
lean_dec_ref(v_a_3521_);
lean_dec(v_a_3520_);
lean_dec_ref(v_a_3519_);
v_a_3596_ = lean_ctor_get(v___x_3531_, 0);
v_isSharedCheck_3603_ = !lean_is_exclusive(v___x_3531_);
if (v_isSharedCheck_3603_ == 0)
{
v___x_3598_ = v___x_3531_;
v_isShared_3599_ = v_isSharedCheck_3603_;
goto v_resetjp_3597_;
}
else
{
lean_inc(v_a_3596_);
lean_dec(v___x_3531_);
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_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___redArg___boxed(lean_object* v_e_3604_, lean_object* v_a_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_){
_start:
{
lean_object* v_res_3611_; 
v_res_3611_ = l_BitVec_reduceUDiv___redArg(v_e_3604_, v_a_3605_, v_a_3606_, v_a_3607_, v_a_3608_, v_a_3609_);
lean_dec_ref(v_a_3605_);
lean_dec_ref(v_e_3604_);
return v_res_3611_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv(lean_object* v_e_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_, lean_object* v_a_3618_, lean_object* v_a_3619_){
_start:
{
lean_object* v___x_3621_; 
v___x_3621_ = l_BitVec_reduceUDiv___redArg(v_e_3612_, v_a_3614_, v_a_3616_, v_a_3617_, v_a_3618_, v_a_3619_);
return v___x_3621_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___boxed(lean_object* v_e_3622_, lean_object* v_a_3623_, lean_object* v_a_3624_, lean_object* v_a_3625_, lean_object* v_a_3626_, lean_object* v_a_3627_, lean_object* v_a_3628_, lean_object* v_a_3629_, lean_object* v_a_3630_){
_start:
{
lean_object* v_res_3631_; 
v_res_3631_ = l_BitVec_reduceUDiv(v_e_3622_, v_a_3623_, v_a_3624_, v_a_3625_, v_a_3626_, v_a_3627_, v_a_3628_, v_a_3629_);
lean_dec(v_a_3625_);
lean_dec_ref(v_a_3624_);
lean_dec(v_a_3623_);
lean_dec_ref(v_e_3622_);
return v_res_3631_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_3648_; lean_object* v___x_3649_; lean_object* v___x_3650_; lean_object* v___x_3651_; 
v___x_3648_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_));
v___x_3649_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_));
v___x_3650_ = lean_alloc_closure((void*)(l_BitVec_reduceUDiv___boxed), 9, 0);
v___x_3651_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_3648_, v___x_3649_, v___x_3650_);
return v___x_3651_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18____boxed(lean_object* v_a_3652_){
_start:
{
lean_object* v_res_3653_; 
v_res_3653_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_();
return v_res_3653_;
}
}
static lean_object* _init_l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_3654_; lean_object* v___x_3655_; 
v___x_3654_ = lean_alloc_closure((void*)(l_BitVec_reduceUDiv___boxed), 9, 0);
v___x_3655_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3655_, 0, v___x_3654_);
return v___x_3655_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_3657_; uint8_t v___x_3658_; lean_object* v___x_3659_; lean_object* v___x_3660_; 
v___x_3657_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_));
v___x_3658_ = 1;
v___x_3659_ = lean_obj_once(&l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_, &l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20__once, _init_l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_);
v___x_3660_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_3657_, v___x_3658_, v___x_3659_);
return v___x_3660_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20____boxed(lean_object* v_a_3661_){
_start:
{
lean_object* v_res_3662_; 
v_res_3662_ = l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_();
return v_res_3662_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_3664_; uint8_t v___x_3665_; lean_object* v___x_3666_; lean_object* v___x_3667_; 
v___x_3664_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_));
v___x_3665_ = 1;
v___x_3666_ = lean_obj_once(&l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_, &l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20__once, _init_l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_);
v___x_3667_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_3664_, v___x_3665_, v___x_3666_);
return v___x_3667_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_22____boxed(lean_object* v_a_3668_){
_start:
{
lean_object* v_res_3669_; 
v_res_3669_ = l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_22_();
return v_res_3669_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___redArg(lean_object* v_e_3674_, lean_object* v_a_3675_, lean_object* v_a_3676_, lean_object* v_a_3677_, lean_object* v_a_3678_, lean_object* v_a_3679_){
_start:
{
lean_object* v___x_3681_; lean_object* v___x_3682_; uint8_t v___x_3683_; 
v___x_3681_ = ((lean_object*)(l_BitVec_reduceSMTUDiv___redArg___closed__1));
v___x_3682_ = lean_unsigned_to_nat(3u);
v___x_3683_ = l_Lean_Expr_isAppOfArity(v_e_3674_, v___x_3681_, v___x_3682_);
if (v___x_3683_ == 0)
{
lean_object* v___x_3684_; lean_object* v___x_3685_; 
lean_dec(v_a_3679_);
lean_dec_ref(v_a_3678_);
lean_dec(v_a_3677_);
lean_dec_ref(v_a_3676_);
v___x_3684_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_3685_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3685_, 0, v___x_3684_);
return v___x_3685_;
}
else
{
lean_object* v___x_3686_; lean_object* v___x_3687_; lean_object* v___x_3688_; 
v___x_3686_ = l_Lean_Expr_appFn_x21(v_e_3674_);
v___x_3687_ = l_Lean_Expr_appArg_x21(v___x_3686_);
lean_dec_ref(v___x_3686_);
lean_inc(v_a_3679_);
lean_inc_ref(v_a_3678_);
lean_inc(v_a_3677_);
lean_inc_ref(v_a_3676_);
v___x_3688_ = l_BitVec_fromExpr_x3f___redArg(v___x_3687_, v_a_3676_, v_a_3677_, v_a_3678_, v_a_3679_);
if (lean_obj_tag(v___x_3688_) == 0)
{
lean_object* v_a_3689_; lean_object* v___x_3691_; uint8_t v_isShared_3692_; uint8_t v_isSharedCheck_3752_; 
v_a_3689_ = lean_ctor_get(v___x_3688_, 0);
v_isSharedCheck_3752_ = !lean_is_exclusive(v___x_3688_);
if (v_isSharedCheck_3752_ == 0)
{
v___x_3691_ = v___x_3688_;
v_isShared_3692_ = v_isSharedCheck_3752_;
goto v_resetjp_3690_;
}
else
{
lean_inc(v_a_3689_);
lean_dec(v___x_3688_);
v___x_3691_ = lean_box(0);
v_isShared_3692_ = v_isSharedCheck_3752_;
goto v_resetjp_3690_;
}
v_resetjp_3690_:
{
if (lean_obj_tag(v_a_3689_) == 1)
{
lean_object* v_val_3693_; lean_object* v___x_3694_; lean_object* v___x_3695_; 
lean_del_object(v___x_3691_);
v_val_3693_ = lean_ctor_get(v_a_3689_, 0);
lean_inc(v_val_3693_);
lean_dec_ref(v_a_3689_);
v___x_3694_ = l_Lean_Expr_appArg_x21(v_e_3674_);
lean_inc(v_a_3679_);
lean_inc_ref(v_a_3678_);
lean_inc(v_a_3677_);
lean_inc_ref(v_a_3676_);
v___x_3695_ = l_BitVec_fromExpr_x3f___redArg(v___x_3694_, v_a_3676_, v_a_3677_, v_a_3678_, v_a_3679_);
if (lean_obj_tag(v___x_3695_) == 0)
{
lean_object* v_a_3696_; lean_object* v___x_3698_; uint8_t v_isShared_3699_; uint8_t v_isSharedCheck_3739_; 
v_a_3696_ = lean_ctor_get(v___x_3695_, 0);
v_isSharedCheck_3739_ = !lean_is_exclusive(v___x_3695_);
if (v_isSharedCheck_3739_ == 0)
{
v___x_3698_ = v___x_3695_;
v_isShared_3699_ = v_isSharedCheck_3739_;
goto v_resetjp_3697_;
}
else
{
lean_inc(v_a_3696_);
lean_dec(v___x_3695_);
v___x_3698_ = lean_box(0);
v_isShared_3699_ = v_isSharedCheck_3739_;
goto v_resetjp_3697_;
}
v_resetjp_3697_:
{
if (lean_obj_tag(v_a_3696_) == 1)
{
lean_object* v_val_3700_; lean_object* v___x_3702_; uint8_t v_isShared_3703_; uint8_t v_isSharedCheck_3734_; 
v_val_3700_ = lean_ctor_get(v_a_3696_, 0);
v_isSharedCheck_3734_ = !lean_is_exclusive(v_a_3696_);
if (v_isSharedCheck_3734_ == 0)
{
v___x_3702_ = v_a_3696_;
v_isShared_3703_ = v_isSharedCheck_3734_;
goto v_resetjp_3701_;
}
else
{
lean_inc(v_val_3700_);
lean_dec(v_a_3696_);
v___x_3702_ = lean_box(0);
v_isShared_3703_ = v_isSharedCheck_3734_;
goto v_resetjp_3701_;
}
v_resetjp_3701_:
{
lean_object* v_n_3704_; lean_object* v_value_3705_; lean_object* v_n_3706_; lean_object* v_value_3707_; uint8_t v___x_3708_; 
v_n_3704_ = lean_ctor_get(v_val_3693_, 0);
lean_inc(v_n_3704_);
v_value_3705_ = lean_ctor_get(v_val_3693_, 1);
lean_inc(v_value_3705_);
lean_dec(v_val_3693_);
v_n_3706_ = lean_ctor_get(v_val_3700_, 0);
lean_inc(v_n_3706_);
v_value_3707_ = lean_ctor_get(v_val_3700_, 1);
lean_inc(v_value_3707_);
lean_dec(v_val_3700_);
v___x_3708_ = lean_nat_dec_eq(v_n_3704_, v_n_3706_);
lean_dec(v_n_3706_);
if (v___x_3708_ == 0)
{
lean_object* v___x_3709_; lean_object* v___x_3711_; 
lean_dec(v_value_3707_);
lean_dec(v_value_3705_);
lean_dec(v_n_3704_);
lean_del_object(v___x_3702_);
lean_dec(v_a_3679_);
lean_dec_ref(v_a_3678_);
lean_dec(v_a_3677_);
lean_dec_ref(v_a_3676_);
v___x_3709_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3699_ == 0)
{
lean_ctor_set(v___x_3698_, 0, v___x_3709_);
v___x_3711_ = v___x_3698_;
goto v_reusejp_3710_;
}
else
{
lean_object* v_reuseFailAlloc_3712_; 
v_reuseFailAlloc_3712_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3712_, 0, v___x_3709_);
v___x_3711_ = v_reuseFailAlloc_3712_;
goto v_reusejp_3710_;
}
v_reusejp_3710_:
{
return v___x_3711_;
}
}
else
{
lean_object* v___x_3713_; lean_object* v___x_3714_; 
lean_del_object(v___x_3698_);
v___x_3713_ = l_BitVec_smtUDiv(v_n_3704_, v_value_3705_, v_value_3707_);
lean_dec(v_value_3707_);
lean_dec(v_value_3705_);
v___x_3714_ = l_BitVec_toExpr_x27___redArg(v_n_3704_, v___x_3713_, v_a_3675_, v_a_3676_, v_a_3677_, v_a_3678_, v_a_3679_);
if (lean_obj_tag(v___x_3714_) == 0)
{
lean_object* v_a_3715_; lean_object* v___x_3717_; uint8_t v_isShared_3718_; uint8_t v_isSharedCheck_3725_; 
v_a_3715_ = lean_ctor_get(v___x_3714_, 0);
v_isSharedCheck_3725_ = !lean_is_exclusive(v___x_3714_);
if (v_isSharedCheck_3725_ == 0)
{
v___x_3717_ = v___x_3714_;
v_isShared_3718_ = v_isSharedCheck_3725_;
goto v_resetjp_3716_;
}
else
{
lean_inc(v_a_3715_);
lean_dec(v___x_3714_);
v___x_3717_ = lean_box(0);
v_isShared_3718_ = v_isSharedCheck_3725_;
goto v_resetjp_3716_;
}
v_resetjp_3716_:
{
lean_object* v___x_3720_; 
if (v_isShared_3703_ == 0)
{
lean_ctor_set_tag(v___x_3702_, 0);
lean_ctor_set(v___x_3702_, 0, v_a_3715_);
v___x_3720_ = v___x_3702_;
goto v_reusejp_3719_;
}
else
{
lean_object* v_reuseFailAlloc_3724_; 
v_reuseFailAlloc_3724_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3724_, 0, v_a_3715_);
v___x_3720_ = v_reuseFailAlloc_3724_;
goto v_reusejp_3719_;
}
v_reusejp_3719_:
{
lean_object* v___x_3722_; 
if (v_isShared_3718_ == 0)
{
lean_ctor_set(v___x_3717_, 0, v___x_3720_);
v___x_3722_ = v___x_3717_;
goto v_reusejp_3721_;
}
else
{
lean_object* v_reuseFailAlloc_3723_; 
v_reuseFailAlloc_3723_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3723_, 0, v___x_3720_);
v___x_3722_ = v_reuseFailAlloc_3723_;
goto v_reusejp_3721_;
}
v_reusejp_3721_:
{
return v___x_3722_;
}
}
}
}
else
{
lean_object* v_a_3726_; lean_object* v___x_3728_; uint8_t v_isShared_3729_; uint8_t v_isSharedCheck_3733_; 
lean_del_object(v___x_3702_);
v_a_3726_ = lean_ctor_get(v___x_3714_, 0);
v_isSharedCheck_3733_ = !lean_is_exclusive(v___x_3714_);
if (v_isSharedCheck_3733_ == 0)
{
v___x_3728_ = v___x_3714_;
v_isShared_3729_ = v_isSharedCheck_3733_;
goto v_resetjp_3727_;
}
else
{
lean_inc(v_a_3726_);
lean_dec(v___x_3714_);
v___x_3728_ = lean_box(0);
v_isShared_3729_ = v_isSharedCheck_3733_;
goto v_resetjp_3727_;
}
v_resetjp_3727_:
{
lean_object* v___x_3731_; 
if (v_isShared_3729_ == 0)
{
v___x_3731_ = v___x_3728_;
goto v_reusejp_3730_;
}
else
{
lean_object* v_reuseFailAlloc_3732_; 
v_reuseFailAlloc_3732_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3732_, 0, v_a_3726_);
v___x_3731_ = v_reuseFailAlloc_3732_;
goto v_reusejp_3730_;
}
v_reusejp_3730_:
{
return v___x_3731_;
}
}
}
}
}
}
else
{
lean_object* v___x_3735_; lean_object* v___x_3737_; 
lean_dec(v_a_3696_);
lean_dec(v_val_3693_);
lean_dec(v_a_3679_);
lean_dec_ref(v_a_3678_);
lean_dec(v_a_3677_);
lean_dec_ref(v_a_3676_);
v___x_3735_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3699_ == 0)
{
lean_ctor_set(v___x_3698_, 0, v___x_3735_);
v___x_3737_ = v___x_3698_;
goto v_reusejp_3736_;
}
else
{
lean_object* v_reuseFailAlloc_3738_; 
v_reuseFailAlloc_3738_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3738_, 0, v___x_3735_);
v___x_3737_ = v_reuseFailAlloc_3738_;
goto v_reusejp_3736_;
}
v_reusejp_3736_:
{
return v___x_3737_;
}
}
}
}
else
{
lean_object* v_a_3740_; lean_object* v___x_3742_; uint8_t v_isShared_3743_; uint8_t v_isSharedCheck_3747_; 
lean_dec(v_val_3693_);
lean_dec(v_a_3679_);
lean_dec_ref(v_a_3678_);
lean_dec(v_a_3677_);
lean_dec_ref(v_a_3676_);
v_a_3740_ = lean_ctor_get(v___x_3695_, 0);
v_isSharedCheck_3747_ = !lean_is_exclusive(v___x_3695_);
if (v_isSharedCheck_3747_ == 0)
{
v___x_3742_ = v___x_3695_;
v_isShared_3743_ = v_isSharedCheck_3747_;
goto v_resetjp_3741_;
}
else
{
lean_inc(v_a_3740_);
lean_dec(v___x_3695_);
v___x_3742_ = lean_box(0);
v_isShared_3743_ = v_isSharedCheck_3747_;
goto v_resetjp_3741_;
}
v_resetjp_3741_:
{
lean_object* v___x_3745_; 
if (v_isShared_3743_ == 0)
{
v___x_3745_ = v___x_3742_;
goto v_reusejp_3744_;
}
else
{
lean_object* v_reuseFailAlloc_3746_; 
v_reuseFailAlloc_3746_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3746_, 0, v_a_3740_);
v___x_3745_ = v_reuseFailAlloc_3746_;
goto v_reusejp_3744_;
}
v_reusejp_3744_:
{
return v___x_3745_;
}
}
}
}
else
{
lean_object* v___x_3748_; lean_object* v___x_3750_; 
lean_dec(v_a_3689_);
lean_dec(v_a_3679_);
lean_dec_ref(v_a_3678_);
lean_dec(v_a_3677_);
lean_dec_ref(v_a_3676_);
v___x_3748_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3692_ == 0)
{
lean_ctor_set(v___x_3691_, 0, v___x_3748_);
v___x_3750_ = v___x_3691_;
goto v_reusejp_3749_;
}
else
{
lean_object* v_reuseFailAlloc_3751_; 
v_reuseFailAlloc_3751_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3751_, 0, v___x_3748_);
v___x_3750_ = v_reuseFailAlloc_3751_;
goto v_reusejp_3749_;
}
v_reusejp_3749_:
{
return v___x_3750_;
}
}
}
}
else
{
lean_object* v_a_3753_; lean_object* v___x_3755_; uint8_t v_isShared_3756_; uint8_t v_isSharedCheck_3760_; 
lean_dec(v_a_3679_);
lean_dec_ref(v_a_3678_);
lean_dec(v_a_3677_);
lean_dec_ref(v_a_3676_);
v_a_3753_ = lean_ctor_get(v___x_3688_, 0);
v_isSharedCheck_3760_ = !lean_is_exclusive(v___x_3688_);
if (v_isSharedCheck_3760_ == 0)
{
v___x_3755_ = v___x_3688_;
v_isShared_3756_ = v_isSharedCheck_3760_;
goto v_resetjp_3754_;
}
else
{
lean_inc(v_a_3753_);
lean_dec(v___x_3688_);
v___x_3755_ = lean_box(0);
v_isShared_3756_ = v_isSharedCheck_3760_;
goto v_resetjp_3754_;
}
v_resetjp_3754_:
{
lean_object* v___x_3758_; 
if (v_isShared_3756_ == 0)
{
v___x_3758_ = v___x_3755_;
goto v_reusejp_3757_;
}
else
{
lean_object* v_reuseFailAlloc_3759_; 
v_reuseFailAlloc_3759_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3759_, 0, v_a_3753_);
v___x_3758_ = v_reuseFailAlloc_3759_;
goto v_reusejp_3757_;
}
v_reusejp_3757_:
{
return v___x_3758_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___redArg___boxed(lean_object* v_e_3761_, lean_object* v_a_3762_, lean_object* v_a_3763_, lean_object* v_a_3764_, lean_object* v_a_3765_, lean_object* v_a_3766_, lean_object* v_a_3767_){
_start:
{
lean_object* v_res_3768_; 
v_res_3768_ = l_BitVec_reduceSMTUDiv___redArg(v_e_3761_, v_a_3762_, v_a_3763_, v_a_3764_, v_a_3765_, v_a_3766_);
lean_dec_ref(v_a_3762_);
lean_dec_ref(v_e_3761_);
return v_res_3768_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv(lean_object* v_e_3769_, lean_object* v_a_3770_, lean_object* v_a_3771_, lean_object* v_a_3772_, lean_object* v_a_3773_, lean_object* v_a_3774_, lean_object* v_a_3775_, lean_object* v_a_3776_){
_start:
{
lean_object* v___x_3778_; 
v___x_3778_ = l_BitVec_reduceSMTUDiv___redArg(v_e_3769_, v_a_3771_, v_a_3773_, v_a_3774_, v_a_3775_, v_a_3776_);
return v___x_3778_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___boxed(lean_object* v_e_3779_, lean_object* v_a_3780_, lean_object* v_a_3781_, lean_object* v_a_3782_, lean_object* v_a_3783_, lean_object* v_a_3784_, lean_object* v_a_3785_, lean_object* v_a_3786_, lean_object* v_a_3787_){
_start:
{
lean_object* v_res_3788_; 
v_res_3788_ = l_BitVec_reduceSMTUDiv(v_e_3779_, v_a_3780_, v_a_3781_, v_a_3782_, v_a_3783_, v_a_3784_, v_a_3785_, v_a_3786_);
lean_dec(v_a_3782_);
lean_dec_ref(v_a_3781_);
lean_dec(v_a_3780_);
lean_dec_ref(v_e_3779_);
return v_res_3788_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_3805_; lean_object* v___x_3806_; lean_object* v___x_3807_; lean_object* v___x_3808_; 
v___x_3805_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_));
v___x_3806_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_));
v___x_3807_ = lean_alloc_closure((void*)(l_BitVec_reduceSMTUDiv___boxed), 9, 0);
v___x_3808_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_3805_, v___x_3806_, v___x_3807_);
return v___x_3808_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18____boxed(lean_object* v_a_3809_){
_start:
{
lean_object* v_res_3810_; 
v_res_3810_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_();
return v_res_3810_;
}
}
static lean_object* _init_l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_3811_; lean_object* v___x_3812_; 
v___x_3811_ = lean_alloc_closure((void*)(l_BitVec_reduceSMTUDiv___boxed), 9, 0);
v___x_3812_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3812_, 0, v___x_3811_);
return v___x_3812_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_3814_; uint8_t v___x_3815_; lean_object* v___x_3816_; lean_object* v___x_3817_; 
v___x_3814_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_));
v___x_3815_ = 1;
v___x_3816_ = lean_obj_once(&l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_, &l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20__once, _init_l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_);
v___x_3817_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_3814_, v___x_3815_, v___x_3816_);
return v___x_3817_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20____boxed(lean_object* v_a_3818_){
_start:
{
lean_object* v_res_3819_; 
v_res_3819_ = l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_();
return v_res_3819_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_3821_; uint8_t v___x_3822_; lean_object* v___x_3823_; lean_object* v___x_3824_; 
v___x_3821_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_));
v___x_3822_ = 1;
v___x_3823_ = lean_obj_once(&l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_, &l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20__once, _init_l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_);
v___x_3824_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_3821_, v___x_3822_, v___x_3823_);
return v___x_3824_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_22____boxed(lean_object* v_a_3825_){
_start:
{
lean_object* v_res_3826_; 
v_res_3826_ = l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_22_();
return v_res_3826_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___redArg(lean_object* v_e_3831_, lean_object* v_a_3832_, lean_object* v_a_3833_, lean_object* v_a_3834_, lean_object* v_a_3835_, lean_object* v_a_3836_){
_start:
{
lean_object* v___x_3838_; lean_object* v___x_3839_; uint8_t v___x_3840_; 
v___x_3838_ = ((lean_object*)(l_BitVec_reduceSMod___redArg___closed__1));
v___x_3839_ = lean_unsigned_to_nat(3u);
v___x_3840_ = l_Lean_Expr_isAppOfArity(v_e_3831_, v___x_3838_, v___x_3839_);
if (v___x_3840_ == 0)
{
lean_object* v___x_3841_; lean_object* v___x_3842_; 
lean_dec(v_a_3836_);
lean_dec_ref(v_a_3835_);
lean_dec(v_a_3834_);
lean_dec_ref(v_a_3833_);
v___x_3841_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_3842_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3842_, 0, v___x_3841_);
return v___x_3842_;
}
else
{
lean_object* v___x_3843_; lean_object* v___x_3844_; lean_object* v___x_3845_; 
v___x_3843_ = l_Lean_Expr_appFn_x21(v_e_3831_);
v___x_3844_ = l_Lean_Expr_appArg_x21(v___x_3843_);
lean_dec_ref(v___x_3843_);
lean_inc(v_a_3836_);
lean_inc_ref(v_a_3835_);
lean_inc(v_a_3834_);
lean_inc_ref(v_a_3833_);
v___x_3845_ = l_BitVec_fromExpr_x3f___redArg(v___x_3844_, v_a_3833_, v_a_3834_, v_a_3835_, v_a_3836_);
if (lean_obj_tag(v___x_3845_) == 0)
{
lean_object* v_a_3846_; lean_object* v___x_3848_; uint8_t v_isShared_3849_; uint8_t v_isSharedCheck_3909_; 
v_a_3846_ = lean_ctor_get(v___x_3845_, 0);
v_isSharedCheck_3909_ = !lean_is_exclusive(v___x_3845_);
if (v_isSharedCheck_3909_ == 0)
{
v___x_3848_ = v___x_3845_;
v_isShared_3849_ = v_isSharedCheck_3909_;
goto v_resetjp_3847_;
}
else
{
lean_inc(v_a_3846_);
lean_dec(v___x_3845_);
v___x_3848_ = lean_box(0);
v_isShared_3849_ = v_isSharedCheck_3909_;
goto v_resetjp_3847_;
}
v_resetjp_3847_:
{
if (lean_obj_tag(v_a_3846_) == 1)
{
lean_object* v_val_3850_; lean_object* v___x_3851_; lean_object* v___x_3852_; 
lean_del_object(v___x_3848_);
v_val_3850_ = lean_ctor_get(v_a_3846_, 0);
lean_inc(v_val_3850_);
lean_dec_ref(v_a_3846_);
v___x_3851_ = l_Lean_Expr_appArg_x21(v_e_3831_);
lean_inc(v_a_3836_);
lean_inc_ref(v_a_3835_);
lean_inc(v_a_3834_);
lean_inc_ref(v_a_3833_);
v___x_3852_ = l_BitVec_fromExpr_x3f___redArg(v___x_3851_, v_a_3833_, v_a_3834_, v_a_3835_, v_a_3836_);
if (lean_obj_tag(v___x_3852_) == 0)
{
lean_object* v_a_3853_; lean_object* v___x_3855_; uint8_t v_isShared_3856_; uint8_t v_isSharedCheck_3896_; 
v_a_3853_ = lean_ctor_get(v___x_3852_, 0);
v_isSharedCheck_3896_ = !lean_is_exclusive(v___x_3852_);
if (v_isSharedCheck_3896_ == 0)
{
v___x_3855_ = v___x_3852_;
v_isShared_3856_ = v_isSharedCheck_3896_;
goto v_resetjp_3854_;
}
else
{
lean_inc(v_a_3853_);
lean_dec(v___x_3852_);
v___x_3855_ = lean_box(0);
v_isShared_3856_ = v_isSharedCheck_3896_;
goto v_resetjp_3854_;
}
v_resetjp_3854_:
{
if (lean_obj_tag(v_a_3853_) == 1)
{
lean_object* v_val_3857_; lean_object* v___x_3859_; uint8_t v_isShared_3860_; uint8_t v_isSharedCheck_3891_; 
v_val_3857_ = lean_ctor_get(v_a_3853_, 0);
v_isSharedCheck_3891_ = !lean_is_exclusive(v_a_3853_);
if (v_isSharedCheck_3891_ == 0)
{
v___x_3859_ = v_a_3853_;
v_isShared_3860_ = v_isSharedCheck_3891_;
goto v_resetjp_3858_;
}
else
{
lean_inc(v_val_3857_);
lean_dec(v_a_3853_);
v___x_3859_ = lean_box(0);
v_isShared_3860_ = v_isSharedCheck_3891_;
goto v_resetjp_3858_;
}
v_resetjp_3858_:
{
lean_object* v_n_3861_; lean_object* v_value_3862_; lean_object* v_n_3863_; lean_object* v_value_3864_; uint8_t v___x_3865_; 
v_n_3861_ = lean_ctor_get(v_val_3850_, 0);
lean_inc(v_n_3861_);
v_value_3862_ = lean_ctor_get(v_val_3850_, 1);
lean_inc(v_value_3862_);
lean_dec(v_val_3850_);
v_n_3863_ = lean_ctor_get(v_val_3857_, 0);
lean_inc(v_n_3863_);
v_value_3864_ = lean_ctor_get(v_val_3857_, 1);
lean_inc(v_value_3864_);
lean_dec(v_val_3857_);
v___x_3865_ = lean_nat_dec_eq(v_n_3861_, v_n_3863_);
lean_dec(v_n_3863_);
if (v___x_3865_ == 0)
{
lean_object* v___x_3866_; lean_object* v___x_3868_; 
lean_dec(v_value_3864_);
lean_dec(v_value_3862_);
lean_dec(v_n_3861_);
lean_del_object(v___x_3859_);
lean_dec(v_a_3836_);
lean_dec_ref(v_a_3835_);
lean_dec(v_a_3834_);
lean_dec_ref(v_a_3833_);
v___x_3866_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3856_ == 0)
{
lean_ctor_set(v___x_3855_, 0, v___x_3866_);
v___x_3868_ = v___x_3855_;
goto v_reusejp_3867_;
}
else
{
lean_object* v_reuseFailAlloc_3869_; 
v_reuseFailAlloc_3869_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3869_, 0, v___x_3866_);
v___x_3868_ = v_reuseFailAlloc_3869_;
goto v_reusejp_3867_;
}
v_reusejp_3867_:
{
return v___x_3868_;
}
}
else
{
lean_object* v___x_3870_; lean_object* v___x_3871_; 
lean_del_object(v___x_3855_);
v___x_3870_ = l_BitVec_smod(v_n_3861_, v_value_3862_, v_value_3864_);
lean_dec(v_value_3864_);
lean_dec(v_value_3862_);
v___x_3871_ = l_BitVec_toExpr_x27___redArg(v_n_3861_, v___x_3870_, v_a_3832_, v_a_3833_, v_a_3834_, v_a_3835_, v_a_3836_);
if (lean_obj_tag(v___x_3871_) == 0)
{
lean_object* v_a_3872_; lean_object* v___x_3874_; uint8_t v_isShared_3875_; uint8_t v_isSharedCheck_3882_; 
v_a_3872_ = lean_ctor_get(v___x_3871_, 0);
v_isSharedCheck_3882_ = !lean_is_exclusive(v___x_3871_);
if (v_isSharedCheck_3882_ == 0)
{
v___x_3874_ = v___x_3871_;
v_isShared_3875_ = v_isSharedCheck_3882_;
goto v_resetjp_3873_;
}
else
{
lean_inc(v_a_3872_);
lean_dec(v___x_3871_);
v___x_3874_ = lean_box(0);
v_isShared_3875_ = v_isSharedCheck_3882_;
goto v_resetjp_3873_;
}
v_resetjp_3873_:
{
lean_object* v___x_3877_; 
if (v_isShared_3860_ == 0)
{
lean_ctor_set_tag(v___x_3859_, 0);
lean_ctor_set(v___x_3859_, 0, v_a_3872_);
v___x_3877_ = v___x_3859_;
goto v_reusejp_3876_;
}
else
{
lean_object* v_reuseFailAlloc_3881_; 
v_reuseFailAlloc_3881_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3881_, 0, v_a_3872_);
v___x_3877_ = v_reuseFailAlloc_3881_;
goto v_reusejp_3876_;
}
v_reusejp_3876_:
{
lean_object* v___x_3879_; 
if (v_isShared_3875_ == 0)
{
lean_ctor_set(v___x_3874_, 0, v___x_3877_);
v___x_3879_ = v___x_3874_;
goto v_reusejp_3878_;
}
else
{
lean_object* v_reuseFailAlloc_3880_; 
v_reuseFailAlloc_3880_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3880_, 0, v___x_3877_);
v___x_3879_ = v_reuseFailAlloc_3880_;
goto v_reusejp_3878_;
}
v_reusejp_3878_:
{
return v___x_3879_;
}
}
}
}
else
{
lean_object* v_a_3883_; lean_object* v___x_3885_; uint8_t v_isShared_3886_; uint8_t v_isSharedCheck_3890_; 
lean_del_object(v___x_3859_);
v_a_3883_ = lean_ctor_get(v___x_3871_, 0);
v_isSharedCheck_3890_ = !lean_is_exclusive(v___x_3871_);
if (v_isSharedCheck_3890_ == 0)
{
v___x_3885_ = v___x_3871_;
v_isShared_3886_ = v_isSharedCheck_3890_;
goto v_resetjp_3884_;
}
else
{
lean_inc(v_a_3883_);
lean_dec(v___x_3871_);
v___x_3885_ = lean_box(0);
v_isShared_3886_ = v_isSharedCheck_3890_;
goto v_resetjp_3884_;
}
v_resetjp_3884_:
{
lean_object* v___x_3888_; 
if (v_isShared_3886_ == 0)
{
v___x_3888_ = v___x_3885_;
goto v_reusejp_3887_;
}
else
{
lean_object* v_reuseFailAlloc_3889_; 
v_reuseFailAlloc_3889_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3889_, 0, v_a_3883_);
v___x_3888_ = v_reuseFailAlloc_3889_;
goto v_reusejp_3887_;
}
v_reusejp_3887_:
{
return v___x_3888_;
}
}
}
}
}
}
else
{
lean_object* v___x_3892_; lean_object* v___x_3894_; 
lean_dec(v_a_3853_);
lean_dec(v_val_3850_);
lean_dec(v_a_3836_);
lean_dec_ref(v_a_3835_);
lean_dec(v_a_3834_);
lean_dec_ref(v_a_3833_);
v___x_3892_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3856_ == 0)
{
lean_ctor_set(v___x_3855_, 0, v___x_3892_);
v___x_3894_ = v___x_3855_;
goto v_reusejp_3893_;
}
else
{
lean_object* v_reuseFailAlloc_3895_; 
v_reuseFailAlloc_3895_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3895_, 0, v___x_3892_);
v___x_3894_ = v_reuseFailAlloc_3895_;
goto v_reusejp_3893_;
}
v_reusejp_3893_:
{
return v___x_3894_;
}
}
}
}
else
{
lean_object* v_a_3897_; lean_object* v___x_3899_; uint8_t v_isShared_3900_; uint8_t v_isSharedCheck_3904_; 
lean_dec(v_val_3850_);
lean_dec(v_a_3836_);
lean_dec_ref(v_a_3835_);
lean_dec(v_a_3834_);
lean_dec_ref(v_a_3833_);
v_a_3897_ = lean_ctor_get(v___x_3852_, 0);
v_isSharedCheck_3904_ = !lean_is_exclusive(v___x_3852_);
if (v_isSharedCheck_3904_ == 0)
{
v___x_3899_ = v___x_3852_;
v_isShared_3900_ = v_isSharedCheck_3904_;
goto v_resetjp_3898_;
}
else
{
lean_inc(v_a_3897_);
lean_dec(v___x_3852_);
v___x_3899_ = lean_box(0);
v_isShared_3900_ = v_isSharedCheck_3904_;
goto v_resetjp_3898_;
}
v_resetjp_3898_:
{
lean_object* v___x_3902_; 
if (v_isShared_3900_ == 0)
{
v___x_3902_ = v___x_3899_;
goto v_reusejp_3901_;
}
else
{
lean_object* v_reuseFailAlloc_3903_; 
v_reuseFailAlloc_3903_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3903_, 0, v_a_3897_);
v___x_3902_ = v_reuseFailAlloc_3903_;
goto v_reusejp_3901_;
}
v_reusejp_3901_:
{
return v___x_3902_;
}
}
}
}
else
{
lean_object* v___x_3905_; lean_object* v___x_3907_; 
lean_dec(v_a_3846_);
lean_dec(v_a_3836_);
lean_dec_ref(v_a_3835_);
lean_dec(v_a_3834_);
lean_dec_ref(v_a_3833_);
v___x_3905_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_3849_ == 0)
{
lean_ctor_set(v___x_3848_, 0, v___x_3905_);
v___x_3907_ = v___x_3848_;
goto v_reusejp_3906_;
}
else
{
lean_object* v_reuseFailAlloc_3908_; 
v_reuseFailAlloc_3908_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3908_, 0, v___x_3905_);
v___x_3907_ = v_reuseFailAlloc_3908_;
goto v_reusejp_3906_;
}
v_reusejp_3906_:
{
return v___x_3907_;
}
}
}
}
else
{
lean_object* v_a_3910_; lean_object* v___x_3912_; uint8_t v_isShared_3913_; uint8_t v_isSharedCheck_3917_; 
lean_dec(v_a_3836_);
lean_dec_ref(v_a_3835_);
lean_dec(v_a_3834_);
lean_dec_ref(v_a_3833_);
v_a_3910_ = lean_ctor_get(v___x_3845_, 0);
v_isSharedCheck_3917_ = !lean_is_exclusive(v___x_3845_);
if (v_isSharedCheck_3917_ == 0)
{
v___x_3912_ = v___x_3845_;
v_isShared_3913_ = v_isSharedCheck_3917_;
goto v_resetjp_3911_;
}
else
{
lean_inc(v_a_3910_);
lean_dec(v___x_3845_);
v___x_3912_ = lean_box(0);
v_isShared_3913_ = v_isSharedCheck_3917_;
goto v_resetjp_3911_;
}
v_resetjp_3911_:
{
lean_object* v___x_3915_; 
if (v_isShared_3913_ == 0)
{
v___x_3915_ = v___x_3912_;
goto v_reusejp_3914_;
}
else
{
lean_object* v_reuseFailAlloc_3916_; 
v_reuseFailAlloc_3916_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_3916_, 0, v_a_3910_);
v___x_3915_ = v_reuseFailAlloc_3916_;
goto v_reusejp_3914_;
}
v_reusejp_3914_:
{
return v___x_3915_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___redArg___boxed(lean_object* v_e_3918_, lean_object* v_a_3919_, lean_object* v_a_3920_, lean_object* v_a_3921_, lean_object* v_a_3922_, lean_object* v_a_3923_, lean_object* v_a_3924_){
_start:
{
lean_object* v_res_3925_; 
v_res_3925_ = l_BitVec_reduceSMod___redArg(v_e_3918_, v_a_3919_, v_a_3920_, v_a_3921_, v_a_3922_, v_a_3923_);
lean_dec_ref(v_a_3919_);
lean_dec_ref(v_e_3918_);
return v_res_3925_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMod(lean_object* v_e_3926_, lean_object* v_a_3927_, lean_object* v_a_3928_, lean_object* v_a_3929_, lean_object* v_a_3930_, lean_object* v_a_3931_, lean_object* v_a_3932_, lean_object* v_a_3933_){
_start:
{
lean_object* v___x_3935_; 
v___x_3935_ = l_BitVec_reduceSMod___redArg(v_e_3926_, v_a_3928_, v_a_3930_, v_a_3931_, v_a_3932_, v_a_3933_);
return v___x_3935_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___boxed(lean_object* v_e_3936_, lean_object* v_a_3937_, lean_object* v_a_3938_, lean_object* v_a_3939_, lean_object* v_a_3940_, lean_object* v_a_3941_, lean_object* v_a_3942_, lean_object* v_a_3943_, lean_object* v_a_3944_){
_start:
{
lean_object* v_res_3945_; 
v_res_3945_ = l_BitVec_reduceSMod(v_e_3936_, v_a_3937_, v_a_3938_, v_a_3939_, v_a_3940_, v_a_3941_, v_a_3942_, v_a_3943_);
lean_dec(v_a_3939_);
lean_dec_ref(v_a_3938_);
lean_dec(v_a_3937_);
lean_dec_ref(v_e_3936_);
return v_res_3945_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_3962_; lean_object* v___x_3963_; lean_object* v___x_3964_; lean_object* v___x_3965_; 
v___x_3962_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_));
v___x_3963_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_));
v___x_3964_ = lean_alloc_closure((void*)(l_BitVec_reduceSMod___boxed), 9, 0);
v___x_3965_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_3962_, v___x_3963_, v___x_3964_);
return v___x_3965_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18____boxed(lean_object* v_a_3966_){
_start:
{
lean_object* v_res_3967_; 
v_res_3967_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_();
return v_res_3967_;
}
}
static lean_object* _init_l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_3968_; lean_object* v___x_3969_; 
v___x_3968_ = lean_alloc_closure((void*)(l_BitVec_reduceSMod___boxed), 9, 0);
v___x_3969_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_3969_, 0, v___x_3968_);
return v___x_3969_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_3971_; uint8_t v___x_3972_; lean_object* v___x_3973_; lean_object* v___x_3974_; 
v___x_3971_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_));
v___x_3972_ = 1;
v___x_3973_ = lean_obj_once(&l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_, &l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20__once, _init_l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_);
v___x_3974_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_3971_, v___x_3972_, v___x_3973_);
return v___x_3974_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20____boxed(lean_object* v_a_3975_){
_start:
{
lean_object* v_res_3976_; 
v_res_3976_ = l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_();
return v_res_3976_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_3978_; uint8_t v___x_3979_; lean_object* v___x_3980_; lean_object* v___x_3981_; 
v___x_3978_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_));
v___x_3979_ = 1;
v___x_3980_ = lean_obj_once(&l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_, &l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20__once, _init_l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_);
v___x_3981_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_3978_, v___x_3979_, v___x_3980_);
return v___x_3981_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_22____boxed(lean_object* v_a_3982_){
_start:
{
lean_object* v_res_3983_; 
v_res_3983_ = l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_22_();
return v_res_3983_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___redArg(lean_object* v_e_3988_, lean_object* v_a_3989_, lean_object* v_a_3990_, lean_object* v_a_3991_, lean_object* v_a_3992_, lean_object* v_a_3993_){
_start:
{
lean_object* v___x_3995_; lean_object* v___x_3996_; uint8_t v___x_3997_; 
v___x_3995_ = ((lean_object*)(l_BitVec_reduceSRem___redArg___closed__1));
v___x_3996_ = lean_unsigned_to_nat(3u);
v___x_3997_ = l_Lean_Expr_isAppOfArity(v_e_3988_, v___x_3995_, v___x_3996_);
if (v___x_3997_ == 0)
{
lean_object* v___x_3998_; lean_object* v___x_3999_; 
lean_dec(v_a_3993_);
lean_dec_ref(v_a_3992_);
lean_dec(v_a_3991_);
lean_dec_ref(v_a_3990_);
v___x_3998_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_3999_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_3999_, 0, v___x_3998_);
return v___x_3999_;
}
else
{
lean_object* v___x_4000_; lean_object* v___x_4001_; lean_object* v___x_4002_; 
v___x_4000_ = l_Lean_Expr_appFn_x21(v_e_3988_);
v___x_4001_ = l_Lean_Expr_appArg_x21(v___x_4000_);
lean_dec_ref(v___x_4000_);
lean_inc(v_a_3993_);
lean_inc_ref(v_a_3992_);
lean_inc(v_a_3991_);
lean_inc_ref(v_a_3990_);
v___x_4002_ = l_BitVec_fromExpr_x3f___redArg(v___x_4001_, v_a_3990_, v_a_3991_, v_a_3992_, v_a_3993_);
if (lean_obj_tag(v___x_4002_) == 0)
{
lean_object* v_a_4003_; lean_object* v___x_4005_; uint8_t v_isShared_4006_; uint8_t v_isSharedCheck_4066_; 
v_a_4003_ = lean_ctor_get(v___x_4002_, 0);
v_isSharedCheck_4066_ = !lean_is_exclusive(v___x_4002_);
if (v_isSharedCheck_4066_ == 0)
{
v___x_4005_ = v___x_4002_;
v_isShared_4006_ = v_isSharedCheck_4066_;
goto v_resetjp_4004_;
}
else
{
lean_inc(v_a_4003_);
lean_dec(v___x_4002_);
v___x_4005_ = lean_box(0);
v_isShared_4006_ = v_isSharedCheck_4066_;
goto v_resetjp_4004_;
}
v_resetjp_4004_:
{
if (lean_obj_tag(v_a_4003_) == 1)
{
lean_object* v_val_4007_; lean_object* v___x_4008_; lean_object* v___x_4009_; 
lean_del_object(v___x_4005_);
v_val_4007_ = lean_ctor_get(v_a_4003_, 0);
lean_inc(v_val_4007_);
lean_dec_ref(v_a_4003_);
v___x_4008_ = l_Lean_Expr_appArg_x21(v_e_3988_);
lean_inc(v_a_3993_);
lean_inc_ref(v_a_3992_);
lean_inc(v_a_3991_);
lean_inc_ref(v_a_3990_);
v___x_4009_ = l_BitVec_fromExpr_x3f___redArg(v___x_4008_, v_a_3990_, v_a_3991_, v_a_3992_, v_a_3993_);
if (lean_obj_tag(v___x_4009_) == 0)
{
lean_object* v_a_4010_; lean_object* v___x_4012_; uint8_t v_isShared_4013_; uint8_t v_isSharedCheck_4053_; 
v_a_4010_ = lean_ctor_get(v___x_4009_, 0);
v_isSharedCheck_4053_ = !lean_is_exclusive(v___x_4009_);
if (v_isSharedCheck_4053_ == 0)
{
v___x_4012_ = v___x_4009_;
v_isShared_4013_ = v_isSharedCheck_4053_;
goto v_resetjp_4011_;
}
else
{
lean_inc(v_a_4010_);
lean_dec(v___x_4009_);
v___x_4012_ = lean_box(0);
v_isShared_4013_ = v_isSharedCheck_4053_;
goto v_resetjp_4011_;
}
v_resetjp_4011_:
{
if (lean_obj_tag(v_a_4010_) == 1)
{
lean_object* v_val_4014_; lean_object* v___x_4016_; uint8_t v_isShared_4017_; uint8_t v_isSharedCheck_4048_; 
v_val_4014_ = lean_ctor_get(v_a_4010_, 0);
v_isSharedCheck_4048_ = !lean_is_exclusive(v_a_4010_);
if (v_isSharedCheck_4048_ == 0)
{
v___x_4016_ = v_a_4010_;
v_isShared_4017_ = v_isSharedCheck_4048_;
goto v_resetjp_4015_;
}
else
{
lean_inc(v_val_4014_);
lean_dec(v_a_4010_);
v___x_4016_ = lean_box(0);
v_isShared_4017_ = v_isSharedCheck_4048_;
goto v_resetjp_4015_;
}
v_resetjp_4015_:
{
lean_object* v_n_4018_; lean_object* v_value_4019_; lean_object* v_n_4020_; lean_object* v_value_4021_; uint8_t v___x_4022_; 
v_n_4018_ = lean_ctor_get(v_val_4007_, 0);
lean_inc(v_n_4018_);
v_value_4019_ = lean_ctor_get(v_val_4007_, 1);
lean_inc(v_value_4019_);
lean_dec(v_val_4007_);
v_n_4020_ = lean_ctor_get(v_val_4014_, 0);
lean_inc(v_n_4020_);
v_value_4021_ = lean_ctor_get(v_val_4014_, 1);
lean_inc(v_value_4021_);
lean_dec(v_val_4014_);
v___x_4022_ = lean_nat_dec_eq(v_n_4018_, v_n_4020_);
lean_dec(v_n_4020_);
if (v___x_4022_ == 0)
{
lean_object* v___x_4023_; lean_object* v___x_4025_; 
lean_dec(v_value_4021_);
lean_dec(v_value_4019_);
lean_dec(v_n_4018_);
lean_del_object(v___x_4016_);
lean_dec(v_a_3993_);
lean_dec_ref(v_a_3992_);
lean_dec(v_a_3991_);
lean_dec_ref(v_a_3990_);
v___x_4023_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4013_ == 0)
{
lean_ctor_set(v___x_4012_, 0, v___x_4023_);
v___x_4025_ = v___x_4012_;
goto v_reusejp_4024_;
}
else
{
lean_object* v_reuseFailAlloc_4026_; 
v_reuseFailAlloc_4026_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4026_, 0, v___x_4023_);
v___x_4025_ = v_reuseFailAlloc_4026_;
goto v_reusejp_4024_;
}
v_reusejp_4024_:
{
return v___x_4025_;
}
}
else
{
lean_object* v___x_4027_; lean_object* v___x_4028_; 
lean_del_object(v___x_4012_);
v___x_4027_ = l_BitVec_srem(v_n_4018_, v_value_4019_, v_value_4021_);
lean_dec(v_value_4021_);
lean_dec(v_value_4019_);
v___x_4028_ = l_BitVec_toExpr_x27___redArg(v_n_4018_, v___x_4027_, v_a_3989_, v_a_3990_, v_a_3991_, v_a_3992_, v_a_3993_);
if (lean_obj_tag(v___x_4028_) == 0)
{
lean_object* v_a_4029_; lean_object* v___x_4031_; uint8_t v_isShared_4032_; uint8_t v_isSharedCheck_4039_; 
v_a_4029_ = lean_ctor_get(v___x_4028_, 0);
v_isSharedCheck_4039_ = !lean_is_exclusive(v___x_4028_);
if (v_isSharedCheck_4039_ == 0)
{
v___x_4031_ = v___x_4028_;
v_isShared_4032_ = v_isSharedCheck_4039_;
goto v_resetjp_4030_;
}
else
{
lean_inc(v_a_4029_);
lean_dec(v___x_4028_);
v___x_4031_ = lean_box(0);
v_isShared_4032_ = v_isSharedCheck_4039_;
goto v_resetjp_4030_;
}
v_resetjp_4030_:
{
lean_object* v___x_4034_; 
if (v_isShared_4017_ == 0)
{
lean_ctor_set_tag(v___x_4016_, 0);
lean_ctor_set(v___x_4016_, 0, v_a_4029_);
v___x_4034_ = v___x_4016_;
goto v_reusejp_4033_;
}
else
{
lean_object* v_reuseFailAlloc_4038_; 
v_reuseFailAlloc_4038_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4038_, 0, v_a_4029_);
v___x_4034_ = v_reuseFailAlloc_4038_;
goto v_reusejp_4033_;
}
v_reusejp_4033_:
{
lean_object* v___x_4036_; 
if (v_isShared_4032_ == 0)
{
lean_ctor_set(v___x_4031_, 0, v___x_4034_);
v___x_4036_ = v___x_4031_;
goto v_reusejp_4035_;
}
else
{
lean_object* v_reuseFailAlloc_4037_; 
v_reuseFailAlloc_4037_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4037_, 0, v___x_4034_);
v___x_4036_ = v_reuseFailAlloc_4037_;
goto v_reusejp_4035_;
}
v_reusejp_4035_:
{
return v___x_4036_;
}
}
}
}
else
{
lean_object* v_a_4040_; lean_object* v___x_4042_; uint8_t v_isShared_4043_; uint8_t v_isSharedCheck_4047_; 
lean_del_object(v___x_4016_);
v_a_4040_ = lean_ctor_get(v___x_4028_, 0);
v_isSharedCheck_4047_ = !lean_is_exclusive(v___x_4028_);
if (v_isSharedCheck_4047_ == 0)
{
v___x_4042_ = v___x_4028_;
v_isShared_4043_ = v_isSharedCheck_4047_;
goto v_resetjp_4041_;
}
else
{
lean_inc(v_a_4040_);
lean_dec(v___x_4028_);
v___x_4042_ = lean_box(0);
v_isShared_4043_ = v_isSharedCheck_4047_;
goto v_resetjp_4041_;
}
v_resetjp_4041_:
{
lean_object* v___x_4045_; 
if (v_isShared_4043_ == 0)
{
v___x_4045_ = v___x_4042_;
goto v_reusejp_4044_;
}
else
{
lean_object* v_reuseFailAlloc_4046_; 
v_reuseFailAlloc_4046_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4046_, 0, v_a_4040_);
v___x_4045_ = v_reuseFailAlloc_4046_;
goto v_reusejp_4044_;
}
v_reusejp_4044_:
{
return v___x_4045_;
}
}
}
}
}
}
else
{
lean_object* v___x_4049_; lean_object* v___x_4051_; 
lean_dec(v_a_4010_);
lean_dec(v_val_4007_);
lean_dec(v_a_3993_);
lean_dec_ref(v_a_3992_);
lean_dec(v_a_3991_);
lean_dec_ref(v_a_3990_);
v___x_4049_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4013_ == 0)
{
lean_ctor_set(v___x_4012_, 0, v___x_4049_);
v___x_4051_ = v___x_4012_;
goto v_reusejp_4050_;
}
else
{
lean_object* v_reuseFailAlloc_4052_; 
v_reuseFailAlloc_4052_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4052_, 0, v___x_4049_);
v___x_4051_ = v_reuseFailAlloc_4052_;
goto v_reusejp_4050_;
}
v_reusejp_4050_:
{
return v___x_4051_;
}
}
}
}
else
{
lean_object* v_a_4054_; lean_object* v___x_4056_; uint8_t v_isShared_4057_; uint8_t v_isSharedCheck_4061_; 
lean_dec(v_val_4007_);
lean_dec(v_a_3993_);
lean_dec_ref(v_a_3992_);
lean_dec(v_a_3991_);
lean_dec_ref(v_a_3990_);
v_a_4054_ = lean_ctor_get(v___x_4009_, 0);
v_isSharedCheck_4061_ = !lean_is_exclusive(v___x_4009_);
if (v_isSharedCheck_4061_ == 0)
{
v___x_4056_ = v___x_4009_;
v_isShared_4057_ = v_isSharedCheck_4061_;
goto v_resetjp_4055_;
}
else
{
lean_inc(v_a_4054_);
lean_dec(v___x_4009_);
v___x_4056_ = lean_box(0);
v_isShared_4057_ = v_isSharedCheck_4061_;
goto v_resetjp_4055_;
}
v_resetjp_4055_:
{
lean_object* v___x_4059_; 
if (v_isShared_4057_ == 0)
{
v___x_4059_ = v___x_4056_;
goto v_reusejp_4058_;
}
else
{
lean_object* v_reuseFailAlloc_4060_; 
v_reuseFailAlloc_4060_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4060_, 0, v_a_4054_);
v___x_4059_ = v_reuseFailAlloc_4060_;
goto v_reusejp_4058_;
}
v_reusejp_4058_:
{
return v___x_4059_;
}
}
}
}
else
{
lean_object* v___x_4062_; lean_object* v___x_4064_; 
lean_dec(v_a_4003_);
lean_dec(v_a_3993_);
lean_dec_ref(v_a_3992_);
lean_dec(v_a_3991_);
lean_dec_ref(v_a_3990_);
v___x_4062_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4006_ == 0)
{
lean_ctor_set(v___x_4005_, 0, v___x_4062_);
v___x_4064_ = v___x_4005_;
goto v_reusejp_4063_;
}
else
{
lean_object* v_reuseFailAlloc_4065_; 
v_reuseFailAlloc_4065_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4065_, 0, v___x_4062_);
v___x_4064_ = v_reuseFailAlloc_4065_;
goto v_reusejp_4063_;
}
v_reusejp_4063_:
{
return v___x_4064_;
}
}
}
}
else
{
lean_object* v_a_4067_; lean_object* v___x_4069_; uint8_t v_isShared_4070_; uint8_t v_isSharedCheck_4074_; 
lean_dec(v_a_3993_);
lean_dec_ref(v_a_3992_);
lean_dec(v_a_3991_);
lean_dec_ref(v_a_3990_);
v_a_4067_ = lean_ctor_get(v___x_4002_, 0);
v_isSharedCheck_4074_ = !lean_is_exclusive(v___x_4002_);
if (v_isSharedCheck_4074_ == 0)
{
v___x_4069_ = v___x_4002_;
v_isShared_4070_ = v_isSharedCheck_4074_;
goto v_resetjp_4068_;
}
else
{
lean_inc(v_a_4067_);
lean_dec(v___x_4002_);
v___x_4069_ = lean_box(0);
v_isShared_4070_ = v_isSharedCheck_4074_;
goto v_resetjp_4068_;
}
v_resetjp_4068_:
{
lean_object* v___x_4072_; 
if (v_isShared_4070_ == 0)
{
v___x_4072_ = v___x_4069_;
goto v_reusejp_4071_;
}
else
{
lean_object* v_reuseFailAlloc_4073_; 
v_reuseFailAlloc_4073_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4073_, 0, v_a_4067_);
v___x_4072_ = v_reuseFailAlloc_4073_;
goto v_reusejp_4071_;
}
v_reusejp_4071_:
{
return v___x_4072_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___redArg___boxed(lean_object* v_e_4075_, lean_object* v_a_4076_, lean_object* v_a_4077_, lean_object* v_a_4078_, lean_object* v_a_4079_, lean_object* v_a_4080_, lean_object* v_a_4081_){
_start:
{
lean_object* v_res_4082_; 
v_res_4082_ = l_BitVec_reduceSRem___redArg(v_e_4075_, v_a_4076_, v_a_4077_, v_a_4078_, v_a_4079_, v_a_4080_);
lean_dec_ref(v_a_4076_);
lean_dec_ref(v_e_4075_);
return v_res_4082_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSRem(lean_object* v_e_4083_, lean_object* v_a_4084_, lean_object* v_a_4085_, lean_object* v_a_4086_, lean_object* v_a_4087_, lean_object* v_a_4088_, lean_object* v_a_4089_, lean_object* v_a_4090_){
_start:
{
lean_object* v___x_4092_; 
v___x_4092_ = l_BitVec_reduceSRem___redArg(v_e_4083_, v_a_4085_, v_a_4087_, v_a_4088_, v_a_4089_, v_a_4090_);
return v___x_4092_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___boxed(lean_object* v_e_4093_, lean_object* v_a_4094_, lean_object* v_a_4095_, lean_object* v_a_4096_, lean_object* v_a_4097_, lean_object* v_a_4098_, lean_object* v_a_4099_, lean_object* v_a_4100_, lean_object* v_a_4101_){
_start:
{
lean_object* v_res_4102_; 
v_res_4102_ = l_BitVec_reduceSRem(v_e_4093_, v_a_4094_, v_a_4095_, v_a_4096_, v_a_4097_, v_a_4098_, v_a_4099_, v_a_4100_);
lean_dec(v_a_4096_);
lean_dec_ref(v_a_4095_);
lean_dec(v_a_4094_);
lean_dec_ref(v_e_4093_);
return v_res_4102_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_4119_; lean_object* v___x_4120_; lean_object* v___x_4121_; lean_object* v___x_4122_; 
v___x_4119_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_));
v___x_4120_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_));
v___x_4121_ = lean_alloc_closure((void*)(l_BitVec_reduceSRem___boxed), 9, 0);
v___x_4122_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_4119_, v___x_4120_, v___x_4121_);
return v___x_4122_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18____boxed(lean_object* v_a_4123_){
_start:
{
lean_object* v_res_4124_; 
v_res_4124_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_();
return v_res_4124_;
}
}
static lean_object* _init_l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_4125_; lean_object* v___x_4126_; 
v___x_4125_ = lean_alloc_closure((void*)(l_BitVec_reduceSRem___boxed), 9, 0);
v___x_4126_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_4126_, 0, v___x_4125_);
return v___x_4126_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_4128_; uint8_t v___x_4129_; lean_object* v___x_4130_; lean_object* v___x_4131_; 
v___x_4128_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_));
v___x_4129_ = 1;
v___x_4130_ = lean_obj_once(&l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_, &l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20__once, _init_l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_);
v___x_4131_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_4128_, v___x_4129_, v___x_4130_);
return v___x_4131_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20____boxed(lean_object* v_a_4132_){
_start:
{
lean_object* v_res_4133_; 
v_res_4133_ = l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_();
return v_res_4133_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_4135_; uint8_t v___x_4136_; lean_object* v___x_4137_; lean_object* v___x_4138_; 
v___x_4135_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_));
v___x_4136_ = 1;
v___x_4137_ = lean_obj_once(&l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_, &l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20__once, _init_l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_);
v___x_4138_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_4135_, v___x_4136_, v___x_4137_);
return v___x_4138_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_22____boxed(lean_object* v_a_4139_){
_start:
{
lean_object* v_res_4140_; 
v_res_4140_ = l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_22_();
return v_res_4140_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___redArg(lean_object* v_e_4145_, lean_object* v_a_4146_, lean_object* v_a_4147_, lean_object* v_a_4148_, lean_object* v_a_4149_, lean_object* v_a_4150_){
_start:
{
lean_object* v___x_4152_; lean_object* v___x_4153_; uint8_t v___x_4154_; 
v___x_4152_ = ((lean_object*)(l_BitVec_reduceSDiv___redArg___closed__1));
v___x_4153_ = lean_unsigned_to_nat(3u);
v___x_4154_ = l_Lean_Expr_isAppOfArity(v_e_4145_, v___x_4152_, v___x_4153_);
if (v___x_4154_ == 0)
{
lean_object* v___x_4155_; lean_object* v___x_4156_; 
lean_dec(v_a_4150_);
lean_dec_ref(v_a_4149_);
lean_dec(v_a_4148_);
lean_dec_ref(v_a_4147_);
v___x_4155_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_4156_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_4156_, 0, v___x_4155_);
return v___x_4156_;
}
else
{
lean_object* v___x_4157_; lean_object* v___x_4158_; lean_object* v___x_4159_; 
v___x_4157_ = l_Lean_Expr_appFn_x21(v_e_4145_);
v___x_4158_ = l_Lean_Expr_appArg_x21(v___x_4157_);
lean_dec_ref(v___x_4157_);
lean_inc(v_a_4150_);
lean_inc_ref(v_a_4149_);
lean_inc(v_a_4148_);
lean_inc_ref(v_a_4147_);
v___x_4159_ = l_BitVec_fromExpr_x3f___redArg(v___x_4158_, v_a_4147_, v_a_4148_, v_a_4149_, v_a_4150_);
if (lean_obj_tag(v___x_4159_) == 0)
{
lean_object* v_a_4160_; lean_object* v___x_4162_; uint8_t v_isShared_4163_; uint8_t v_isSharedCheck_4223_; 
v_a_4160_ = lean_ctor_get(v___x_4159_, 0);
v_isSharedCheck_4223_ = !lean_is_exclusive(v___x_4159_);
if (v_isSharedCheck_4223_ == 0)
{
v___x_4162_ = v___x_4159_;
v_isShared_4163_ = v_isSharedCheck_4223_;
goto v_resetjp_4161_;
}
else
{
lean_inc(v_a_4160_);
lean_dec(v___x_4159_);
v___x_4162_ = lean_box(0);
v_isShared_4163_ = v_isSharedCheck_4223_;
goto v_resetjp_4161_;
}
v_resetjp_4161_:
{
if (lean_obj_tag(v_a_4160_) == 1)
{
lean_object* v_val_4164_; lean_object* v___x_4165_; lean_object* v___x_4166_; 
lean_del_object(v___x_4162_);
v_val_4164_ = lean_ctor_get(v_a_4160_, 0);
lean_inc(v_val_4164_);
lean_dec_ref(v_a_4160_);
v___x_4165_ = l_Lean_Expr_appArg_x21(v_e_4145_);
lean_inc(v_a_4150_);
lean_inc_ref(v_a_4149_);
lean_inc(v_a_4148_);
lean_inc_ref(v_a_4147_);
v___x_4166_ = l_BitVec_fromExpr_x3f___redArg(v___x_4165_, v_a_4147_, v_a_4148_, v_a_4149_, v_a_4150_);
if (lean_obj_tag(v___x_4166_) == 0)
{
lean_object* v_a_4167_; lean_object* v___x_4169_; uint8_t v_isShared_4170_; uint8_t v_isSharedCheck_4210_; 
v_a_4167_ = lean_ctor_get(v___x_4166_, 0);
v_isSharedCheck_4210_ = !lean_is_exclusive(v___x_4166_);
if (v_isSharedCheck_4210_ == 0)
{
v___x_4169_ = v___x_4166_;
v_isShared_4170_ = v_isSharedCheck_4210_;
goto v_resetjp_4168_;
}
else
{
lean_inc(v_a_4167_);
lean_dec(v___x_4166_);
v___x_4169_ = lean_box(0);
v_isShared_4170_ = v_isSharedCheck_4210_;
goto v_resetjp_4168_;
}
v_resetjp_4168_:
{
if (lean_obj_tag(v_a_4167_) == 1)
{
lean_object* v_val_4171_; lean_object* v___x_4173_; uint8_t v_isShared_4174_; uint8_t v_isSharedCheck_4205_; 
v_val_4171_ = lean_ctor_get(v_a_4167_, 0);
v_isSharedCheck_4205_ = !lean_is_exclusive(v_a_4167_);
if (v_isSharedCheck_4205_ == 0)
{
v___x_4173_ = v_a_4167_;
v_isShared_4174_ = v_isSharedCheck_4205_;
goto v_resetjp_4172_;
}
else
{
lean_inc(v_val_4171_);
lean_dec(v_a_4167_);
v___x_4173_ = lean_box(0);
v_isShared_4174_ = v_isSharedCheck_4205_;
goto v_resetjp_4172_;
}
v_resetjp_4172_:
{
lean_object* v_n_4175_; lean_object* v_value_4176_; lean_object* v_n_4177_; lean_object* v_value_4178_; uint8_t v___x_4179_; 
v_n_4175_ = lean_ctor_get(v_val_4164_, 0);
lean_inc(v_n_4175_);
v_value_4176_ = lean_ctor_get(v_val_4164_, 1);
lean_inc(v_value_4176_);
lean_dec(v_val_4164_);
v_n_4177_ = lean_ctor_get(v_val_4171_, 0);
lean_inc(v_n_4177_);
v_value_4178_ = lean_ctor_get(v_val_4171_, 1);
lean_inc(v_value_4178_);
lean_dec(v_val_4171_);
v___x_4179_ = lean_nat_dec_eq(v_n_4175_, v_n_4177_);
lean_dec(v_n_4177_);
if (v___x_4179_ == 0)
{
lean_object* v___x_4180_; lean_object* v___x_4182_; 
lean_dec(v_value_4178_);
lean_dec(v_value_4176_);
lean_dec(v_n_4175_);
lean_del_object(v___x_4173_);
lean_dec(v_a_4150_);
lean_dec_ref(v_a_4149_);
lean_dec(v_a_4148_);
lean_dec_ref(v_a_4147_);
v___x_4180_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4170_ == 0)
{
lean_ctor_set(v___x_4169_, 0, v___x_4180_);
v___x_4182_ = v___x_4169_;
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___x_4184_; lean_object* v___x_4185_; 
lean_del_object(v___x_4169_);
v___x_4184_ = l_BitVec_sdiv(v_n_4175_, v_value_4176_, v_value_4178_);
lean_dec(v_value_4178_);
lean_dec(v_value_4176_);
v___x_4185_ = l_BitVec_toExpr_x27___redArg(v_n_4175_, v___x_4184_, v_a_4146_, v_a_4147_, v_a_4148_, v_a_4149_, v_a_4150_);
if (lean_obj_tag(v___x_4185_) == 0)
{
lean_object* v_a_4186_; lean_object* v___x_4188_; uint8_t v_isShared_4189_; uint8_t v_isSharedCheck_4196_; 
v_a_4186_ = lean_ctor_get(v___x_4185_, 0);
v_isSharedCheck_4196_ = !lean_is_exclusive(v___x_4185_);
if (v_isSharedCheck_4196_ == 0)
{
v___x_4188_ = v___x_4185_;
v_isShared_4189_ = v_isSharedCheck_4196_;
goto v_resetjp_4187_;
}
else
{
lean_inc(v_a_4186_);
lean_dec(v___x_4185_);
v___x_4188_ = lean_box(0);
v_isShared_4189_ = v_isSharedCheck_4196_;
goto v_resetjp_4187_;
}
v_resetjp_4187_:
{
lean_object* v___x_4191_; 
if (v_isShared_4174_ == 0)
{
lean_ctor_set_tag(v___x_4173_, 0);
lean_ctor_set(v___x_4173_, 0, v_a_4186_);
v___x_4191_ = v___x_4173_;
goto v_reusejp_4190_;
}
else
{
lean_object* v_reuseFailAlloc_4195_; 
v_reuseFailAlloc_4195_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4195_, 0, v_a_4186_);
v___x_4191_ = v_reuseFailAlloc_4195_;
goto v_reusejp_4190_;
}
v_reusejp_4190_:
{
lean_object* v___x_4193_; 
if (v_isShared_4189_ == 0)
{
lean_ctor_set(v___x_4188_, 0, v___x_4191_);
v___x_4193_ = v___x_4188_;
goto v_reusejp_4192_;
}
else
{
lean_object* v_reuseFailAlloc_4194_; 
v_reuseFailAlloc_4194_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4194_, 0, v___x_4191_);
v___x_4193_ = v_reuseFailAlloc_4194_;
goto v_reusejp_4192_;
}
v_reusejp_4192_:
{
return v___x_4193_;
}
}
}
}
else
{
lean_object* v_a_4197_; lean_object* v___x_4199_; uint8_t v_isShared_4200_; uint8_t v_isSharedCheck_4204_; 
lean_del_object(v___x_4173_);
v_a_4197_ = lean_ctor_get(v___x_4185_, 0);
v_isSharedCheck_4204_ = !lean_is_exclusive(v___x_4185_);
if (v_isSharedCheck_4204_ == 0)
{
v___x_4199_ = v___x_4185_;
v_isShared_4200_ = v_isSharedCheck_4204_;
goto v_resetjp_4198_;
}
else
{
lean_inc(v_a_4197_);
lean_dec(v___x_4185_);
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_4206_; lean_object* v___x_4208_; 
lean_dec(v_a_4167_);
lean_dec(v_val_4164_);
lean_dec(v_a_4150_);
lean_dec_ref(v_a_4149_);
lean_dec(v_a_4148_);
lean_dec_ref(v_a_4147_);
v___x_4206_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4170_ == 0)
{
lean_ctor_set(v___x_4169_, 0, v___x_4206_);
v___x_4208_ = v___x_4169_;
goto v_reusejp_4207_;
}
else
{
lean_object* v_reuseFailAlloc_4209_; 
v_reuseFailAlloc_4209_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4209_, 0, v___x_4206_);
v___x_4208_ = v_reuseFailAlloc_4209_;
goto v_reusejp_4207_;
}
v_reusejp_4207_:
{
return v___x_4208_;
}
}
}
}
else
{
lean_object* v_a_4211_; lean_object* v___x_4213_; uint8_t v_isShared_4214_; uint8_t v_isSharedCheck_4218_; 
lean_dec(v_val_4164_);
lean_dec(v_a_4150_);
lean_dec_ref(v_a_4149_);
lean_dec(v_a_4148_);
lean_dec_ref(v_a_4147_);
v_a_4211_ = lean_ctor_get(v___x_4166_, 0);
v_isSharedCheck_4218_ = !lean_is_exclusive(v___x_4166_);
if (v_isSharedCheck_4218_ == 0)
{
v___x_4213_ = v___x_4166_;
v_isShared_4214_ = v_isSharedCheck_4218_;
goto v_resetjp_4212_;
}
else
{
lean_inc(v_a_4211_);
lean_dec(v___x_4166_);
v___x_4213_ = lean_box(0);
v_isShared_4214_ = v_isSharedCheck_4218_;
goto v_resetjp_4212_;
}
v_resetjp_4212_:
{
lean_object* v___x_4216_; 
if (v_isShared_4214_ == 0)
{
v___x_4216_ = v___x_4213_;
goto v_reusejp_4215_;
}
else
{
lean_object* v_reuseFailAlloc_4217_; 
v_reuseFailAlloc_4217_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4217_, 0, v_a_4211_);
v___x_4216_ = v_reuseFailAlloc_4217_;
goto v_reusejp_4215_;
}
v_reusejp_4215_:
{
return v___x_4216_;
}
}
}
}
else
{
lean_object* v___x_4219_; lean_object* v___x_4221_; 
lean_dec(v_a_4160_);
lean_dec(v_a_4150_);
lean_dec_ref(v_a_4149_);
lean_dec(v_a_4148_);
lean_dec_ref(v_a_4147_);
v___x_4219_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4163_ == 0)
{
lean_ctor_set(v___x_4162_, 0, v___x_4219_);
v___x_4221_ = v___x_4162_;
goto v_reusejp_4220_;
}
else
{
lean_object* v_reuseFailAlloc_4222_; 
v_reuseFailAlloc_4222_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4222_, 0, v___x_4219_);
v___x_4221_ = v_reuseFailAlloc_4222_;
goto v_reusejp_4220_;
}
v_reusejp_4220_:
{
return v___x_4221_;
}
}
}
}
else
{
lean_object* v_a_4224_; lean_object* v___x_4226_; uint8_t v_isShared_4227_; uint8_t v_isSharedCheck_4231_; 
lean_dec(v_a_4150_);
lean_dec_ref(v_a_4149_);
lean_dec(v_a_4148_);
lean_dec_ref(v_a_4147_);
v_a_4224_ = lean_ctor_get(v___x_4159_, 0);
v_isSharedCheck_4231_ = !lean_is_exclusive(v___x_4159_);
if (v_isSharedCheck_4231_ == 0)
{
v___x_4226_ = v___x_4159_;
v_isShared_4227_ = v_isSharedCheck_4231_;
goto v_resetjp_4225_;
}
else
{
lean_inc(v_a_4224_);
lean_dec(v___x_4159_);
v___x_4226_ = lean_box(0);
v_isShared_4227_ = v_isSharedCheck_4231_;
goto v_resetjp_4225_;
}
v_resetjp_4225_:
{
lean_object* v___x_4229_; 
if (v_isShared_4227_ == 0)
{
v___x_4229_ = v___x_4226_;
goto v_reusejp_4228_;
}
else
{
lean_object* v_reuseFailAlloc_4230_; 
v_reuseFailAlloc_4230_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4230_, 0, v_a_4224_);
v___x_4229_ = v_reuseFailAlloc_4230_;
goto v_reusejp_4228_;
}
v_reusejp_4228_:
{
return v___x_4229_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___redArg___boxed(lean_object* v_e_4232_, lean_object* v_a_4233_, lean_object* v_a_4234_, lean_object* v_a_4235_, lean_object* v_a_4236_, lean_object* v_a_4237_, lean_object* v_a_4238_){
_start:
{
lean_object* v_res_4239_; 
v_res_4239_ = l_BitVec_reduceSDiv___redArg(v_e_4232_, v_a_4233_, v_a_4234_, v_a_4235_, v_a_4236_, v_a_4237_);
lean_dec_ref(v_a_4233_);
lean_dec_ref(v_e_4232_);
return v_res_4239_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv(lean_object* v_e_4240_, lean_object* v_a_4241_, lean_object* v_a_4242_, lean_object* v_a_4243_, lean_object* v_a_4244_, lean_object* v_a_4245_, lean_object* v_a_4246_, lean_object* v_a_4247_){
_start:
{
lean_object* v___x_4249_; 
v___x_4249_ = l_BitVec_reduceSDiv___redArg(v_e_4240_, v_a_4242_, v_a_4244_, v_a_4245_, v_a_4246_, v_a_4247_);
return v___x_4249_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___boxed(lean_object* v_e_4250_, lean_object* v_a_4251_, lean_object* v_a_4252_, lean_object* v_a_4253_, lean_object* v_a_4254_, lean_object* v_a_4255_, lean_object* v_a_4256_, lean_object* v_a_4257_, lean_object* v_a_4258_){
_start:
{
lean_object* v_res_4259_; 
v_res_4259_ = l_BitVec_reduceSDiv(v_e_4250_, v_a_4251_, v_a_4252_, v_a_4253_, v_a_4254_, v_a_4255_, v_a_4256_, v_a_4257_);
lean_dec(v_a_4253_);
lean_dec_ref(v_a_4252_);
lean_dec(v_a_4251_);
lean_dec_ref(v_e_4250_);
return v_res_4259_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_4276_; lean_object* v___x_4277_; lean_object* v___x_4278_; lean_object* v___x_4279_; 
v___x_4276_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_));
v___x_4277_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_));
v___x_4278_ = lean_alloc_closure((void*)(l_BitVec_reduceSDiv___boxed), 9, 0);
v___x_4279_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_4276_, v___x_4277_, v___x_4278_);
return v___x_4279_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18____boxed(lean_object* v_a_4280_){
_start:
{
lean_object* v_res_4281_; 
v_res_4281_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_();
return v_res_4281_;
}
}
static lean_object* _init_l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_4282_; lean_object* v___x_4283_; 
v___x_4282_ = lean_alloc_closure((void*)(l_BitVec_reduceSDiv___boxed), 9, 0);
v___x_4283_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_4283_, 0, v___x_4282_);
return v___x_4283_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_4285_; uint8_t v___x_4286_; lean_object* v___x_4287_; lean_object* v___x_4288_; 
v___x_4285_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_));
v___x_4286_ = 1;
v___x_4287_ = lean_obj_once(&l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_, &l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20__once, _init_l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_);
v___x_4288_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_4285_, v___x_4286_, v___x_4287_);
return v___x_4288_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20____boxed(lean_object* v_a_4289_){
_start:
{
lean_object* v_res_4290_; 
v_res_4290_ = l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_();
return v_res_4290_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_4292_; uint8_t v___x_4293_; lean_object* v___x_4294_; lean_object* v___x_4295_; 
v___x_4292_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_));
v___x_4293_ = 1;
v___x_4294_ = lean_obj_once(&l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_, &l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20__once, _init_l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_);
v___x_4295_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_4292_, v___x_4293_, v___x_4294_);
return v___x_4295_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_22____boxed(lean_object* v_a_4296_){
_start:
{
lean_object* v_res_4297_; 
v_res_4297_ = l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_22_();
return v_res_4297_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___redArg(lean_object* v_e_4302_, lean_object* v_a_4303_, lean_object* v_a_4304_, lean_object* v_a_4305_, lean_object* v_a_4306_, lean_object* v_a_4307_){
_start:
{
lean_object* v___x_4309_; lean_object* v___x_4310_; uint8_t v___x_4311_; 
v___x_4309_ = ((lean_object*)(l_BitVec_reduceSMTSDiv___redArg___closed__1));
v___x_4310_ = lean_unsigned_to_nat(3u);
v___x_4311_ = l_Lean_Expr_isAppOfArity(v_e_4302_, v___x_4309_, v___x_4310_);
if (v___x_4311_ == 0)
{
lean_object* v___x_4312_; lean_object* v___x_4313_; 
lean_dec(v_a_4307_);
lean_dec_ref(v_a_4306_);
lean_dec(v_a_4305_);
lean_dec_ref(v_a_4304_);
v___x_4312_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_4313_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_4313_, 0, v___x_4312_);
return v___x_4313_;
}
else
{
lean_object* v___x_4314_; lean_object* v___x_4315_; lean_object* v___x_4316_; 
v___x_4314_ = l_Lean_Expr_appFn_x21(v_e_4302_);
v___x_4315_ = l_Lean_Expr_appArg_x21(v___x_4314_);
lean_dec_ref(v___x_4314_);
lean_inc(v_a_4307_);
lean_inc_ref(v_a_4306_);
lean_inc(v_a_4305_);
lean_inc_ref(v_a_4304_);
v___x_4316_ = l_BitVec_fromExpr_x3f___redArg(v___x_4315_, v_a_4304_, v_a_4305_, v_a_4306_, v_a_4307_);
if (lean_obj_tag(v___x_4316_) == 0)
{
lean_object* v_a_4317_; lean_object* v___x_4319_; uint8_t v_isShared_4320_; uint8_t v_isSharedCheck_4380_; 
v_a_4317_ = lean_ctor_get(v___x_4316_, 0);
v_isSharedCheck_4380_ = !lean_is_exclusive(v___x_4316_);
if (v_isSharedCheck_4380_ == 0)
{
v___x_4319_ = v___x_4316_;
v_isShared_4320_ = v_isSharedCheck_4380_;
goto v_resetjp_4318_;
}
else
{
lean_inc(v_a_4317_);
lean_dec(v___x_4316_);
v___x_4319_ = lean_box(0);
v_isShared_4320_ = v_isSharedCheck_4380_;
goto v_resetjp_4318_;
}
v_resetjp_4318_:
{
if (lean_obj_tag(v_a_4317_) == 1)
{
lean_object* v_val_4321_; lean_object* v___x_4322_; lean_object* v___x_4323_; 
lean_del_object(v___x_4319_);
v_val_4321_ = lean_ctor_get(v_a_4317_, 0);
lean_inc(v_val_4321_);
lean_dec_ref(v_a_4317_);
v___x_4322_ = l_Lean_Expr_appArg_x21(v_e_4302_);
lean_inc(v_a_4307_);
lean_inc_ref(v_a_4306_);
lean_inc(v_a_4305_);
lean_inc_ref(v_a_4304_);
v___x_4323_ = l_BitVec_fromExpr_x3f___redArg(v___x_4322_, v_a_4304_, v_a_4305_, v_a_4306_, v_a_4307_);
if (lean_obj_tag(v___x_4323_) == 0)
{
lean_object* v_a_4324_; lean_object* v___x_4326_; uint8_t v_isShared_4327_; uint8_t v_isSharedCheck_4367_; 
v_a_4324_ = lean_ctor_get(v___x_4323_, 0);
v_isSharedCheck_4367_ = !lean_is_exclusive(v___x_4323_);
if (v_isSharedCheck_4367_ == 0)
{
v___x_4326_ = v___x_4323_;
v_isShared_4327_ = v_isSharedCheck_4367_;
goto v_resetjp_4325_;
}
else
{
lean_inc(v_a_4324_);
lean_dec(v___x_4323_);
v___x_4326_ = lean_box(0);
v_isShared_4327_ = v_isSharedCheck_4367_;
goto v_resetjp_4325_;
}
v_resetjp_4325_:
{
if (lean_obj_tag(v_a_4324_) == 1)
{
lean_object* v_val_4328_; lean_object* v___x_4330_; uint8_t v_isShared_4331_; uint8_t v_isSharedCheck_4362_; 
v_val_4328_ = lean_ctor_get(v_a_4324_, 0);
v_isSharedCheck_4362_ = !lean_is_exclusive(v_a_4324_);
if (v_isSharedCheck_4362_ == 0)
{
v___x_4330_ = v_a_4324_;
v_isShared_4331_ = v_isSharedCheck_4362_;
goto v_resetjp_4329_;
}
else
{
lean_inc(v_val_4328_);
lean_dec(v_a_4324_);
v___x_4330_ = lean_box(0);
v_isShared_4331_ = v_isSharedCheck_4362_;
goto v_resetjp_4329_;
}
v_resetjp_4329_:
{
lean_object* v_n_4332_; lean_object* v_value_4333_; lean_object* v_n_4334_; lean_object* v_value_4335_; uint8_t v___x_4336_; 
v_n_4332_ = lean_ctor_get(v_val_4321_, 0);
lean_inc(v_n_4332_);
v_value_4333_ = lean_ctor_get(v_val_4321_, 1);
lean_inc(v_value_4333_);
lean_dec(v_val_4321_);
v_n_4334_ = lean_ctor_get(v_val_4328_, 0);
lean_inc(v_n_4334_);
v_value_4335_ = lean_ctor_get(v_val_4328_, 1);
lean_inc(v_value_4335_);
lean_dec(v_val_4328_);
v___x_4336_ = lean_nat_dec_eq(v_n_4332_, v_n_4334_);
lean_dec(v_n_4334_);
if (v___x_4336_ == 0)
{
lean_object* v___x_4337_; lean_object* v___x_4339_; 
lean_dec(v_value_4335_);
lean_dec(v_value_4333_);
lean_dec(v_n_4332_);
lean_del_object(v___x_4330_);
lean_dec(v_a_4307_);
lean_dec_ref(v_a_4306_);
lean_dec(v_a_4305_);
lean_dec_ref(v_a_4304_);
v___x_4337_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4327_ == 0)
{
lean_ctor_set(v___x_4326_, 0, v___x_4337_);
v___x_4339_ = v___x_4326_;
goto v_reusejp_4338_;
}
else
{
lean_object* v_reuseFailAlloc_4340_; 
v_reuseFailAlloc_4340_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4340_, 0, v___x_4337_);
v___x_4339_ = v_reuseFailAlloc_4340_;
goto v_reusejp_4338_;
}
v_reusejp_4338_:
{
return v___x_4339_;
}
}
else
{
lean_object* v___x_4341_; lean_object* v___x_4342_; 
lean_del_object(v___x_4326_);
v___x_4341_ = l_BitVec_smtSDiv(v_n_4332_, v_value_4333_, v_value_4335_);
lean_dec(v_value_4335_);
lean_dec(v_value_4333_);
v___x_4342_ = l_BitVec_toExpr_x27___redArg(v_n_4332_, v___x_4341_, v_a_4303_, v_a_4304_, v_a_4305_, v_a_4306_, v_a_4307_);
if (lean_obj_tag(v___x_4342_) == 0)
{
lean_object* v_a_4343_; lean_object* v___x_4345_; uint8_t v_isShared_4346_; uint8_t v_isSharedCheck_4353_; 
v_a_4343_ = lean_ctor_get(v___x_4342_, 0);
v_isSharedCheck_4353_ = !lean_is_exclusive(v___x_4342_);
if (v_isSharedCheck_4353_ == 0)
{
v___x_4345_ = v___x_4342_;
v_isShared_4346_ = v_isSharedCheck_4353_;
goto v_resetjp_4344_;
}
else
{
lean_inc(v_a_4343_);
lean_dec(v___x_4342_);
v___x_4345_ = lean_box(0);
v_isShared_4346_ = v_isSharedCheck_4353_;
goto v_resetjp_4344_;
}
v_resetjp_4344_:
{
lean_object* v___x_4348_; 
if (v_isShared_4331_ == 0)
{
lean_ctor_set_tag(v___x_4330_, 0);
lean_ctor_set(v___x_4330_, 0, v_a_4343_);
v___x_4348_ = v___x_4330_;
goto v_reusejp_4347_;
}
else
{
lean_object* v_reuseFailAlloc_4352_; 
v_reuseFailAlloc_4352_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4352_, 0, v_a_4343_);
v___x_4348_ = v_reuseFailAlloc_4352_;
goto v_reusejp_4347_;
}
v_reusejp_4347_:
{
lean_object* v___x_4350_; 
if (v_isShared_4346_ == 0)
{
lean_ctor_set(v___x_4345_, 0, v___x_4348_);
v___x_4350_ = v___x_4345_;
goto v_reusejp_4349_;
}
else
{
lean_object* v_reuseFailAlloc_4351_; 
v_reuseFailAlloc_4351_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4351_, 0, v___x_4348_);
v___x_4350_ = v_reuseFailAlloc_4351_;
goto v_reusejp_4349_;
}
v_reusejp_4349_:
{
return v___x_4350_;
}
}
}
}
else
{
lean_object* v_a_4354_; lean_object* v___x_4356_; uint8_t v_isShared_4357_; uint8_t v_isSharedCheck_4361_; 
lean_del_object(v___x_4330_);
v_a_4354_ = lean_ctor_get(v___x_4342_, 0);
v_isSharedCheck_4361_ = !lean_is_exclusive(v___x_4342_);
if (v_isSharedCheck_4361_ == 0)
{
v___x_4356_ = v___x_4342_;
v_isShared_4357_ = v_isSharedCheck_4361_;
goto v_resetjp_4355_;
}
else
{
lean_inc(v_a_4354_);
lean_dec(v___x_4342_);
v___x_4356_ = lean_box(0);
v_isShared_4357_ = v_isSharedCheck_4361_;
goto v_resetjp_4355_;
}
v_resetjp_4355_:
{
lean_object* v___x_4359_; 
if (v_isShared_4357_ == 0)
{
v___x_4359_ = v___x_4356_;
goto v_reusejp_4358_;
}
else
{
lean_object* v_reuseFailAlloc_4360_; 
v_reuseFailAlloc_4360_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4360_, 0, v_a_4354_);
v___x_4359_ = v_reuseFailAlloc_4360_;
goto v_reusejp_4358_;
}
v_reusejp_4358_:
{
return v___x_4359_;
}
}
}
}
}
}
else
{
lean_object* v___x_4363_; lean_object* v___x_4365_; 
lean_dec(v_a_4324_);
lean_dec(v_val_4321_);
lean_dec(v_a_4307_);
lean_dec_ref(v_a_4306_);
lean_dec(v_a_4305_);
lean_dec_ref(v_a_4304_);
v___x_4363_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4327_ == 0)
{
lean_ctor_set(v___x_4326_, 0, v___x_4363_);
v___x_4365_ = v___x_4326_;
goto v_reusejp_4364_;
}
else
{
lean_object* v_reuseFailAlloc_4366_; 
v_reuseFailAlloc_4366_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4366_, 0, v___x_4363_);
v___x_4365_ = v_reuseFailAlloc_4366_;
goto v_reusejp_4364_;
}
v_reusejp_4364_:
{
return v___x_4365_;
}
}
}
}
else
{
lean_object* v_a_4368_; lean_object* v___x_4370_; uint8_t v_isShared_4371_; uint8_t v_isSharedCheck_4375_; 
lean_dec(v_val_4321_);
lean_dec(v_a_4307_);
lean_dec_ref(v_a_4306_);
lean_dec(v_a_4305_);
lean_dec_ref(v_a_4304_);
v_a_4368_ = lean_ctor_get(v___x_4323_, 0);
v_isSharedCheck_4375_ = !lean_is_exclusive(v___x_4323_);
if (v_isSharedCheck_4375_ == 0)
{
v___x_4370_ = v___x_4323_;
v_isShared_4371_ = v_isSharedCheck_4375_;
goto v_resetjp_4369_;
}
else
{
lean_inc(v_a_4368_);
lean_dec(v___x_4323_);
v___x_4370_ = lean_box(0);
v_isShared_4371_ = v_isSharedCheck_4375_;
goto v_resetjp_4369_;
}
v_resetjp_4369_:
{
lean_object* v___x_4373_; 
if (v_isShared_4371_ == 0)
{
v___x_4373_ = v___x_4370_;
goto v_reusejp_4372_;
}
else
{
lean_object* v_reuseFailAlloc_4374_; 
v_reuseFailAlloc_4374_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4374_, 0, v_a_4368_);
v___x_4373_ = v_reuseFailAlloc_4374_;
goto v_reusejp_4372_;
}
v_reusejp_4372_:
{
return v___x_4373_;
}
}
}
}
else
{
lean_object* v___x_4376_; lean_object* v___x_4378_; 
lean_dec(v_a_4317_);
lean_dec(v_a_4307_);
lean_dec_ref(v_a_4306_);
lean_dec(v_a_4305_);
lean_dec_ref(v_a_4304_);
v___x_4376_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4320_ == 0)
{
lean_ctor_set(v___x_4319_, 0, v___x_4376_);
v___x_4378_ = v___x_4319_;
goto v_reusejp_4377_;
}
else
{
lean_object* v_reuseFailAlloc_4379_; 
v_reuseFailAlloc_4379_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4379_, 0, v___x_4376_);
v___x_4378_ = v_reuseFailAlloc_4379_;
goto v_reusejp_4377_;
}
v_reusejp_4377_:
{
return v___x_4378_;
}
}
}
}
else
{
lean_object* v_a_4381_; lean_object* v___x_4383_; uint8_t v_isShared_4384_; uint8_t v_isSharedCheck_4388_; 
lean_dec(v_a_4307_);
lean_dec_ref(v_a_4306_);
lean_dec(v_a_4305_);
lean_dec_ref(v_a_4304_);
v_a_4381_ = lean_ctor_get(v___x_4316_, 0);
v_isSharedCheck_4388_ = !lean_is_exclusive(v___x_4316_);
if (v_isSharedCheck_4388_ == 0)
{
v___x_4383_ = v___x_4316_;
v_isShared_4384_ = v_isSharedCheck_4388_;
goto v_resetjp_4382_;
}
else
{
lean_inc(v_a_4381_);
lean_dec(v___x_4316_);
v___x_4383_ = lean_box(0);
v_isShared_4384_ = v_isSharedCheck_4388_;
goto v_resetjp_4382_;
}
v_resetjp_4382_:
{
lean_object* v___x_4386_; 
if (v_isShared_4384_ == 0)
{
v___x_4386_ = v___x_4383_;
goto v_reusejp_4385_;
}
else
{
lean_object* v_reuseFailAlloc_4387_; 
v_reuseFailAlloc_4387_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4387_, 0, v_a_4381_);
v___x_4386_ = v_reuseFailAlloc_4387_;
goto v_reusejp_4385_;
}
v_reusejp_4385_:
{
return v___x_4386_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___redArg___boxed(lean_object* v_e_4389_, lean_object* v_a_4390_, lean_object* v_a_4391_, lean_object* v_a_4392_, lean_object* v_a_4393_, lean_object* v_a_4394_, lean_object* v_a_4395_){
_start:
{
lean_object* v_res_4396_; 
v_res_4396_ = l_BitVec_reduceSMTSDiv___redArg(v_e_4389_, v_a_4390_, v_a_4391_, v_a_4392_, v_a_4393_, v_a_4394_);
lean_dec_ref(v_a_4390_);
lean_dec_ref(v_e_4389_);
return v_res_4396_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv(lean_object* v_e_4397_, lean_object* v_a_4398_, lean_object* v_a_4399_, lean_object* v_a_4400_, lean_object* v_a_4401_, lean_object* v_a_4402_, lean_object* v_a_4403_, lean_object* v_a_4404_){
_start:
{
lean_object* v___x_4406_; 
v___x_4406_ = l_BitVec_reduceSMTSDiv___redArg(v_e_4397_, v_a_4399_, v_a_4401_, v_a_4402_, v_a_4403_, v_a_4404_);
return v___x_4406_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___boxed(lean_object* v_e_4407_, lean_object* v_a_4408_, lean_object* v_a_4409_, lean_object* v_a_4410_, lean_object* v_a_4411_, lean_object* v_a_4412_, lean_object* v_a_4413_, lean_object* v_a_4414_, lean_object* v_a_4415_){
_start:
{
lean_object* v_res_4416_; 
v_res_4416_ = l_BitVec_reduceSMTSDiv(v_e_4407_, v_a_4408_, v_a_4409_, v_a_4410_, v_a_4411_, v_a_4412_, v_a_4413_, v_a_4414_);
lean_dec(v_a_4410_);
lean_dec_ref(v_a_4409_);
lean_dec(v_a_4408_);
lean_dec_ref(v_e_4407_);
return v_res_4416_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_4433_; lean_object* v___x_4434_; lean_object* v___x_4435_; lean_object* v___x_4436_; 
v___x_4433_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_));
v___x_4434_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_));
v___x_4435_ = lean_alloc_closure((void*)(l_BitVec_reduceSMTSDiv___boxed), 9, 0);
v___x_4436_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_4433_, v___x_4434_, v___x_4435_);
return v___x_4436_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18____boxed(lean_object* v_a_4437_){
_start:
{
lean_object* v_res_4438_; 
v_res_4438_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_();
return v_res_4438_;
}
}
static lean_object* _init_l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_(void){
_start:
{
lean_object* v___x_4439_; lean_object* v___x_4440_; 
v___x_4439_ = lean_alloc_closure((void*)(l_BitVec_reduceSMTSDiv___boxed), 9, 0);
v___x_4440_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_4440_, 0, v___x_4439_);
return v___x_4440_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_4442_; uint8_t v___x_4443_; lean_object* v___x_4444_; lean_object* v___x_4445_; 
v___x_4442_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_));
v___x_4443_ = 1;
v___x_4444_ = lean_obj_once(&l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_, &l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20__once, _init_l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_);
v___x_4445_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_4442_, v___x_4443_, v___x_4444_);
return v___x_4445_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20____boxed(lean_object* v_a_4446_){
_start:
{
lean_object* v_res_4447_; 
v_res_4447_ = l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_();
return v_res_4447_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_4449_; uint8_t v___x_4450_; lean_object* v___x_4451_; lean_object* v___x_4452_; 
v___x_4449_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_));
v___x_4450_ = 1;
v___x_4451_ = lean_obj_once(&l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_, &l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20__once, _init_l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_);
v___x_4452_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_4449_, v___x_4450_, v___x_4451_);
return v___x_4452_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_22____boxed(lean_object* v_a_4453_){
_start:
{
lean_object* v_res_4454_; 
v_res_4454_ = l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_22_();
return v_res_4454_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___redArg(lean_object* v_e_4459_, lean_object* v_a_4460_, lean_object* v_a_4461_, lean_object* v_a_4462_, lean_object* v_a_4463_){
_start:
{
lean_object* v___x_4465_; lean_object* v___x_4466_; uint8_t v___x_4467_; 
v___x_4465_ = ((lean_object*)(l_BitVec_reduceGetLsb___redArg___closed__1));
v___x_4466_ = lean_unsigned_to_nat(3u);
v___x_4467_ = l_Lean_Expr_isAppOfArity(v_e_4459_, v___x_4465_, v___x_4466_);
if (v___x_4467_ == 0)
{
lean_object* v___x_4468_; lean_object* v___x_4469_; 
lean_dec(v_a_4463_);
lean_dec_ref(v_a_4462_);
lean_dec(v_a_4461_);
lean_dec_ref(v_a_4460_);
v___x_4468_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_4469_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_4469_, 0, v___x_4468_);
return v___x_4469_;
}
else
{
lean_object* v___x_4470_; lean_object* v___x_4471_; lean_object* v___x_4472_; 
v___x_4470_ = l_Lean_Expr_appFn_x21(v_e_4459_);
v___x_4471_ = l_Lean_Expr_appArg_x21(v___x_4470_);
lean_dec_ref(v___x_4470_);
lean_inc(v_a_4463_);
lean_inc_ref(v_a_4462_);
lean_inc(v_a_4461_);
lean_inc_ref(v_a_4460_);
v___x_4472_ = l_BitVec_fromExpr_x3f___redArg(v___x_4471_, v_a_4460_, v_a_4461_, v_a_4462_, v_a_4463_);
if (lean_obj_tag(v___x_4472_) == 0)
{
lean_object* v_a_4473_; lean_object* v___x_4475_; uint8_t v_isShared_4476_; uint8_t v_isSharedCheck_4518_; 
v_a_4473_ = lean_ctor_get(v___x_4472_, 0);
v_isSharedCheck_4518_ = !lean_is_exclusive(v___x_4472_);
if (v_isSharedCheck_4518_ == 0)
{
v___x_4475_ = v___x_4472_;
v_isShared_4476_ = v_isSharedCheck_4518_;
goto v_resetjp_4474_;
}
else
{
lean_inc(v_a_4473_);
lean_dec(v___x_4472_);
v___x_4475_ = lean_box(0);
v_isShared_4476_ = v_isSharedCheck_4518_;
goto v_resetjp_4474_;
}
v_resetjp_4474_:
{
if (lean_obj_tag(v_a_4473_) == 1)
{
lean_object* v_val_4477_; lean_object* v___x_4479_; uint8_t v_isShared_4480_; uint8_t v_isSharedCheck_4513_; 
v_val_4477_ = lean_ctor_get(v_a_4473_, 0);
v_isSharedCheck_4513_ = !lean_is_exclusive(v_a_4473_);
if (v_isSharedCheck_4513_ == 0)
{
v___x_4479_ = v_a_4473_;
v_isShared_4480_ = v_isSharedCheck_4513_;
goto v_resetjp_4478_;
}
else
{
lean_inc(v_val_4477_);
lean_dec(v_a_4473_);
v___x_4479_ = lean_box(0);
v_isShared_4480_ = v_isSharedCheck_4513_;
goto v_resetjp_4478_;
}
v_resetjp_4478_:
{
lean_object* v___x_4481_; lean_object* v___x_4482_; 
v___x_4481_ = l_Lean_Expr_appArg_x21(v_e_4459_);
v___x_4482_ = l_Lean_Meta_getNatValue_x3f(v___x_4481_, v_a_4460_, v_a_4461_, v_a_4462_, v_a_4463_);
lean_dec_ref(v___x_4481_);
if (lean_obj_tag(v___x_4482_) == 0)
{
lean_object* v_a_4483_; lean_object* v___x_4485_; uint8_t v_isShared_4486_; uint8_t v_isSharedCheck_4504_; 
v_a_4483_ = lean_ctor_get(v___x_4482_, 0);
v_isSharedCheck_4504_ = !lean_is_exclusive(v___x_4482_);
if (v_isSharedCheck_4504_ == 0)
{
v___x_4485_ = v___x_4482_;
v_isShared_4486_ = v_isSharedCheck_4504_;
goto v_resetjp_4484_;
}
else
{
lean_inc(v_a_4483_);
lean_dec(v___x_4482_);
v___x_4485_ = lean_box(0);
v_isShared_4486_ = v_isSharedCheck_4504_;
goto v_resetjp_4484_;
}
v_resetjp_4484_:
{
lean_object* v___y_4488_; 
if (lean_obj_tag(v_a_4483_) == 1)
{
lean_object* v_val_4495_; lean_object* v_value_4496_; uint8_t v___x_4497_; 
lean_del_object(v___x_4475_);
v_val_4495_ = lean_ctor_get(v_a_4483_, 0);
lean_inc(v_val_4495_);
lean_dec_ref(v_a_4483_);
v_value_4496_ = lean_ctor_get(v_val_4477_, 1);
lean_inc(v_value_4496_);
lean_dec(v_val_4477_);
v___x_4497_ = l_Nat_testBit(v_value_4496_, v_val_4495_);
lean_dec(v_val_4495_);
lean_dec(v_value_4496_);
if (v___x_4497_ == 0)
{
lean_object* v___x_4498_; 
v___x_4498_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_4488_ = v___x_4498_;
goto v___jp_4487_;
}
else
{
lean_object* v___x_4499_; 
v___x_4499_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_4488_ = v___x_4499_;
goto v___jp_4487_;
}
}
else
{
lean_object* v___x_4500_; lean_object* v___x_4502_; 
lean_del_object(v___x_4485_);
lean_dec(v_a_4483_);
lean_del_object(v___x_4479_);
lean_dec(v_val_4477_);
v___x_4500_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4476_ == 0)
{
lean_ctor_set(v___x_4475_, 0, v___x_4500_);
v___x_4502_ = v___x_4475_;
goto v_reusejp_4501_;
}
else
{
lean_object* v_reuseFailAlloc_4503_; 
v_reuseFailAlloc_4503_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4503_, 0, v___x_4500_);
v___x_4502_ = v_reuseFailAlloc_4503_;
goto v_reusejp_4501_;
}
v_reusejp_4501_:
{
return v___x_4502_;
}
}
v___jp_4487_:
{
lean_object* v___x_4490_; 
if (v_isShared_4480_ == 0)
{
lean_ctor_set_tag(v___x_4479_, 0);
lean_ctor_set(v___x_4479_, 0, v___y_4488_);
v___x_4490_ = v___x_4479_;
goto v_reusejp_4489_;
}
else
{
lean_object* v_reuseFailAlloc_4494_; 
v_reuseFailAlloc_4494_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4494_, 0, v___y_4488_);
v___x_4490_ = v_reuseFailAlloc_4494_;
goto v_reusejp_4489_;
}
v_reusejp_4489_:
{
lean_object* v___x_4492_; 
if (v_isShared_4486_ == 0)
{
lean_ctor_set(v___x_4485_, 0, v___x_4490_);
v___x_4492_ = v___x_4485_;
goto v_reusejp_4491_;
}
else
{
lean_object* v_reuseFailAlloc_4493_; 
v_reuseFailAlloc_4493_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4493_, 0, v___x_4490_);
v___x_4492_ = v_reuseFailAlloc_4493_;
goto v_reusejp_4491_;
}
v_reusejp_4491_:
{
return v___x_4492_;
}
}
}
}
}
else
{
lean_object* v_a_4505_; lean_object* v___x_4507_; uint8_t v_isShared_4508_; uint8_t v_isSharedCheck_4512_; 
lean_del_object(v___x_4479_);
lean_dec(v_val_4477_);
lean_del_object(v___x_4475_);
v_a_4505_ = lean_ctor_get(v___x_4482_, 0);
v_isSharedCheck_4512_ = !lean_is_exclusive(v___x_4482_);
if (v_isSharedCheck_4512_ == 0)
{
v___x_4507_ = v___x_4482_;
v_isShared_4508_ = v_isSharedCheck_4512_;
goto v_resetjp_4506_;
}
else
{
lean_inc(v_a_4505_);
lean_dec(v___x_4482_);
v___x_4507_ = lean_box(0);
v_isShared_4508_ = v_isSharedCheck_4512_;
goto v_resetjp_4506_;
}
v_resetjp_4506_:
{
lean_object* v___x_4510_; 
if (v_isShared_4508_ == 0)
{
v___x_4510_ = v___x_4507_;
goto v_reusejp_4509_;
}
else
{
lean_object* v_reuseFailAlloc_4511_; 
v_reuseFailAlloc_4511_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4511_, 0, v_a_4505_);
v___x_4510_ = v_reuseFailAlloc_4511_;
goto v_reusejp_4509_;
}
v_reusejp_4509_:
{
return v___x_4510_;
}
}
}
}
}
else
{
lean_object* v___x_4514_; lean_object* v___x_4516_; 
lean_dec(v_a_4473_);
lean_dec(v_a_4463_);
lean_dec_ref(v_a_4462_);
lean_dec(v_a_4461_);
lean_dec_ref(v_a_4460_);
v___x_4514_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4476_ == 0)
{
lean_ctor_set(v___x_4475_, 0, v___x_4514_);
v___x_4516_ = v___x_4475_;
goto v_reusejp_4515_;
}
else
{
lean_object* v_reuseFailAlloc_4517_; 
v_reuseFailAlloc_4517_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4517_, 0, v___x_4514_);
v___x_4516_ = v_reuseFailAlloc_4517_;
goto v_reusejp_4515_;
}
v_reusejp_4515_:
{
return v___x_4516_;
}
}
}
}
else
{
lean_object* v_a_4519_; lean_object* v___x_4521_; uint8_t v_isShared_4522_; uint8_t v_isSharedCheck_4526_; 
lean_dec(v_a_4463_);
lean_dec_ref(v_a_4462_);
lean_dec(v_a_4461_);
lean_dec_ref(v_a_4460_);
v_a_4519_ = lean_ctor_get(v___x_4472_, 0);
v_isSharedCheck_4526_ = !lean_is_exclusive(v___x_4472_);
if (v_isSharedCheck_4526_ == 0)
{
v___x_4521_ = v___x_4472_;
v_isShared_4522_ = v_isSharedCheck_4526_;
goto v_resetjp_4520_;
}
else
{
lean_inc(v_a_4519_);
lean_dec(v___x_4472_);
v___x_4521_ = lean_box(0);
v_isShared_4522_ = v_isSharedCheck_4526_;
goto v_resetjp_4520_;
}
v_resetjp_4520_:
{
lean_object* v___x_4524_; 
if (v_isShared_4522_ == 0)
{
v___x_4524_ = v___x_4521_;
goto v_reusejp_4523_;
}
else
{
lean_object* v_reuseFailAlloc_4525_; 
v_reuseFailAlloc_4525_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4525_, 0, v_a_4519_);
v___x_4524_ = v_reuseFailAlloc_4525_;
goto v_reusejp_4523_;
}
v_reusejp_4523_:
{
return v___x_4524_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___redArg___boxed(lean_object* v_e_4527_, lean_object* v_a_4528_, lean_object* v_a_4529_, lean_object* v_a_4530_, lean_object* v_a_4531_, lean_object* v_a_4532_){
_start:
{
lean_object* v_res_4533_; 
v_res_4533_ = l_BitVec_reduceGetLsb___redArg(v_e_4527_, v_a_4528_, v_a_4529_, v_a_4530_, v_a_4531_);
lean_dec_ref(v_e_4527_);
return v_res_4533_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb(lean_object* v_e_4534_, lean_object* v_a_4535_, lean_object* v_a_4536_, lean_object* v_a_4537_, lean_object* v_a_4538_, lean_object* v_a_4539_, lean_object* v_a_4540_, lean_object* v_a_4541_){
_start:
{
lean_object* v___x_4543_; 
v___x_4543_ = l_BitVec_reduceGetLsb___redArg(v_e_4534_, v_a_4538_, v_a_4539_, v_a_4540_, v_a_4541_);
return v___x_4543_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___boxed(lean_object* v_e_4544_, lean_object* v_a_4545_, lean_object* v_a_4546_, lean_object* v_a_4547_, lean_object* v_a_4548_, lean_object* v_a_4549_, lean_object* v_a_4550_, lean_object* v_a_4551_, lean_object* v_a_4552_){
_start:
{
lean_object* v_res_4553_; 
v_res_4553_ = l_BitVec_reduceGetLsb(v_e_4544_, v_a_4545_, v_a_4546_, v_a_4547_, v_a_4548_, v_a_4549_, v_a_4550_, v_a_4551_);
lean_dec(v_a_4547_);
lean_dec_ref(v_a_4546_);
lean_dec(v_a_4545_);
lean_dec_ref(v_e_4544_);
return v_res_4553_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_4570_; lean_object* v___x_4571_; lean_object* v___x_4572_; lean_object* v___x_4573_; 
v___x_4570_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_));
v___x_4571_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_));
v___x_4572_ = lean_alloc_closure((void*)(l_BitVec_reduceGetLsb___boxed), 9, 0);
v___x_4573_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_4570_, v___x_4571_, v___x_4572_);
return v___x_4573_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14____boxed(lean_object* v_a_4574_){
_start:
{
lean_object* v_res_4575_; 
v_res_4575_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_();
return v_res_4575_;
}
}
static lean_object* _init_l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_4576_; lean_object* v___x_4577_; 
v___x_4576_ = lean_alloc_closure((void*)(l_BitVec_reduceGetLsb___boxed), 9, 0);
v___x_4577_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_4577_, 0, v___x_4576_);
return v___x_4577_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_4579_; uint8_t v___x_4580_; lean_object* v___x_4581_; lean_object* v___x_4582_; 
v___x_4579_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_));
v___x_4580_ = 1;
v___x_4581_ = lean_obj_once(&l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_, &l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16__once, _init_l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_);
v___x_4582_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_4579_, v___x_4580_, v___x_4581_);
return v___x_4582_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16____boxed(lean_object* v_a_4583_){
_start:
{
lean_object* v_res_4584_; 
v_res_4584_ = l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_();
return v_res_4584_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_4586_; uint8_t v___x_4587_; lean_object* v___x_4588_; lean_object* v___x_4589_; 
v___x_4586_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_));
v___x_4587_ = 1;
v___x_4588_ = lean_obj_once(&l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_, &l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16__once, _init_l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_);
v___x_4589_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_4586_, v___x_4587_, v___x_4588_);
return v___x_4589_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_18____boxed(lean_object* v_a_4590_){
_start:
{
lean_object* v_res_4591_; 
v_res_4591_ = l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_18_();
return v_res_4591_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___redArg(lean_object* v_e_4596_, lean_object* v_a_4597_, lean_object* v_a_4598_, lean_object* v_a_4599_, lean_object* v_a_4600_){
_start:
{
lean_object* v___x_4602_; lean_object* v___x_4603_; uint8_t v___x_4604_; 
v___x_4602_ = ((lean_object*)(l_BitVec_reduceGetMsb___redArg___closed__1));
v___x_4603_ = lean_unsigned_to_nat(3u);
v___x_4604_ = l_Lean_Expr_isAppOfArity(v_e_4596_, v___x_4602_, v___x_4603_);
if (v___x_4604_ == 0)
{
lean_object* v___x_4605_; lean_object* v___x_4606_; 
lean_dec(v_a_4600_);
lean_dec_ref(v_a_4599_);
lean_dec(v_a_4598_);
lean_dec_ref(v_a_4597_);
v___x_4605_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_4606_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_4606_, 0, v___x_4605_);
return v___x_4606_;
}
else
{
lean_object* v___x_4607_; lean_object* v___x_4608_; lean_object* v___x_4609_; 
v___x_4607_ = l_Lean_Expr_appFn_x21(v_e_4596_);
v___x_4608_ = l_Lean_Expr_appArg_x21(v___x_4607_);
lean_dec_ref(v___x_4607_);
lean_inc(v_a_4600_);
lean_inc_ref(v_a_4599_);
lean_inc(v_a_4598_);
lean_inc_ref(v_a_4597_);
v___x_4609_ = l_BitVec_fromExpr_x3f___redArg(v___x_4608_, v_a_4597_, v_a_4598_, v_a_4599_, v_a_4600_);
if (lean_obj_tag(v___x_4609_) == 0)
{
lean_object* v_a_4610_; lean_object* v___x_4612_; uint8_t v_isShared_4613_; uint8_t v_isSharedCheck_4662_; 
v_a_4610_ = lean_ctor_get(v___x_4609_, 0);
v_isSharedCheck_4662_ = !lean_is_exclusive(v___x_4609_);
if (v_isSharedCheck_4662_ == 0)
{
v___x_4612_ = v___x_4609_;
v_isShared_4613_ = v_isSharedCheck_4662_;
goto v_resetjp_4611_;
}
else
{
lean_inc(v_a_4610_);
lean_dec(v___x_4609_);
v___x_4612_ = lean_box(0);
v_isShared_4613_ = v_isSharedCheck_4662_;
goto v_resetjp_4611_;
}
v_resetjp_4611_:
{
if (lean_obj_tag(v_a_4610_) == 1)
{
lean_object* v_val_4614_; lean_object* v___x_4616_; uint8_t v_isShared_4617_; uint8_t v_isSharedCheck_4657_; 
v_val_4614_ = lean_ctor_get(v_a_4610_, 0);
v_isSharedCheck_4657_ = !lean_is_exclusive(v_a_4610_);
if (v_isSharedCheck_4657_ == 0)
{
v___x_4616_ = v_a_4610_;
v_isShared_4617_ = v_isSharedCheck_4657_;
goto v_resetjp_4615_;
}
else
{
lean_inc(v_val_4614_);
lean_dec(v_a_4610_);
v___x_4616_ = lean_box(0);
v_isShared_4617_ = v_isSharedCheck_4657_;
goto v_resetjp_4615_;
}
v_resetjp_4615_:
{
lean_object* v___x_4618_; lean_object* v___x_4619_; 
v___x_4618_ = l_Lean_Expr_appArg_x21(v_e_4596_);
v___x_4619_ = l_Lean_Meta_getNatValue_x3f(v___x_4618_, v_a_4597_, v_a_4598_, v_a_4599_, v_a_4600_);
lean_dec_ref(v___x_4618_);
if (lean_obj_tag(v___x_4619_) == 0)
{
lean_object* v_a_4620_; lean_object* v___x_4622_; uint8_t v_isShared_4623_; uint8_t v_isSharedCheck_4648_; 
v_a_4620_ = lean_ctor_get(v___x_4619_, 0);
v_isSharedCheck_4648_ = !lean_is_exclusive(v___x_4619_);
if (v_isSharedCheck_4648_ == 0)
{
v___x_4622_ = v___x_4619_;
v_isShared_4623_ = v_isSharedCheck_4648_;
goto v_resetjp_4621_;
}
else
{
lean_inc(v_a_4620_);
lean_dec(v___x_4619_);
v___x_4622_ = lean_box(0);
v_isShared_4623_ = v_isSharedCheck_4648_;
goto v_resetjp_4621_;
}
v_resetjp_4621_:
{
lean_object* v___y_4625_; uint8_t v___y_4633_; 
if (lean_obj_tag(v_a_4620_) == 1)
{
lean_object* v_val_4636_; lean_object* v_n_4637_; lean_object* v_value_4638_; uint8_t v___x_4639_; 
lean_del_object(v___x_4612_);
v_val_4636_ = lean_ctor_get(v_a_4620_, 0);
lean_inc(v_val_4636_);
lean_dec_ref(v_a_4620_);
v_n_4637_ = lean_ctor_get(v_val_4614_, 0);
lean_inc(v_n_4637_);
v_value_4638_ = lean_ctor_get(v_val_4614_, 1);
lean_inc(v_value_4638_);
lean_dec(v_val_4614_);
v___x_4639_ = lean_nat_dec_lt(v_val_4636_, v_n_4637_);
if (v___x_4639_ == 0)
{
lean_dec(v_value_4638_);
lean_dec(v_n_4637_);
lean_dec(v_val_4636_);
v___y_4633_ = v___x_4639_;
goto v___jp_4632_;
}
else
{
lean_object* v___x_4640_; lean_object* v___x_4641_; lean_object* v___x_4642_; uint8_t v___x_4643_; 
v___x_4640_ = lean_unsigned_to_nat(1u);
v___x_4641_ = lean_nat_sub(v_n_4637_, v___x_4640_);
lean_dec(v_n_4637_);
v___x_4642_ = lean_nat_sub(v___x_4641_, v_val_4636_);
lean_dec(v_val_4636_);
lean_dec(v___x_4641_);
v___x_4643_ = l_Nat_testBit(v_value_4638_, v___x_4642_);
lean_dec(v___x_4642_);
lean_dec(v_value_4638_);
v___y_4633_ = v___x_4643_;
goto v___jp_4632_;
}
}
else
{
lean_object* v___x_4644_; lean_object* v___x_4646_; 
lean_del_object(v___x_4622_);
lean_dec(v_a_4620_);
lean_del_object(v___x_4616_);
lean_dec(v_val_4614_);
v___x_4644_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4613_ == 0)
{
lean_ctor_set(v___x_4612_, 0, v___x_4644_);
v___x_4646_ = v___x_4612_;
goto v_reusejp_4645_;
}
else
{
lean_object* v_reuseFailAlloc_4647_; 
v_reuseFailAlloc_4647_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4647_, 0, v___x_4644_);
v___x_4646_ = v_reuseFailAlloc_4647_;
goto v_reusejp_4645_;
}
v_reusejp_4645_:
{
return v___x_4646_;
}
}
v___jp_4624_:
{
lean_object* v___x_4627_; 
if (v_isShared_4617_ == 0)
{
lean_ctor_set_tag(v___x_4616_, 0);
lean_ctor_set(v___x_4616_, 0, v___y_4625_);
v___x_4627_ = v___x_4616_;
goto v_reusejp_4626_;
}
else
{
lean_object* v_reuseFailAlloc_4631_; 
v_reuseFailAlloc_4631_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4631_, 0, v___y_4625_);
v___x_4627_ = v_reuseFailAlloc_4631_;
goto v_reusejp_4626_;
}
v_reusejp_4626_:
{
lean_object* v___x_4629_; 
if (v_isShared_4623_ == 0)
{
lean_ctor_set(v___x_4622_, 0, v___x_4627_);
v___x_4629_ = v___x_4622_;
goto v_reusejp_4628_;
}
else
{
lean_object* v_reuseFailAlloc_4630_; 
v_reuseFailAlloc_4630_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4630_, 0, v___x_4627_);
v___x_4629_ = v_reuseFailAlloc_4630_;
goto v_reusejp_4628_;
}
v_reusejp_4628_:
{
return v___x_4629_;
}
}
}
v___jp_4632_:
{
if (v___y_4633_ == 0)
{
lean_object* v___x_4634_; 
v___x_4634_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_4625_ = v___x_4634_;
goto v___jp_4624_;
}
else
{
lean_object* v___x_4635_; 
v___x_4635_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_4625_ = v___x_4635_;
goto v___jp_4624_;
}
}
}
}
else
{
lean_object* v_a_4649_; lean_object* v___x_4651_; uint8_t v_isShared_4652_; uint8_t v_isSharedCheck_4656_; 
lean_del_object(v___x_4616_);
lean_dec(v_val_4614_);
lean_del_object(v___x_4612_);
v_a_4649_ = lean_ctor_get(v___x_4619_, 0);
v_isSharedCheck_4656_ = !lean_is_exclusive(v___x_4619_);
if (v_isSharedCheck_4656_ == 0)
{
v___x_4651_ = v___x_4619_;
v_isShared_4652_ = v_isSharedCheck_4656_;
goto v_resetjp_4650_;
}
else
{
lean_inc(v_a_4649_);
lean_dec(v___x_4619_);
v___x_4651_ = lean_box(0);
v_isShared_4652_ = v_isSharedCheck_4656_;
goto v_resetjp_4650_;
}
v_resetjp_4650_:
{
lean_object* v___x_4654_; 
if (v_isShared_4652_ == 0)
{
v___x_4654_ = v___x_4651_;
goto v_reusejp_4653_;
}
else
{
lean_object* v_reuseFailAlloc_4655_; 
v_reuseFailAlloc_4655_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4655_, 0, v_a_4649_);
v___x_4654_ = v_reuseFailAlloc_4655_;
goto v_reusejp_4653_;
}
v_reusejp_4653_:
{
return v___x_4654_;
}
}
}
}
}
else
{
lean_object* v___x_4658_; lean_object* v___x_4660_; 
lean_dec(v_a_4610_);
lean_dec(v_a_4600_);
lean_dec_ref(v_a_4599_);
lean_dec(v_a_4598_);
lean_dec_ref(v_a_4597_);
v___x_4658_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4613_ == 0)
{
lean_ctor_set(v___x_4612_, 0, v___x_4658_);
v___x_4660_ = v___x_4612_;
goto v_reusejp_4659_;
}
else
{
lean_object* v_reuseFailAlloc_4661_; 
v_reuseFailAlloc_4661_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4661_, 0, v___x_4658_);
v___x_4660_ = v_reuseFailAlloc_4661_;
goto v_reusejp_4659_;
}
v_reusejp_4659_:
{
return v___x_4660_;
}
}
}
}
else
{
lean_object* v_a_4663_; lean_object* v___x_4665_; uint8_t v_isShared_4666_; uint8_t v_isSharedCheck_4670_; 
lean_dec(v_a_4600_);
lean_dec_ref(v_a_4599_);
lean_dec(v_a_4598_);
lean_dec_ref(v_a_4597_);
v_a_4663_ = lean_ctor_get(v___x_4609_, 0);
v_isSharedCheck_4670_ = !lean_is_exclusive(v___x_4609_);
if (v_isSharedCheck_4670_ == 0)
{
v___x_4665_ = v___x_4609_;
v_isShared_4666_ = v_isSharedCheck_4670_;
goto v_resetjp_4664_;
}
else
{
lean_inc(v_a_4663_);
lean_dec(v___x_4609_);
v___x_4665_ = lean_box(0);
v_isShared_4666_ = v_isSharedCheck_4670_;
goto v_resetjp_4664_;
}
v_resetjp_4664_:
{
lean_object* v___x_4668_; 
if (v_isShared_4666_ == 0)
{
v___x_4668_ = v___x_4665_;
goto v_reusejp_4667_;
}
else
{
lean_object* v_reuseFailAlloc_4669_; 
v_reuseFailAlloc_4669_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4669_, 0, v_a_4663_);
v___x_4668_ = v_reuseFailAlloc_4669_;
goto v_reusejp_4667_;
}
v_reusejp_4667_:
{
return v___x_4668_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___redArg___boxed(lean_object* v_e_4671_, lean_object* v_a_4672_, lean_object* v_a_4673_, lean_object* v_a_4674_, lean_object* v_a_4675_, lean_object* v_a_4676_){
_start:
{
lean_object* v_res_4677_; 
v_res_4677_ = l_BitVec_reduceGetMsb___redArg(v_e_4671_, v_a_4672_, v_a_4673_, v_a_4674_, v_a_4675_);
lean_dec_ref(v_e_4671_);
return v_res_4677_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb(lean_object* v_e_4678_, lean_object* v_a_4679_, lean_object* v_a_4680_, lean_object* v_a_4681_, lean_object* v_a_4682_, lean_object* v_a_4683_, lean_object* v_a_4684_, lean_object* v_a_4685_){
_start:
{
lean_object* v___x_4687_; 
v___x_4687_ = l_BitVec_reduceGetMsb___redArg(v_e_4678_, v_a_4682_, v_a_4683_, v_a_4684_, v_a_4685_);
return v___x_4687_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___boxed(lean_object* v_e_4688_, lean_object* v_a_4689_, lean_object* v_a_4690_, lean_object* v_a_4691_, lean_object* v_a_4692_, lean_object* v_a_4693_, lean_object* v_a_4694_, lean_object* v_a_4695_, lean_object* v_a_4696_){
_start:
{
lean_object* v_res_4697_; 
v_res_4697_ = l_BitVec_reduceGetMsb(v_e_4688_, v_a_4689_, v_a_4690_, v_a_4691_, v_a_4692_, v_a_4693_, v_a_4694_, v_a_4695_);
lean_dec(v_a_4691_);
lean_dec_ref(v_a_4690_);
lean_dec(v_a_4689_);
lean_dec_ref(v_e_4688_);
return v_res_4697_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_4714_; lean_object* v___x_4715_; lean_object* v___x_4716_; lean_object* v___x_4717_; 
v___x_4714_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_));
v___x_4715_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_));
v___x_4716_ = lean_alloc_closure((void*)(l_BitVec_reduceGetMsb___boxed), 9, 0);
v___x_4717_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_4714_, v___x_4715_, v___x_4716_);
return v___x_4717_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14____boxed(lean_object* v_a_4718_){
_start:
{
lean_object* v_res_4719_; 
v_res_4719_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_();
return v_res_4719_;
}
}
static lean_object* _init_l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_4720_; lean_object* v___x_4721_; 
v___x_4720_ = lean_alloc_closure((void*)(l_BitVec_reduceGetMsb___boxed), 9, 0);
v___x_4721_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_4721_, 0, v___x_4720_);
return v___x_4721_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_4723_; uint8_t v___x_4724_; lean_object* v___x_4725_; lean_object* v___x_4726_; 
v___x_4723_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_));
v___x_4724_ = 1;
v___x_4725_ = lean_obj_once(&l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_, &l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16__once, _init_l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_);
v___x_4726_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_4723_, v___x_4724_, v___x_4725_);
return v___x_4726_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16____boxed(lean_object* v_a_4727_){
_start:
{
lean_object* v_res_4728_; 
v_res_4728_ = l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_();
return v_res_4728_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_4730_; uint8_t v___x_4731_; lean_object* v___x_4732_; lean_object* v___x_4733_; 
v___x_4730_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_));
v___x_4731_ = 1;
v___x_4732_ = lean_obj_once(&l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_, &l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16__once, _init_l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_);
v___x_4733_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_4730_, v___x_4731_, v___x_4732_);
return v___x_4733_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_18____boxed(lean_object* v_a_4734_){
_start:
{
lean_object* v_res_4735_; 
v_res_4735_ = l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_18_();
return v_res_4735_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceClz___redArg(lean_object* v_e_4740_, lean_object* v_a_4741_, lean_object* v_a_4742_, lean_object* v_a_4743_, lean_object* v_a_4744_, lean_object* v_a_4745_){
_start:
{
lean_object* v___x_4747_; lean_object* v___x_4748_; uint8_t v___x_4749_; 
v___x_4747_ = ((lean_object*)(l_BitVec_reduceClz___redArg___closed__1));
v___x_4748_ = lean_unsigned_to_nat(2u);
v___x_4749_ = l_Lean_Expr_isAppOfArity(v_e_4740_, v___x_4747_, v___x_4748_);
if (v___x_4749_ == 0)
{
lean_object* v___x_4750_; lean_object* v___x_4751_; 
lean_dec(v_a_4745_);
lean_dec_ref(v_a_4744_);
lean_dec(v_a_4743_);
lean_dec_ref(v_a_4742_);
v___x_4750_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_4751_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_4751_, 0, v___x_4750_);
return v___x_4751_;
}
else
{
lean_object* v___x_4752_; lean_object* v___x_4753_; 
v___x_4752_ = l_Lean_Expr_appArg_x21(v_e_4740_);
lean_inc(v_a_4745_);
lean_inc_ref(v_a_4744_);
lean_inc(v_a_4743_);
lean_inc_ref(v_a_4742_);
v___x_4753_ = l_BitVec_fromExpr_x3f___redArg(v___x_4752_, v_a_4742_, v_a_4743_, v_a_4744_, v_a_4745_);
if (lean_obj_tag(v___x_4753_) == 0)
{
lean_object* v_a_4754_; lean_object* v___x_4756_; uint8_t v_isShared_4757_; uint8_t v_isSharedCheck_4790_; 
v_a_4754_ = lean_ctor_get(v___x_4753_, 0);
v_isSharedCheck_4790_ = !lean_is_exclusive(v___x_4753_);
if (v_isSharedCheck_4790_ == 0)
{
v___x_4756_ = v___x_4753_;
v_isShared_4757_ = v_isSharedCheck_4790_;
goto v_resetjp_4755_;
}
else
{
lean_inc(v_a_4754_);
lean_dec(v___x_4753_);
v___x_4756_ = lean_box(0);
v_isShared_4757_ = v_isSharedCheck_4790_;
goto v_resetjp_4755_;
}
v_resetjp_4755_:
{
if (lean_obj_tag(v_a_4754_) == 1)
{
lean_object* v_val_4758_; lean_object* v___x_4760_; uint8_t v_isShared_4761_; uint8_t v_isSharedCheck_4785_; 
lean_del_object(v___x_4756_);
v_val_4758_ = lean_ctor_get(v_a_4754_, 0);
v_isSharedCheck_4785_ = !lean_is_exclusive(v_a_4754_);
if (v_isSharedCheck_4785_ == 0)
{
v___x_4760_ = v_a_4754_;
v_isShared_4761_ = v_isSharedCheck_4785_;
goto v_resetjp_4759_;
}
else
{
lean_inc(v_val_4758_);
lean_dec(v_a_4754_);
v___x_4760_ = lean_box(0);
v_isShared_4761_ = v_isSharedCheck_4785_;
goto v_resetjp_4759_;
}
v_resetjp_4759_:
{
lean_object* v_n_4762_; lean_object* v_value_4763_; lean_object* v___x_4764_; lean_object* v___x_4765_; 
v_n_4762_ = lean_ctor_get(v_val_4758_, 0);
lean_inc(v_n_4762_);
v_value_4763_ = lean_ctor_get(v_val_4758_, 1);
lean_inc(v_value_4763_);
lean_dec(v_val_4758_);
v___x_4764_ = l_BitVec_clz(v_n_4762_, v_value_4763_);
lean_dec(v_value_4763_);
v___x_4765_ = l_BitVec_toExpr_x27___redArg(v_n_4762_, v___x_4764_, v_a_4741_, v_a_4742_, v_a_4743_, v_a_4744_, v_a_4745_);
if (lean_obj_tag(v___x_4765_) == 0)
{
lean_object* v_a_4766_; lean_object* v___x_4768_; uint8_t v_isShared_4769_; uint8_t v_isSharedCheck_4776_; 
v_a_4766_ = lean_ctor_get(v___x_4765_, 0);
v_isSharedCheck_4776_ = !lean_is_exclusive(v___x_4765_);
if (v_isSharedCheck_4776_ == 0)
{
v___x_4768_ = v___x_4765_;
v_isShared_4769_ = v_isSharedCheck_4776_;
goto v_resetjp_4767_;
}
else
{
lean_inc(v_a_4766_);
lean_dec(v___x_4765_);
v___x_4768_ = lean_box(0);
v_isShared_4769_ = v_isSharedCheck_4776_;
goto v_resetjp_4767_;
}
v_resetjp_4767_:
{
lean_object* v___x_4771_; 
if (v_isShared_4761_ == 0)
{
lean_ctor_set_tag(v___x_4760_, 0);
lean_ctor_set(v___x_4760_, 0, v_a_4766_);
v___x_4771_ = v___x_4760_;
goto v_reusejp_4770_;
}
else
{
lean_object* v_reuseFailAlloc_4775_; 
v_reuseFailAlloc_4775_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4775_, 0, v_a_4766_);
v___x_4771_ = v_reuseFailAlloc_4775_;
goto v_reusejp_4770_;
}
v_reusejp_4770_:
{
lean_object* v___x_4773_; 
if (v_isShared_4769_ == 0)
{
lean_ctor_set(v___x_4768_, 0, v___x_4771_);
v___x_4773_ = v___x_4768_;
goto v_reusejp_4772_;
}
else
{
lean_object* v_reuseFailAlloc_4774_; 
v_reuseFailAlloc_4774_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4774_, 0, v___x_4771_);
v___x_4773_ = v_reuseFailAlloc_4774_;
goto v_reusejp_4772_;
}
v_reusejp_4772_:
{
return v___x_4773_;
}
}
}
}
else
{
lean_object* v_a_4777_; lean_object* v___x_4779_; uint8_t v_isShared_4780_; uint8_t v_isSharedCheck_4784_; 
lean_del_object(v___x_4760_);
v_a_4777_ = lean_ctor_get(v___x_4765_, 0);
v_isSharedCheck_4784_ = !lean_is_exclusive(v___x_4765_);
if (v_isSharedCheck_4784_ == 0)
{
v___x_4779_ = v___x_4765_;
v_isShared_4780_ = v_isSharedCheck_4784_;
goto v_resetjp_4778_;
}
else
{
lean_inc(v_a_4777_);
lean_dec(v___x_4765_);
v___x_4779_ = lean_box(0);
v_isShared_4780_ = v_isSharedCheck_4784_;
goto v_resetjp_4778_;
}
v_resetjp_4778_:
{
lean_object* v___x_4782_; 
if (v_isShared_4780_ == 0)
{
v___x_4782_ = v___x_4779_;
goto v_reusejp_4781_;
}
else
{
lean_object* v_reuseFailAlloc_4783_; 
v_reuseFailAlloc_4783_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4783_, 0, v_a_4777_);
v___x_4782_ = v_reuseFailAlloc_4783_;
goto v_reusejp_4781_;
}
v_reusejp_4781_:
{
return v___x_4782_;
}
}
}
}
}
else
{
lean_object* v___x_4786_; lean_object* v___x_4788_; 
lean_dec(v_a_4754_);
lean_dec(v_a_4745_);
lean_dec_ref(v_a_4744_);
lean_dec(v_a_4743_);
lean_dec_ref(v_a_4742_);
v___x_4786_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4757_ == 0)
{
lean_ctor_set(v___x_4756_, 0, v___x_4786_);
v___x_4788_ = v___x_4756_;
goto v_reusejp_4787_;
}
else
{
lean_object* v_reuseFailAlloc_4789_; 
v_reuseFailAlloc_4789_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4789_, 0, v___x_4786_);
v___x_4788_ = v_reuseFailAlloc_4789_;
goto v_reusejp_4787_;
}
v_reusejp_4787_:
{
return v___x_4788_;
}
}
}
}
else
{
lean_object* v_a_4791_; lean_object* v___x_4793_; uint8_t v_isShared_4794_; uint8_t v_isSharedCheck_4798_; 
lean_dec(v_a_4745_);
lean_dec_ref(v_a_4744_);
lean_dec(v_a_4743_);
lean_dec_ref(v_a_4742_);
v_a_4791_ = lean_ctor_get(v___x_4753_, 0);
v_isSharedCheck_4798_ = !lean_is_exclusive(v___x_4753_);
if (v_isSharedCheck_4798_ == 0)
{
v___x_4793_ = v___x_4753_;
v_isShared_4794_ = v_isSharedCheck_4798_;
goto v_resetjp_4792_;
}
else
{
lean_inc(v_a_4791_);
lean_dec(v___x_4753_);
v___x_4793_ = lean_box(0);
v_isShared_4794_ = v_isSharedCheck_4798_;
goto v_resetjp_4792_;
}
v_resetjp_4792_:
{
lean_object* v___x_4796_; 
if (v_isShared_4794_ == 0)
{
v___x_4796_ = v___x_4793_;
goto v_reusejp_4795_;
}
else
{
lean_object* v_reuseFailAlloc_4797_; 
v_reuseFailAlloc_4797_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4797_, 0, v_a_4791_);
v___x_4796_ = v_reuseFailAlloc_4797_;
goto v_reusejp_4795_;
}
v_reusejp_4795_:
{
return v___x_4796_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceClz___redArg___boxed(lean_object* v_e_4799_, lean_object* v_a_4800_, lean_object* v_a_4801_, lean_object* v_a_4802_, lean_object* v_a_4803_, lean_object* v_a_4804_, lean_object* v_a_4805_){
_start:
{
lean_object* v_res_4806_; 
v_res_4806_ = l_BitVec_reduceClz___redArg(v_e_4799_, v_a_4800_, v_a_4801_, v_a_4802_, v_a_4803_, v_a_4804_);
lean_dec_ref(v_a_4800_);
lean_dec_ref(v_e_4799_);
return v_res_4806_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceClz(lean_object* v_e_4807_, lean_object* v_a_4808_, lean_object* v_a_4809_, lean_object* v_a_4810_, lean_object* v_a_4811_, lean_object* v_a_4812_, lean_object* v_a_4813_, lean_object* v_a_4814_){
_start:
{
lean_object* v___x_4816_; 
v___x_4816_ = l_BitVec_reduceClz___redArg(v_e_4807_, v_a_4809_, v_a_4811_, v_a_4812_, v_a_4813_, v_a_4814_);
return v___x_4816_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceClz___boxed(lean_object* v_e_4817_, lean_object* v_a_4818_, lean_object* v_a_4819_, lean_object* v_a_4820_, lean_object* v_a_4821_, lean_object* v_a_4822_, lean_object* v_a_4823_, lean_object* v_a_4824_, lean_object* v_a_4825_){
_start:
{
lean_object* v_res_4826_; 
v_res_4826_ = l_BitVec_reduceClz(v_e_4817_, v_a_4818_, v_a_4819_, v_a_4820_, v_a_4821_, v_a_4822_, v_a_4823_, v_a_4824_);
lean_dec(v_a_4820_);
lean_dec_ref(v_a_4819_);
lean_dec(v_a_4818_);
lean_dec_ref(v_e_4817_);
return v_res_4826_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_(){
_start:
{
lean_object* v___x_4842_; lean_object* v___x_4843_; lean_object* v___x_4844_; lean_object* v___x_4845_; 
v___x_4842_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_));
v___x_4843_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_));
v___x_4844_ = lean_alloc_closure((void*)(l_BitVec_reduceClz___boxed), 9, 0);
v___x_4845_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_4842_, v___x_4843_, v___x_4844_);
return v___x_4845_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13____boxed(lean_object* v_a_4846_){
_start:
{
lean_object* v_res_4847_; 
v_res_4847_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_();
return v_res_4847_;
}
}
static lean_object* _init_l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_(void){
_start:
{
lean_object* v___x_4848_; lean_object* v___x_4849_; 
v___x_4848_ = lean_alloc_closure((void*)(l_BitVec_reduceClz___boxed), 9, 0);
v___x_4849_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_4849_, 0, v___x_4848_);
return v___x_4849_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_(){
_start:
{
lean_object* v___x_4851_; uint8_t v___x_4852_; lean_object* v___x_4853_; lean_object* v___x_4854_; 
v___x_4851_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_));
v___x_4852_ = 1;
v___x_4853_ = lean_obj_once(&l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_, &l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15__once, _init_l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_);
v___x_4854_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_4851_, v___x_4852_, v___x_4853_);
return v___x_4854_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15____boxed(lean_object* v_a_4855_){
_start:
{
lean_object* v_res_4856_; 
v_res_4856_ = l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_();
return v_res_4856_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_17_(){
_start:
{
lean_object* v___x_4858_; uint8_t v___x_4859_; lean_object* v___x_4860_; lean_object* v___x_4861_; 
v___x_4858_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_));
v___x_4859_ = 1;
v___x_4860_ = lean_obj_once(&l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_, &l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15__once, _init_l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_);
v___x_4861_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_4858_, v___x_4859_, v___x_4860_);
return v___x_4861_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_17____boxed(lean_object* v_a_4862_){
_start:
{
lean_object* v_res_4863_; 
v_res_4863_ = l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_17_();
return v_res_4863_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___redArg(lean_object* v_e_4868_, lean_object* v_a_4869_, lean_object* v_a_4870_, lean_object* v_a_4871_, lean_object* v_a_4872_, lean_object* v_a_4873_){
_start:
{
lean_object* v___x_4875_; lean_object* v___x_4876_; uint8_t v___x_4877_; 
v___x_4875_ = ((lean_object*)(l_BitVec_reduceCpop___redArg___closed__1));
v___x_4876_ = lean_unsigned_to_nat(2u);
v___x_4877_ = l_Lean_Expr_isAppOfArity(v_e_4868_, v___x_4875_, v___x_4876_);
if (v___x_4877_ == 0)
{
lean_object* v___x_4878_; lean_object* v___x_4879_; 
lean_dec(v_a_4873_);
lean_dec_ref(v_a_4872_);
lean_dec(v_a_4871_);
lean_dec_ref(v_a_4870_);
v___x_4878_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_4879_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_4879_, 0, v___x_4878_);
return v___x_4879_;
}
else
{
lean_object* v___x_4880_; lean_object* v___x_4881_; 
v___x_4880_ = l_Lean_Expr_appArg_x21(v_e_4868_);
lean_inc(v_a_4873_);
lean_inc_ref(v_a_4872_);
lean_inc(v_a_4871_);
lean_inc_ref(v_a_4870_);
v___x_4881_ = l_BitVec_fromExpr_x3f___redArg(v___x_4880_, v_a_4870_, v_a_4871_, v_a_4872_, v_a_4873_);
if (lean_obj_tag(v___x_4881_) == 0)
{
lean_object* v_a_4882_; lean_object* v___x_4884_; uint8_t v_isShared_4885_; uint8_t v_isSharedCheck_4918_; 
v_a_4882_ = lean_ctor_get(v___x_4881_, 0);
v_isSharedCheck_4918_ = !lean_is_exclusive(v___x_4881_);
if (v_isSharedCheck_4918_ == 0)
{
v___x_4884_ = v___x_4881_;
v_isShared_4885_ = v_isSharedCheck_4918_;
goto v_resetjp_4883_;
}
else
{
lean_inc(v_a_4882_);
lean_dec(v___x_4881_);
v___x_4884_ = lean_box(0);
v_isShared_4885_ = v_isSharedCheck_4918_;
goto v_resetjp_4883_;
}
v_resetjp_4883_:
{
if (lean_obj_tag(v_a_4882_) == 1)
{
lean_object* v_val_4886_; lean_object* v___x_4888_; uint8_t v_isShared_4889_; uint8_t v_isSharedCheck_4913_; 
lean_del_object(v___x_4884_);
v_val_4886_ = lean_ctor_get(v_a_4882_, 0);
v_isSharedCheck_4913_ = !lean_is_exclusive(v_a_4882_);
if (v_isSharedCheck_4913_ == 0)
{
v___x_4888_ = v_a_4882_;
v_isShared_4889_ = v_isSharedCheck_4913_;
goto v_resetjp_4887_;
}
else
{
lean_inc(v_val_4886_);
lean_dec(v_a_4882_);
v___x_4888_ = lean_box(0);
v_isShared_4889_ = v_isSharedCheck_4913_;
goto v_resetjp_4887_;
}
v_resetjp_4887_:
{
lean_object* v_n_4890_; lean_object* v_value_4891_; lean_object* v___x_4892_; lean_object* v___x_4893_; 
v_n_4890_ = lean_ctor_get(v_val_4886_, 0);
lean_inc(v_n_4890_);
v_value_4891_ = lean_ctor_get(v_val_4886_, 1);
lean_inc(v_value_4891_);
lean_dec(v_val_4886_);
lean_inc(v_n_4890_);
v___x_4892_ = l_BitVec_cpop(v_n_4890_, v_value_4891_);
lean_dec(v_value_4891_);
v___x_4893_ = l_BitVec_toExpr_x27___redArg(v_n_4890_, v___x_4892_, v_a_4869_, v_a_4870_, v_a_4871_, v_a_4872_, v_a_4873_);
if (lean_obj_tag(v___x_4893_) == 0)
{
lean_object* v_a_4894_; lean_object* v___x_4896_; uint8_t v_isShared_4897_; uint8_t v_isSharedCheck_4904_; 
v_a_4894_ = lean_ctor_get(v___x_4893_, 0);
v_isSharedCheck_4904_ = !lean_is_exclusive(v___x_4893_);
if (v_isSharedCheck_4904_ == 0)
{
v___x_4896_ = v___x_4893_;
v_isShared_4897_ = v_isSharedCheck_4904_;
goto v_resetjp_4895_;
}
else
{
lean_inc(v_a_4894_);
lean_dec(v___x_4893_);
v___x_4896_ = lean_box(0);
v_isShared_4897_ = v_isSharedCheck_4904_;
goto v_resetjp_4895_;
}
v_resetjp_4895_:
{
lean_object* v___x_4899_; 
if (v_isShared_4889_ == 0)
{
lean_ctor_set_tag(v___x_4888_, 0);
lean_ctor_set(v___x_4888_, 0, v_a_4894_);
v___x_4899_ = v___x_4888_;
goto v_reusejp_4898_;
}
else
{
lean_object* v_reuseFailAlloc_4903_; 
v_reuseFailAlloc_4903_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4903_, 0, v_a_4894_);
v___x_4899_ = v_reuseFailAlloc_4903_;
goto v_reusejp_4898_;
}
v_reusejp_4898_:
{
lean_object* v___x_4901_; 
if (v_isShared_4897_ == 0)
{
lean_ctor_set(v___x_4896_, 0, v___x_4899_);
v___x_4901_ = v___x_4896_;
goto v_reusejp_4900_;
}
else
{
lean_object* v_reuseFailAlloc_4902_; 
v_reuseFailAlloc_4902_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4902_, 0, v___x_4899_);
v___x_4901_ = v_reuseFailAlloc_4902_;
goto v_reusejp_4900_;
}
v_reusejp_4900_:
{
return v___x_4901_;
}
}
}
}
else
{
lean_object* v_a_4905_; lean_object* v___x_4907_; uint8_t v_isShared_4908_; uint8_t v_isSharedCheck_4912_; 
lean_del_object(v___x_4888_);
v_a_4905_ = lean_ctor_get(v___x_4893_, 0);
v_isSharedCheck_4912_ = !lean_is_exclusive(v___x_4893_);
if (v_isSharedCheck_4912_ == 0)
{
v___x_4907_ = v___x_4893_;
v_isShared_4908_ = v_isSharedCheck_4912_;
goto v_resetjp_4906_;
}
else
{
lean_inc(v_a_4905_);
lean_dec(v___x_4893_);
v___x_4907_ = lean_box(0);
v_isShared_4908_ = v_isSharedCheck_4912_;
goto v_resetjp_4906_;
}
v_resetjp_4906_:
{
lean_object* v___x_4910_; 
if (v_isShared_4908_ == 0)
{
v___x_4910_ = v___x_4907_;
goto v_reusejp_4909_;
}
else
{
lean_object* v_reuseFailAlloc_4911_; 
v_reuseFailAlloc_4911_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4911_, 0, v_a_4905_);
v___x_4910_ = v_reuseFailAlloc_4911_;
goto v_reusejp_4909_;
}
v_reusejp_4909_:
{
return v___x_4910_;
}
}
}
}
}
else
{
lean_object* v___x_4914_; lean_object* v___x_4916_; 
lean_dec(v_a_4882_);
lean_dec(v_a_4873_);
lean_dec_ref(v_a_4872_);
lean_dec(v_a_4871_);
lean_dec_ref(v_a_4870_);
v___x_4914_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_4885_ == 0)
{
lean_ctor_set(v___x_4884_, 0, v___x_4914_);
v___x_4916_ = v___x_4884_;
goto v_reusejp_4915_;
}
else
{
lean_object* v_reuseFailAlloc_4917_; 
v_reuseFailAlloc_4917_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4917_, 0, v___x_4914_);
v___x_4916_ = v_reuseFailAlloc_4917_;
goto v_reusejp_4915_;
}
v_reusejp_4915_:
{
return v___x_4916_;
}
}
}
}
else
{
lean_object* v_a_4919_; lean_object* v___x_4921_; uint8_t v_isShared_4922_; uint8_t v_isSharedCheck_4926_; 
lean_dec(v_a_4873_);
lean_dec_ref(v_a_4872_);
lean_dec(v_a_4871_);
lean_dec_ref(v_a_4870_);
v_a_4919_ = lean_ctor_get(v___x_4881_, 0);
v_isSharedCheck_4926_ = !lean_is_exclusive(v___x_4881_);
if (v_isSharedCheck_4926_ == 0)
{
v___x_4921_ = v___x_4881_;
v_isShared_4922_ = v_isSharedCheck_4926_;
goto v_resetjp_4920_;
}
else
{
lean_inc(v_a_4919_);
lean_dec(v___x_4881_);
v___x_4921_ = lean_box(0);
v_isShared_4922_ = v_isSharedCheck_4926_;
goto v_resetjp_4920_;
}
v_resetjp_4920_:
{
lean_object* v___x_4924_; 
if (v_isShared_4922_ == 0)
{
v___x_4924_ = v___x_4921_;
goto v_reusejp_4923_;
}
else
{
lean_object* v_reuseFailAlloc_4925_; 
v_reuseFailAlloc_4925_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_4925_, 0, v_a_4919_);
v___x_4924_ = v_reuseFailAlloc_4925_;
goto v_reusejp_4923_;
}
v_reusejp_4923_:
{
return v___x_4924_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___redArg___boxed(lean_object* v_e_4927_, lean_object* v_a_4928_, lean_object* v_a_4929_, lean_object* v_a_4930_, lean_object* v_a_4931_, lean_object* v_a_4932_, lean_object* v_a_4933_){
_start:
{
lean_object* v_res_4934_; 
v_res_4934_ = l_BitVec_reduceCpop___redArg(v_e_4927_, v_a_4928_, v_a_4929_, v_a_4930_, v_a_4931_, v_a_4932_);
lean_dec_ref(v_a_4928_);
lean_dec_ref(v_e_4927_);
return v_res_4934_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCpop(lean_object* v_e_4935_, lean_object* v_a_4936_, lean_object* v_a_4937_, lean_object* v_a_4938_, lean_object* v_a_4939_, lean_object* v_a_4940_, lean_object* v_a_4941_, lean_object* v_a_4942_){
_start:
{
lean_object* v___x_4944_; 
v___x_4944_ = l_BitVec_reduceCpop___redArg(v_e_4935_, v_a_4937_, v_a_4939_, v_a_4940_, v_a_4941_, v_a_4942_);
return v___x_4944_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___boxed(lean_object* v_e_4945_, lean_object* v_a_4946_, lean_object* v_a_4947_, lean_object* v_a_4948_, lean_object* v_a_4949_, lean_object* v_a_4950_, lean_object* v_a_4951_, lean_object* v_a_4952_, lean_object* v_a_4953_){
_start:
{
lean_object* v_res_4954_; 
v_res_4954_ = l_BitVec_reduceCpop(v_e_4945_, v_a_4946_, v_a_4947_, v_a_4948_, v_a_4949_, v_a_4950_, v_a_4951_, v_a_4952_);
lean_dec(v_a_4948_);
lean_dec_ref(v_a_4947_);
lean_dec(v_a_4946_);
lean_dec_ref(v_e_4945_);
return v_res_4954_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_(){
_start:
{
lean_object* v___x_4970_; lean_object* v___x_4971_; lean_object* v___x_4972_; lean_object* v___x_4973_; 
v___x_4970_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_));
v___x_4971_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_));
v___x_4972_ = lean_alloc_closure((void*)(l_BitVec_reduceCpop___boxed), 9, 0);
v___x_4973_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_4970_, v___x_4971_, v___x_4972_);
return v___x_4973_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13____boxed(lean_object* v_a_4974_){
_start:
{
lean_object* v_res_4975_; 
v_res_4975_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_();
return v_res_4975_;
}
}
static lean_object* _init_l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_(void){
_start:
{
lean_object* v___x_4976_; lean_object* v___x_4977_; 
v___x_4976_ = lean_alloc_closure((void*)(l_BitVec_reduceCpop___boxed), 9, 0);
v___x_4977_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_4977_, 0, v___x_4976_);
return v___x_4977_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_(){
_start:
{
lean_object* v___x_4979_; uint8_t v___x_4980_; lean_object* v___x_4981_; lean_object* v___x_4982_; 
v___x_4979_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_));
v___x_4980_ = 1;
v___x_4981_ = lean_obj_once(&l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_, &l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15__once, _init_l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_);
v___x_4982_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_4979_, v___x_4980_, v___x_4981_);
return v___x_4982_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15____boxed(lean_object* v_a_4983_){
_start:
{
lean_object* v_res_4984_; 
v_res_4984_ = l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_();
return v_res_4984_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_17_(){
_start:
{
lean_object* v___x_4986_; uint8_t v___x_4987_; lean_object* v___x_4988_; lean_object* v___x_4989_; 
v___x_4986_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_));
v___x_4987_ = 1;
v___x_4988_ = lean_obj_once(&l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_, &l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15__once, _init_l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_);
v___x_4989_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_4986_, v___x_4987_, v___x_4988_);
return v___x_4989_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_17____boxed(lean_object* v_a_4990_){
_start:
{
lean_object* v_res_4991_; 
v_res_4991_ = l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_17_();
return v_res_4991_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___redArg(lean_object* v_e_4997_, lean_object* v_a_4998_, lean_object* v_a_4999_, lean_object* v_a_5000_, lean_object* v_a_5001_){
_start:
{
lean_object* v___x_5006_; uint8_t v___x_5007_; 
v___x_5006_ = l_Lean_Expr_cleanupAnnotations(v_e_4997_);
v___x_5007_ = l_Lean_Expr_isApp(v___x_5006_);
if (v___x_5007_ == 0)
{
lean_dec_ref(v___x_5006_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
goto v___jp_5003_;
}
else
{
lean_object* v___x_5008_; uint8_t v___x_5009_; 
v___x_5008_ = l_Lean_Expr_appFnCleanup___redArg(v___x_5006_);
v___x_5009_ = l_Lean_Expr_isApp(v___x_5008_);
if (v___x_5009_ == 0)
{
lean_dec_ref(v___x_5008_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
goto v___jp_5003_;
}
else
{
lean_object* v_arg_5010_; lean_object* v___x_5011_; uint8_t v___x_5012_; 
v_arg_5010_ = lean_ctor_get(v___x_5008_, 1);
lean_inc_ref(v_arg_5010_);
v___x_5011_ = l_Lean_Expr_appFnCleanup___redArg(v___x_5008_);
v___x_5012_ = l_Lean_Expr_isApp(v___x_5011_);
if (v___x_5012_ == 0)
{
lean_dec_ref(v___x_5011_);
lean_dec_ref(v_arg_5010_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
goto v___jp_5003_;
}
else
{
lean_object* v_arg_5013_; lean_object* v___x_5014_; uint8_t v___x_5015_; 
v_arg_5013_ = lean_ctor_get(v___x_5011_, 1);
lean_inc_ref(v_arg_5013_);
v___x_5014_ = l_Lean_Expr_appFnCleanup___redArg(v___x_5011_);
v___x_5015_ = l_Lean_Expr_isApp(v___x_5014_);
if (v___x_5015_ == 0)
{
lean_dec_ref(v___x_5014_);
lean_dec_ref(v_arg_5013_);
lean_dec_ref(v_arg_5010_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
goto v___jp_5003_;
}
else
{
lean_object* v___x_5016_; uint8_t v___x_5017_; 
v___x_5016_ = l_Lean_Expr_appFnCleanup___redArg(v___x_5014_);
v___x_5017_ = l_Lean_Expr_isApp(v___x_5016_);
if (v___x_5017_ == 0)
{
lean_dec_ref(v___x_5016_);
lean_dec_ref(v_arg_5013_);
lean_dec_ref(v_arg_5010_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
goto v___jp_5003_;
}
else
{
lean_object* v___x_5018_; uint8_t v___x_5019_; 
v___x_5018_ = l_Lean_Expr_appFnCleanup___redArg(v___x_5016_);
v___x_5019_ = l_Lean_Expr_isApp(v___x_5018_);
if (v___x_5019_ == 0)
{
lean_dec_ref(v___x_5018_);
lean_dec_ref(v_arg_5013_);
lean_dec_ref(v_arg_5010_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
goto v___jp_5003_;
}
else
{
lean_object* v___x_5020_; uint8_t v___x_5021_; 
v___x_5020_ = l_Lean_Expr_appFnCleanup___redArg(v___x_5018_);
v___x_5021_ = l_Lean_Expr_isApp(v___x_5020_);
if (v___x_5021_ == 0)
{
lean_dec_ref(v___x_5020_);
lean_dec_ref(v_arg_5013_);
lean_dec_ref(v_arg_5010_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
goto v___jp_5003_;
}
else
{
lean_object* v___x_5022_; uint8_t v___x_5023_; 
v___x_5022_ = l_Lean_Expr_appFnCleanup___redArg(v___x_5020_);
v___x_5023_ = l_Lean_Expr_isApp(v___x_5022_);
if (v___x_5023_ == 0)
{
lean_dec_ref(v___x_5022_);
lean_dec_ref(v_arg_5013_);
lean_dec_ref(v_arg_5010_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
goto v___jp_5003_;
}
else
{
lean_object* v___x_5024_; lean_object* v___x_5025_; uint8_t v___x_5026_; 
v___x_5024_ = l_Lean_Expr_appFnCleanup___redArg(v___x_5022_);
v___x_5025_ = ((lean_object*)(l_BitVec_reduceGetElem___redArg___closed__2));
v___x_5026_ = l_Lean_Expr_isConstOf(v___x_5024_, v___x_5025_);
lean_dec_ref(v___x_5024_);
if (v___x_5026_ == 0)
{
lean_dec_ref(v_arg_5013_);
lean_dec_ref(v_arg_5010_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
goto v___jp_5003_;
}
else
{
lean_object* v___x_5027_; 
lean_inc(v_a_5001_);
lean_inc_ref(v_a_5000_);
lean_inc(v_a_4999_);
lean_inc_ref(v_a_4998_);
v___x_5027_ = l_BitVec_fromExpr_x3f___redArg(v_arg_5013_, v_a_4998_, v_a_4999_, v_a_5000_, v_a_5001_);
if (lean_obj_tag(v___x_5027_) == 0)
{
lean_object* v_a_5028_; lean_object* v___x_5030_; uint8_t v_isShared_5031_; uint8_t v_isSharedCheck_5072_; 
v_a_5028_ = lean_ctor_get(v___x_5027_, 0);
v_isSharedCheck_5072_ = !lean_is_exclusive(v___x_5027_);
if (v_isSharedCheck_5072_ == 0)
{
v___x_5030_ = v___x_5027_;
v_isShared_5031_ = v_isSharedCheck_5072_;
goto v_resetjp_5029_;
}
else
{
lean_inc(v_a_5028_);
lean_dec(v___x_5027_);
v___x_5030_ = lean_box(0);
v_isShared_5031_ = v_isSharedCheck_5072_;
goto v_resetjp_5029_;
}
v_resetjp_5029_:
{
if (lean_obj_tag(v_a_5028_) == 1)
{
lean_object* v_val_5032_; lean_object* v___x_5034_; uint8_t v_isShared_5035_; uint8_t v_isSharedCheck_5067_; 
v_val_5032_ = lean_ctor_get(v_a_5028_, 0);
v_isSharedCheck_5067_ = !lean_is_exclusive(v_a_5028_);
if (v_isSharedCheck_5067_ == 0)
{
v___x_5034_ = v_a_5028_;
v_isShared_5035_ = v_isSharedCheck_5067_;
goto v_resetjp_5033_;
}
else
{
lean_inc(v_val_5032_);
lean_dec(v_a_5028_);
v___x_5034_ = lean_box(0);
v_isShared_5035_ = v_isSharedCheck_5067_;
goto v_resetjp_5033_;
}
v_resetjp_5033_:
{
lean_object* v___x_5036_; 
v___x_5036_ = l_Lean_Meta_getNatValue_x3f(v_arg_5010_, v_a_4998_, v_a_4999_, v_a_5000_, v_a_5001_);
lean_dec_ref(v_arg_5010_);
if (lean_obj_tag(v___x_5036_) == 0)
{
lean_object* v_a_5037_; lean_object* v___x_5039_; uint8_t v_isShared_5040_; uint8_t v_isSharedCheck_5058_; 
v_a_5037_ = lean_ctor_get(v___x_5036_, 0);
v_isSharedCheck_5058_ = !lean_is_exclusive(v___x_5036_);
if (v_isSharedCheck_5058_ == 0)
{
v___x_5039_ = v___x_5036_;
v_isShared_5040_ = v_isSharedCheck_5058_;
goto v_resetjp_5038_;
}
else
{
lean_inc(v_a_5037_);
lean_dec(v___x_5036_);
v___x_5039_ = lean_box(0);
v_isShared_5040_ = v_isSharedCheck_5058_;
goto v_resetjp_5038_;
}
v_resetjp_5038_:
{
lean_object* v___y_5042_; 
if (lean_obj_tag(v_a_5037_) == 1)
{
lean_object* v_val_5049_; lean_object* v_value_5050_; uint8_t v___x_5051_; 
lean_del_object(v___x_5030_);
v_val_5049_ = lean_ctor_get(v_a_5037_, 0);
lean_inc(v_val_5049_);
lean_dec_ref(v_a_5037_);
v_value_5050_ = lean_ctor_get(v_val_5032_, 1);
lean_inc(v_value_5050_);
lean_dec(v_val_5032_);
v___x_5051_ = l_Nat_testBit(v_value_5050_, v_val_5049_);
lean_dec(v_val_5049_);
lean_dec(v_value_5050_);
if (v___x_5051_ == 0)
{
lean_object* v___x_5052_; 
v___x_5052_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_5042_ = v___x_5052_;
goto v___jp_5041_;
}
else
{
lean_object* v___x_5053_; 
v___x_5053_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_5042_ = v___x_5053_;
goto v___jp_5041_;
}
}
else
{
lean_object* v___x_5054_; lean_object* v___x_5056_; 
lean_del_object(v___x_5039_);
lean_dec(v_a_5037_);
lean_del_object(v___x_5034_);
lean_dec(v_val_5032_);
v___x_5054_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5031_ == 0)
{
lean_ctor_set(v___x_5030_, 0, v___x_5054_);
v___x_5056_ = v___x_5030_;
goto v_reusejp_5055_;
}
else
{
lean_object* v_reuseFailAlloc_5057_; 
v_reuseFailAlloc_5057_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5057_, 0, v___x_5054_);
v___x_5056_ = v_reuseFailAlloc_5057_;
goto v_reusejp_5055_;
}
v_reusejp_5055_:
{
return v___x_5056_;
}
}
v___jp_5041_:
{
lean_object* v___x_5044_; 
if (v_isShared_5035_ == 0)
{
lean_ctor_set_tag(v___x_5034_, 0);
lean_ctor_set(v___x_5034_, 0, v___y_5042_);
v___x_5044_ = v___x_5034_;
goto v_reusejp_5043_;
}
else
{
lean_object* v_reuseFailAlloc_5048_; 
v_reuseFailAlloc_5048_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5048_, 0, v___y_5042_);
v___x_5044_ = v_reuseFailAlloc_5048_;
goto v_reusejp_5043_;
}
v_reusejp_5043_:
{
lean_object* v___x_5046_; 
if (v_isShared_5040_ == 0)
{
lean_ctor_set(v___x_5039_, 0, v___x_5044_);
v___x_5046_ = v___x_5039_;
goto v_reusejp_5045_;
}
else
{
lean_object* v_reuseFailAlloc_5047_; 
v_reuseFailAlloc_5047_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5047_, 0, v___x_5044_);
v___x_5046_ = v_reuseFailAlloc_5047_;
goto v_reusejp_5045_;
}
v_reusejp_5045_:
{
return v___x_5046_;
}
}
}
}
}
else
{
lean_object* v_a_5059_; lean_object* v___x_5061_; uint8_t v_isShared_5062_; uint8_t v_isSharedCheck_5066_; 
lean_del_object(v___x_5034_);
lean_dec(v_val_5032_);
lean_del_object(v___x_5030_);
v_a_5059_ = lean_ctor_get(v___x_5036_, 0);
v_isSharedCheck_5066_ = !lean_is_exclusive(v___x_5036_);
if (v_isSharedCheck_5066_ == 0)
{
v___x_5061_ = v___x_5036_;
v_isShared_5062_ = v_isSharedCheck_5066_;
goto v_resetjp_5060_;
}
else
{
lean_inc(v_a_5059_);
lean_dec(v___x_5036_);
v___x_5061_ = lean_box(0);
v_isShared_5062_ = v_isSharedCheck_5066_;
goto v_resetjp_5060_;
}
v_resetjp_5060_:
{
lean_object* v___x_5064_; 
if (v_isShared_5062_ == 0)
{
v___x_5064_ = v___x_5061_;
goto v_reusejp_5063_;
}
else
{
lean_object* v_reuseFailAlloc_5065_; 
v_reuseFailAlloc_5065_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5065_, 0, v_a_5059_);
v___x_5064_ = v_reuseFailAlloc_5065_;
goto v_reusejp_5063_;
}
v_reusejp_5063_:
{
return v___x_5064_;
}
}
}
}
}
else
{
lean_object* v___x_5068_; lean_object* v___x_5070_; 
lean_dec(v_a_5028_);
lean_dec_ref(v_arg_5010_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
v___x_5068_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5031_ == 0)
{
lean_ctor_set(v___x_5030_, 0, v___x_5068_);
v___x_5070_ = v___x_5030_;
goto v_reusejp_5069_;
}
else
{
lean_object* v_reuseFailAlloc_5071_; 
v_reuseFailAlloc_5071_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5071_, 0, v___x_5068_);
v___x_5070_ = v_reuseFailAlloc_5071_;
goto v_reusejp_5069_;
}
v_reusejp_5069_:
{
return v___x_5070_;
}
}
}
}
else
{
lean_object* v_a_5073_; lean_object* v___x_5075_; uint8_t v_isShared_5076_; uint8_t v_isSharedCheck_5080_; 
lean_dec_ref(v_arg_5010_);
lean_dec(v_a_5001_);
lean_dec_ref(v_a_5000_);
lean_dec(v_a_4999_);
lean_dec_ref(v_a_4998_);
v_a_5073_ = lean_ctor_get(v___x_5027_, 0);
v_isSharedCheck_5080_ = !lean_is_exclusive(v___x_5027_);
if (v_isSharedCheck_5080_ == 0)
{
v___x_5075_ = v___x_5027_;
v_isShared_5076_ = v_isSharedCheck_5080_;
goto v_resetjp_5074_;
}
else
{
lean_inc(v_a_5073_);
lean_dec(v___x_5027_);
v___x_5075_ = lean_box(0);
v_isShared_5076_ = v_isSharedCheck_5080_;
goto v_resetjp_5074_;
}
v_resetjp_5074_:
{
lean_object* v___x_5078_; 
if (v_isShared_5076_ == 0)
{
v___x_5078_ = v___x_5075_;
goto v_reusejp_5077_;
}
else
{
lean_object* v_reuseFailAlloc_5079_; 
v_reuseFailAlloc_5079_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5079_, 0, v_a_5073_);
v___x_5078_ = v_reuseFailAlloc_5079_;
goto v_reusejp_5077_;
}
v_reusejp_5077_:
{
return v___x_5078_;
}
}
}
}
}
}
}
}
}
}
}
}
v___jp_5003_:
{
lean_object* v___x_5004_; lean_object* v___x_5005_; 
v___x_5004_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_5005_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_5005_, 0, v___x_5004_);
return v___x_5005_;
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___redArg___boxed(lean_object* v_e_5081_, lean_object* v_a_5082_, lean_object* v_a_5083_, lean_object* v_a_5084_, lean_object* v_a_5085_, lean_object* v_a_5086_){
_start:
{
lean_object* v_res_5087_; 
v_res_5087_ = l_BitVec_reduceGetElem___redArg(v_e_5081_, v_a_5082_, v_a_5083_, v_a_5084_, v_a_5085_);
return v_res_5087_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem(lean_object* v_e_5088_, lean_object* v_a_5089_, lean_object* v_a_5090_, lean_object* v_a_5091_, lean_object* v_a_5092_, lean_object* v_a_5093_, lean_object* v_a_5094_, lean_object* v_a_5095_){
_start:
{
lean_object* v___x_5097_; 
v___x_5097_ = l_BitVec_reduceGetElem___redArg(v_e_5088_, v_a_5092_, v_a_5093_, v_a_5094_, v_a_5095_);
return v___x_5097_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___boxed(lean_object* v_e_5098_, lean_object* v_a_5099_, lean_object* v_a_5100_, lean_object* v_a_5101_, lean_object* v_a_5102_, lean_object* v_a_5103_, lean_object* v_a_5104_, lean_object* v_a_5105_, lean_object* v_a_5106_){
_start:
{
lean_object* v_res_5107_; 
v_res_5107_ = l_BitVec_reduceGetElem(v_e_5098_, v_a_5099_, v_a_5100_, v_a_5101_, v_a_5102_, v_a_5103_, v_a_5104_, v_a_5105_);
lean_dec(v_a_5101_);
lean_dec_ref(v_a_5100_);
lean_dec(v_a_5099_);
return v_res_5107_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_5131_; lean_object* v___x_5132_; lean_object* v___x_5133_; lean_object* v___x_5134_; 
v___x_5131_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_));
v___x_5132_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_));
v___x_5133_ = lean_alloc_closure((void*)(l_BitVec_reduceGetElem___boxed), 9, 0);
v___x_5134_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_5131_, v___x_5132_, v___x_5133_);
return v___x_5134_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24____boxed(lean_object* v_a_5135_){
_start:
{
lean_object* v_res_5136_; 
v_res_5136_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_();
return v_res_5136_;
}
}
static lean_object* _init_l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_(void){
_start:
{
lean_object* v___x_5137_; lean_object* v___x_5138_; 
v___x_5137_ = lean_alloc_closure((void*)(l_BitVec_reduceGetElem___boxed), 9, 0);
v___x_5138_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_5138_, 0, v___x_5137_);
return v___x_5138_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_(){
_start:
{
lean_object* v___x_5140_; uint8_t v___x_5141_; lean_object* v___x_5142_; lean_object* v___x_5143_; 
v___x_5140_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_));
v___x_5141_ = 1;
v___x_5142_ = lean_obj_once(&l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_, &l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26__once, _init_l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_);
v___x_5143_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_5140_, v___x_5141_, v___x_5142_);
return v___x_5143_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26____boxed(lean_object* v_a_5144_){
_start:
{
lean_object* v_res_5145_; 
v_res_5145_ = l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_();
return v_res_5145_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_28_(){
_start:
{
lean_object* v___x_5147_; uint8_t v___x_5148_; lean_object* v___x_5149_; lean_object* v___x_5150_; 
v___x_5147_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_));
v___x_5148_ = 1;
v___x_5149_ = lean_obj_once(&l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_, &l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26__once, _init_l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_);
v___x_5150_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_5147_, v___x_5148_, v___x_5149_);
return v___x_5150_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_28____boxed(lean_object* v_a_5151_){
_start:
{
lean_object* v_res_5152_; 
v_res_5152_ = l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_28_();
return v_res_5152_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___redArg(lean_object* v_e_5157_, lean_object* v_a_5158_, lean_object* v_a_5159_, lean_object* v_a_5160_, lean_object* v_a_5161_, lean_object* v_a_5162_){
_start:
{
lean_object* v___x_5164_; lean_object* v___x_5165_; uint8_t v___x_5166_; 
v___x_5164_ = ((lean_object*)(l_BitVec_reduceShiftLeft___redArg___closed__1));
v___x_5165_ = lean_unsigned_to_nat(3u);
v___x_5166_ = l_Lean_Expr_isAppOfArity(v_e_5157_, v___x_5164_, v___x_5165_);
if (v___x_5166_ == 0)
{
lean_object* v___x_5167_; lean_object* v___x_5168_; 
lean_dec(v_a_5162_);
lean_dec_ref(v_a_5161_);
lean_dec(v_a_5160_);
lean_dec_ref(v_a_5159_);
v___x_5167_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_5168_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_5168_, 0, v___x_5167_);
return v___x_5168_;
}
else
{
lean_object* v___x_5169_; lean_object* v___x_5170_; lean_object* v___x_5171_; 
v___x_5169_ = l_Lean_Expr_appFn_x21(v_e_5157_);
v___x_5170_ = l_Lean_Expr_appArg_x21(v___x_5169_);
lean_dec_ref(v___x_5169_);
lean_inc(v_a_5162_);
lean_inc_ref(v_a_5161_);
lean_inc(v_a_5160_);
lean_inc_ref(v_a_5159_);
v___x_5171_ = l_BitVec_fromExpr_x3f___redArg(v___x_5170_, v_a_5159_, v_a_5160_, v_a_5161_, v_a_5162_);
if (lean_obj_tag(v___x_5171_) == 0)
{
lean_object* v_a_5172_; lean_object* v___x_5174_; uint8_t v_isShared_5175_; uint8_t v_isSharedCheck_5228_; 
v_a_5172_ = lean_ctor_get(v___x_5171_, 0);
v_isSharedCheck_5228_ = !lean_is_exclusive(v___x_5171_);
if (v_isSharedCheck_5228_ == 0)
{
v___x_5174_ = v___x_5171_;
v_isShared_5175_ = v_isSharedCheck_5228_;
goto v_resetjp_5173_;
}
else
{
lean_inc(v_a_5172_);
lean_dec(v___x_5171_);
v___x_5174_ = lean_box(0);
v_isShared_5175_ = v_isSharedCheck_5228_;
goto v_resetjp_5173_;
}
v_resetjp_5173_:
{
if (lean_obj_tag(v_a_5172_) == 1)
{
lean_object* v_val_5176_; lean_object* v___x_5177_; lean_object* v___x_5178_; 
lean_del_object(v___x_5174_);
v_val_5176_ = lean_ctor_get(v_a_5172_, 0);
lean_inc(v_val_5176_);
lean_dec_ref(v_a_5172_);
v___x_5177_ = l_Lean_Expr_appArg_x21(v_e_5157_);
lean_inc(v_a_5162_);
lean_inc_ref(v_a_5161_);
lean_inc(v_a_5160_);
lean_inc_ref(v_a_5159_);
v___x_5178_ = l_Lean_Meta_getNatValue_x3f(v___x_5177_, v_a_5159_, v_a_5160_, v_a_5161_, v_a_5162_);
lean_dec_ref(v___x_5177_);
if (lean_obj_tag(v___x_5178_) == 0)
{
lean_object* v_a_5179_; lean_object* v___x_5181_; uint8_t v_isShared_5182_; uint8_t v_isSharedCheck_5215_; 
v_a_5179_ = lean_ctor_get(v___x_5178_, 0);
v_isSharedCheck_5215_ = !lean_is_exclusive(v___x_5178_);
if (v_isSharedCheck_5215_ == 0)
{
v___x_5181_ = v___x_5178_;
v_isShared_5182_ = v_isSharedCheck_5215_;
goto v_resetjp_5180_;
}
else
{
lean_inc(v_a_5179_);
lean_dec(v___x_5178_);
v___x_5181_ = lean_box(0);
v_isShared_5182_ = v_isSharedCheck_5215_;
goto v_resetjp_5180_;
}
v_resetjp_5180_:
{
if (lean_obj_tag(v_a_5179_) == 1)
{
lean_object* v_val_5183_; lean_object* v___x_5185_; uint8_t v_isShared_5186_; uint8_t v_isSharedCheck_5210_; 
lean_del_object(v___x_5181_);
v_val_5183_ = lean_ctor_get(v_a_5179_, 0);
v_isSharedCheck_5210_ = !lean_is_exclusive(v_a_5179_);
if (v_isSharedCheck_5210_ == 0)
{
v___x_5185_ = v_a_5179_;
v_isShared_5186_ = v_isSharedCheck_5210_;
goto v_resetjp_5184_;
}
else
{
lean_inc(v_val_5183_);
lean_dec(v_a_5179_);
v___x_5185_ = lean_box(0);
v_isShared_5186_ = v_isSharedCheck_5210_;
goto v_resetjp_5184_;
}
v_resetjp_5184_:
{
lean_object* v_n_5187_; lean_object* v_value_5188_; lean_object* v___x_5189_; lean_object* v___x_5190_; 
v_n_5187_ = lean_ctor_get(v_val_5176_, 0);
lean_inc(v_n_5187_);
v_value_5188_ = lean_ctor_get(v_val_5176_, 1);
lean_inc(v_value_5188_);
lean_dec(v_val_5176_);
v___x_5189_ = l_BitVec_shiftLeft(v_n_5187_, v_value_5188_, v_val_5183_);
lean_dec(v_val_5183_);
lean_dec(v_value_5188_);
v___x_5190_ = l_BitVec_toExpr_x27___redArg(v_n_5187_, v___x_5189_, v_a_5158_, v_a_5159_, v_a_5160_, v_a_5161_, v_a_5162_);
if (lean_obj_tag(v___x_5190_) == 0)
{
lean_object* v_a_5191_; lean_object* v___x_5193_; uint8_t v_isShared_5194_; uint8_t v_isSharedCheck_5201_; 
v_a_5191_ = lean_ctor_get(v___x_5190_, 0);
v_isSharedCheck_5201_ = !lean_is_exclusive(v___x_5190_);
if (v_isSharedCheck_5201_ == 0)
{
v___x_5193_ = v___x_5190_;
v_isShared_5194_ = v_isSharedCheck_5201_;
goto v_resetjp_5192_;
}
else
{
lean_inc(v_a_5191_);
lean_dec(v___x_5190_);
v___x_5193_ = lean_box(0);
v_isShared_5194_ = v_isSharedCheck_5201_;
goto v_resetjp_5192_;
}
v_resetjp_5192_:
{
lean_object* v___x_5196_; 
if (v_isShared_5186_ == 0)
{
lean_ctor_set_tag(v___x_5185_, 0);
lean_ctor_set(v___x_5185_, 0, v_a_5191_);
v___x_5196_ = v___x_5185_;
goto v_reusejp_5195_;
}
else
{
lean_object* v_reuseFailAlloc_5200_; 
v_reuseFailAlloc_5200_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5200_, 0, v_a_5191_);
v___x_5196_ = v_reuseFailAlloc_5200_;
goto v_reusejp_5195_;
}
v_reusejp_5195_:
{
lean_object* v___x_5198_; 
if (v_isShared_5194_ == 0)
{
lean_ctor_set(v___x_5193_, 0, v___x_5196_);
v___x_5198_ = v___x_5193_;
goto v_reusejp_5197_;
}
else
{
lean_object* v_reuseFailAlloc_5199_; 
v_reuseFailAlloc_5199_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5199_, 0, v___x_5196_);
v___x_5198_ = v_reuseFailAlloc_5199_;
goto v_reusejp_5197_;
}
v_reusejp_5197_:
{
return v___x_5198_;
}
}
}
}
else
{
lean_object* v_a_5202_; lean_object* v___x_5204_; uint8_t v_isShared_5205_; uint8_t v_isSharedCheck_5209_; 
lean_del_object(v___x_5185_);
v_a_5202_ = lean_ctor_get(v___x_5190_, 0);
v_isSharedCheck_5209_ = !lean_is_exclusive(v___x_5190_);
if (v_isSharedCheck_5209_ == 0)
{
v___x_5204_ = v___x_5190_;
v_isShared_5205_ = v_isSharedCheck_5209_;
goto v_resetjp_5203_;
}
else
{
lean_inc(v_a_5202_);
lean_dec(v___x_5190_);
v___x_5204_ = lean_box(0);
v_isShared_5205_ = v_isSharedCheck_5209_;
goto v_resetjp_5203_;
}
v_resetjp_5203_:
{
lean_object* v___x_5207_; 
if (v_isShared_5205_ == 0)
{
v___x_5207_ = v___x_5204_;
goto v_reusejp_5206_;
}
else
{
lean_object* v_reuseFailAlloc_5208_; 
v_reuseFailAlloc_5208_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5208_, 0, v_a_5202_);
v___x_5207_ = v_reuseFailAlloc_5208_;
goto v_reusejp_5206_;
}
v_reusejp_5206_:
{
return v___x_5207_;
}
}
}
}
}
else
{
lean_object* v___x_5211_; lean_object* v___x_5213_; 
lean_dec(v_a_5179_);
lean_dec(v_val_5176_);
lean_dec(v_a_5162_);
lean_dec_ref(v_a_5161_);
lean_dec(v_a_5160_);
lean_dec_ref(v_a_5159_);
v___x_5211_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5182_ == 0)
{
lean_ctor_set(v___x_5181_, 0, v___x_5211_);
v___x_5213_ = v___x_5181_;
goto v_reusejp_5212_;
}
else
{
lean_object* v_reuseFailAlloc_5214_; 
v_reuseFailAlloc_5214_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5214_, 0, v___x_5211_);
v___x_5213_ = v_reuseFailAlloc_5214_;
goto v_reusejp_5212_;
}
v_reusejp_5212_:
{
return v___x_5213_;
}
}
}
}
else
{
lean_object* v_a_5216_; lean_object* v___x_5218_; uint8_t v_isShared_5219_; uint8_t v_isSharedCheck_5223_; 
lean_dec(v_val_5176_);
lean_dec(v_a_5162_);
lean_dec_ref(v_a_5161_);
lean_dec(v_a_5160_);
lean_dec_ref(v_a_5159_);
v_a_5216_ = lean_ctor_get(v___x_5178_, 0);
v_isSharedCheck_5223_ = !lean_is_exclusive(v___x_5178_);
if (v_isSharedCheck_5223_ == 0)
{
v___x_5218_ = v___x_5178_;
v_isShared_5219_ = v_isSharedCheck_5223_;
goto v_resetjp_5217_;
}
else
{
lean_inc(v_a_5216_);
lean_dec(v___x_5178_);
v___x_5218_ = lean_box(0);
v_isShared_5219_ = v_isSharedCheck_5223_;
goto v_resetjp_5217_;
}
v_resetjp_5217_:
{
lean_object* v___x_5221_; 
if (v_isShared_5219_ == 0)
{
v___x_5221_ = v___x_5218_;
goto v_reusejp_5220_;
}
else
{
lean_object* v_reuseFailAlloc_5222_; 
v_reuseFailAlloc_5222_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5222_, 0, v_a_5216_);
v___x_5221_ = v_reuseFailAlloc_5222_;
goto v_reusejp_5220_;
}
v_reusejp_5220_:
{
return v___x_5221_;
}
}
}
}
else
{
lean_object* v___x_5224_; lean_object* v___x_5226_; 
lean_dec(v_a_5172_);
lean_dec(v_a_5162_);
lean_dec_ref(v_a_5161_);
lean_dec(v_a_5160_);
lean_dec_ref(v_a_5159_);
v___x_5224_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5175_ == 0)
{
lean_ctor_set(v___x_5174_, 0, v___x_5224_);
v___x_5226_ = v___x_5174_;
goto v_reusejp_5225_;
}
else
{
lean_object* v_reuseFailAlloc_5227_; 
v_reuseFailAlloc_5227_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5227_, 0, v___x_5224_);
v___x_5226_ = v_reuseFailAlloc_5227_;
goto v_reusejp_5225_;
}
v_reusejp_5225_:
{
return v___x_5226_;
}
}
}
}
else
{
lean_object* v_a_5229_; lean_object* v___x_5231_; uint8_t v_isShared_5232_; uint8_t v_isSharedCheck_5236_; 
lean_dec(v_a_5162_);
lean_dec_ref(v_a_5161_);
lean_dec(v_a_5160_);
lean_dec_ref(v_a_5159_);
v_a_5229_ = lean_ctor_get(v___x_5171_, 0);
v_isSharedCheck_5236_ = !lean_is_exclusive(v___x_5171_);
if (v_isSharedCheck_5236_ == 0)
{
v___x_5231_ = v___x_5171_;
v_isShared_5232_ = v_isSharedCheck_5236_;
goto v_resetjp_5230_;
}
else
{
lean_inc(v_a_5229_);
lean_dec(v___x_5171_);
v___x_5231_ = lean_box(0);
v_isShared_5232_ = v_isSharedCheck_5236_;
goto v_resetjp_5230_;
}
v_resetjp_5230_:
{
lean_object* v___x_5234_; 
if (v_isShared_5232_ == 0)
{
v___x_5234_ = v___x_5231_;
goto v_reusejp_5233_;
}
else
{
lean_object* v_reuseFailAlloc_5235_; 
v_reuseFailAlloc_5235_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5235_, 0, v_a_5229_);
v___x_5234_ = v_reuseFailAlloc_5235_;
goto v_reusejp_5233_;
}
v_reusejp_5233_:
{
return v___x_5234_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___redArg___boxed(lean_object* v_e_5237_, lean_object* v_a_5238_, lean_object* v_a_5239_, lean_object* v_a_5240_, lean_object* v_a_5241_, lean_object* v_a_5242_, lean_object* v_a_5243_){
_start:
{
lean_object* v_res_5244_; 
v_res_5244_ = l_BitVec_reduceShiftLeft___redArg(v_e_5237_, v_a_5238_, v_a_5239_, v_a_5240_, v_a_5241_, v_a_5242_);
lean_dec_ref(v_a_5238_);
lean_dec_ref(v_e_5237_);
return v_res_5244_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft(lean_object* v_e_5245_, lean_object* v_a_5246_, lean_object* v_a_5247_, lean_object* v_a_5248_, lean_object* v_a_5249_, lean_object* v_a_5250_, lean_object* v_a_5251_, lean_object* v_a_5252_){
_start:
{
lean_object* v___x_5254_; 
v___x_5254_ = l_BitVec_reduceShiftLeft___redArg(v_e_5245_, v_a_5247_, v_a_5249_, v_a_5250_, v_a_5251_, v_a_5252_);
return v___x_5254_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___boxed(lean_object* v_e_5255_, lean_object* v_a_5256_, lean_object* v_a_5257_, lean_object* v_a_5258_, lean_object* v_a_5259_, lean_object* v_a_5260_, lean_object* v_a_5261_, lean_object* v_a_5262_, lean_object* v_a_5263_){
_start:
{
lean_object* v_res_5264_; 
v_res_5264_ = l_BitVec_reduceShiftLeft(v_e_5255_, v_a_5256_, v_a_5257_, v_a_5258_, v_a_5259_, v_a_5260_, v_a_5261_, v_a_5262_);
lean_dec(v_a_5258_);
lean_dec_ref(v_a_5257_);
lean_dec(v_a_5256_);
lean_dec_ref(v_e_5255_);
return v_res_5264_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_5281_; lean_object* v___x_5282_; lean_object* v___x_5283_; lean_object* v___x_5284_; 
v___x_5281_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_));
v___x_5282_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_));
v___x_5283_ = lean_alloc_closure((void*)(l_BitVec_reduceShiftLeft___boxed), 9, 0);
v___x_5284_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_5281_, v___x_5282_, v___x_5283_);
return v___x_5284_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14____boxed(lean_object* v_a_5285_){
_start:
{
lean_object* v_res_5286_; 
v_res_5286_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_();
return v_res_5286_;
}
}
static lean_object* _init_l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_5287_; lean_object* v___x_5288_; 
v___x_5287_ = lean_alloc_closure((void*)(l_BitVec_reduceShiftLeft___boxed), 9, 0);
v___x_5288_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_5288_, 0, v___x_5287_);
return v___x_5288_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_5290_; uint8_t v___x_5291_; lean_object* v___x_5292_; lean_object* v___x_5293_; 
v___x_5290_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_));
v___x_5291_ = 1;
v___x_5292_ = lean_obj_once(&l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_, &l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16__once, _init_l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_);
v___x_5293_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_5290_, v___x_5291_, v___x_5292_);
return v___x_5293_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16____boxed(lean_object* v_a_5294_){
_start:
{
lean_object* v_res_5295_; 
v_res_5295_ = l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_();
return v_res_5295_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_5297_; uint8_t v___x_5298_; lean_object* v___x_5299_; lean_object* v___x_5300_; 
v___x_5297_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_));
v___x_5298_ = 1;
v___x_5299_ = lean_obj_once(&l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_, &l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16__once, _init_l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_);
v___x_5300_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_5297_, v___x_5298_, v___x_5299_);
return v___x_5300_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_18____boxed(lean_object* v_a_5301_){
_start:
{
lean_object* v_res_5302_; 
v_res_5302_ = l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_18_();
return v_res_5302_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___redArg(lean_object* v_e_5307_, lean_object* v_a_5308_, lean_object* v_a_5309_, lean_object* v_a_5310_, lean_object* v_a_5311_, lean_object* v_a_5312_){
_start:
{
lean_object* v___x_5314_; lean_object* v___x_5315_; uint8_t v___x_5316_; 
v___x_5314_ = ((lean_object*)(l_BitVec_reduceUShiftRight___redArg___closed__1));
v___x_5315_ = lean_unsigned_to_nat(3u);
v___x_5316_ = l_Lean_Expr_isAppOfArity(v_e_5307_, v___x_5314_, v___x_5315_);
if (v___x_5316_ == 0)
{
lean_object* v___x_5317_; lean_object* v___x_5318_; 
lean_dec(v_a_5312_);
lean_dec_ref(v_a_5311_);
lean_dec(v_a_5310_);
lean_dec_ref(v_a_5309_);
v___x_5317_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_5318_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_5318_, 0, v___x_5317_);
return v___x_5318_;
}
else
{
lean_object* v___x_5319_; lean_object* v___x_5320_; lean_object* v___x_5321_; 
v___x_5319_ = l_Lean_Expr_appFn_x21(v_e_5307_);
v___x_5320_ = l_Lean_Expr_appArg_x21(v___x_5319_);
lean_dec_ref(v___x_5319_);
lean_inc(v_a_5312_);
lean_inc_ref(v_a_5311_);
lean_inc(v_a_5310_);
lean_inc_ref(v_a_5309_);
v___x_5321_ = l_BitVec_fromExpr_x3f___redArg(v___x_5320_, v_a_5309_, v_a_5310_, v_a_5311_, v_a_5312_);
if (lean_obj_tag(v___x_5321_) == 0)
{
lean_object* v_a_5322_; lean_object* v___x_5324_; uint8_t v_isShared_5325_; uint8_t v_isSharedCheck_5378_; 
v_a_5322_ = lean_ctor_get(v___x_5321_, 0);
v_isSharedCheck_5378_ = !lean_is_exclusive(v___x_5321_);
if (v_isSharedCheck_5378_ == 0)
{
v___x_5324_ = v___x_5321_;
v_isShared_5325_ = v_isSharedCheck_5378_;
goto v_resetjp_5323_;
}
else
{
lean_inc(v_a_5322_);
lean_dec(v___x_5321_);
v___x_5324_ = lean_box(0);
v_isShared_5325_ = v_isSharedCheck_5378_;
goto v_resetjp_5323_;
}
v_resetjp_5323_:
{
if (lean_obj_tag(v_a_5322_) == 1)
{
lean_object* v_val_5326_; lean_object* v___x_5327_; lean_object* v___x_5328_; 
lean_del_object(v___x_5324_);
v_val_5326_ = lean_ctor_get(v_a_5322_, 0);
lean_inc(v_val_5326_);
lean_dec_ref(v_a_5322_);
v___x_5327_ = l_Lean_Expr_appArg_x21(v_e_5307_);
lean_inc(v_a_5312_);
lean_inc_ref(v_a_5311_);
lean_inc(v_a_5310_);
lean_inc_ref(v_a_5309_);
v___x_5328_ = l_Lean_Meta_getNatValue_x3f(v___x_5327_, v_a_5309_, v_a_5310_, v_a_5311_, v_a_5312_);
lean_dec_ref(v___x_5327_);
if (lean_obj_tag(v___x_5328_) == 0)
{
lean_object* v_a_5329_; lean_object* v___x_5331_; uint8_t v_isShared_5332_; uint8_t v_isSharedCheck_5365_; 
v_a_5329_ = lean_ctor_get(v___x_5328_, 0);
v_isSharedCheck_5365_ = !lean_is_exclusive(v___x_5328_);
if (v_isSharedCheck_5365_ == 0)
{
v___x_5331_ = v___x_5328_;
v_isShared_5332_ = v_isSharedCheck_5365_;
goto v_resetjp_5330_;
}
else
{
lean_inc(v_a_5329_);
lean_dec(v___x_5328_);
v___x_5331_ = lean_box(0);
v_isShared_5332_ = v_isSharedCheck_5365_;
goto v_resetjp_5330_;
}
v_resetjp_5330_:
{
if (lean_obj_tag(v_a_5329_) == 1)
{
lean_object* v_val_5333_; lean_object* v___x_5335_; uint8_t v_isShared_5336_; uint8_t v_isSharedCheck_5360_; 
lean_del_object(v___x_5331_);
v_val_5333_ = lean_ctor_get(v_a_5329_, 0);
v_isSharedCheck_5360_ = !lean_is_exclusive(v_a_5329_);
if (v_isSharedCheck_5360_ == 0)
{
v___x_5335_ = v_a_5329_;
v_isShared_5336_ = v_isSharedCheck_5360_;
goto v_resetjp_5334_;
}
else
{
lean_inc(v_val_5333_);
lean_dec(v_a_5329_);
v___x_5335_ = lean_box(0);
v_isShared_5336_ = v_isSharedCheck_5360_;
goto v_resetjp_5334_;
}
v_resetjp_5334_:
{
lean_object* v_n_5337_; lean_object* v_value_5338_; lean_object* v___x_5339_; lean_object* v___x_5340_; 
v_n_5337_ = lean_ctor_get(v_val_5326_, 0);
lean_inc(v_n_5337_);
v_value_5338_ = lean_ctor_get(v_val_5326_, 1);
lean_inc(v_value_5338_);
lean_dec(v_val_5326_);
v___x_5339_ = lean_nat_shiftr(v_value_5338_, v_val_5333_);
lean_dec(v_val_5333_);
lean_dec(v_value_5338_);
v___x_5340_ = l_BitVec_toExpr_x27___redArg(v_n_5337_, v___x_5339_, v_a_5308_, v_a_5309_, v_a_5310_, v_a_5311_, v_a_5312_);
if (lean_obj_tag(v___x_5340_) == 0)
{
lean_object* v_a_5341_; lean_object* v___x_5343_; uint8_t v_isShared_5344_; uint8_t v_isSharedCheck_5351_; 
v_a_5341_ = lean_ctor_get(v___x_5340_, 0);
v_isSharedCheck_5351_ = !lean_is_exclusive(v___x_5340_);
if (v_isSharedCheck_5351_ == 0)
{
v___x_5343_ = v___x_5340_;
v_isShared_5344_ = v_isSharedCheck_5351_;
goto v_resetjp_5342_;
}
else
{
lean_inc(v_a_5341_);
lean_dec(v___x_5340_);
v___x_5343_ = lean_box(0);
v_isShared_5344_ = v_isSharedCheck_5351_;
goto v_resetjp_5342_;
}
v_resetjp_5342_:
{
lean_object* v___x_5346_; 
if (v_isShared_5336_ == 0)
{
lean_ctor_set_tag(v___x_5335_, 0);
lean_ctor_set(v___x_5335_, 0, v_a_5341_);
v___x_5346_ = v___x_5335_;
goto v_reusejp_5345_;
}
else
{
lean_object* v_reuseFailAlloc_5350_; 
v_reuseFailAlloc_5350_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5350_, 0, v_a_5341_);
v___x_5346_ = v_reuseFailAlloc_5350_;
goto v_reusejp_5345_;
}
v_reusejp_5345_:
{
lean_object* v___x_5348_; 
if (v_isShared_5344_ == 0)
{
lean_ctor_set(v___x_5343_, 0, v___x_5346_);
v___x_5348_ = v___x_5343_;
goto v_reusejp_5347_;
}
else
{
lean_object* v_reuseFailAlloc_5349_; 
v_reuseFailAlloc_5349_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5349_, 0, v___x_5346_);
v___x_5348_ = v_reuseFailAlloc_5349_;
goto v_reusejp_5347_;
}
v_reusejp_5347_:
{
return v___x_5348_;
}
}
}
}
else
{
lean_object* v_a_5352_; lean_object* v___x_5354_; uint8_t v_isShared_5355_; uint8_t v_isSharedCheck_5359_; 
lean_del_object(v___x_5335_);
v_a_5352_ = lean_ctor_get(v___x_5340_, 0);
v_isSharedCheck_5359_ = !lean_is_exclusive(v___x_5340_);
if (v_isSharedCheck_5359_ == 0)
{
v___x_5354_ = v___x_5340_;
v_isShared_5355_ = v_isSharedCheck_5359_;
goto v_resetjp_5353_;
}
else
{
lean_inc(v_a_5352_);
lean_dec(v___x_5340_);
v___x_5354_ = lean_box(0);
v_isShared_5355_ = v_isSharedCheck_5359_;
goto v_resetjp_5353_;
}
v_resetjp_5353_:
{
lean_object* v___x_5357_; 
if (v_isShared_5355_ == 0)
{
v___x_5357_ = v___x_5354_;
goto v_reusejp_5356_;
}
else
{
lean_object* v_reuseFailAlloc_5358_; 
v_reuseFailAlloc_5358_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5358_, 0, v_a_5352_);
v___x_5357_ = v_reuseFailAlloc_5358_;
goto v_reusejp_5356_;
}
v_reusejp_5356_:
{
return v___x_5357_;
}
}
}
}
}
else
{
lean_object* v___x_5361_; lean_object* v___x_5363_; 
lean_dec(v_a_5329_);
lean_dec(v_val_5326_);
lean_dec(v_a_5312_);
lean_dec_ref(v_a_5311_);
lean_dec(v_a_5310_);
lean_dec_ref(v_a_5309_);
v___x_5361_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5332_ == 0)
{
lean_ctor_set(v___x_5331_, 0, v___x_5361_);
v___x_5363_ = v___x_5331_;
goto v_reusejp_5362_;
}
else
{
lean_object* v_reuseFailAlloc_5364_; 
v_reuseFailAlloc_5364_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5364_, 0, v___x_5361_);
v___x_5363_ = v_reuseFailAlloc_5364_;
goto v_reusejp_5362_;
}
v_reusejp_5362_:
{
return v___x_5363_;
}
}
}
}
else
{
lean_object* v_a_5366_; lean_object* v___x_5368_; uint8_t v_isShared_5369_; uint8_t v_isSharedCheck_5373_; 
lean_dec(v_val_5326_);
lean_dec(v_a_5312_);
lean_dec_ref(v_a_5311_);
lean_dec(v_a_5310_);
lean_dec_ref(v_a_5309_);
v_a_5366_ = lean_ctor_get(v___x_5328_, 0);
v_isSharedCheck_5373_ = !lean_is_exclusive(v___x_5328_);
if (v_isSharedCheck_5373_ == 0)
{
v___x_5368_ = v___x_5328_;
v_isShared_5369_ = v_isSharedCheck_5373_;
goto v_resetjp_5367_;
}
else
{
lean_inc(v_a_5366_);
lean_dec(v___x_5328_);
v___x_5368_ = lean_box(0);
v_isShared_5369_ = v_isSharedCheck_5373_;
goto v_resetjp_5367_;
}
v_resetjp_5367_:
{
lean_object* v___x_5371_; 
if (v_isShared_5369_ == 0)
{
v___x_5371_ = v___x_5368_;
goto v_reusejp_5370_;
}
else
{
lean_object* v_reuseFailAlloc_5372_; 
v_reuseFailAlloc_5372_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5372_, 0, v_a_5366_);
v___x_5371_ = v_reuseFailAlloc_5372_;
goto v_reusejp_5370_;
}
v_reusejp_5370_:
{
return v___x_5371_;
}
}
}
}
else
{
lean_object* v___x_5374_; lean_object* v___x_5376_; 
lean_dec(v_a_5322_);
lean_dec(v_a_5312_);
lean_dec_ref(v_a_5311_);
lean_dec(v_a_5310_);
lean_dec_ref(v_a_5309_);
v___x_5374_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5325_ == 0)
{
lean_ctor_set(v___x_5324_, 0, v___x_5374_);
v___x_5376_ = v___x_5324_;
goto v_reusejp_5375_;
}
else
{
lean_object* v_reuseFailAlloc_5377_; 
v_reuseFailAlloc_5377_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5377_, 0, v___x_5374_);
v___x_5376_ = v_reuseFailAlloc_5377_;
goto v_reusejp_5375_;
}
v_reusejp_5375_:
{
return v___x_5376_;
}
}
}
}
else
{
lean_object* v_a_5379_; lean_object* v___x_5381_; uint8_t v_isShared_5382_; uint8_t v_isSharedCheck_5386_; 
lean_dec(v_a_5312_);
lean_dec_ref(v_a_5311_);
lean_dec(v_a_5310_);
lean_dec_ref(v_a_5309_);
v_a_5379_ = lean_ctor_get(v___x_5321_, 0);
v_isSharedCheck_5386_ = !lean_is_exclusive(v___x_5321_);
if (v_isSharedCheck_5386_ == 0)
{
v___x_5381_ = v___x_5321_;
v_isShared_5382_ = v_isSharedCheck_5386_;
goto v_resetjp_5380_;
}
else
{
lean_inc(v_a_5379_);
lean_dec(v___x_5321_);
v___x_5381_ = lean_box(0);
v_isShared_5382_ = v_isSharedCheck_5386_;
goto v_resetjp_5380_;
}
v_resetjp_5380_:
{
lean_object* v___x_5384_; 
if (v_isShared_5382_ == 0)
{
v___x_5384_ = v___x_5381_;
goto v_reusejp_5383_;
}
else
{
lean_object* v_reuseFailAlloc_5385_; 
v_reuseFailAlloc_5385_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5385_, 0, v_a_5379_);
v___x_5384_ = v_reuseFailAlloc_5385_;
goto v_reusejp_5383_;
}
v_reusejp_5383_:
{
return v___x_5384_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___redArg___boxed(lean_object* v_e_5387_, lean_object* v_a_5388_, lean_object* v_a_5389_, lean_object* v_a_5390_, lean_object* v_a_5391_, lean_object* v_a_5392_, lean_object* v_a_5393_){
_start:
{
lean_object* v_res_5394_; 
v_res_5394_ = l_BitVec_reduceUShiftRight___redArg(v_e_5387_, v_a_5388_, v_a_5389_, v_a_5390_, v_a_5391_, v_a_5392_);
lean_dec_ref(v_a_5388_);
lean_dec_ref(v_e_5387_);
return v_res_5394_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight(lean_object* v_e_5395_, lean_object* v_a_5396_, lean_object* v_a_5397_, lean_object* v_a_5398_, lean_object* v_a_5399_, lean_object* v_a_5400_, lean_object* v_a_5401_, lean_object* v_a_5402_){
_start:
{
lean_object* v___x_5404_; 
v___x_5404_ = l_BitVec_reduceUShiftRight___redArg(v_e_5395_, v_a_5397_, v_a_5399_, v_a_5400_, v_a_5401_, v_a_5402_);
return v___x_5404_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___boxed(lean_object* v_e_5405_, lean_object* v_a_5406_, lean_object* v_a_5407_, lean_object* v_a_5408_, lean_object* v_a_5409_, lean_object* v_a_5410_, lean_object* v_a_5411_, lean_object* v_a_5412_, lean_object* v_a_5413_){
_start:
{
lean_object* v_res_5414_; 
v_res_5414_ = l_BitVec_reduceUShiftRight(v_e_5405_, v_a_5406_, v_a_5407_, v_a_5408_, v_a_5409_, v_a_5410_, v_a_5411_, v_a_5412_);
lean_dec(v_a_5408_);
lean_dec_ref(v_a_5407_);
lean_dec(v_a_5406_);
lean_dec_ref(v_e_5405_);
return v_res_5414_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_5431_; lean_object* v___x_5432_; lean_object* v___x_5433_; lean_object* v___x_5434_; 
v___x_5431_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_));
v___x_5432_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_));
v___x_5433_ = lean_alloc_closure((void*)(l_BitVec_reduceUShiftRight___boxed), 9, 0);
v___x_5434_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_5431_, v___x_5432_, v___x_5433_);
return v___x_5434_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14____boxed(lean_object* v_a_5435_){
_start:
{
lean_object* v_res_5436_; 
v_res_5436_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_();
return v_res_5436_;
}
}
static lean_object* _init_l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_5437_; lean_object* v___x_5438_; 
v___x_5437_ = lean_alloc_closure((void*)(l_BitVec_reduceUShiftRight___boxed), 9, 0);
v___x_5438_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_5438_, 0, v___x_5437_);
return v___x_5438_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_5440_; uint8_t v___x_5441_; lean_object* v___x_5442_; lean_object* v___x_5443_; 
v___x_5440_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_));
v___x_5441_ = 1;
v___x_5442_ = lean_obj_once(&l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_, &l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16__once, _init_l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_);
v___x_5443_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_5440_, v___x_5441_, v___x_5442_);
return v___x_5443_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16____boxed(lean_object* v_a_5444_){
_start:
{
lean_object* v_res_5445_; 
v_res_5445_ = l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_();
return v_res_5445_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_5447_; uint8_t v___x_5448_; lean_object* v___x_5449_; lean_object* v___x_5450_; 
v___x_5447_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_));
v___x_5448_ = 1;
v___x_5449_ = lean_obj_once(&l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_, &l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16__once, _init_l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_);
v___x_5450_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_5447_, v___x_5448_, v___x_5449_);
return v___x_5450_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_18____boxed(lean_object* v_a_5451_){
_start:
{
lean_object* v_res_5452_; 
v_res_5452_ = l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_18_();
return v_res_5452_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___redArg(lean_object* v_e_5457_, lean_object* v_a_5458_, lean_object* v_a_5459_, lean_object* v_a_5460_, lean_object* v_a_5461_, lean_object* v_a_5462_){
_start:
{
lean_object* v___x_5464_; lean_object* v___x_5465_; uint8_t v___x_5466_; 
v___x_5464_ = ((lean_object*)(l_BitVec_reduceSShiftRight___redArg___closed__1));
v___x_5465_ = lean_unsigned_to_nat(3u);
v___x_5466_ = l_Lean_Expr_isAppOfArity(v_e_5457_, v___x_5464_, v___x_5465_);
if (v___x_5466_ == 0)
{
lean_object* v___x_5467_; lean_object* v___x_5468_; 
lean_dec(v_a_5462_);
lean_dec_ref(v_a_5461_);
lean_dec(v_a_5460_);
lean_dec_ref(v_a_5459_);
v___x_5467_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_5468_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_5468_, 0, v___x_5467_);
return v___x_5468_;
}
else
{
lean_object* v___x_5469_; lean_object* v___x_5470_; lean_object* v___x_5471_; 
v___x_5469_ = l_Lean_Expr_appFn_x21(v_e_5457_);
v___x_5470_ = l_Lean_Expr_appArg_x21(v___x_5469_);
lean_dec_ref(v___x_5469_);
lean_inc(v_a_5462_);
lean_inc_ref(v_a_5461_);
lean_inc(v_a_5460_);
lean_inc_ref(v_a_5459_);
v___x_5471_ = l_BitVec_fromExpr_x3f___redArg(v___x_5470_, v_a_5459_, v_a_5460_, v_a_5461_, v_a_5462_);
if (lean_obj_tag(v___x_5471_) == 0)
{
lean_object* v_a_5472_; lean_object* v___x_5474_; uint8_t v_isShared_5475_; uint8_t v_isSharedCheck_5528_; 
v_a_5472_ = lean_ctor_get(v___x_5471_, 0);
v_isSharedCheck_5528_ = !lean_is_exclusive(v___x_5471_);
if (v_isSharedCheck_5528_ == 0)
{
v___x_5474_ = v___x_5471_;
v_isShared_5475_ = v_isSharedCheck_5528_;
goto v_resetjp_5473_;
}
else
{
lean_inc(v_a_5472_);
lean_dec(v___x_5471_);
v___x_5474_ = lean_box(0);
v_isShared_5475_ = v_isSharedCheck_5528_;
goto v_resetjp_5473_;
}
v_resetjp_5473_:
{
if (lean_obj_tag(v_a_5472_) == 1)
{
lean_object* v_val_5476_; lean_object* v___x_5477_; lean_object* v___x_5478_; 
lean_del_object(v___x_5474_);
v_val_5476_ = lean_ctor_get(v_a_5472_, 0);
lean_inc(v_val_5476_);
lean_dec_ref(v_a_5472_);
v___x_5477_ = l_Lean_Expr_appArg_x21(v_e_5457_);
lean_inc(v_a_5462_);
lean_inc_ref(v_a_5461_);
lean_inc(v_a_5460_);
lean_inc_ref(v_a_5459_);
v___x_5478_ = l_Lean_Meta_getNatValue_x3f(v___x_5477_, v_a_5459_, v_a_5460_, v_a_5461_, v_a_5462_);
lean_dec_ref(v___x_5477_);
if (lean_obj_tag(v___x_5478_) == 0)
{
lean_object* v_a_5479_; lean_object* v___x_5481_; uint8_t v_isShared_5482_; uint8_t v_isSharedCheck_5515_; 
v_a_5479_ = lean_ctor_get(v___x_5478_, 0);
v_isSharedCheck_5515_ = !lean_is_exclusive(v___x_5478_);
if (v_isSharedCheck_5515_ == 0)
{
v___x_5481_ = v___x_5478_;
v_isShared_5482_ = v_isSharedCheck_5515_;
goto v_resetjp_5480_;
}
else
{
lean_inc(v_a_5479_);
lean_dec(v___x_5478_);
v___x_5481_ = lean_box(0);
v_isShared_5482_ = v_isSharedCheck_5515_;
goto v_resetjp_5480_;
}
v_resetjp_5480_:
{
if (lean_obj_tag(v_a_5479_) == 1)
{
lean_object* v_val_5483_; lean_object* v___x_5485_; uint8_t v_isShared_5486_; uint8_t v_isSharedCheck_5510_; 
lean_del_object(v___x_5481_);
v_val_5483_ = lean_ctor_get(v_a_5479_, 0);
v_isSharedCheck_5510_ = !lean_is_exclusive(v_a_5479_);
if (v_isSharedCheck_5510_ == 0)
{
v___x_5485_ = v_a_5479_;
v_isShared_5486_ = v_isSharedCheck_5510_;
goto v_resetjp_5484_;
}
else
{
lean_inc(v_val_5483_);
lean_dec(v_a_5479_);
v___x_5485_ = lean_box(0);
v_isShared_5486_ = v_isSharedCheck_5510_;
goto v_resetjp_5484_;
}
v_resetjp_5484_:
{
lean_object* v_n_5487_; lean_object* v_value_5488_; lean_object* v___x_5489_; lean_object* v___x_5490_; 
v_n_5487_ = lean_ctor_get(v_val_5476_, 0);
lean_inc(v_n_5487_);
v_value_5488_ = lean_ctor_get(v_val_5476_, 1);
lean_inc(v_value_5488_);
lean_dec(v_val_5476_);
v___x_5489_ = l_BitVec_sshiftRight(v_n_5487_, v_value_5488_, v_val_5483_);
lean_dec(v_val_5483_);
v___x_5490_ = l_BitVec_toExpr_x27___redArg(v_n_5487_, v___x_5489_, v_a_5458_, v_a_5459_, v_a_5460_, v_a_5461_, v_a_5462_);
if (lean_obj_tag(v___x_5490_) == 0)
{
lean_object* v_a_5491_; lean_object* v___x_5493_; uint8_t v_isShared_5494_; uint8_t v_isSharedCheck_5501_; 
v_a_5491_ = lean_ctor_get(v___x_5490_, 0);
v_isSharedCheck_5501_ = !lean_is_exclusive(v___x_5490_);
if (v_isSharedCheck_5501_ == 0)
{
v___x_5493_ = v___x_5490_;
v_isShared_5494_ = v_isSharedCheck_5501_;
goto v_resetjp_5492_;
}
else
{
lean_inc(v_a_5491_);
lean_dec(v___x_5490_);
v___x_5493_ = lean_box(0);
v_isShared_5494_ = v_isSharedCheck_5501_;
goto v_resetjp_5492_;
}
v_resetjp_5492_:
{
lean_object* v___x_5496_; 
if (v_isShared_5486_ == 0)
{
lean_ctor_set_tag(v___x_5485_, 0);
lean_ctor_set(v___x_5485_, 0, v_a_5491_);
v___x_5496_ = v___x_5485_;
goto v_reusejp_5495_;
}
else
{
lean_object* v_reuseFailAlloc_5500_; 
v_reuseFailAlloc_5500_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5500_, 0, v_a_5491_);
v___x_5496_ = v_reuseFailAlloc_5500_;
goto v_reusejp_5495_;
}
v_reusejp_5495_:
{
lean_object* v___x_5498_; 
if (v_isShared_5494_ == 0)
{
lean_ctor_set(v___x_5493_, 0, v___x_5496_);
v___x_5498_ = v___x_5493_;
goto v_reusejp_5497_;
}
else
{
lean_object* v_reuseFailAlloc_5499_; 
v_reuseFailAlloc_5499_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5499_, 0, v___x_5496_);
v___x_5498_ = v_reuseFailAlloc_5499_;
goto v_reusejp_5497_;
}
v_reusejp_5497_:
{
return v___x_5498_;
}
}
}
}
else
{
lean_object* v_a_5502_; lean_object* v___x_5504_; uint8_t v_isShared_5505_; uint8_t v_isSharedCheck_5509_; 
lean_del_object(v___x_5485_);
v_a_5502_ = lean_ctor_get(v___x_5490_, 0);
v_isSharedCheck_5509_ = !lean_is_exclusive(v___x_5490_);
if (v_isSharedCheck_5509_ == 0)
{
v___x_5504_ = v___x_5490_;
v_isShared_5505_ = v_isSharedCheck_5509_;
goto v_resetjp_5503_;
}
else
{
lean_inc(v_a_5502_);
lean_dec(v___x_5490_);
v___x_5504_ = lean_box(0);
v_isShared_5505_ = v_isSharedCheck_5509_;
goto v_resetjp_5503_;
}
v_resetjp_5503_:
{
lean_object* v___x_5507_; 
if (v_isShared_5505_ == 0)
{
v___x_5507_ = v___x_5504_;
goto v_reusejp_5506_;
}
else
{
lean_object* v_reuseFailAlloc_5508_; 
v_reuseFailAlloc_5508_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5508_, 0, v_a_5502_);
v___x_5507_ = v_reuseFailAlloc_5508_;
goto v_reusejp_5506_;
}
v_reusejp_5506_:
{
return v___x_5507_;
}
}
}
}
}
else
{
lean_object* v___x_5511_; lean_object* v___x_5513_; 
lean_dec(v_a_5479_);
lean_dec(v_val_5476_);
lean_dec(v_a_5462_);
lean_dec_ref(v_a_5461_);
lean_dec(v_a_5460_);
lean_dec_ref(v_a_5459_);
v___x_5511_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5482_ == 0)
{
lean_ctor_set(v___x_5481_, 0, v___x_5511_);
v___x_5513_ = v___x_5481_;
goto v_reusejp_5512_;
}
else
{
lean_object* v_reuseFailAlloc_5514_; 
v_reuseFailAlloc_5514_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5514_, 0, v___x_5511_);
v___x_5513_ = v_reuseFailAlloc_5514_;
goto v_reusejp_5512_;
}
v_reusejp_5512_:
{
return v___x_5513_;
}
}
}
}
else
{
lean_object* v_a_5516_; lean_object* v___x_5518_; uint8_t v_isShared_5519_; uint8_t v_isSharedCheck_5523_; 
lean_dec(v_val_5476_);
lean_dec(v_a_5462_);
lean_dec_ref(v_a_5461_);
lean_dec(v_a_5460_);
lean_dec_ref(v_a_5459_);
v_a_5516_ = lean_ctor_get(v___x_5478_, 0);
v_isSharedCheck_5523_ = !lean_is_exclusive(v___x_5478_);
if (v_isSharedCheck_5523_ == 0)
{
v___x_5518_ = v___x_5478_;
v_isShared_5519_ = v_isSharedCheck_5523_;
goto v_resetjp_5517_;
}
else
{
lean_inc(v_a_5516_);
lean_dec(v___x_5478_);
v___x_5518_ = lean_box(0);
v_isShared_5519_ = v_isSharedCheck_5523_;
goto v_resetjp_5517_;
}
v_resetjp_5517_:
{
lean_object* v___x_5521_; 
if (v_isShared_5519_ == 0)
{
v___x_5521_ = v___x_5518_;
goto v_reusejp_5520_;
}
else
{
lean_object* v_reuseFailAlloc_5522_; 
v_reuseFailAlloc_5522_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5522_, 0, v_a_5516_);
v___x_5521_ = v_reuseFailAlloc_5522_;
goto v_reusejp_5520_;
}
v_reusejp_5520_:
{
return v___x_5521_;
}
}
}
}
else
{
lean_object* v___x_5524_; lean_object* v___x_5526_; 
lean_dec(v_a_5472_);
lean_dec(v_a_5462_);
lean_dec_ref(v_a_5461_);
lean_dec(v_a_5460_);
lean_dec_ref(v_a_5459_);
v___x_5524_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5475_ == 0)
{
lean_ctor_set(v___x_5474_, 0, v___x_5524_);
v___x_5526_ = v___x_5474_;
goto v_reusejp_5525_;
}
else
{
lean_object* v_reuseFailAlloc_5527_; 
v_reuseFailAlloc_5527_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5527_, 0, v___x_5524_);
v___x_5526_ = v_reuseFailAlloc_5527_;
goto v_reusejp_5525_;
}
v_reusejp_5525_:
{
return v___x_5526_;
}
}
}
}
else
{
lean_object* v_a_5529_; lean_object* v___x_5531_; uint8_t v_isShared_5532_; uint8_t v_isSharedCheck_5536_; 
lean_dec(v_a_5462_);
lean_dec_ref(v_a_5461_);
lean_dec(v_a_5460_);
lean_dec_ref(v_a_5459_);
v_a_5529_ = lean_ctor_get(v___x_5471_, 0);
v_isSharedCheck_5536_ = !lean_is_exclusive(v___x_5471_);
if (v_isSharedCheck_5536_ == 0)
{
v___x_5531_ = v___x_5471_;
v_isShared_5532_ = v_isSharedCheck_5536_;
goto v_resetjp_5530_;
}
else
{
lean_inc(v_a_5529_);
lean_dec(v___x_5471_);
v___x_5531_ = lean_box(0);
v_isShared_5532_ = v_isSharedCheck_5536_;
goto v_resetjp_5530_;
}
v_resetjp_5530_:
{
lean_object* v___x_5534_; 
if (v_isShared_5532_ == 0)
{
v___x_5534_ = v___x_5531_;
goto v_reusejp_5533_;
}
else
{
lean_object* v_reuseFailAlloc_5535_; 
v_reuseFailAlloc_5535_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5535_, 0, v_a_5529_);
v___x_5534_ = v_reuseFailAlloc_5535_;
goto v_reusejp_5533_;
}
v_reusejp_5533_:
{
return v___x_5534_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___redArg___boxed(lean_object* v_e_5537_, lean_object* v_a_5538_, lean_object* v_a_5539_, lean_object* v_a_5540_, lean_object* v_a_5541_, lean_object* v_a_5542_, lean_object* v_a_5543_){
_start:
{
lean_object* v_res_5544_; 
v_res_5544_ = l_BitVec_reduceSShiftRight___redArg(v_e_5537_, v_a_5538_, v_a_5539_, v_a_5540_, v_a_5541_, v_a_5542_);
lean_dec_ref(v_a_5538_);
lean_dec_ref(v_e_5537_);
return v_res_5544_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight(lean_object* v_e_5545_, lean_object* v_a_5546_, lean_object* v_a_5547_, lean_object* v_a_5548_, lean_object* v_a_5549_, lean_object* v_a_5550_, lean_object* v_a_5551_, lean_object* v_a_5552_){
_start:
{
lean_object* v___x_5554_; 
v___x_5554_ = l_BitVec_reduceSShiftRight___redArg(v_e_5545_, v_a_5547_, v_a_5549_, v_a_5550_, v_a_5551_, v_a_5552_);
return v___x_5554_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___boxed(lean_object* v_e_5555_, lean_object* v_a_5556_, lean_object* v_a_5557_, lean_object* v_a_5558_, lean_object* v_a_5559_, lean_object* v_a_5560_, lean_object* v_a_5561_, lean_object* v_a_5562_, lean_object* v_a_5563_){
_start:
{
lean_object* v_res_5564_; 
v_res_5564_ = l_BitVec_reduceSShiftRight(v_e_5555_, v_a_5556_, v_a_5557_, v_a_5558_, v_a_5559_, v_a_5560_, v_a_5561_, v_a_5562_);
lean_dec(v_a_5558_);
lean_dec_ref(v_a_5557_);
lean_dec(v_a_5556_);
lean_dec_ref(v_e_5555_);
return v_res_5564_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_5581_; lean_object* v___x_5582_; lean_object* v___x_5583_; lean_object* v___x_5584_; 
v___x_5581_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_));
v___x_5582_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_));
v___x_5583_ = lean_alloc_closure((void*)(l_BitVec_reduceSShiftRight___boxed), 9, 0);
v___x_5584_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_5581_, v___x_5582_, v___x_5583_);
return v___x_5584_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14____boxed(lean_object* v_a_5585_){
_start:
{
lean_object* v_res_5586_; 
v_res_5586_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_();
return v_res_5586_;
}
}
static lean_object* _init_l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_5587_; lean_object* v___x_5588_; 
v___x_5587_ = lean_alloc_closure((void*)(l_BitVec_reduceSShiftRight___boxed), 9, 0);
v___x_5588_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_5588_, 0, v___x_5587_);
return v___x_5588_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_5590_; uint8_t v___x_5591_; lean_object* v___x_5592_; lean_object* v___x_5593_; 
v___x_5590_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_));
v___x_5591_ = 1;
v___x_5592_ = lean_obj_once(&l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_, &l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16__once, _init_l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_);
v___x_5593_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_5590_, v___x_5591_, v___x_5592_);
return v___x_5593_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16____boxed(lean_object* v_a_5594_){
_start:
{
lean_object* v_res_5595_; 
v_res_5595_ = l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_();
return v_res_5595_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_5597_; uint8_t v___x_5598_; lean_object* v___x_5599_; lean_object* v___x_5600_; 
v___x_5597_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_));
v___x_5598_ = 1;
v___x_5599_ = lean_obj_once(&l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_, &l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16__once, _init_l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_);
v___x_5600_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_5597_, v___x_5598_, v___x_5599_);
return v___x_5600_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_18____boxed(lean_object* v_a_5601_){
_start:
{
lean_object* v_res_5602_; 
v_res_5602_ = l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_18_();
return v_res_5602_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___redArg(lean_object* v_e_5608_, lean_object* v_a_5609_, lean_object* v_a_5610_, lean_object* v_a_5611_, lean_object* v_a_5612_, lean_object* v_a_5613_){
_start:
{
lean_object* v___x_5615_; lean_object* v___x_5616_; uint8_t v___x_5617_; 
v___x_5615_ = ((lean_object*)(l_BitVec_reduceHShiftLeft___redArg___closed__2));
v___x_5616_ = lean_unsigned_to_nat(6u);
v___x_5617_ = l_Lean_Expr_isAppOfArity(v_e_5608_, v___x_5615_, v___x_5616_);
if (v___x_5617_ == 0)
{
lean_object* v___x_5618_; lean_object* v___x_5619_; 
lean_dec(v_a_5613_);
lean_dec_ref(v_a_5612_);
lean_dec(v_a_5611_);
lean_dec_ref(v_a_5610_);
v___x_5618_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_5619_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_5619_, 0, v___x_5618_);
return v___x_5619_;
}
else
{
lean_object* v___x_5620_; lean_object* v___x_5621_; lean_object* v___x_5622_; 
v___x_5620_ = l_Lean_Expr_appFn_x21(v_e_5608_);
v___x_5621_ = l_Lean_Expr_appArg_x21(v___x_5620_);
lean_dec_ref(v___x_5620_);
lean_inc(v_a_5613_);
lean_inc_ref(v_a_5612_);
lean_inc(v_a_5611_);
lean_inc_ref(v_a_5610_);
v___x_5622_ = l_BitVec_fromExpr_x3f___redArg(v___x_5621_, v_a_5610_, v_a_5611_, v_a_5612_, v_a_5613_);
if (lean_obj_tag(v___x_5622_) == 0)
{
lean_object* v_a_5623_; lean_object* v___x_5625_; uint8_t v_isShared_5626_; uint8_t v_isSharedCheck_5679_; 
v_a_5623_ = lean_ctor_get(v___x_5622_, 0);
v_isSharedCheck_5679_ = !lean_is_exclusive(v___x_5622_);
if (v_isSharedCheck_5679_ == 0)
{
v___x_5625_ = v___x_5622_;
v_isShared_5626_ = v_isSharedCheck_5679_;
goto v_resetjp_5624_;
}
else
{
lean_inc(v_a_5623_);
lean_dec(v___x_5622_);
v___x_5625_ = lean_box(0);
v_isShared_5626_ = v_isSharedCheck_5679_;
goto v_resetjp_5624_;
}
v_resetjp_5624_:
{
if (lean_obj_tag(v_a_5623_) == 1)
{
lean_object* v_val_5627_; lean_object* v___x_5628_; lean_object* v___x_5629_; 
lean_del_object(v___x_5625_);
v_val_5627_ = lean_ctor_get(v_a_5623_, 0);
lean_inc(v_val_5627_);
lean_dec_ref(v_a_5623_);
v___x_5628_ = l_Lean_Expr_appArg_x21(v_e_5608_);
lean_inc(v_a_5613_);
lean_inc_ref(v_a_5612_);
lean_inc(v_a_5611_);
lean_inc_ref(v_a_5610_);
v___x_5629_ = l_Lean_Meta_getNatValue_x3f(v___x_5628_, v_a_5610_, v_a_5611_, v_a_5612_, v_a_5613_);
lean_dec_ref(v___x_5628_);
if (lean_obj_tag(v___x_5629_) == 0)
{
lean_object* v_a_5630_; lean_object* v___x_5632_; uint8_t v_isShared_5633_; uint8_t v_isSharedCheck_5666_; 
v_a_5630_ = lean_ctor_get(v___x_5629_, 0);
v_isSharedCheck_5666_ = !lean_is_exclusive(v___x_5629_);
if (v_isSharedCheck_5666_ == 0)
{
v___x_5632_ = v___x_5629_;
v_isShared_5633_ = v_isSharedCheck_5666_;
goto v_resetjp_5631_;
}
else
{
lean_inc(v_a_5630_);
lean_dec(v___x_5629_);
v___x_5632_ = lean_box(0);
v_isShared_5633_ = v_isSharedCheck_5666_;
goto v_resetjp_5631_;
}
v_resetjp_5631_:
{
if (lean_obj_tag(v_a_5630_) == 1)
{
lean_object* v_val_5634_; lean_object* v___x_5636_; uint8_t v_isShared_5637_; uint8_t v_isSharedCheck_5661_; 
lean_del_object(v___x_5632_);
v_val_5634_ = lean_ctor_get(v_a_5630_, 0);
v_isSharedCheck_5661_ = !lean_is_exclusive(v_a_5630_);
if (v_isSharedCheck_5661_ == 0)
{
v___x_5636_ = v_a_5630_;
v_isShared_5637_ = v_isSharedCheck_5661_;
goto v_resetjp_5635_;
}
else
{
lean_inc(v_val_5634_);
lean_dec(v_a_5630_);
v___x_5636_ = lean_box(0);
v_isShared_5637_ = v_isSharedCheck_5661_;
goto v_resetjp_5635_;
}
v_resetjp_5635_:
{
lean_object* v_n_5638_; lean_object* v_value_5639_; lean_object* v___x_5640_; lean_object* v___x_5641_; 
v_n_5638_ = lean_ctor_get(v_val_5627_, 0);
lean_inc(v_n_5638_);
v_value_5639_ = lean_ctor_get(v_val_5627_, 1);
lean_inc(v_value_5639_);
lean_dec(v_val_5627_);
v___x_5640_ = l_BitVec_shiftLeft(v_n_5638_, v_value_5639_, v_val_5634_);
lean_dec(v_val_5634_);
lean_dec(v_value_5639_);
v___x_5641_ = l_BitVec_toExpr_x27___redArg(v_n_5638_, v___x_5640_, v_a_5609_, v_a_5610_, v_a_5611_, v_a_5612_, v_a_5613_);
if (lean_obj_tag(v___x_5641_) == 0)
{
lean_object* v_a_5642_; lean_object* v___x_5644_; uint8_t v_isShared_5645_; uint8_t v_isSharedCheck_5652_; 
v_a_5642_ = lean_ctor_get(v___x_5641_, 0);
v_isSharedCheck_5652_ = !lean_is_exclusive(v___x_5641_);
if (v_isSharedCheck_5652_ == 0)
{
v___x_5644_ = v___x_5641_;
v_isShared_5645_ = v_isSharedCheck_5652_;
goto v_resetjp_5643_;
}
else
{
lean_inc(v_a_5642_);
lean_dec(v___x_5641_);
v___x_5644_ = lean_box(0);
v_isShared_5645_ = v_isSharedCheck_5652_;
goto v_resetjp_5643_;
}
v_resetjp_5643_:
{
lean_object* v___x_5647_; 
if (v_isShared_5637_ == 0)
{
lean_ctor_set_tag(v___x_5636_, 0);
lean_ctor_set(v___x_5636_, 0, v_a_5642_);
v___x_5647_ = v___x_5636_;
goto v_reusejp_5646_;
}
else
{
lean_object* v_reuseFailAlloc_5651_; 
v_reuseFailAlloc_5651_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5651_, 0, v_a_5642_);
v___x_5647_ = v_reuseFailAlloc_5651_;
goto v_reusejp_5646_;
}
v_reusejp_5646_:
{
lean_object* v___x_5649_; 
if (v_isShared_5645_ == 0)
{
lean_ctor_set(v___x_5644_, 0, v___x_5647_);
v___x_5649_ = v___x_5644_;
goto v_reusejp_5648_;
}
else
{
lean_object* v_reuseFailAlloc_5650_; 
v_reuseFailAlloc_5650_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5650_, 0, v___x_5647_);
v___x_5649_ = v_reuseFailAlloc_5650_;
goto v_reusejp_5648_;
}
v_reusejp_5648_:
{
return v___x_5649_;
}
}
}
}
else
{
lean_object* v_a_5653_; lean_object* v___x_5655_; uint8_t v_isShared_5656_; uint8_t v_isSharedCheck_5660_; 
lean_del_object(v___x_5636_);
v_a_5653_ = lean_ctor_get(v___x_5641_, 0);
v_isSharedCheck_5660_ = !lean_is_exclusive(v___x_5641_);
if (v_isSharedCheck_5660_ == 0)
{
v___x_5655_ = v___x_5641_;
v_isShared_5656_ = v_isSharedCheck_5660_;
goto v_resetjp_5654_;
}
else
{
lean_inc(v_a_5653_);
lean_dec(v___x_5641_);
v___x_5655_ = lean_box(0);
v_isShared_5656_ = v_isSharedCheck_5660_;
goto v_resetjp_5654_;
}
v_resetjp_5654_:
{
lean_object* v___x_5658_; 
if (v_isShared_5656_ == 0)
{
v___x_5658_ = v___x_5655_;
goto v_reusejp_5657_;
}
else
{
lean_object* v_reuseFailAlloc_5659_; 
v_reuseFailAlloc_5659_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5659_, 0, v_a_5653_);
v___x_5658_ = v_reuseFailAlloc_5659_;
goto v_reusejp_5657_;
}
v_reusejp_5657_:
{
return v___x_5658_;
}
}
}
}
}
else
{
lean_object* v___x_5662_; lean_object* v___x_5664_; 
lean_dec(v_a_5630_);
lean_dec(v_val_5627_);
lean_dec(v_a_5613_);
lean_dec_ref(v_a_5612_);
lean_dec(v_a_5611_);
lean_dec_ref(v_a_5610_);
v___x_5662_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5633_ == 0)
{
lean_ctor_set(v___x_5632_, 0, v___x_5662_);
v___x_5664_ = v___x_5632_;
goto v_reusejp_5663_;
}
else
{
lean_object* v_reuseFailAlloc_5665_; 
v_reuseFailAlloc_5665_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5665_, 0, v___x_5662_);
v___x_5664_ = v_reuseFailAlloc_5665_;
goto v_reusejp_5663_;
}
v_reusejp_5663_:
{
return v___x_5664_;
}
}
}
}
else
{
lean_object* v_a_5667_; lean_object* v___x_5669_; uint8_t v_isShared_5670_; uint8_t v_isSharedCheck_5674_; 
lean_dec(v_val_5627_);
lean_dec(v_a_5613_);
lean_dec_ref(v_a_5612_);
lean_dec(v_a_5611_);
lean_dec_ref(v_a_5610_);
v_a_5667_ = lean_ctor_get(v___x_5629_, 0);
v_isSharedCheck_5674_ = !lean_is_exclusive(v___x_5629_);
if (v_isSharedCheck_5674_ == 0)
{
v___x_5669_ = v___x_5629_;
v_isShared_5670_ = v_isSharedCheck_5674_;
goto v_resetjp_5668_;
}
else
{
lean_inc(v_a_5667_);
lean_dec(v___x_5629_);
v___x_5669_ = lean_box(0);
v_isShared_5670_ = v_isSharedCheck_5674_;
goto v_resetjp_5668_;
}
v_resetjp_5668_:
{
lean_object* v___x_5672_; 
if (v_isShared_5670_ == 0)
{
v___x_5672_ = v___x_5669_;
goto v_reusejp_5671_;
}
else
{
lean_object* v_reuseFailAlloc_5673_; 
v_reuseFailAlloc_5673_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5673_, 0, v_a_5667_);
v___x_5672_ = v_reuseFailAlloc_5673_;
goto v_reusejp_5671_;
}
v_reusejp_5671_:
{
return v___x_5672_;
}
}
}
}
else
{
lean_object* v___x_5675_; lean_object* v___x_5677_; 
lean_dec(v_a_5623_);
lean_dec(v_a_5613_);
lean_dec_ref(v_a_5612_);
lean_dec(v_a_5611_);
lean_dec_ref(v_a_5610_);
v___x_5675_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5626_ == 0)
{
lean_ctor_set(v___x_5625_, 0, v___x_5675_);
v___x_5677_ = v___x_5625_;
goto v_reusejp_5676_;
}
else
{
lean_object* v_reuseFailAlloc_5678_; 
v_reuseFailAlloc_5678_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5678_, 0, v___x_5675_);
v___x_5677_ = v_reuseFailAlloc_5678_;
goto v_reusejp_5676_;
}
v_reusejp_5676_:
{
return v___x_5677_;
}
}
}
}
else
{
lean_object* v_a_5680_; lean_object* v___x_5682_; uint8_t v_isShared_5683_; uint8_t v_isSharedCheck_5687_; 
lean_dec(v_a_5613_);
lean_dec_ref(v_a_5612_);
lean_dec(v_a_5611_);
lean_dec_ref(v_a_5610_);
v_a_5680_ = lean_ctor_get(v___x_5622_, 0);
v_isSharedCheck_5687_ = !lean_is_exclusive(v___x_5622_);
if (v_isSharedCheck_5687_ == 0)
{
v___x_5682_ = v___x_5622_;
v_isShared_5683_ = v_isSharedCheck_5687_;
goto v_resetjp_5681_;
}
else
{
lean_inc(v_a_5680_);
lean_dec(v___x_5622_);
v___x_5682_ = lean_box(0);
v_isShared_5683_ = v_isSharedCheck_5687_;
goto v_resetjp_5681_;
}
v_resetjp_5681_:
{
lean_object* v___x_5685_; 
if (v_isShared_5683_ == 0)
{
v___x_5685_ = v___x_5682_;
goto v_reusejp_5684_;
}
else
{
lean_object* v_reuseFailAlloc_5686_; 
v_reuseFailAlloc_5686_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5686_, 0, v_a_5680_);
v___x_5685_ = v_reuseFailAlloc_5686_;
goto v_reusejp_5684_;
}
v_reusejp_5684_:
{
return v___x_5685_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___redArg___boxed(lean_object* v_e_5688_, lean_object* v_a_5689_, lean_object* v_a_5690_, lean_object* v_a_5691_, lean_object* v_a_5692_, lean_object* v_a_5693_, lean_object* v_a_5694_){
_start:
{
lean_object* v_res_5695_; 
v_res_5695_ = l_BitVec_reduceHShiftLeft___redArg(v_e_5688_, v_a_5689_, v_a_5690_, v_a_5691_, v_a_5692_, v_a_5693_);
lean_dec_ref(v_a_5689_);
lean_dec_ref(v_e_5688_);
return v_res_5695_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft(lean_object* v_e_5696_, lean_object* v_a_5697_, lean_object* v_a_5698_, lean_object* v_a_5699_, lean_object* v_a_5700_, lean_object* v_a_5701_, lean_object* v_a_5702_, lean_object* v_a_5703_){
_start:
{
lean_object* v___x_5705_; 
v___x_5705_ = l_BitVec_reduceHShiftLeft___redArg(v_e_5696_, v_a_5698_, v_a_5700_, v_a_5701_, v_a_5702_, v_a_5703_);
return v___x_5705_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___boxed(lean_object* v_e_5706_, lean_object* v_a_5707_, lean_object* v_a_5708_, lean_object* v_a_5709_, lean_object* v_a_5710_, lean_object* v_a_5711_, lean_object* v_a_5712_, lean_object* v_a_5713_, lean_object* v_a_5714_){
_start:
{
lean_object* v_res_5715_; 
v_res_5715_ = l_BitVec_reduceHShiftLeft(v_e_5706_, v_a_5707_, v_a_5708_, v_a_5709_, v_a_5710_, v_a_5711_, v_a_5712_, v_a_5713_);
lean_dec(v_a_5709_);
lean_dec_ref(v_a_5708_);
lean_dec(v_a_5707_);
lean_dec_ref(v_e_5706_);
return v_res_5715_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_5737_; lean_object* v___x_5738_; lean_object* v___x_5739_; lean_object* v___x_5740_; 
v___x_5737_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_));
v___x_5738_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_));
v___x_5739_ = lean_alloc_closure((void*)(l_BitVec_reduceHShiftLeft___boxed), 9, 0);
v___x_5740_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_5737_, v___x_5738_, v___x_5739_);
return v___x_5740_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20____boxed(lean_object* v_a_5741_){
_start:
{
lean_object* v_res_5742_; 
v_res_5742_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_();
return v_res_5742_;
}
}
static lean_object* _init_l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_5743_; lean_object* v___x_5744_; 
v___x_5743_ = lean_alloc_closure((void*)(l_BitVec_reduceHShiftLeft___boxed), 9, 0);
v___x_5744_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_5744_, 0, v___x_5743_);
return v___x_5744_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_5746_; uint8_t v___x_5747_; lean_object* v___x_5748_; lean_object* v___x_5749_; 
v___x_5746_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_));
v___x_5747_ = 1;
v___x_5748_ = lean_obj_once(&l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_, &l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22__once, _init_l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_);
v___x_5749_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_5746_, v___x_5747_, v___x_5748_);
return v___x_5749_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22____boxed(lean_object* v_a_5750_){
_start:
{
lean_object* v_res_5751_; 
v_res_5751_ = l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_();
return v_res_5751_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_5753_; uint8_t v___x_5754_; lean_object* v___x_5755_; lean_object* v___x_5756_; 
v___x_5753_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_));
v___x_5754_ = 1;
v___x_5755_ = lean_obj_once(&l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_, &l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22__once, _init_l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_);
v___x_5756_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_5753_, v___x_5754_, v___x_5755_);
return v___x_5756_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_24____boxed(lean_object* v_a_5757_){
_start:
{
lean_object* v_res_5758_; 
v_res_5758_ = l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_24_();
return v_res_5758_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___redArg(lean_object* v_e_5759_, lean_object* v_a_5760_, lean_object* v_a_5761_, lean_object* v_a_5762_, lean_object* v_a_5763_){
_start:
{
lean_object* v___x_5765_; lean_object* v___x_5766_; uint8_t v___x_5767_; 
v___x_5765_ = ((lean_object*)(l_BitVec_reduceHShiftLeft___redArg___closed__2));
v___x_5766_ = lean_unsigned_to_nat(6u);
v___x_5767_ = l_Lean_Expr_isAppOfArity(v_e_5759_, v___x_5765_, v___x_5766_);
if (v___x_5767_ == 0)
{
lean_object* v___x_5768_; lean_object* v___x_5769_; 
lean_dec(v_a_5763_);
lean_dec_ref(v_a_5762_);
lean_dec(v_a_5761_);
lean_dec_ref(v_a_5760_);
v___x_5768_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_5769_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_5769_, 0, v___x_5768_);
return v___x_5769_;
}
else
{
lean_object* v___x_5770_; lean_object* v___x_5771_; 
v___x_5770_ = l_Lean_Expr_appArg_x21(v_e_5759_);
lean_inc(v_a_5763_);
lean_inc_ref(v_a_5762_);
lean_inc(v_a_5761_);
lean_inc_ref(v_a_5760_);
v___x_5771_ = l_BitVec_fromExpr_x3f___redArg(v___x_5770_, v_a_5760_, v_a_5761_, v_a_5762_, v_a_5763_);
if (lean_obj_tag(v___x_5771_) == 0)
{
lean_object* v_a_5772_; lean_object* v___x_5774_; uint8_t v_isShared_5775_; uint8_t v_isSharedCheck_5813_; 
v_a_5772_ = lean_ctor_get(v___x_5771_, 0);
v_isSharedCheck_5813_ = !lean_is_exclusive(v___x_5771_);
if (v_isSharedCheck_5813_ == 0)
{
v___x_5774_ = v___x_5771_;
v_isShared_5775_ = v_isSharedCheck_5813_;
goto v_resetjp_5773_;
}
else
{
lean_inc(v_a_5772_);
lean_dec(v___x_5771_);
v___x_5774_ = lean_box(0);
v_isShared_5775_ = v_isSharedCheck_5813_;
goto v_resetjp_5773_;
}
v_resetjp_5773_:
{
if (lean_obj_tag(v_a_5772_) == 1)
{
lean_object* v_val_5776_; lean_object* v___x_5778_; uint8_t v_isShared_5779_; uint8_t v_isSharedCheck_5808_; 
lean_del_object(v___x_5774_);
v_val_5776_ = lean_ctor_get(v_a_5772_, 0);
v_isSharedCheck_5808_ = !lean_is_exclusive(v_a_5772_);
if (v_isSharedCheck_5808_ == 0)
{
v___x_5778_ = v_a_5772_;
v_isShared_5779_ = v_isSharedCheck_5808_;
goto v_resetjp_5777_;
}
else
{
lean_inc(v_val_5776_);
lean_dec(v_a_5772_);
v___x_5778_ = lean_box(0);
v_isShared_5779_ = v_isSharedCheck_5808_;
goto v_resetjp_5777_;
}
v_resetjp_5777_:
{
lean_object* v_value_5780_; lean_object* v___x_5781_; lean_object* v_v_5782_; lean_object* v___x_5783_; lean_object* v___x_5784_; lean_object* v___x_5785_; lean_object* v___x_5786_; lean_object* v___x_5787_; lean_object* v___x_5788_; 
v_value_5780_ = lean_ctor_get(v_val_5776_, 1);
lean_inc(v_value_5780_);
lean_dec(v_val_5776_);
v___x_5781_ = l_Lean_Expr_appFn_x21(v_e_5759_);
v_v_5782_ = l_Lean_Expr_appArg_x21(v___x_5781_);
lean_dec_ref(v___x_5781_);
v___x_5783_ = l_Lean_mkNatLit(v_value_5780_);
v___x_5784_ = lean_unsigned_to_nat(2u);
v___x_5785_ = lean_mk_empty_array_with_capacity(v___x_5784_);
v___x_5786_ = lean_array_push(v___x_5785_, v_v_5782_);
v___x_5787_ = lean_array_push(v___x_5786_, v___x_5783_);
v___x_5788_ = l_Lean_Meta_mkAppM(v___x_5765_, v___x_5787_, v_a_5760_, v_a_5761_, v_a_5762_, v_a_5763_);
if (lean_obj_tag(v___x_5788_) == 0)
{
lean_object* v_a_5789_; lean_object* v___x_5791_; uint8_t v_isShared_5792_; uint8_t v_isSharedCheck_5799_; 
v_a_5789_ = lean_ctor_get(v___x_5788_, 0);
v_isSharedCheck_5799_ = !lean_is_exclusive(v___x_5788_);
if (v_isSharedCheck_5799_ == 0)
{
v___x_5791_ = v___x_5788_;
v_isShared_5792_ = v_isSharedCheck_5799_;
goto v_resetjp_5790_;
}
else
{
lean_inc(v_a_5789_);
lean_dec(v___x_5788_);
v___x_5791_ = lean_box(0);
v_isShared_5792_ = v_isSharedCheck_5799_;
goto v_resetjp_5790_;
}
v_resetjp_5790_:
{
lean_object* v___x_5794_; 
if (v_isShared_5779_ == 0)
{
lean_ctor_set(v___x_5778_, 0, v_a_5789_);
v___x_5794_ = v___x_5778_;
goto v_reusejp_5793_;
}
else
{
lean_object* v_reuseFailAlloc_5798_; 
v_reuseFailAlloc_5798_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5798_, 0, v_a_5789_);
v___x_5794_ = v_reuseFailAlloc_5798_;
goto v_reusejp_5793_;
}
v_reusejp_5793_:
{
lean_object* v___x_5796_; 
if (v_isShared_5792_ == 0)
{
lean_ctor_set(v___x_5791_, 0, v___x_5794_);
v___x_5796_ = v___x_5791_;
goto v_reusejp_5795_;
}
else
{
lean_object* v_reuseFailAlloc_5797_; 
v_reuseFailAlloc_5797_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5797_, 0, v___x_5794_);
v___x_5796_ = v_reuseFailAlloc_5797_;
goto v_reusejp_5795_;
}
v_reusejp_5795_:
{
return v___x_5796_;
}
}
}
}
else
{
lean_object* v_a_5800_; lean_object* v___x_5802_; uint8_t v_isShared_5803_; uint8_t v_isSharedCheck_5807_; 
lean_del_object(v___x_5778_);
v_a_5800_ = lean_ctor_get(v___x_5788_, 0);
v_isSharedCheck_5807_ = !lean_is_exclusive(v___x_5788_);
if (v_isSharedCheck_5807_ == 0)
{
v___x_5802_ = v___x_5788_;
v_isShared_5803_ = v_isSharedCheck_5807_;
goto v_resetjp_5801_;
}
else
{
lean_inc(v_a_5800_);
lean_dec(v___x_5788_);
v___x_5802_ = lean_box(0);
v_isShared_5803_ = v_isSharedCheck_5807_;
goto v_resetjp_5801_;
}
v_resetjp_5801_:
{
lean_object* v___x_5805_; 
if (v_isShared_5803_ == 0)
{
v___x_5805_ = v___x_5802_;
goto v_reusejp_5804_;
}
else
{
lean_object* v_reuseFailAlloc_5806_; 
v_reuseFailAlloc_5806_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5806_, 0, v_a_5800_);
v___x_5805_ = v_reuseFailAlloc_5806_;
goto v_reusejp_5804_;
}
v_reusejp_5804_:
{
return v___x_5805_;
}
}
}
}
}
else
{
lean_object* v___x_5809_; lean_object* v___x_5811_; 
lean_dec(v_a_5772_);
lean_dec(v_a_5763_);
lean_dec_ref(v_a_5762_);
lean_dec(v_a_5761_);
lean_dec_ref(v_a_5760_);
v___x_5809_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5775_ == 0)
{
lean_ctor_set(v___x_5774_, 0, v___x_5809_);
v___x_5811_ = v___x_5774_;
goto v_reusejp_5810_;
}
else
{
lean_object* v_reuseFailAlloc_5812_; 
v_reuseFailAlloc_5812_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5812_, 0, v___x_5809_);
v___x_5811_ = v_reuseFailAlloc_5812_;
goto v_reusejp_5810_;
}
v_reusejp_5810_:
{
return v___x_5811_;
}
}
}
}
else
{
lean_object* v_a_5814_; lean_object* v___x_5816_; uint8_t v_isShared_5817_; uint8_t v_isSharedCheck_5821_; 
lean_dec(v_a_5763_);
lean_dec_ref(v_a_5762_);
lean_dec(v_a_5761_);
lean_dec_ref(v_a_5760_);
v_a_5814_ = lean_ctor_get(v___x_5771_, 0);
v_isSharedCheck_5821_ = !lean_is_exclusive(v___x_5771_);
if (v_isSharedCheck_5821_ == 0)
{
v___x_5816_ = v___x_5771_;
v_isShared_5817_ = v_isSharedCheck_5821_;
goto v_resetjp_5815_;
}
else
{
lean_inc(v_a_5814_);
lean_dec(v___x_5771_);
v___x_5816_ = lean_box(0);
v_isShared_5817_ = v_isSharedCheck_5821_;
goto v_resetjp_5815_;
}
v_resetjp_5815_:
{
lean_object* v___x_5819_; 
if (v_isShared_5817_ == 0)
{
v___x_5819_ = v___x_5816_;
goto v_reusejp_5818_;
}
else
{
lean_object* v_reuseFailAlloc_5820_; 
v_reuseFailAlloc_5820_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5820_, 0, v_a_5814_);
v___x_5819_ = v_reuseFailAlloc_5820_;
goto v_reusejp_5818_;
}
v_reusejp_5818_:
{
return v___x_5819_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___redArg___boxed(lean_object* v_e_5822_, lean_object* v_a_5823_, lean_object* v_a_5824_, lean_object* v_a_5825_, lean_object* v_a_5826_, lean_object* v_a_5827_){
_start:
{
lean_object* v_res_5828_; 
v_res_5828_ = l_BitVec_reduceHShiftLeft_x27___redArg(v_e_5822_, v_a_5823_, v_a_5824_, v_a_5825_, v_a_5826_);
lean_dec_ref(v_e_5822_);
return v_res_5828_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27(lean_object* v_e_5829_, lean_object* v_a_5830_, lean_object* v_a_5831_, lean_object* v_a_5832_, lean_object* v_a_5833_, lean_object* v_a_5834_, lean_object* v_a_5835_, lean_object* v_a_5836_){
_start:
{
lean_object* v___x_5838_; 
v___x_5838_ = l_BitVec_reduceHShiftLeft_x27___redArg(v_e_5829_, v_a_5833_, v_a_5834_, v_a_5835_, v_a_5836_);
return v___x_5838_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___boxed(lean_object* v_e_5839_, lean_object* v_a_5840_, lean_object* v_a_5841_, lean_object* v_a_5842_, lean_object* v_a_5843_, lean_object* v_a_5844_, lean_object* v_a_5845_, lean_object* v_a_5846_, lean_object* v_a_5847_){
_start:
{
lean_object* v_res_5848_; 
v_res_5848_ = l_BitVec_reduceHShiftLeft_x27(v_e_5839_, v_a_5840_, v_a_5841_, v_a_5842_, v_a_5843_, v_a_5844_, v_a_5845_, v_a_5846_);
lean_dec(v_a_5842_);
lean_dec_ref(v_a_5841_);
lean_dec(v_a_5840_);
lean_dec_ref(v_e_5839_);
return v_res_5848_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_(void){
_start:
{
lean_object* v___x_5853_; lean_object* v___x_5854_; lean_object* v___x_5855_; lean_object* v___x_5856_; lean_object* v___x_5857_; lean_object* v___x_5858_; lean_object* v___x_5859_; lean_object* v___x_5860_; lean_object* v___x_5861_; lean_object* v___x_5862_; lean_object* v___x_5863_; lean_object* v___x_5864_; lean_object* v___x_5865_; lean_object* v___x_5866_; 
v___x_5853_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_5854_ = lean_box(0);
v___x_5855_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_));
v___x_5856_ = lean_unsigned_to_nat(9u);
v___x_5857_ = lean_mk_empty_array_with_capacity(v___x_5856_);
v___x_5858_ = lean_array_push(v___x_5857_, v___x_5855_);
v___x_5859_ = lean_array_push(v___x_5858_, v___x_5854_);
v___x_5860_ = lean_array_push(v___x_5859_, v___x_5853_);
v___x_5861_ = lean_array_push(v___x_5860_, v___x_5854_);
v___x_5862_ = lean_array_push(v___x_5861_, v___x_5853_);
v___x_5863_ = lean_array_push(v___x_5862_, v___x_5854_);
v___x_5864_ = lean_array_push(v___x_5863_, v___x_5854_);
v___x_5865_ = lean_array_push(v___x_5864_, v___x_5854_);
v___x_5866_ = lean_array_push(v___x_5865_, v___x_5854_);
return v___x_5866_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_5868_; lean_object* v___x_5869_; lean_object* v___x_5870_; lean_object* v___x_5871_; 
v___x_5868_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_));
v___x_5869_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_);
v___x_5870_ = lean_alloc_closure((void*)(l_BitVec_reduceHShiftLeft_x27___boxed), 9, 0);
v___x_5871_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_5868_, v___x_5869_, v___x_5870_);
return v___x_5871_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24____boxed(lean_object* v_a_5872_){
_start:
{
lean_object* v_res_5873_; 
v_res_5873_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_();
return v_res_5873_;
}
}
static lean_object* _init_l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_(void){
_start:
{
lean_object* v___x_5874_; lean_object* v___x_5875_; 
v___x_5874_ = lean_alloc_closure((void*)(l_BitVec_reduceHShiftLeft_x27___boxed), 9, 0);
v___x_5875_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_5875_, 0, v___x_5874_);
return v___x_5875_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_(){
_start:
{
lean_object* v___x_5877_; uint8_t v___x_5878_; lean_object* v___x_5879_; lean_object* v___x_5880_; 
v___x_5877_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_));
v___x_5878_ = 1;
v___x_5879_ = lean_obj_once(&l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_, &l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26__once, _init_l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_);
v___x_5880_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_5877_, v___x_5878_, v___x_5879_);
return v___x_5880_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26____boxed(lean_object* v_a_5881_){
_start:
{
lean_object* v_res_5882_; 
v_res_5882_ = l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_();
return v_res_5882_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_28_(){
_start:
{
lean_object* v___x_5884_; uint8_t v___x_5885_; lean_object* v___x_5886_; lean_object* v___x_5887_; 
v___x_5884_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_));
v___x_5885_ = 1;
v___x_5886_ = lean_obj_once(&l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_, &l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26__once, _init_l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_);
v___x_5887_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_5884_, v___x_5885_, v___x_5886_);
return v___x_5887_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_28____boxed(lean_object* v_a_5888_){
_start:
{
lean_object* v_res_5889_; 
v_res_5889_ = l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_28_();
return v_res_5889_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___redArg(lean_object* v_e_5895_, lean_object* v_a_5896_, lean_object* v_a_5897_, lean_object* v_a_5898_, lean_object* v_a_5899_, lean_object* v_a_5900_){
_start:
{
lean_object* v___x_5902_; lean_object* v___x_5903_; uint8_t v___x_5904_; 
v___x_5902_ = ((lean_object*)(l_BitVec_reduceHShiftRight___redArg___closed__2));
v___x_5903_ = lean_unsigned_to_nat(6u);
v___x_5904_ = l_Lean_Expr_isAppOfArity(v_e_5895_, v___x_5902_, v___x_5903_);
if (v___x_5904_ == 0)
{
lean_object* v___x_5905_; lean_object* v___x_5906_; 
lean_dec(v_a_5900_);
lean_dec_ref(v_a_5899_);
lean_dec(v_a_5898_);
lean_dec_ref(v_a_5897_);
v___x_5905_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_5906_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_5906_, 0, v___x_5905_);
return v___x_5906_;
}
else
{
lean_object* v___x_5907_; lean_object* v___x_5908_; lean_object* v___x_5909_; 
v___x_5907_ = l_Lean_Expr_appFn_x21(v_e_5895_);
v___x_5908_ = l_Lean_Expr_appArg_x21(v___x_5907_);
lean_dec_ref(v___x_5907_);
lean_inc(v_a_5900_);
lean_inc_ref(v_a_5899_);
lean_inc(v_a_5898_);
lean_inc_ref(v_a_5897_);
v___x_5909_ = l_BitVec_fromExpr_x3f___redArg(v___x_5908_, v_a_5897_, v_a_5898_, v_a_5899_, v_a_5900_);
if (lean_obj_tag(v___x_5909_) == 0)
{
lean_object* v_a_5910_; lean_object* v___x_5912_; uint8_t v_isShared_5913_; uint8_t v_isSharedCheck_5966_; 
v_a_5910_ = lean_ctor_get(v___x_5909_, 0);
v_isSharedCheck_5966_ = !lean_is_exclusive(v___x_5909_);
if (v_isSharedCheck_5966_ == 0)
{
v___x_5912_ = v___x_5909_;
v_isShared_5913_ = v_isSharedCheck_5966_;
goto v_resetjp_5911_;
}
else
{
lean_inc(v_a_5910_);
lean_dec(v___x_5909_);
v___x_5912_ = lean_box(0);
v_isShared_5913_ = v_isSharedCheck_5966_;
goto v_resetjp_5911_;
}
v_resetjp_5911_:
{
if (lean_obj_tag(v_a_5910_) == 1)
{
lean_object* v_val_5914_; lean_object* v___x_5915_; lean_object* v___x_5916_; 
lean_del_object(v___x_5912_);
v_val_5914_ = lean_ctor_get(v_a_5910_, 0);
lean_inc(v_val_5914_);
lean_dec_ref(v_a_5910_);
v___x_5915_ = l_Lean_Expr_appArg_x21(v_e_5895_);
lean_inc(v_a_5900_);
lean_inc_ref(v_a_5899_);
lean_inc(v_a_5898_);
lean_inc_ref(v_a_5897_);
v___x_5916_ = l_Lean_Meta_getNatValue_x3f(v___x_5915_, v_a_5897_, v_a_5898_, v_a_5899_, v_a_5900_);
lean_dec_ref(v___x_5915_);
if (lean_obj_tag(v___x_5916_) == 0)
{
lean_object* v_a_5917_; lean_object* v___x_5919_; uint8_t v_isShared_5920_; uint8_t v_isSharedCheck_5953_; 
v_a_5917_ = lean_ctor_get(v___x_5916_, 0);
v_isSharedCheck_5953_ = !lean_is_exclusive(v___x_5916_);
if (v_isSharedCheck_5953_ == 0)
{
v___x_5919_ = v___x_5916_;
v_isShared_5920_ = v_isSharedCheck_5953_;
goto v_resetjp_5918_;
}
else
{
lean_inc(v_a_5917_);
lean_dec(v___x_5916_);
v___x_5919_ = lean_box(0);
v_isShared_5920_ = v_isSharedCheck_5953_;
goto v_resetjp_5918_;
}
v_resetjp_5918_:
{
if (lean_obj_tag(v_a_5917_) == 1)
{
lean_object* v_val_5921_; lean_object* v___x_5923_; uint8_t v_isShared_5924_; uint8_t v_isSharedCheck_5948_; 
lean_del_object(v___x_5919_);
v_val_5921_ = lean_ctor_get(v_a_5917_, 0);
v_isSharedCheck_5948_ = !lean_is_exclusive(v_a_5917_);
if (v_isSharedCheck_5948_ == 0)
{
v___x_5923_ = v_a_5917_;
v_isShared_5924_ = v_isSharedCheck_5948_;
goto v_resetjp_5922_;
}
else
{
lean_inc(v_val_5921_);
lean_dec(v_a_5917_);
v___x_5923_ = lean_box(0);
v_isShared_5924_ = v_isSharedCheck_5948_;
goto v_resetjp_5922_;
}
v_resetjp_5922_:
{
lean_object* v_n_5925_; lean_object* v_value_5926_; lean_object* v___x_5927_; lean_object* v___x_5928_; 
v_n_5925_ = lean_ctor_get(v_val_5914_, 0);
lean_inc(v_n_5925_);
v_value_5926_ = lean_ctor_get(v_val_5914_, 1);
lean_inc(v_value_5926_);
lean_dec(v_val_5914_);
v___x_5927_ = lean_nat_shiftr(v_value_5926_, v_val_5921_);
lean_dec(v_val_5921_);
lean_dec(v_value_5926_);
v___x_5928_ = l_BitVec_toExpr_x27___redArg(v_n_5925_, v___x_5927_, v_a_5896_, v_a_5897_, v_a_5898_, v_a_5899_, v_a_5900_);
if (lean_obj_tag(v___x_5928_) == 0)
{
lean_object* v_a_5929_; lean_object* v___x_5931_; uint8_t v_isShared_5932_; uint8_t v_isSharedCheck_5939_; 
v_a_5929_ = lean_ctor_get(v___x_5928_, 0);
v_isSharedCheck_5939_ = !lean_is_exclusive(v___x_5928_);
if (v_isSharedCheck_5939_ == 0)
{
v___x_5931_ = v___x_5928_;
v_isShared_5932_ = v_isSharedCheck_5939_;
goto v_resetjp_5930_;
}
else
{
lean_inc(v_a_5929_);
lean_dec(v___x_5928_);
v___x_5931_ = lean_box(0);
v_isShared_5932_ = v_isSharedCheck_5939_;
goto v_resetjp_5930_;
}
v_resetjp_5930_:
{
lean_object* v___x_5934_; 
if (v_isShared_5924_ == 0)
{
lean_ctor_set_tag(v___x_5923_, 0);
lean_ctor_set(v___x_5923_, 0, v_a_5929_);
v___x_5934_ = v___x_5923_;
goto v_reusejp_5933_;
}
else
{
lean_object* v_reuseFailAlloc_5938_; 
v_reuseFailAlloc_5938_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5938_, 0, v_a_5929_);
v___x_5934_ = v_reuseFailAlloc_5938_;
goto v_reusejp_5933_;
}
v_reusejp_5933_:
{
lean_object* v___x_5936_; 
if (v_isShared_5932_ == 0)
{
lean_ctor_set(v___x_5931_, 0, v___x_5934_);
v___x_5936_ = v___x_5931_;
goto v_reusejp_5935_;
}
else
{
lean_object* v_reuseFailAlloc_5937_; 
v_reuseFailAlloc_5937_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5937_, 0, v___x_5934_);
v___x_5936_ = v_reuseFailAlloc_5937_;
goto v_reusejp_5935_;
}
v_reusejp_5935_:
{
return v___x_5936_;
}
}
}
}
else
{
lean_object* v_a_5940_; lean_object* v___x_5942_; uint8_t v_isShared_5943_; uint8_t v_isSharedCheck_5947_; 
lean_del_object(v___x_5923_);
v_a_5940_ = lean_ctor_get(v___x_5928_, 0);
v_isSharedCheck_5947_ = !lean_is_exclusive(v___x_5928_);
if (v_isSharedCheck_5947_ == 0)
{
v___x_5942_ = v___x_5928_;
v_isShared_5943_ = v_isSharedCheck_5947_;
goto v_resetjp_5941_;
}
else
{
lean_inc(v_a_5940_);
lean_dec(v___x_5928_);
v___x_5942_ = lean_box(0);
v_isShared_5943_ = v_isSharedCheck_5947_;
goto v_resetjp_5941_;
}
v_resetjp_5941_:
{
lean_object* v___x_5945_; 
if (v_isShared_5943_ == 0)
{
v___x_5945_ = v___x_5942_;
goto v_reusejp_5944_;
}
else
{
lean_object* v_reuseFailAlloc_5946_; 
v_reuseFailAlloc_5946_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5946_, 0, v_a_5940_);
v___x_5945_ = v_reuseFailAlloc_5946_;
goto v_reusejp_5944_;
}
v_reusejp_5944_:
{
return v___x_5945_;
}
}
}
}
}
else
{
lean_object* v___x_5949_; lean_object* v___x_5951_; 
lean_dec(v_a_5917_);
lean_dec(v_val_5914_);
lean_dec(v_a_5900_);
lean_dec_ref(v_a_5899_);
lean_dec(v_a_5898_);
lean_dec_ref(v_a_5897_);
v___x_5949_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5920_ == 0)
{
lean_ctor_set(v___x_5919_, 0, v___x_5949_);
v___x_5951_ = v___x_5919_;
goto v_reusejp_5950_;
}
else
{
lean_object* v_reuseFailAlloc_5952_; 
v_reuseFailAlloc_5952_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5952_, 0, v___x_5949_);
v___x_5951_ = v_reuseFailAlloc_5952_;
goto v_reusejp_5950_;
}
v_reusejp_5950_:
{
return v___x_5951_;
}
}
}
}
else
{
lean_object* v_a_5954_; lean_object* v___x_5956_; uint8_t v_isShared_5957_; uint8_t v_isSharedCheck_5961_; 
lean_dec(v_val_5914_);
lean_dec(v_a_5900_);
lean_dec_ref(v_a_5899_);
lean_dec(v_a_5898_);
lean_dec_ref(v_a_5897_);
v_a_5954_ = lean_ctor_get(v___x_5916_, 0);
v_isSharedCheck_5961_ = !lean_is_exclusive(v___x_5916_);
if (v_isSharedCheck_5961_ == 0)
{
v___x_5956_ = v___x_5916_;
v_isShared_5957_ = v_isSharedCheck_5961_;
goto v_resetjp_5955_;
}
else
{
lean_inc(v_a_5954_);
lean_dec(v___x_5916_);
v___x_5956_ = lean_box(0);
v_isShared_5957_ = v_isSharedCheck_5961_;
goto v_resetjp_5955_;
}
v_resetjp_5955_:
{
lean_object* v___x_5959_; 
if (v_isShared_5957_ == 0)
{
v___x_5959_ = v___x_5956_;
goto v_reusejp_5958_;
}
else
{
lean_object* v_reuseFailAlloc_5960_; 
v_reuseFailAlloc_5960_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5960_, 0, v_a_5954_);
v___x_5959_ = v_reuseFailAlloc_5960_;
goto v_reusejp_5958_;
}
v_reusejp_5958_:
{
return v___x_5959_;
}
}
}
}
else
{
lean_object* v___x_5962_; lean_object* v___x_5964_; 
lean_dec(v_a_5910_);
lean_dec(v_a_5900_);
lean_dec_ref(v_a_5899_);
lean_dec(v_a_5898_);
lean_dec_ref(v_a_5897_);
v___x_5962_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_5913_ == 0)
{
lean_ctor_set(v___x_5912_, 0, v___x_5962_);
v___x_5964_ = v___x_5912_;
goto v_reusejp_5963_;
}
else
{
lean_object* v_reuseFailAlloc_5965_; 
v_reuseFailAlloc_5965_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5965_, 0, v___x_5962_);
v___x_5964_ = v_reuseFailAlloc_5965_;
goto v_reusejp_5963_;
}
v_reusejp_5963_:
{
return v___x_5964_;
}
}
}
}
else
{
lean_object* v_a_5967_; lean_object* v___x_5969_; uint8_t v_isShared_5970_; uint8_t v_isSharedCheck_5974_; 
lean_dec(v_a_5900_);
lean_dec_ref(v_a_5899_);
lean_dec(v_a_5898_);
lean_dec_ref(v_a_5897_);
v_a_5967_ = lean_ctor_get(v___x_5909_, 0);
v_isSharedCheck_5974_ = !lean_is_exclusive(v___x_5909_);
if (v_isSharedCheck_5974_ == 0)
{
v___x_5969_ = v___x_5909_;
v_isShared_5970_ = v_isSharedCheck_5974_;
goto v_resetjp_5968_;
}
else
{
lean_inc(v_a_5967_);
lean_dec(v___x_5909_);
v___x_5969_ = lean_box(0);
v_isShared_5970_ = v_isSharedCheck_5974_;
goto v_resetjp_5968_;
}
v_resetjp_5968_:
{
lean_object* v___x_5972_; 
if (v_isShared_5970_ == 0)
{
v___x_5972_ = v___x_5969_;
goto v_reusejp_5971_;
}
else
{
lean_object* v_reuseFailAlloc_5973_; 
v_reuseFailAlloc_5973_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_5973_, 0, v_a_5967_);
v___x_5972_ = v_reuseFailAlloc_5973_;
goto v_reusejp_5971_;
}
v_reusejp_5971_:
{
return v___x_5972_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___redArg___boxed(lean_object* v_e_5975_, lean_object* v_a_5976_, lean_object* v_a_5977_, lean_object* v_a_5978_, lean_object* v_a_5979_, lean_object* v_a_5980_, lean_object* v_a_5981_){
_start:
{
lean_object* v_res_5982_; 
v_res_5982_ = l_BitVec_reduceHShiftRight___redArg(v_e_5975_, v_a_5976_, v_a_5977_, v_a_5978_, v_a_5979_, v_a_5980_);
lean_dec_ref(v_a_5976_);
lean_dec_ref(v_e_5975_);
return v_res_5982_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight(lean_object* v_e_5983_, lean_object* v_a_5984_, lean_object* v_a_5985_, lean_object* v_a_5986_, lean_object* v_a_5987_, lean_object* v_a_5988_, lean_object* v_a_5989_, lean_object* v_a_5990_){
_start:
{
lean_object* v___x_5992_; 
v___x_5992_ = l_BitVec_reduceHShiftRight___redArg(v_e_5983_, v_a_5985_, v_a_5987_, v_a_5988_, v_a_5989_, v_a_5990_);
return v___x_5992_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___boxed(lean_object* v_e_5993_, lean_object* v_a_5994_, lean_object* v_a_5995_, lean_object* v_a_5996_, lean_object* v_a_5997_, lean_object* v_a_5998_, lean_object* v_a_5999_, lean_object* v_a_6000_, lean_object* v_a_6001_){
_start:
{
lean_object* v_res_6002_; 
v_res_6002_ = l_BitVec_reduceHShiftRight(v_e_5993_, v_a_5994_, v_a_5995_, v_a_5996_, v_a_5997_, v_a_5998_, v_a_5999_, v_a_6000_);
lean_dec(v_a_5996_);
lean_dec_ref(v_a_5995_);
lean_dec(v_a_5994_);
lean_dec_ref(v_e_5993_);
return v_res_6002_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_6024_; lean_object* v___x_6025_; lean_object* v___x_6026_; lean_object* v___x_6027_; 
v___x_6024_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_));
v___x_6025_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_));
v___x_6026_ = lean_alloc_closure((void*)(l_BitVec_reduceHShiftRight___boxed), 9, 0);
v___x_6027_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_6024_, v___x_6025_, v___x_6026_);
return v___x_6027_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20____boxed(lean_object* v_a_6028_){
_start:
{
lean_object* v_res_6029_; 
v_res_6029_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_();
return v_res_6029_;
}
}
static lean_object* _init_l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_6030_; lean_object* v___x_6031_; 
v___x_6030_ = lean_alloc_closure((void*)(l_BitVec_reduceHShiftRight___boxed), 9, 0);
v___x_6031_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_6031_, 0, v___x_6030_);
return v___x_6031_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_6033_; uint8_t v___x_6034_; lean_object* v___x_6035_; lean_object* v___x_6036_; 
v___x_6033_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_));
v___x_6034_ = 1;
v___x_6035_ = lean_obj_once(&l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_, &l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22__once, _init_l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_);
v___x_6036_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_6033_, v___x_6034_, v___x_6035_);
return v___x_6036_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22____boxed(lean_object* v_a_6037_){
_start:
{
lean_object* v_res_6038_; 
v_res_6038_ = l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_();
return v_res_6038_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_6040_; uint8_t v___x_6041_; lean_object* v___x_6042_; lean_object* v___x_6043_; 
v___x_6040_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_));
v___x_6041_ = 1;
v___x_6042_ = lean_obj_once(&l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_, &l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22__once, _init_l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_);
v___x_6043_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_6040_, v___x_6041_, v___x_6042_);
return v___x_6043_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_24____boxed(lean_object* v_a_6044_){
_start:
{
lean_object* v_res_6045_; 
v_res_6045_ = l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_24_();
return v_res_6045_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___redArg(lean_object* v_e_6046_, lean_object* v_a_6047_, lean_object* v_a_6048_, lean_object* v_a_6049_, lean_object* v_a_6050_){
_start:
{
lean_object* v___x_6052_; lean_object* v___x_6053_; uint8_t v___x_6054_; 
v___x_6052_ = ((lean_object*)(l_BitVec_reduceHShiftRight___redArg___closed__2));
v___x_6053_ = lean_unsigned_to_nat(6u);
v___x_6054_ = l_Lean_Expr_isAppOfArity(v_e_6046_, v___x_6052_, v___x_6053_);
if (v___x_6054_ == 0)
{
lean_object* v___x_6055_; lean_object* v___x_6056_; 
lean_dec(v_a_6050_);
lean_dec_ref(v_a_6049_);
lean_dec(v_a_6048_);
lean_dec_ref(v_a_6047_);
v___x_6055_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_6056_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_6056_, 0, v___x_6055_);
return v___x_6056_;
}
else
{
lean_object* v___x_6057_; lean_object* v___x_6058_; 
v___x_6057_ = l_Lean_Expr_appArg_x21(v_e_6046_);
lean_inc(v_a_6050_);
lean_inc_ref(v_a_6049_);
lean_inc(v_a_6048_);
lean_inc_ref(v_a_6047_);
v___x_6058_ = l_BitVec_fromExpr_x3f___redArg(v___x_6057_, v_a_6047_, v_a_6048_, v_a_6049_, v_a_6050_);
if (lean_obj_tag(v___x_6058_) == 0)
{
lean_object* v_a_6059_; lean_object* v___x_6061_; uint8_t v_isShared_6062_; uint8_t v_isSharedCheck_6100_; 
v_a_6059_ = lean_ctor_get(v___x_6058_, 0);
v_isSharedCheck_6100_ = !lean_is_exclusive(v___x_6058_);
if (v_isSharedCheck_6100_ == 0)
{
v___x_6061_ = v___x_6058_;
v_isShared_6062_ = v_isSharedCheck_6100_;
goto v_resetjp_6060_;
}
else
{
lean_inc(v_a_6059_);
lean_dec(v___x_6058_);
v___x_6061_ = lean_box(0);
v_isShared_6062_ = v_isSharedCheck_6100_;
goto v_resetjp_6060_;
}
v_resetjp_6060_:
{
if (lean_obj_tag(v_a_6059_) == 1)
{
lean_object* v_val_6063_; lean_object* v___x_6065_; uint8_t v_isShared_6066_; uint8_t v_isSharedCheck_6095_; 
lean_del_object(v___x_6061_);
v_val_6063_ = lean_ctor_get(v_a_6059_, 0);
v_isSharedCheck_6095_ = !lean_is_exclusive(v_a_6059_);
if (v_isSharedCheck_6095_ == 0)
{
v___x_6065_ = v_a_6059_;
v_isShared_6066_ = v_isSharedCheck_6095_;
goto v_resetjp_6064_;
}
else
{
lean_inc(v_val_6063_);
lean_dec(v_a_6059_);
v___x_6065_ = lean_box(0);
v_isShared_6066_ = v_isSharedCheck_6095_;
goto v_resetjp_6064_;
}
v_resetjp_6064_:
{
lean_object* v_value_6067_; lean_object* v___x_6068_; lean_object* v_v_6069_; lean_object* v___x_6070_; lean_object* v___x_6071_; lean_object* v___x_6072_; lean_object* v___x_6073_; lean_object* v___x_6074_; lean_object* v___x_6075_; 
v_value_6067_ = lean_ctor_get(v_val_6063_, 1);
lean_inc(v_value_6067_);
lean_dec(v_val_6063_);
v___x_6068_ = l_Lean_Expr_appFn_x21(v_e_6046_);
v_v_6069_ = l_Lean_Expr_appArg_x21(v___x_6068_);
lean_dec_ref(v___x_6068_);
v___x_6070_ = l_Lean_mkNatLit(v_value_6067_);
v___x_6071_ = lean_unsigned_to_nat(2u);
v___x_6072_ = lean_mk_empty_array_with_capacity(v___x_6071_);
v___x_6073_ = lean_array_push(v___x_6072_, v_v_6069_);
v___x_6074_ = lean_array_push(v___x_6073_, v___x_6070_);
v___x_6075_ = l_Lean_Meta_mkAppM(v___x_6052_, v___x_6074_, v_a_6047_, v_a_6048_, v_a_6049_, v_a_6050_);
if (lean_obj_tag(v___x_6075_) == 0)
{
lean_object* v_a_6076_; lean_object* v___x_6078_; uint8_t v_isShared_6079_; uint8_t v_isSharedCheck_6086_; 
v_a_6076_ = lean_ctor_get(v___x_6075_, 0);
v_isSharedCheck_6086_ = !lean_is_exclusive(v___x_6075_);
if (v_isSharedCheck_6086_ == 0)
{
v___x_6078_ = v___x_6075_;
v_isShared_6079_ = v_isSharedCheck_6086_;
goto v_resetjp_6077_;
}
else
{
lean_inc(v_a_6076_);
lean_dec(v___x_6075_);
v___x_6078_ = lean_box(0);
v_isShared_6079_ = v_isSharedCheck_6086_;
goto v_resetjp_6077_;
}
v_resetjp_6077_:
{
lean_object* v___x_6081_; 
if (v_isShared_6066_ == 0)
{
lean_ctor_set(v___x_6065_, 0, v_a_6076_);
v___x_6081_ = v___x_6065_;
goto v_reusejp_6080_;
}
else
{
lean_object* v_reuseFailAlloc_6085_; 
v_reuseFailAlloc_6085_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6085_, 0, v_a_6076_);
v___x_6081_ = v_reuseFailAlloc_6085_;
goto v_reusejp_6080_;
}
v_reusejp_6080_:
{
lean_object* v___x_6083_; 
if (v_isShared_6079_ == 0)
{
lean_ctor_set(v___x_6078_, 0, v___x_6081_);
v___x_6083_ = v___x_6078_;
goto v_reusejp_6082_;
}
else
{
lean_object* v_reuseFailAlloc_6084_; 
v_reuseFailAlloc_6084_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6084_, 0, v___x_6081_);
v___x_6083_ = v_reuseFailAlloc_6084_;
goto v_reusejp_6082_;
}
v_reusejp_6082_:
{
return v___x_6083_;
}
}
}
}
else
{
lean_object* v_a_6087_; lean_object* v___x_6089_; uint8_t v_isShared_6090_; uint8_t v_isSharedCheck_6094_; 
lean_del_object(v___x_6065_);
v_a_6087_ = lean_ctor_get(v___x_6075_, 0);
v_isSharedCheck_6094_ = !lean_is_exclusive(v___x_6075_);
if (v_isSharedCheck_6094_ == 0)
{
v___x_6089_ = v___x_6075_;
v_isShared_6090_ = v_isSharedCheck_6094_;
goto v_resetjp_6088_;
}
else
{
lean_inc(v_a_6087_);
lean_dec(v___x_6075_);
v___x_6089_ = lean_box(0);
v_isShared_6090_ = v_isSharedCheck_6094_;
goto v_resetjp_6088_;
}
v_resetjp_6088_:
{
lean_object* v___x_6092_; 
if (v_isShared_6090_ == 0)
{
v___x_6092_ = v___x_6089_;
goto v_reusejp_6091_;
}
else
{
lean_object* v_reuseFailAlloc_6093_; 
v_reuseFailAlloc_6093_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6093_, 0, v_a_6087_);
v___x_6092_ = v_reuseFailAlloc_6093_;
goto v_reusejp_6091_;
}
v_reusejp_6091_:
{
return v___x_6092_;
}
}
}
}
}
else
{
lean_object* v___x_6096_; lean_object* v___x_6098_; 
lean_dec(v_a_6059_);
lean_dec(v_a_6050_);
lean_dec_ref(v_a_6049_);
lean_dec(v_a_6048_);
lean_dec_ref(v_a_6047_);
v___x_6096_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6062_ == 0)
{
lean_ctor_set(v___x_6061_, 0, v___x_6096_);
v___x_6098_ = v___x_6061_;
goto v_reusejp_6097_;
}
else
{
lean_object* v_reuseFailAlloc_6099_; 
v_reuseFailAlloc_6099_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6099_, 0, v___x_6096_);
v___x_6098_ = v_reuseFailAlloc_6099_;
goto v_reusejp_6097_;
}
v_reusejp_6097_:
{
return v___x_6098_;
}
}
}
}
else
{
lean_object* v_a_6101_; lean_object* v___x_6103_; uint8_t v_isShared_6104_; uint8_t v_isSharedCheck_6108_; 
lean_dec(v_a_6050_);
lean_dec_ref(v_a_6049_);
lean_dec(v_a_6048_);
lean_dec_ref(v_a_6047_);
v_a_6101_ = lean_ctor_get(v___x_6058_, 0);
v_isSharedCheck_6108_ = !lean_is_exclusive(v___x_6058_);
if (v_isSharedCheck_6108_ == 0)
{
v___x_6103_ = v___x_6058_;
v_isShared_6104_ = v_isSharedCheck_6108_;
goto v_resetjp_6102_;
}
else
{
lean_inc(v_a_6101_);
lean_dec(v___x_6058_);
v___x_6103_ = lean_box(0);
v_isShared_6104_ = v_isSharedCheck_6108_;
goto v_resetjp_6102_;
}
v_resetjp_6102_:
{
lean_object* v___x_6106_; 
if (v_isShared_6104_ == 0)
{
v___x_6106_ = v___x_6103_;
goto v_reusejp_6105_;
}
else
{
lean_object* v_reuseFailAlloc_6107_; 
v_reuseFailAlloc_6107_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6107_, 0, v_a_6101_);
v___x_6106_ = v_reuseFailAlloc_6107_;
goto v_reusejp_6105_;
}
v_reusejp_6105_:
{
return v___x_6106_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___redArg___boxed(lean_object* v_e_6109_, lean_object* v_a_6110_, lean_object* v_a_6111_, lean_object* v_a_6112_, lean_object* v_a_6113_, lean_object* v_a_6114_){
_start:
{
lean_object* v_res_6115_; 
v_res_6115_ = l_BitVec_reduceHShiftRight_x27___redArg(v_e_6109_, v_a_6110_, v_a_6111_, v_a_6112_, v_a_6113_);
lean_dec_ref(v_e_6109_);
return v_res_6115_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27(lean_object* v_e_6116_, lean_object* v_a_6117_, lean_object* v_a_6118_, lean_object* v_a_6119_, lean_object* v_a_6120_, lean_object* v_a_6121_, lean_object* v_a_6122_, lean_object* v_a_6123_){
_start:
{
lean_object* v___x_6125_; 
v___x_6125_ = l_BitVec_reduceHShiftRight_x27___redArg(v_e_6116_, v_a_6120_, v_a_6121_, v_a_6122_, v_a_6123_);
return v___x_6125_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___boxed(lean_object* v_e_6126_, lean_object* v_a_6127_, lean_object* v_a_6128_, lean_object* v_a_6129_, lean_object* v_a_6130_, lean_object* v_a_6131_, lean_object* v_a_6132_, lean_object* v_a_6133_, lean_object* v_a_6134_){
_start:
{
lean_object* v_res_6135_; 
v_res_6135_ = l_BitVec_reduceHShiftRight_x27(v_e_6126_, v_a_6127_, v_a_6128_, v_a_6129_, v_a_6130_, v_a_6131_, v_a_6132_, v_a_6133_);
lean_dec(v_a_6129_);
lean_dec_ref(v_a_6128_);
lean_dec(v_a_6127_);
lean_dec_ref(v_e_6126_);
return v_res_6135_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_(void){
_start:
{
lean_object* v___x_6140_; lean_object* v___x_6141_; lean_object* v___x_6142_; lean_object* v___x_6143_; lean_object* v___x_6144_; lean_object* v___x_6145_; lean_object* v___x_6146_; lean_object* v___x_6147_; lean_object* v___x_6148_; lean_object* v___x_6149_; lean_object* v___x_6150_; lean_object* v___x_6151_; lean_object* v___x_6152_; lean_object* v___x_6153_; 
v___x_6140_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_6141_ = lean_box(0);
v___x_6142_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_));
v___x_6143_ = lean_unsigned_to_nat(9u);
v___x_6144_ = lean_mk_empty_array_with_capacity(v___x_6143_);
v___x_6145_ = lean_array_push(v___x_6144_, v___x_6142_);
v___x_6146_ = lean_array_push(v___x_6145_, v___x_6141_);
v___x_6147_ = lean_array_push(v___x_6146_, v___x_6140_);
v___x_6148_ = lean_array_push(v___x_6147_, v___x_6141_);
v___x_6149_ = lean_array_push(v___x_6148_, v___x_6140_);
v___x_6150_ = lean_array_push(v___x_6149_, v___x_6141_);
v___x_6151_ = lean_array_push(v___x_6150_, v___x_6141_);
v___x_6152_ = lean_array_push(v___x_6151_, v___x_6141_);
v___x_6153_ = lean_array_push(v___x_6152_, v___x_6141_);
return v___x_6153_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_6155_; lean_object* v___x_6156_; lean_object* v___x_6157_; lean_object* v___x_6158_; 
v___x_6155_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_));
v___x_6156_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_);
v___x_6157_ = lean_alloc_closure((void*)(l_BitVec_reduceHShiftRight_x27___boxed), 9, 0);
v___x_6158_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_6155_, v___x_6156_, v___x_6157_);
return v___x_6158_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24____boxed(lean_object* v_a_6159_){
_start:
{
lean_object* v_res_6160_; 
v_res_6160_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_();
return v_res_6160_;
}
}
static lean_object* _init_l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_(void){
_start:
{
lean_object* v___x_6161_; lean_object* v___x_6162_; 
v___x_6161_ = lean_alloc_closure((void*)(l_BitVec_reduceHShiftRight_x27___boxed), 9, 0);
v___x_6162_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_6162_, 0, v___x_6161_);
return v___x_6162_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_(){
_start:
{
lean_object* v___x_6164_; uint8_t v___x_6165_; lean_object* v___x_6166_; lean_object* v___x_6167_; 
v___x_6164_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_));
v___x_6165_ = 1;
v___x_6166_ = lean_obj_once(&l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_, &l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26__once, _init_l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_);
v___x_6167_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_6164_, v___x_6165_, v___x_6166_);
return v___x_6167_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26____boxed(lean_object* v_a_6168_){
_start:
{
lean_object* v_res_6169_; 
v_res_6169_ = l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_();
return v_res_6169_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_28_(){
_start:
{
lean_object* v___x_6171_; uint8_t v___x_6172_; lean_object* v___x_6173_; lean_object* v___x_6174_; 
v___x_6171_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_));
v___x_6172_ = 1;
v___x_6173_ = lean_obj_once(&l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_, &l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26__once, _init_l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_);
v___x_6174_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_6171_, v___x_6172_, v___x_6173_);
return v___x_6174_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_28____boxed(lean_object* v_a_6175_){
_start:
{
lean_object* v_res_6176_; 
v_res_6176_ = l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_28_();
return v_res_6176_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___redArg(lean_object* v_e_6181_, lean_object* v_a_6182_, lean_object* v_a_6183_, lean_object* v_a_6184_, lean_object* v_a_6185_, lean_object* v_a_6186_){
_start:
{
lean_object* v___x_6188_; lean_object* v___x_6189_; uint8_t v___x_6190_; 
v___x_6188_ = ((lean_object*)(l_BitVec_reduceRotateLeft___redArg___closed__1));
v___x_6189_ = lean_unsigned_to_nat(3u);
v___x_6190_ = l_Lean_Expr_isAppOfArity(v_e_6181_, v___x_6188_, v___x_6189_);
if (v___x_6190_ == 0)
{
lean_object* v___x_6191_; lean_object* v___x_6192_; 
lean_dec(v_a_6186_);
lean_dec_ref(v_a_6185_);
lean_dec(v_a_6184_);
lean_dec_ref(v_a_6183_);
v___x_6191_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_6192_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_6192_, 0, v___x_6191_);
return v___x_6192_;
}
else
{
lean_object* v___x_6193_; lean_object* v___x_6194_; lean_object* v___x_6195_; 
v___x_6193_ = l_Lean_Expr_appFn_x21(v_e_6181_);
v___x_6194_ = l_Lean_Expr_appArg_x21(v___x_6193_);
lean_dec_ref(v___x_6193_);
lean_inc(v_a_6186_);
lean_inc_ref(v_a_6185_);
lean_inc(v_a_6184_);
lean_inc_ref(v_a_6183_);
v___x_6195_ = l_BitVec_fromExpr_x3f___redArg(v___x_6194_, v_a_6183_, v_a_6184_, v_a_6185_, v_a_6186_);
if (lean_obj_tag(v___x_6195_) == 0)
{
lean_object* v_a_6196_; lean_object* v___x_6198_; uint8_t v_isShared_6199_; uint8_t v_isSharedCheck_6252_; 
v_a_6196_ = lean_ctor_get(v___x_6195_, 0);
v_isSharedCheck_6252_ = !lean_is_exclusive(v___x_6195_);
if (v_isSharedCheck_6252_ == 0)
{
v___x_6198_ = v___x_6195_;
v_isShared_6199_ = v_isSharedCheck_6252_;
goto v_resetjp_6197_;
}
else
{
lean_inc(v_a_6196_);
lean_dec(v___x_6195_);
v___x_6198_ = lean_box(0);
v_isShared_6199_ = v_isSharedCheck_6252_;
goto v_resetjp_6197_;
}
v_resetjp_6197_:
{
if (lean_obj_tag(v_a_6196_) == 1)
{
lean_object* v_val_6200_; lean_object* v___x_6201_; lean_object* v___x_6202_; 
lean_del_object(v___x_6198_);
v_val_6200_ = lean_ctor_get(v_a_6196_, 0);
lean_inc(v_val_6200_);
lean_dec_ref(v_a_6196_);
v___x_6201_ = l_Lean_Expr_appArg_x21(v_e_6181_);
lean_inc(v_a_6186_);
lean_inc_ref(v_a_6185_);
lean_inc(v_a_6184_);
lean_inc_ref(v_a_6183_);
v___x_6202_ = l_Lean_Meta_getNatValue_x3f(v___x_6201_, v_a_6183_, v_a_6184_, v_a_6185_, v_a_6186_);
lean_dec_ref(v___x_6201_);
if (lean_obj_tag(v___x_6202_) == 0)
{
lean_object* v_a_6203_; lean_object* v___x_6205_; uint8_t v_isShared_6206_; uint8_t v_isSharedCheck_6239_; 
v_a_6203_ = lean_ctor_get(v___x_6202_, 0);
v_isSharedCheck_6239_ = !lean_is_exclusive(v___x_6202_);
if (v_isSharedCheck_6239_ == 0)
{
v___x_6205_ = v___x_6202_;
v_isShared_6206_ = v_isSharedCheck_6239_;
goto v_resetjp_6204_;
}
else
{
lean_inc(v_a_6203_);
lean_dec(v___x_6202_);
v___x_6205_ = lean_box(0);
v_isShared_6206_ = v_isSharedCheck_6239_;
goto v_resetjp_6204_;
}
v_resetjp_6204_:
{
if (lean_obj_tag(v_a_6203_) == 1)
{
lean_object* v_val_6207_; lean_object* v___x_6209_; uint8_t v_isShared_6210_; uint8_t v_isSharedCheck_6234_; 
lean_del_object(v___x_6205_);
v_val_6207_ = lean_ctor_get(v_a_6203_, 0);
v_isSharedCheck_6234_ = !lean_is_exclusive(v_a_6203_);
if (v_isSharedCheck_6234_ == 0)
{
v___x_6209_ = v_a_6203_;
v_isShared_6210_ = v_isSharedCheck_6234_;
goto v_resetjp_6208_;
}
else
{
lean_inc(v_val_6207_);
lean_dec(v_a_6203_);
v___x_6209_ = lean_box(0);
v_isShared_6210_ = v_isSharedCheck_6234_;
goto v_resetjp_6208_;
}
v_resetjp_6208_:
{
lean_object* v_n_6211_; lean_object* v_value_6212_; lean_object* v___x_6213_; lean_object* v___x_6214_; 
v_n_6211_ = lean_ctor_get(v_val_6200_, 0);
lean_inc(v_n_6211_);
v_value_6212_ = lean_ctor_get(v_val_6200_, 1);
lean_inc(v_value_6212_);
lean_dec(v_val_6200_);
v___x_6213_ = l_BitVec_rotateLeft(v_n_6211_, v_value_6212_, v_val_6207_);
lean_dec(v_val_6207_);
lean_dec(v_value_6212_);
v___x_6214_ = l_BitVec_toExpr_x27___redArg(v_n_6211_, v___x_6213_, v_a_6182_, v_a_6183_, v_a_6184_, v_a_6185_, v_a_6186_);
if (lean_obj_tag(v___x_6214_) == 0)
{
lean_object* v_a_6215_; lean_object* v___x_6217_; uint8_t v_isShared_6218_; uint8_t v_isSharedCheck_6225_; 
v_a_6215_ = lean_ctor_get(v___x_6214_, 0);
v_isSharedCheck_6225_ = !lean_is_exclusive(v___x_6214_);
if (v_isSharedCheck_6225_ == 0)
{
v___x_6217_ = v___x_6214_;
v_isShared_6218_ = v_isSharedCheck_6225_;
goto v_resetjp_6216_;
}
else
{
lean_inc(v_a_6215_);
lean_dec(v___x_6214_);
v___x_6217_ = lean_box(0);
v_isShared_6218_ = v_isSharedCheck_6225_;
goto v_resetjp_6216_;
}
v_resetjp_6216_:
{
lean_object* v___x_6220_; 
if (v_isShared_6210_ == 0)
{
lean_ctor_set_tag(v___x_6209_, 0);
lean_ctor_set(v___x_6209_, 0, v_a_6215_);
v___x_6220_ = v___x_6209_;
goto v_reusejp_6219_;
}
else
{
lean_object* v_reuseFailAlloc_6224_; 
v_reuseFailAlloc_6224_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6224_, 0, v_a_6215_);
v___x_6220_ = v_reuseFailAlloc_6224_;
goto v_reusejp_6219_;
}
v_reusejp_6219_:
{
lean_object* v___x_6222_; 
if (v_isShared_6218_ == 0)
{
lean_ctor_set(v___x_6217_, 0, v___x_6220_);
v___x_6222_ = v___x_6217_;
goto v_reusejp_6221_;
}
else
{
lean_object* v_reuseFailAlloc_6223_; 
v_reuseFailAlloc_6223_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6223_, 0, v___x_6220_);
v___x_6222_ = v_reuseFailAlloc_6223_;
goto v_reusejp_6221_;
}
v_reusejp_6221_:
{
return v___x_6222_;
}
}
}
}
else
{
lean_object* v_a_6226_; lean_object* v___x_6228_; uint8_t v_isShared_6229_; uint8_t v_isSharedCheck_6233_; 
lean_del_object(v___x_6209_);
v_a_6226_ = lean_ctor_get(v___x_6214_, 0);
v_isSharedCheck_6233_ = !lean_is_exclusive(v___x_6214_);
if (v_isSharedCheck_6233_ == 0)
{
v___x_6228_ = v___x_6214_;
v_isShared_6229_ = v_isSharedCheck_6233_;
goto v_resetjp_6227_;
}
else
{
lean_inc(v_a_6226_);
lean_dec(v___x_6214_);
v___x_6228_ = lean_box(0);
v_isShared_6229_ = v_isSharedCheck_6233_;
goto v_resetjp_6227_;
}
v_resetjp_6227_:
{
lean_object* v___x_6231_; 
if (v_isShared_6229_ == 0)
{
v___x_6231_ = v___x_6228_;
goto v_reusejp_6230_;
}
else
{
lean_object* v_reuseFailAlloc_6232_; 
v_reuseFailAlloc_6232_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6232_, 0, v_a_6226_);
v___x_6231_ = v_reuseFailAlloc_6232_;
goto v_reusejp_6230_;
}
v_reusejp_6230_:
{
return v___x_6231_;
}
}
}
}
}
else
{
lean_object* v___x_6235_; lean_object* v___x_6237_; 
lean_dec(v_a_6203_);
lean_dec(v_val_6200_);
lean_dec(v_a_6186_);
lean_dec_ref(v_a_6185_);
lean_dec(v_a_6184_);
lean_dec_ref(v_a_6183_);
v___x_6235_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6206_ == 0)
{
lean_ctor_set(v___x_6205_, 0, v___x_6235_);
v___x_6237_ = v___x_6205_;
goto v_reusejp_6236_;
}
else
{
lean_object* v_reuseFailAlloc_6238_; 
v_reuseFailAlloc_6238_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6238_, 0, v___x_6235_);
v___x_6237_ = v_reuseFailAlloc_6238_;
goto v_reusejp_6236_;
}
v_reusejp_6236_:
{
return v___x_6237_;
}
}
}
}
else
{
lean_object* v_a_6240_; lean_object* v___x_6242_; uint8_t v_isShared_6243_; uint8_t v_isSharedCheck_6247_; 
lean_dec(v_val_6200_);
lean_dec(v_a_6186_);
lean_dec_ref(v_a_6185_);
lean_dec(v_a_6184_);
lean_dec_ref(v_a_6183_);
v_a_6240_ = lean_ctor_get(v___x_6202_, 0);
v_isSharedCheck_6247_ = !lean_is_exclusive(v___x_6202_);
if (v_isSharedCheck_6247_ == 0)
{
v___x_6242_ = v___x_6202_;
v_isShared_6243_ = v_isSharedCheck_6247_;
goto v_resetjp_6241_;
}
else
{
lean_inc(v_a_6240_);
lean_dec(v___x_6202_);
v___x_6242_ = lean_box(0);
v_isShared_6243_ = v_isSharedCheck_6247_;
goto v_resetjp_6241_;
}
v_resetjp_6241_:
{
lean_object* v___x_6245_; 
if (v_isShared_6243_ == 0)
{
v___x_6245_ = v___x_6242_;
goto v_reusejp_6244_;
}
else
{
lean_object* v_reuseFailAlloc_6246_; 
v_reuseFailAlloc_6246_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6246_, 0, v_a_6240_);
v___x_6245_ = v_reuseFailAlloc_6246_;
goto v_reusejp_6244_;
}
v_reusejp_6244_:
{
return v___x_6245_;
}
}
}
}
else
{
lean_object* v___x_6248_; lean_object* v___x_6250_; 
lean_dec(v_a_6196_);
lean_dec(v_a_6186_);
lean_dec_ref(v_a_6185_);
lean_dec(v_a_6184_);
lean_dec_ref(v_a_6183_);
v___x_6248_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6199_ == 0)
{
lean_ctor_set(v___x_6198_, 0, v___x_6248_);
v___x_6250_ = v___x_6198_;
goto v_reusejp_6249_;
}
else
{
lean_object* v_reuseFailAlloc_6251_; 
v_reuseFailAlloc_6251_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6251_, 0, v___x_6248_);
v___x_6250_ = v_reuseFailAlloc_6251_;
goto v_reusejp_6249_;
}
v_reusejp_6249_:
{
return v___x_6250_;
}
}
}
}
else
{
lean_object* v_a_6253_; lean_object* v___x_6255_; uint8_t v_isShared_6256_; uint8_t v_isSharedCheck_6260_; 
lean_dec(v_a_6186_);
lean_dec_ref(v_a_6185_);
lean_dec(v_a_6184_);
lean_dec_ref(v_a_6183_);
v_a_6253_ = lean_ctor_get(v___x_6195_, 0);
v_isSharedCheck_6260_ = !lean_is_exclusive(v___x_6195_);
if (v_isSharedCheck_6260_ == 0)
{
v___x_6255_ = v___x_6195_;
v_isShared_6256_ = v_isSharedCheck_6260_;
goto v_resetjp_6254_;
}
else
{
lean_inc(v_a_6253_);
lean_dec(v___x_6195_);
v___x_6255_ = lean_box(0);
v_isShared_6256_ = v_isSharedCheck_6260_;
goto v_resetjp_6254_;
}
v_resetjp_6254_:
{
lean_object* v___x_6258_; 
if (v_isShared_6256_ == 0)
{
v___x_6258_ = v___x_6255_;
goto v_reusejp_6257_;
}
else
{
lean_object* v_reuseFailAlloc_6259_; 
v_reuseFailAlloc_6259_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6259_, 0, v_a_6253_);
v___x_6258_ = v_reuseFailAlloc_6259_;
goto v_reusejp_6257_;
}
v_reusejp_6257_:
{
return v___x_6258_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___redArg___boxed(lean_object* v_e_6261_, lean_object* v_a_6262_, lean_object* v_a_6263_, lean_object* v_a_6264_, lean_object* v_a_6265_, lean_object* v_a_6266_, lean_object* v_a_6267_){
_start:
{
lean_object* v_res_6268_; 
v_res_6268_ = l_BitVec_reduceRotateLeft___redArg(v_e_6261_, v_a_6262_, v_a_6263_, v_a_6264_, v_a_6265_, v_a_6266_);
lean_dec_ref(v_a_6262_);
lean_dec_ref(v_e_6261_);
return v_res_6268_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft(lean_object* v_e_6269_, lean_object* v_a_6270_, lean_object* v_a_6271_, lean_object* v_a_6272_, lean_object* v_a_6273_, lean_object* v_a_6274_, lean_object* v_a_6275_, lean_object* v_a_6276_){
_start:
{
lean_object* v___x_6278_; 
v___x_6278_ = l_BitVec_reduceRotateLeft___redArg(v_e_6269_, v_a_6271_, v_a_6273_, v_a_6274_, v_a_6275_, v_a_6276_);
return v___x_6278_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___boxed(lean_object* v_e_6279_, lean_object* v_a_6280_, lean_object* v_a_6281_, lean_object* v_a_6282_, lean_object* v_a_6283_, lean_object* v_a_6284_, lean_object* v_a_6285_, lean_object* v_a_6286_, lean_object* v_a_6287_){
_start:
{
lean_object* v_res_6288_; 
v_res_6288_ = l_BitVec_reduceRotateLeft(v_e_6279_, v_a_6280_, v_a_6281_, v_a_6282_, v_a_6283_, v_a_6284_, v_a_6285_, v_a_6286_);
lean_dec(v_a_6282_);
lean_dec_ref(v_a_6281_);
lean_dec(v_a_6280_);
lean_dec_ref(v_e_6279_);
return v_res_6288_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_6305_; lean_object* v___x_6306_; lean_object* v___x_6307_; lean_object* v___x_6308_; 
v___x_6305_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_));
v___x_6306_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_));
v___x_6307_ = lean_alloc_closure((void*)(l_BitVec_reduceRotateLeft___boxed), 9, 0);
v___x_6308_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_6305_, v___x_6306_, v___x_6307_);
return v___x_6308_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14____boxed(lean_object* v_a_6309_){
_start:
{
lean_object* v_res_6310_; 
v_res_6310_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_();
return v_res_6310_;
}
}
static lean_object* _init_l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_6311_; lean_object* v___x_6312_; 
v___x_6311_ = lean_alloc_closure((void*)(l_BitVec_reduceRotateLeft___boxed), 9, 0);
v___x_6312_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_6312_, 0, v___x_6311_);
return v___x_6312_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_6314_; uint8_t v___x_6315_; lean_object* v___x_6316_; lean_object* v___x_6317_; 
v___x_6314_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_));
v___x_6315_ = 1;
v___x_6316_ = lean_obj_once(&l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_, &l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16__once, _init_l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_);
v___x_6317_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_6314_, v___x_6315_, v___x_6316_);
return v___x_6317_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16____boxed(lean_object* v_a_6318_){
_start:
{
lean_object* v_res_6319_; 
v_res_6319_ = l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_();
return v_res_6319_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_6321_; uint8_t v___x_6322_; lean_object* v___x_6323_; lean_object* v___x_6324_; 
v___x_6321_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_));
v___x_6322_ = 1;
v___x_6323_ = lean_obj_once(&l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_, &l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16__once, _init_l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_);
v___x_6324_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_6321_, v___x_6322_, v___x_6323_);
return v___x_6324_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_18____boxed(lean_object* v_a_6325_){
_start:
{
lean_object* v_res_6326_; 
v_res_6326_ = l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_18_();
return v_res_6326_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___redArg(lean_object* v_e_6331_, lean_object* v_a_6332_, lean_object* v_a_6333_, lean_object* v_a_6334_, lean_object* v_a_6335_, lean_object* v_a_6336_){
_start:
{
lean_object* v___x_6338_; lean_object* v___x_6339_; uint8_t v___x_6340_; 
v___x_6338_ = ((lean_object*)(l_BitVec_reduceRotateRight___redArg___closed__1));
v___x_6339_ = lean_unsigned_to_nat(3u);
v___x_6340_ = l_Lean_Expr_isAppOfArity(v_e_6331_, v___x_6338_, v___x_6339_);
if (v___x_6340_ == 0)
{
lean_object* v___x_6341_; lean_object* v___x_6342_; 
lean_dec(v_a_6336_);
lean_dec_ref(v_a_6335_);
lean_dec(v_a_6334_);
lean_dec_ref(v_a_6333_);
v___x_6341_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_6342_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_6342_, 0, v___x_6341_);
return v___x_6342_;
}
else
{
lean_object* v___x_6343_; lean_object* v___x_6344_; lean_object* v___x_6345_; 
v___x_6343_ = l_Lean_Expr_appFn_x21(v_e_6331_);
v___x_6344_ = l_Lean_Expr_appArg_x21(v___x_6343_);
lean_dec_ref(v___x_6343_);
lean_inc(v_a_6336_);
lean_inc_ref(v_a_6335_);
lean_inc(v_a_6334_);
lean_inc_ref(v_a_6333_);
v___x_6345_ = l_BitVec_fromExpr_x3f___redArg(v___x_6344_, v_a_6333_, v_a_6334_, v_a_6335_, v_a_6336_);
if (lean_obj_tag(v___x_6345_) == 0)
{
lean_object* v_a_6346_; lean_object* v___x_6348_; uint8_t v_isShared_6349_; uint8_t v_isSharedCheck_6402_; 
v_a_6346_ = lean_ctor_get(v___x_6345_, 0);
v_isSharedCheck_6402_ = !lean_is_exclusive(v___x_6345_);
if (v_isSharedCheck_6402_ == 0)
{
v___x_6348_ = v___x_6345_;
v_isShared_6349_ = v_isSharedCheck_6402_;
goto v_resetjp_6347_;
}
else
{
lean_inc(v_a_6346_);
lean_dec(v___x_6345_);
v___x_6348_ = lean_box(0);
v_isShared_6349_ = v_isSharedCheck_6402_;
goto v_resetjp_6347_;
}
v_resetjp_6347_:
{
if (lean_obj_tag(v_a_6346_) == 1)
{
lean_object* v_val_6350_; lean_object* v___x_6351_; lean_object* v___x_6352_; 
lean_del_object(v___x_6348_);
v_val_6350_ = lean_ctor_get(v_a_6346_, 0);
lean_inc(v_val_6350_);
lean_dec_ref(v_a_6346_);
v___x_6351_ = l_Lean_Expr_appArg_x21(v_e_6331_);
lean_inc(v_a_6336_);
lean_inc_ref(v_a_6335_);
lean_inc(v_a_6334_);
lean_inc_ref(v_a_6333_);
v___x_6352_ = l_Lean_Meta_getNatValue_x3f(v___x_6351_, v_a_6333_, v_a_6334_, v_a_6335_, v_a_6336_);
lean_dec_ref(v___x_6351_);
if (lean_obj_tag(v___x_6352_) == 0)
{
lean_object* v_a_6353_; lean_object* v___x_6355_; uint8_t v_isShared_6356_; uint8_t v_isSharedCheck_6389_; 
v_a_6353_ = lean_ctor_get(v___x_6352_, 0);
v_isSharedCheck_6389_ = !lean_is_exclusive(v___x_6352_);
if (v_isSharedCheck_6389_ == 0)
{
v___x_6355_ = v___x_6352_;
v_isShared_6356_ = v_isSharedCheck_6389_;
goto v_resetjp_6354_;
}
else
{
lean_inc(v_a_6353_);
lean_dec(v___x_6352_);
v___x_6355_ = lean_box(0);
v_isShared_6356_ = v_isSharedCheck_6389_;
goto v_resetjp_6354_;
}
v_resetjp_6354_:
{
if (lean_obj_tag(v_a_6353_) == 1)
{
lean_object* v_val_6357_; lean_object* v___x_6359_; uint8_t v_isShared_6360_; uint8_t v_isSharedCheck_6384_; 
lean_del_object(v___x_6355_);
v_val_6357_ = lean_ctor_get(v_a_6353_, 0);
v_isSharedCheck_6384_ = !lean_is_exclusive(v_a_6353_);
if (v_isSharedCheck_6384_ == 0)
{
v___x_6359_ = v_a_6353_;
v_isShared_6360_ = v_isSharedCheck_6384_;
goto v_resetjp_6358_;
}
else
{
lean_inc(v_val_6357_);
lean_dec(v_a_6353_);
v___x_6359_ = lean_box(0);
v_isShared_6360_ = v_isSharedCheck_6384_;
goto v_resetjp_6358_;
}
v_resetjp_6358_:
{
lean_object* v_n_6361_; lean_object* v_value_6362_; lean_object* v___x_6363_; lean_object* v___x_6364_; 
v_n_6361_ = lean_ctor_get(v_val_6350_, 0);
lean_inc(v_n_6361_);
v_value_6362_ = lean_ctor_get(v_val_6350_, 1);
lean_inc(v_value_6362_);
lean_dec(v_val_6350_);
v___x_6363_ = l_BitVec_rotateRight(v_n_6361_, v_value_6362_, v_val_6357_);
lean_dec(v_val_6357_);
lean_dec(v_value_6362_);
v___x_6364_ = l_BitVec_toExpr_x27___redArg(v_n_6361_, v___x_6363_, v_a_6332_, v_a_6333_, v_a_6334_, v_a_6335_, v_a_6336_);
if (lean_obj_tag(v___x_6364_) == 0)
{
lean_object* v_a_6365_; lean_object* v___x_6367_; uint8_t v_isShared_6368_; uint8_t v_isSharedCheck_6375_; 
v_a_6365_ = lean_ctor_get(v___x_6364_, 0);
v_isSharedCheck_6375_ = !lean_is_exclusive(v___x_6364_);
if (v_isSharedCheck_6375_ == 0)
{
v___x_6367_ = v___x_6364_;
v_isShared_6368_ = v_isSharedCheck_6375_;
goto v_resetjp_6366_;
}
else
{
lean_inc(v_a_6365_);
lean_dec(v___x_6364_);
v___x_6367_ = lean_box(0);
v_isShared_6368_ = v_isSharedCheck_6375_;
goto v_resetjp_6366_;
}
v_resetjp_6366_:
{
lean_object* v___x_6370_; 
if (v_isShared_6360_ == 0)
{
lean_ctor_set_tag(v___x_6359_, 0);
lean_ctor_set(v___x_6359_, 0, v_a_6365_);
v___x_6370_ = v___x_6359_;
goto v_reusejp_6369_;
}
else
{
lean_object* v_reuseFailAlloc_6374_; 
v_reuseFailAlloc_6374_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6374_, 0, v_a_6365_);
v___x_6370_ = v_reuseFailAlloc_6374_;
goto v_reusejp_6369_;
}
v_reusejp_6369_:
{
lean_object* v___x_6372_; 
if (v_isShared_6368_ == 0)
{
lean_ctor_set(v___x_6367_, 0, v___x_6370_);
v___x_6372_ = v___x_6367_;
goto v_reusejp_6371_;
}
else
{
lean_object* v_reuseFailAlloc_6373_; 
v_reuseFailAlloc_6373_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6373_, 0, v___x_6370_);
v___x_6372_ = v_reuseFailAlloc_6373_;
goto v_reusejp_6371_;
}
v_reusejp_6371_:
{
return v___x_6372_;
}
}
}
}
else
{
lean_object* v_a_6376_; lean_object* v___x_6378_; uint8_t v_isShared_6379_; uint8_t v_isSharedCheck_6383_; 
lean_del_object(v___x_6359_);
v_a_6376_ = lean_ctor_get(v___x_6364_, 0);
v_isSharedCheck_6383_ = !lean_is_exclusive(v___x_6364_);
if (v_isSharedCheck_6383_ == 0)
{
v___x_6378_ = v___x_6364_;
v_isShared_6379_ = v_isSharedCheck_6383_;
goto v_resetjp_6377_;
}
else
{
lean_inc(v_a_6376_);
lean_dec(v___x_6364_);
v___x_6378_ = lean_box(0);
v_isShared_6379_ = v_isSharedCheck_6383_;
goto v_resetjp_6377_;
}
v_resetjp_6377_:
{
lean_object* v___x_6381_; 
if (v_isShared_6379_ == 0)
{
v___x_6381_ = v___x_6378_;
goto v_reusejp_6380_;
}
else
{
lean_object* v_reuseFailAlloc_6382_; 
v_reuseFailAlloc_6382_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6382_, 0, v_a_6376_);
v___x_6381_ = v_reuseFailAlloc_6382_;
goto v_reusejp_6380_;
}
v_reusejp_6380_:
{
return v___x_6381_;
}
}
}
}
}
else
{
lean_object* v___x_6385_; lean_object* v___x_6387_; 
lean_dec(v_a_6353_);
lean_dec(v_val_6350_);
lean_dec(v_a_6336_);
lean_dec_ref(v_a_6335_);
lean_dec(v_a_6334_);
lean_dec_ref(v_a_6333_);
v___x_6385_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6356_ == 0)
{
lean_ctor_set(v___x_6355_, 0, v___x_6385_);
v___x_6387_ = v___x_6355_;
goto v_reusejp_6386_;
}
else
{
lean_object* v_reuseFailAlloc_6388_; 
v_reuseFailAlloc_6388_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6388_, 0, v___x_6385_);
v___x_6387_ = v_reuseFailAlloc_6388_;
goto v_reusejp_6386_;
}
v_reusejp_6386_:
{
return v___x_6387_;
}
}
}
}
else
{
lean_object* v_a_6390_; lean_object* v___x_6392_; uint8_t v_isShared_6393_; uint8_t v_isSharedCheck_6397_; 
lean_dec(v_val_6350_);
lean_dec(v_a_6336_);
lean_dec_ref(v_a_6335_);
lean_dec(v_a_6334_);
lean_dec_ref(v_a_6333_);
v_a_6390_ = lean_ctor_get(v___x_6352_, 0);
v_isSharedCheck_6397_ = !lean_is_exclusive(v___x_6352_);
if (v_isSharedCheck_6397_ == 0)
{
v___x_6392_ = v___x_6352_;
v_isShared_6393_ = v_isSharedCheck_6397_;
goto v_resetjp_6391_;
}
else
{
lean_inc(v_a_6390_);
lean_dec(v___x_6352_);
v___x_6392_ = lean_box(0);
v_isShared_6393_ = v_isSharedCheck_6397_;
goto v_resetjp_6391_;
}
v_resetjp_6391_:
{
lean_object* v___x_6395_; 
if (v_isShared_6393_ == 0)
{
v___x_6395_ = v___x_6392_;
goto v_reusejp_6394_;
}
else
{
lean_object* v_reuseFailAlloc_6396_; 
v_reuseFailAlloc_6396_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6396_, 0, v_a_6390_);
v___x_6395_ = v_reuseFailAlloc_6396_;
goto v_reusejp_6394_;
}
v_reusejp_6394_:
{
return v___x_6395_;
}
}
}
}
else
{
lean_object* v___x_6398_; lean_object* v___x_6400_; 
lean_dec(v_a_6346_);
lean_dec(v_a_6336_);
lean_dec_ref(v_a_6335_);
lean_dec(v_a_6334_);
lean_dec_ref(v_a_6333_);
v___x_6398_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6349_ == 0)
{
lean_ctor_set(v___x_6348_, 0, v___x_6398_);
v___x_6400_ = v___x_6348_;
goto v_reusejp_6399_;
}
else
{
lean_object* v_reuseFailAlloc_6401_; 
v_reuseFailAlloc_6401_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6401_, 0, v___x_6398_);
v___x_6400_ = v_reuseFailAlloc_6401_;
goto v_reusejp_6399_;
}
v_reusejp_6399_:
{
return v___x_6400_;
}
}
}
}
else
{
lean_object* v_a_6403_; lean_object* v___x_6405_; uint8_t v_isShared_6406_; uint8_t v_isSharedCheck_6410_; 
lean_dec(v_a_6336_);
lean_dec_ref(v_a_6335_);
lean_dec(v_a_6334_);
lean_dec_ref(v_a_6333_);
v_a_6403_ = lean_ctor_get(v___x_6345_, 0);
v_isSharedCheck_6410_ = !lean_is_exclusive(v___x_6345_);
if (v_isSharedCheck_6410_ == 0)
{
v___x_6405_ = v___x_6345_;
v_isShared_6406_ = v_isSharedCheck_6410_;
goto v_resetjp_6404_;
}
else
{
lean_inc(v_a_6403_);
lean_dec(v___x_6345_);
v___x_6405_ = lean_box(0);
v_isShared_6406_ = v_isSharedCheck_6410_;
goto v_resetjp_6404_;
}
v_resetjp_6404_:
{
lean_object* v___x_6408_; 
if (v_isShared_6406_ == 0)
{
v___x_6408_ = v___x_6405_;
goto v_reusejp_6407_;
}
else
{
lean_object* v_reuseFailAlloc_6409_; 
v_reuseFailAlloc_6409_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6409_, 0, v_a_6403_);
v___x_6408_ = v_reuseFailAlloc_6409_;
goto v_reusejp_6407_;
}
v_reusejp_6407_:
{
return v___x_6408_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___redArg___boxed(lean_object* v_e_6411_, lean_object* v_a_6412_, lean_object* v_a_6413_, lean_object* v_a_6414_, lean_object* v_a_6415_, lean_object* v_a_6416_, lean_object* v_a_6417_){
_start:
{
lean_object* v_res_6418_; 
v_res_6418_ = l_BitVec_reduceRotateRight___redArg(v_e_6411_, v_a_6412_, v_a_6413_, v_a_6414_, v_a_6415_, v_a_6416_);
lean_dec_ref(v_a_6412_);
lean_dec_ref(v_e_6411_);
return v_res_6418_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight(lean_object* v_e_6419_, lean_object* v_a_6420_, lean_object* v_a_6421_, lean_object* v_a_6422_, lean_object* v_a_6423_, lean_object* v_a_6424_, lean_object* v_a_6425_, lean_object* v_a_6426_){
_start:
{
lean_object* v___x_6428_; 
v___x_6428_ = l_BitVec_reduceRotateRight___redArg(v_e_6419_, v_a_6421_, v_a_6423_, v_a_6424_, v_a_6425_, v_a_6426_);
return v___x_6428_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___boxed(lean_object* v_e_6429_, lean_object* v_a_6430_, lean_object* v_a_6431_, lean_object* v_a_6432_, lean_object* v_a_6433_, lean_object* v_a_6434_, lean_object* v_a_6435_, lean_object* v_a_6436_, lean_object* v_a_6437_){
_start:
{
lean_object* v_res_6438_; 
v_res_6438_ = l_BitVec_reduceRotateRight(v_e_6429_, v_a_6430_, v_a_6431_, v_a_6432_, v_a_6433_, v_a_6434_, v_a_6435_, v_a_6436_);
lean_dec(v_a_6432_);
lean_dec_ref(v_a_6431_);
lean_dec(v_a_6430_);
lean_dec_ref(v_e_6429_);
return v_res_6438_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_6455_; lean_object* v___x_6456_; lean_object* v___x_6457_; lean_object* v___x_6458_; 
v___x_6455_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_));
v___x_6456_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_));
v___x_6457_ = lean_alloc_closure((void*)(l_BitVec_reduceRotateRight___boxed), 9, 0);
v___x_6458_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_6455_, v___x_6456_, v___x_6457_);
return v___x_6458_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14____boxed(lean_object* v_a_6459_){
_start:
{
lean_object* v_res_6460_; 
v_res_6460_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_();
return v_res_6460_;
}
}
static lean_object* _init_l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_6461_; lean_object* v___x_6462_; 
v___x_6461_ = lean_alloc_closure((void*)(l_BitVec_reduceRotateRight___boxed), 9, 0);
v___x_6462_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_6462_, 0, v___x_6461_);
return v___x_6462_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_6464_; uint8_t v___x_6465_; lean_object* v___x_6466_; lean_object* v___x_6467_; 
v___x_6464_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_));
v___x_6465_ = 1;
v___x_6466_ = lean_obj_once(&l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_, &l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16__once, _init_l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_);
v___x_6467_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_6464_, v___x_6465_, v___x_6466_);
return v___x_6467_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16____boxed(lean_object* v_a_6468_){
_start:
{
lean_object* v_res_6469_; 
v_res_6469_ = l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_();
return v_res_6469_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_6471_; uint8_t v___x_6472_; lean_object* v___x_6473_; lean_object* v___x_6474_; 
v___x_6471_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_));
v___x_6472_ = 1;
v___x_6473_ = lean_obj_once(&l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_, &l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16__once, _init_l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_);
v___x_6474_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_6471_, v___x_6472_, v___x_6473_);
return v___x_6474_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_18____boxed(lean_object* v_a_6475_){
_start:
{
lean_object* v_res_6476_; 
v_res_6476_ = l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_18_();
return v_res_6476_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___redArg(lean_object* v_e_6482_, lean_object* v_a_6483_, lean_object* v_a_6484_, lean_object* v_a_6485_, lean_object* v_a_6486_, lean_object* v_a_6487_){
_start:
{
lean_object* v___x_6489_; 
v___x_6489_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_6482_, v_a_6485_);
if (lean_obj_tag(v___x_6489_) == 0)
{
lean_object* v_a_6490_; lean_object* v___x_6492_; uint8_t v_isShared_6493_; uint8_t v_isSharedCheck_6584_; 
v_a_6490_ = lean_ctor_get(v___x_6489_, 0);
v_isSharedCheck_6584_ = !lean_is_exclusive(v___x_6489_);
if (v_isSharedCheck_6584_ == 0)
{
v___x_6492_ = v___x_6489_;
v_isShared_6493_ = v_isSharedCheck_6584_;
goto v_resetjp_6491_;
}
else
{
lean_inc(v_a_6490_);
lean_dec(v___x_6489_);
v___x_6492_ = lean_box(0);
v_isShared_6493_ = v_isSharedCheck_6584_;
goto v_resetjp_6491_;
}
v_resetjp_6491_:
{
lean_object* v___x_6499_; uint8_t v___x_6500_; 
v___x_6499_ = l_Lean_Expr_cleanupAnnotations(v_a_6490_);
v___x_6500_ = l_Lean_Expr_isApp(v___x_6499_);
if (v___x_6500_ == 0)
{
lean_dec_ref(v___x_6499_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
goto v___jp_6494_;
}
else
{
lean_object* v_arg_6501_; lean_object* v___x_6502_; uint8_t v___x_6503_; 
v_arg_6501_ = lean_ctor_get(v___x_6499_, 1);
lean_inc_ref(v_arg_6501_);
v___x_6502_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6499_);
v___x_6503_ = l_Lean_Expr_isApp(v___x_6502_);
if (v___x_6503_ == 0)
{
lean_dec_ref(v___x_6502_);
lean_dec_ref(v_arg_6501_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
goto v___jp_6494_;
}
else
{
lean_object* v_arg_6504_; lean_object* v___x_6505_; uint8_t v___x_6506_; 
v_arg_6504_ = lean_ctor_get(v___x_6502_, 1);
lean_inc_ref(v_arg_6504_);
v___x_6505_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6502_);
v___x_6506_ = l_Lean_Expr_isApp(v___x_6505_);
if (v___x_6506_ == 0)
{
lean_dec_ref(v___x_6505_);
lean_dec_ref(v_arg_6504_);
lean_dec_ref(v_arg_6501_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
goto v___jp_6494_;
}
else
{
lean_object* v___x_6507_; uint8_t v___x_6508_; 
v___x_6507_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6505_);
v___x_6508_ = l_Lean_Expr_isApp(v___x_6507_);
if (v___x_6508_ == 0)
{
lean_dec_ref(v___x_6507_);
lean_dec_ref(v_arg_6504_);
lean_dec_ref(v_arg_6501_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
goto v___jp_6494_;
}
else
{
lean_object* v___x_6509_; uint8_t v___x_6510_; 
v___x_6509_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6507_);
v___x_6510_ = l_Lean_Expr_isApp(v___x_6509_);
if (v___x_6510_ == 0)
{
lean_dec_ref(v___x_6509_);
lean_dec_ref(v_arg_6504_);
lean_dec_ref(v_arg_6501_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
goto v___jp_6494_;
}
else
{
lean_object* v___x_6511_; uint8_t v___x_6512_; 
v___x_6511_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6509_);
v___x_6512_ = l_Lean_Expr_isApp(v___x_6511_);
if (v___x_6512_ == 0)
{
lean_dec_ref(v___x_6511_);
lean_dec_ref(v_arg_6504_);
lean_dec_ref(v_arg_6501_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
goto v___jp_6494_;
}
else
{
lean_object* v___x_6513_; lean_object* v___x_6514_; uint8_t v___x_6515_; 
v___x_6513_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6511_);
v___x_6514_ = ((lean_object*)(l_BitVec_reduceAppend___redArg___closed__2));
v___x_6515_ = l_Lean_Expr_isConstOf(v___x_6513_, v___x_6514_);
lean_dec_ref(v___x_6513_);
if (v___x_6515_ == 0)
{
lean_dec_ref(v_arg_6504_);
lean_dec_ref(v_arg_6501_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
goto v___jp_6494_;
}
else
{
lean_object* v___x_6516_; 
lean_del_object(v___x_6492_);
lean_inc(v_a_6487_);
lean_inc_ref(v_a_6486_);
lean_inc(v_a_6485_);
lean_inc_ref(v_a_6484_);
v___x_6516_ = l_BitVec_fromExpr_x3f___redArg(v_arg_6504_, v_a_6484_, v_a_6485_, v_a_6486_, v_a_6487_);
if (lean_obj_tag(v___x_6516_) == 0)
{
lean_object* v_a_6517_; lean_object* v___x_6519_; uint8_t v_isShared_6520_; uint8_t v_isSharedCheck_6575_; 
v_a_6517_ = lean_ctor_get(v___x_6516_, 0);
v_isSharedCheck_6575_ = !lean_is_exclusive(v___x_6516_);
if (v_isSharedCheck_6575_ == 0)
{
v___x_6519_ = v___x_6516_;
v_isShared_6520_ = v_isSharedCheck_6575_;
goto v_resetjp_6518_;
}
else
{
lean_inc(v_a_6517_);
lean_dec(v___x_6516_);
v___x_6519_ = lean_box(0);
v_isShared_6520_ = v_isSharedCheck_6575_;
goto v_resetjp_6518_;
}
v_resetjp_6518_:
{
if (lean_obj_tag(v_a_6517_) == 1)
{
lean_object* v_val_6521_; lean_object* v___x_6522_; 
lean_del_object(v___x_6519_);
v_val_6521_ = lean_ctor_get(v_a_6517_, 0);
lean_inc(v_val_6521_);
lean_dec_ref(v_a_6517_);
lean_inc(v_a_6487_);
lean_inc_ref(v_a_6486_);
lean_inc(v_a_6485_);
lean_inc_ref(v_a_6484_);
v___x_6522_ = l_BitVec_fromExpr_x3f___redArg(v_arg_6501_, v_a_6484_, v_a_6485_, v_a_6486_, v_a_6487_);
if (lean_obj_tag(v___x_6522_) == 0)
{
lean_object* v_a_6523_; lean_object* v___x_6525_; uint8_t v_isShared_6526_; uint8_t v_isSharedCheck_6562_; 
v_a_6523_ = lean_ctor_get(v___x_6522_, 0);
v_isSharedCheck_6562_ = !lean_is_exclusive(v___x_6522_);
if (v_isSharedCheck_6562_ == 0)
{
v___x_6525_ = v___x_6522_;
v_isShared_6526_ = v_isSharedCheck_6562_;
goto v_resetjp_6524_;
}
else
{
lean_inc(v_a_6523_);
lean_dec(v___x_6522_);
v___x_6525_ = lean_box(0);
v_isShared_6526_ = v_isSharedCheck_6562_;
goto v_resetjp_6524_;
}
v_resetjp_6524_:
{
if (lean_obj_tag(v_a_6523_) == 1)
{
lean_object* v_val_6527_; lean_object* v___x_6529_; uint8_t v_isShared_6530_; uint8_t v_isSharedCheck_6557_; 
lean_del_object(v___x_6525_);
v_val_6527_ = lean_ctor_get(v_a_6523_, 0);
v_isSharedCheck_6557_ = !lean_is_exclusive(v_a_6523_);
if (v_isSharedCheck_6557_ == 0)
{
v___x_6529_ = v_a_6523_;
v_isShared_6530_ = v_isSharedCheck_6557_;
goto v_resetjp_6528_;
}
else
{
lean_inc(v_val_6527_);
lean_dec(v_a_6523_);
v___x_6529_ = lean_box(0);
v_isShared_6530_ = v_isSharedCheck_6557_;
goto v_resetjp_6528_;
}
v_resetjp_6528_:
{
lean_object* v_n_6531_; lean_object* v_value_6532_; lean_object* v_n_6533_; lean_object* v_value_6534_; lean_object* v___x_6535_; lean_object* v___x_6536_; lean_object* v___x_6537_; 
v_n_6531_ = lean_ctor_get(v_val_6521_, 0);
lean_inc(v_n_6531_);
v_value_6532_ = lean_ctor_get(v_val_6521_, 1);
lean_inc(v_value_6532_);
lean_dec(v_val_6521_);
v_n_6533_ = lean_ctor_get(v_val_6527_, 0);
lean_inc(v_n_6533_);
v_value_6534_ = lean_ctor_get(v_val_6527_, 1);
lean_inc(v_value_6534_);
lean_dec(v_val_6527_);
v___x_6535_ = lean_nat_add(v_n_6531_, v_n_6533_);
lean_dec(v_n_6531_);
v___x_6536_ = l_BitVec_append___redArg(v_n_6533_, v_value_6532_, v_value_6534_);
lean_dec(v_value_6534_);
lean_dec(v_value_6532_);
lean_dec(v_n_6533_);
v___x_6537_ = l_BitVec_toExpr_x27___redArg(v___x_6535_, v___x_6536_, v_a_6483_, v_a_6484_, v_a_6485_, v_a_6486_, v_a_6487_);
if (lean_obj_tag(v___x_6537_) == 0)
{
lean_object* v_a_6538_; lean_object* v___x_6540_; uint8_t v_isShared_6541_; uint8_t v_isSharedCheck_6548_; 
v_a_6538_ = lean_ctor_get(v___x_6537_, 0);
v_isSharedCheck_6548_ = !lean_is_exclusive(v___x_6537_);
if (v_isSharedCheck_6548_ == 0)
{
v___x_6540_ = v___x_6537_;
v_isShared_6541_ = v_isSharedCheck_6548_;
goto v_resetjp_6539_;
}
else
{
lean_inc(v_a_6538_);
lean_dec(v___x_6537_);
v___x_6540_ = lean_box(0);
v_isShared_6541_ = v_isSharedCheck_6548_;
goto v_resetjp_6539_;
}
v_resetjp_6539_:
{
lean_object* v___x_6543_; 
if (v_isShared_6530_ == 0)
{
lean_ctor_set_tag(v___x_6529_, 0);
lean_ctor_set(v___x_6529_, 0, v_a_6538_);
v___x_6543_ = v___x_6529_;
goto v_reusejp_6542_;
}
else
{
lean_object* v_reuseFailAlloc_6547_; 
v_reuseFailAlloc_6547_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6547_, 0, v_a_6538_);
v___x_6543_ = v_reuseFailAlloc_6547_;
goto v_reusejp_6542_;
}
v_reusejp_6542_:
{
lean_object* v___x_6545_; 
if (v_isShared_6541_ == 0)
{
lean_ctor_set(v___x_6540_, 0, v___x_6543_);
v___x_6545_ = v___x_6540_;
goto v_reusejp_6544_;
}
else
{
lean_object* v_reuseFailAlloc_6546_; 
v_reuseFailAlloc_6546_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6546_, 0, v___x_6543_);
v___x_6545_ = v_reuseFailAlloc_6546_;
goto v_reusejp_6544_;
}
v_reusejp_6544_:
{
return v___x_6545_;
}
}
}
}
else
{
lean_object* v_a_6549_; lean_object* v___x_6551_; uint8_t v_isShared_6552_; uint8_t v_isSharedCheck_6556_; 
lean_del_object(v___x_6529_);
v_a_6549_ = lean_ctor_get(v___x_6537_, 0);
v_isSharedCheck_6556_ = !lean_is_exclusive(v___x_6537_);
if (v_isSharedCheck_6556_ == 0)
{
v___x_6551_ = v___x_6537_;
v_isShared_6552_ = v_isSharedCheck_6556_;
goto v_resetjp_6550_;
}
else
{
lean_inc(v_a_6549_);
lean_dec(v___x_6537_);
v___x_6551_ = lean_box(0);
v_isShared_6552_ = v_isSharedCheck_6556_;
goto v_resetjp_6550_;
}
v_resetjp_6550_:
{
lean_object* v___x_6554_; 
if (v_isShared_6552_ == 0)
{
v___x_6554_ = v___x_6551_;
goto v_reusejp_6553_;
}
else
{
lean_object* v_reuseFailAlloc_6555_; 
v_reuseFailAlloc_6555_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6555_, 0, v_a_6549_);
v___x_6554_ = v_reuseFailAlloc_6555_;
goto v_reusejp_6553_;
}
v_reusejp_6553_:
{
return v___x_6554_;
}
}
}
}
}
else
{
lean_object* v___x_6558_; lean_object* v___x_6560_; 
lean_dec(v_a_6523_);
lean_dec(v_val_6521_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
v___x_6558_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6526_ == 0)
{
lean_ctor_set(v___x_6525_, 0, v___x_6558_);
v___x_6560_ = v___x_6525_;
goto v_reusejp_6559_;
}
else
{
lean_object* v_reuseFailAlloc_6561_; 
v_reuseFailAlloc_6561_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6561_, 0, v___x_6558_);
v___x_6560_ = v_reuseFailAlloc_6561_;
goto v_reusejp_6559_;
}
v_reusejp_6559_:
{
return v___x_6560_;
}
}
}
}
else
{
lean_object* v_a_6563_; lean_object* v___x_6565_; uint8_t v_isShared_6566_; uint8_t v_isSharedCheck_6570_; 
lean_dec(v_val_6521_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
v_a_6563_ = lean_ctor_get(v___x_6522_, 0);
v_isSharedCheck_6570_ = !lean_is_exclusive(v___x_6522_);
if (v_isSharedCheck_6570_ == 0)
{
v___x_6565_ = v___x_6522_;
v_isShared_6566_ = v_isSharedCheck_6570_;
goto v_resetjp_6564_;
}
else
{
lean_inc(v_a_6563_);
lean_dec(v___x_6522_);
v___x_6565_ = lean_box(0);
v_isShared_6566_ = v_isSharedCheck_6570_;
goto v_resetjp_6564_;
}
v_resetjp_6564_:
{
lean_object* v___x_6568_; 
if (v_isShared_6566_ == 0)
{
v___x_6568_ = v___x_6565_;
goto v_reusejp_6567_;
}
else
{
lean_object* v_reuseFailAlloc_6569_; 
v_reuseFailAlloc_6569_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6569_, 0, v_a_6563_);
v___x_6568_ = v_reuseFailAlloc_6569_;
goto v_reusejp_6567_;
}
v_reusejp_6567_:
{
return v___x_6568_;
}
}
}
}
else
{
lean_object* v___x_6571_; lean_object* v___x_6573_; 
lean_dec(v_a_6517_);
lean_dec_ref(v_arg_6501_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
v___x_6571_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6520_ == 0)
{
lean_ctor_set(v___x_6519_, 0, v___x_6571_);
v___x_6573_ = v___x_6519_;
goto v_reusejp_6572_;
}
else
{
lean_object* v_reuseFailAlloc_6574_; 
v_reuseFailAlloc_6574_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6574_, 0, v___x_6571_);
v___x_6573_ = v_reuseFailAlloc_6574_;
goto v_reusejp_6572_;
}
v_reusejp_6572_:
{
return v___x_6573_;
}
}
}
}
else
{
lean_object* v_a_6576_; lean_object* v___x_6578_; uint8_t v_isShared_6579_; uint8_t v_isSharedCheck_6583_; 
lean_dec_ref(v_arg_6501_);
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
v_a_6576_ = lean_ctor_get(v___x_6516_, 0);
v_isSharedCheck_6583_ = !lean_is_exclusive(v___x_6516_);
if (v_isSharedCheck_6583_ == 0)
{
v___x_6578_ = v___x_6516_;
v_isShared_6579_ = v_isSharedCheck_6583_;
goto v_resetjp_6577_;
}
else
{
lean_inc(v_a_6576_);
lean_dec(v___x_6516_);
v___x_6578_ = lean_box(0);
v_isShared_6579_ = v_isSharedCheck_6583_;
goto v_resetjp_6577_;
}
v_resetjp_6577_:
{
lean_object* v___x_6581_; 
if (v_isShared_6579_ == 0)
{
v___x_6581_ = v___x_6578_;
goto v_reusejp_6580_;
}
else
{
lean_object* v_reuseFailAlloc_6582_; 
v_reuseFailAlloc_6582_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6582_, 0, v_a_6576_);
v___x_6581_ = v_reuseFailAlloc_6582_;
goto v_reusejp_6580_;
}
v_reusejp_6580_:
{
return v___x_6581_;
}
}
}
}
}
}
}
}
}
}
v___jp_6494_:
{
lean_object* v___x_6495_; lean_object* v___x_6497_; 
v___x_6495_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6493_ == 0)
{
lean_ctor_set(v___x_6492_, 0, v___x_6495_);
v___x_6497_ = v___x_6492_;
goto v_reusejp_6496_;
}
else
{
lean_object* v_reuseFailAlloc_6498_; 
v_reuseFailAlloc_6498_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6498_, 0, v___x_6495_);
v___x_6497_ = v_reuseFailAlloc_6498_;
goto v_reusejp_6496_;
}
v_reusejp_6496_:
{
return v___x_6497_;
}
}
}
}
else
{
lean_object* v_a_6585_; lean_object* v___x_6587_; uint8_t v_isShared_6588_; uint8_t v_isSharedCheck_6592_; 
lean_dec(v_a_6487_);
lean_dec_ref(v_a_6486_);
lean_dec(v_a_6485_);
lean_dec_ref(v_a_6484_);
v_a_6585_ = lean_ctor_get(v___x_6489_, 0);
v_isSharedCheck_6592_ = !lean_is_exclusive(v___x_6489_);
if (v_isSharedCheck_6592_ == 0)
{
v___x_6587_ = v___x_6489_;
v_isShared_6588_ = v_isSharedCheck_6592_;
goto v_resetjp_6586_;
}
else
{
lean_inc(v_a_6585_);
lean_dec(v___x_6489_);
v___x_6587_ = lean_box(0);
v_isShared_6588_ = v_isSharedCheck_6592_;
goto v_resetjp_6586_;
}
v_resetjp_6586_:
{
lean_object* v___x_6590_; 
if (v_isShared_6588_ == 0)
{
v___x_6590_ = v___x_6587_;
goto v_reusejp_6589_;
}
else
{
lean_object* v_reuseFailAlloc_6591_; 
v_reuseFailAlloc_6591_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6591_, 0, v_a_6585_);
v___x_6590_ = v_reuseFailAlloc_6591_;
goto v_reusejp_6589_;
}
v_reusejp_6589_:
{
return v___x_6590_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___redArg___boxed(lean_object* v_e_6593_, lean_object* v_a_6594_, lean_object* v_a_6595_, lean_object* v_a_6596_, lean_object* v_a_6597_, lean_object* v_a_6598_, lean_object* v_a_6599_){
_start:
{
lean_object* v_res_6600_; 
v_res_6600_ = l_BitVec_reduceAppend___redArg(v_e_6593_, v_a_6594_, v_a_6595_, v_a_6596_, v_a_6597_, v_a_6598_);
lean_dec_ref(v_a_6594_);
return v_res_6600_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAppend(lean_object* v_e_6601_, lean_object* v_a_6602_, lean_object* v_a_6603_, lean_object* v_a_6604_, lean_object* v_a_6605_, lean_object* v_a_6606_, lean_object* v_a_6607_, lean_object* v_a_6608_){
_start:
{
lean_object* v___x_6610_; 
v___x_6610_ = l_BitVec_reduceAppend___redArg(v_e_6601_, v_a_6603_, v_a_6605_, v_a_6606_, v_a_6607_, v_a_6608_);
return v___x_6610_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___boxed(lean_object* v_e_6611_, lean_object* v_a_6612_, lean_object* v_a_6613_, lean_object* v_a_6614_, lean_object* v_a_6615_, lean_object* v_a_6616_, lean_object* v_a_6617_, lean_object* v_a_6618_, lean_object* v_a_6619_){
_start:
{
lean_object* v_res_6620_; 
v_res_6620_ = l_BitVec_reduceAppend(v_e_6611_, v_a_6612_, v_a_6613_, v_a_6614_, v_a_6615_, v_a_6616_, v_a_6617_, v_a_6618_);
lean_dec(v_a_6614_);
lean_dec_ref(v_a_6613_);
lean_dec(v_a_6612_);
return v_res_6620_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_(){
_start:
{
lean_object* v___x_6642_; lean_object* v___x_6643_; lean_object* v___x_6644_; lean_object* v___x_6645_; 
v___x_6642_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_));
v___x_6643_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_));
v___x_6644_ = lean_alloc_closure((void*)(l_BitVec_reduceAppend___boxed), 9, 0);
v___x_6645_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_6642_, v___x_6643_, v___x_6644_);
return v___x_6645_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20____boxed(lean_object* v_a_6646_){
_start:
{
lean_object* v_res_6647_; 
v_res_6647_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_();
return v_res_6647_;
}
}
static lean_object* _init_l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_(void){
_start:
{
lean_object* v___x_6648_; lean_object* v___x_6649_; 
v___x_6648_ = lean_alloc_closure((void*)(l_BitVec_reduceAppend___boxed), 9, 0);
v___x_6649_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_6649_, 0, v___x_6648_);
return v___x_6649_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_(){
_start:
{
lean_object* v___x_6651_; uint8_t v___x_6652_; lean_object* v___x_6653_; lean_object* v___x_6654_; 
v___x_6651_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_));
v___x_6652_ = 1;
v___x_6653_ = lean_obj_once(&l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_, &l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22__once, _init_l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_);
v___x_6654_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_6651_, v___x_6652_, v___x_6653_);
return v___x_6654_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22____boxed(lean_object* v_a_6655_){
_start:
{
lean_object* v_res_6656_; 
v_res_6656_ = l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_();
return v_res_6656_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_24_(){
_start:
{
lean_object* v___x_6658_; uint8_t v___x_6659_; lean_object* v___x_6660_; lean_object* v___x_6661_; 
v___x_6658_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_));
v___x_6659_ = 1;
v___x_6660_ = lean_obj_once(&l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_, &l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22__once, _init_l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_);
v___x_6661_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_6658_, v___x_6659_, v___x_6660_);
return v___x_6661_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_24____boxed(lean_object* v_a_6662_){
_start:
{
lean_object* v_res_6663_; 
v_res_6663_ = l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_24_();
return v_res_6663_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCast___redArg(lean_object* v_e_6667_, lean_object* v_a_6668_, lean_object* v_a_6669_, lean_object* v_a_6670_, lean_object* v_a_6671_, lean_object* v_a_6672_){
_start:
{
lean_object* v___x_6674_; 
v___x_6674_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_6667_, v_a_6670_);
if (lean_obj_tag(v___x_6674_) == 0)
{
lean_object* v_a_6675_; lean_object* v___x_6677_; uint8_t v_isShared_6678_; uint8_t v_isSharedCheck_6761_; 
v_a_6675_ = lean_ctor_get(v___x_6674_, 0);
v_isSharedCheck_6761_ = !lean_is_exclusive(v___x_6674_);
if (v_isSharedCheck_6761_ == 0)
{
v___x_6677_ = v___x_6674_;
v_isShared_6678_ = v_isSharedCheck_6761_;
goto v_resetjp_6676_;
}
else
{
lean_inc(v_a_6675_);
lean_dec(v___x_6674_);
v___x_6677_ = lean_box(0);
v_isShared_6678_ = v_isSharedCheck_6761_;
goto v_resetjp_6676_;
}
v_resetjp_6676_:
{
lean_object* v___x_6684_; uint8_t v___x_6685_; 
v___x_6684_ = l_Lean_Expr_cleanupAnnotations(v_a_6675_);
v___x_6685_ = l_Lean_Expr_isApp(v___x_6684_);
if (v___x_6685_ == 0)
{
lean_dec_ref(v___x_6684_);
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
goto v___jp_6679_;
}
else
{
lean_object* v_arg_6686_; lean_object* v___x_6687_; uint8_t v___x_6688_; 
v_arg_6686_ = lean_ctor_get(v___x_6684_, 1);
lean_inc_ref(v_arg_6686_);
v___x_6687_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6684_);
v___x_6688_ = l_Lean_Expr_isApp(v___x_6687_);
if (v___x_6688_ == 0)
{
lean_dec_ref(v___x_6687_);
lean_dec_ref(v_arg_6686_);
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
goto v___jp_6679_;
}
else
{
lean_object* v___x_6689_; uint8_t v___x_6690_; 
v___x_6689_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6687_);
v___x_6690_ = l_Lean_Expr_isApp(v___x_6689_);
if (v___x_6690_ == 0)
{
lean_dec_ref(v___x_6689_);
lean_dec_ref(v_arg_6686_);
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
goto v___jp_6679_;
}
else
{
lean_object* v_arg_6691_; lean_object* v___x_6692_; uint8_t v___x_6693_; 
v_arg_6691_ = lean_ctor_get(v___x_6689_, 1);
lean_inc_ref(v_arg_6691_);
v___x_6692_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6689_);
v___x_6693_ = l_Lean_Expr_isApp(v___x_6692_);
if (v___x_6693_ == 0)
{
lean_dec_ref(v___x_6692_);
lean_dec_ref(v_arg_6691_);
lean_dec_ref(v_arg_6686_);
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
goto v___jp_6679_;
}
else
{
lean_object* v___x_6694_; lean_object* v___x_6695_; uint8_t v___x_6696_; 
v___x_6694_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6692_);
v___x_6695_ = ((lean_object*)(l_BitVec_reduceCast___redArg___closed__1));
v___x_6696_ = l_Lean_Expr_isConstOf(v___x_6694_, v___x_6695_);
lean_dec_ref(v___x_6694_);
if (v___x_6696_ == 0)
{
lean_dec_ref(v_arg_6691_);
lean_dec_ref(v_arg_6686_);
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
goto v___jp_6679_;
}
else
{
lean_object* v___x_6697_; 
lean_del_object(v___x_6677_);
lean_inc(v_a_6672_);
lean_inc_ref(v_a_6671_);
lean_inc(v_a_6670_);
lean_inc_ref(v_a_6669_);
v___x_6697_ = l_BitVec_fromExpr_x3f___redArg(v_arg_6686_, v_a_6669_, v_a_6670_, v_a_6671_, v_a_6672_);
if (lean_obj_tag(v___x_6697_) == 0)
{
lean_object* v_a_6698_; lean_object* v___x_6700_; uint8_t v_isShared_6701_; uint8_t v_isSharedCheck_6752_; 
v_a_6698_ = lean_ctor_get(v___x_6697_, 0);
v_isSharedCheck_6752_ = !lean_is_exclusive(v___x_6697_);
if (v_isSharedCheck_6752_ == 0)
{
v___x_6700_ = v___x_6697_;
v_isShared_6701_ = v_isSharedCheck_6752_;
goto v_resetjp_6699_;
}
else
{
lean_inc(v_a_6698_);
lean_dec(v___x_6697_);
v___x_6700_ = lean_box(0);
v_isShared_6701_ = v_isSharedCheck_6752_;
goto v_resetjp_6699_;
}
v_resetjp_6699_:
{
if (lean_obj_tag(v_a_6698_) == 1)
{
lean_object* v_val_6702_; lean_object* v___x_6703_; 
lean_del_object(v___x_6700_);
v_val_6702_ = lean_ctor_get(v_a_6698_, 0);
lean_inc(v_val_6702_);
lean_dec_ref(v_a_6698_);
lean_inc(v_a_6672_);
lean_inc_ref(v_a_6671_);
lean_inc(v_a_6670_);
lean_inc_ref(v_a_6669_);
v___x_6703_ = l_Lean_Meta_getNatValue_x3f(v_arg_6691_, v_a_6669_, v_a_6670_, v_a_6671_, v_a_6672_);
lean_dec_ref(v_arg_6691_);
if (lean_obj_tag(v___x_6703_) == 0)
{
lean_object* v_a_6704_; lean_object* v___x_6706_; uint8_t v_isShared_6707_; uint8_t v_isSharedCheck_6739_; 
v_a_6704_ = lean_ctor_get(v___x_6703_, 0);
v_isSharedCheck_6739_ = !lean_is_exclusive(v___x_6703_);
if (v_isSharedCheck_6739_ == 0)
{
v___x_6706_ = v___x_6703_;
v_isShared_6707_ = v_isSharedCheck_6739_;
goto v_resetjp_6705_;
}
else
{
lean_inc(v_a_6704_);
lean_dec(v___x_6703_);
v___x_6706_ = lean_box(0);
v_isShared_6707_ = v_isSharedCheck_6739_;
goto v_resetjp_6705_;
}
v_resetjp_6705_:
{
if (lean_obj_tag(v_a_6704_) == 1)
{
lean_object* v_val_6708_; lean_object* v___x_6710_; uint8_t v_isShared_6711_; uint8_t v_isSharedCheck_6734_; 
lean_del_object(v___x_6706_);
v_val_6708_ = lean_ctor_get(v_a_6704_, 0);
v_isSharedCheck_6734_ = !lean_is_exclusive(v_a_6704_);
if (v_isSharedCheck_6734_ == 0)
{
v___x_6710_ = v_a_6704_;
v_isShared_6711_ = v_isSharedCheck_6734_;
goto v_resetjp_6709_;
}
else
{
lean_inc(v_val_6708_);
lean_dec(v_a_6704_);
v___x_6710_ = lean_box(0);
v_isShared_6711_ = v_isSharedCheck_6734_;
goto v_resetjp_6709_;
}
v_resetjp_6709_:
{
lean_object* v_value_6712_; lean_object* v___x_6713_; lean_object* v___x_6714_; 
v_value_6712_ = lean_ctor_get(v_val_6702_, 1);
lean_inc(v_value_6712_);
lean_dec(v_val_6702_);
v___x_6713_ = l_BitVec_ofNat(v_val_6708_, v_value_6712_);
lean_dec(v_value_6712_);
v___x_6714_ = l_BitVec_toExpr_x27___redArg(v_val_6708_, v___x_6713_, v_a_6668_, v_a_6669_, v_a_6670_, v_a_6671_, v_a_6672_);
if (lean_obj_tag(v___x_6714_) == 0)
{
lean_object* v_a_6715_; lean_object* v___x_6717_; uint8_t v_isShared_6718_; uint8_t v_isSharedCheck_6725_; 
v_a_6715_ = lean_ctor_get(v___x_6714_, 0);
v_isSharedCheck_6725_ = !lean_is_exclusive(v___x_6714_);
if (v_isSharedCheck_6725_ == 0)
{
v___x_6717_ = v___x_6714_;
v_isShared_6718_ = v_isSharedCheck_6725_;
goto v_resetjp_6716_;
}
else
{
lean_inc(v_a_6715_);
lean_dec(v___x_6714_);
v___x_6717_ = lean_box(0);
v_isShared_6718_ = v_isSharedCheck_6725_;
goto v_resetjp_6716_;
}
v_resetjp_6716_:
{
lean_object* v___x_6720_; 
if (v_isShared_6711_ == 0)
{
lean_ctor_set_tag(v___x_6710_, 0);
lean_ctor_set(v___x_6710_, 0, v_a_6715_);
v___x_6720_ = v___x_6710_;
goto v_reusejp_6719_;
}
else
{
lean_object* v_reuseFailAlloc_6724_; 
v_reuseFailAlloc_6724_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6724_, 0, v_a_6715_);
v___x_6720_ = v_reuseFailAlloc_6724_;
goto v_reusejp_6719_;
}
v_reusejp_6719_:
{
lean_object* v___x_6722_; 
if (v_isShared_6718_ == 0)
{
lean_ctor_set(v___x_6717_, 0, v___x_6720_);
v___x_6722_ = v___x_6717_;
goto v_reusejp_6721_;
}
else
{
lean_object* v_reuseFailAlloc_6723_; 
v_reuseFailAlloc_6723_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6723_, 0, v___x_6720_);
v___x_6722_ = v_reuseFailAlloc_6723_;
goto v_reusejp_6721_;
}
v_reusejp_6721_:
{
return v___x_6722_;
}
}
}
}
else
{
lean_object* v_a_6726_; lean_object* v___x_6728_; uint8_t v_isShared_6729_; uint8_t v_isSharedCheck_6733_; 
lean_del_object(v___x_6710_);
v_a_6726_ = lean_ctor_get(v___x_6714_, 0);
v_isSharedCheck_6733_ = !lean_is_exclusive(v___x_6714_);
if (v_isSharedCheck_6733_ == 0)
{
v___x_6728_ = v___x_6714_;
v_isShared_6729_ = v_isSharedCheck_6733_;
goto v_resetjp_6727_;
}
else
{
lean_inc(v_a_6726_);
lean_dec(v___x_6714_);
v___x_6728_ = lean_box(0);
v_isShared_6729_ = v_isSharedCheck_6733_;
goto v_resetjp_6727_;
}
v_resetjp_6727_:
{
lean_object* v___x_6731_; 
if (v_isShared_6729_ == 0)
{
v___x_6731_ = v___x_6728_;
goto v_reusejp_6730_;
}
else
{
lean_object* v_reuseFailAlloc_6732_; 
v_reuseFailAlloc_6732_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6732_, 0, v_a_6726_);
v___x_6731_ = v_reuseFailAlloc_6732_;
goto v_reusejp_6730_;
}
v_reusejp_6730_:
{
return v___x_6731_;
}
}
}
}
}
else
{
lean_object* v___x_6735_; lean_object* v___x_6737_; 
lean_dec(v_a_6704_);
lean_dec(v_val_6702_);
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
v___x_6735_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6707_ == 0)
{
lean_ctor_set(v___x_6706_, 0, v___x_6735_);
v___x_6737_ = v___x_6706_;
goto v_reusejp_6736_;
}
else
{
lean_object* v_reuseFailAlloc_6738_; 
v_reuseFailAlloc_6738_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6738_, 0, v___x_6735_);
v___x_6737_ = v_reuseFailAlloc_6738_;
goto v_reusejp_6736_;
}
v_reusejp_6736_:
{
return v___x_6737_;
}
}
}
}
else
{
lean_object* v_a_6740_; lean_object* v___x_6742_; uint8_t v_isShared_6743_; uint8_t v_isSharedCheck_6747_; 
lean_dec(v_val_6702_);
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
v_a_6740_ = lean_ctor_get(v___x_6703_, 0);
v_isSharedCheck_6747_ = !lean_is_exclusive(v___x_6703_);
if (v_isSharedCheck_6747_ == 0)
{
v___x_6742_ = v___x_6703_;
v_isShared_6743_ = v_isSharedCheck_6747_;
goto v_resetjp_6741_;
}
else
{
lean_inc(v_a_6740_);
lean_dec(v___x_6703_);
v___x_6742_ = lean_box(0);
v_isShared_6743_ = v_isSharedCheck_6747_;
goto v_resetjp_6741_;
}
v_resetjp_6741_:
{
lean_object* v___x_6745_; 
if (v_isShared_6743_ == 0)
{
v___x_6745_ = v___x_6742_;
goto v_reusejp_6744_;
}
else
{
lean_object* v_reuseFailAlloc_6746_; 
v_reuseFailAlloc_6746_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6746_, 0, v_a_6740_);
v___x_6745_ = v_reuseFailAlloc_6746_;
goto v_reusejp_6744_;
}
v_reusejp_6744_:
{
return v___x_6745_;
}
}
}
}
else
{
lean_object* v___x_6748_; lean_object* v___x_6750_; 
lean_dec(v_a_6698_);
lean_dec_ref(v_arg_6691_);
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
v___x_6748_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6701_ == 0)
{
lean_ctor_set(v___x_6700_, 0, v___x_6748_);
v___x_6750_ = v___x_6700_;
goto v_reusejp_6749_;
}
else
{
lean_object* v_reuseFailAlloc_6751_; 
v_reuseFailAlloc_6751_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6751_, 0, v___x_6748_);
v___x_6750_ = v_reuseFailAlloc_6751_;
goto v_reusejp_6749_;
}
v_reusejp_6749_:
{
return v___x_6750_;
}
}
}
}
else
{
lean_object* v_a_6753_; lean_object* v___x_6755_; uint8_t v_isShared_6756_; uint8_t v_isSharedCheck_6760_; 
lean_dec_ref(v_arg_6691_);
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
v_a_6753_ = lean_ctor_get(v___x_6697_, 0);
v_isSharedCheck_6760_ = !lean_is_exclusive(v___x_6697_);
if (v_isSharedCheck_6760_ == 0)
{
v___x_6755_ = v___x_6697_;
v_isShared_6756_ = v_isSharedCheck_6760_;
goto v_resetjp_6754_;
}
else
{
lean_inc(v_a_6753_);
lean_dec(v___x_6697_);
v___x_6755_ = lean_box(0);
v_isShared_6756_ = v_isSharedCheck_6760_;
goto v_resetjp_6754_;
}
v_resetjp_6754_:
{
lean_object* v___x_6758_; 
if (v_isShared_6756_ == 0)
{
v___x_6758_ = v___x_6755_;
goto v_reusejp_6757_;
}
else
{
lean_object* v_reuseFailAlloc_6759_; 
v_reuseFailAlloc_6759_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6759_, 0, v_a_6753_);
v___x_6758_ = v_reuseFailAlloc_6759_;
goto v_reusejp_6757_;
}
v_reusejp_6757_:
{
return v___x_6758_;
}
}
}
}
}
}
}
}
v___jp_6679_:
{
lean_object* v___x_6680_; lean_object* v___x_6682_; 
v___x_6680_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6678_ == 0)
{
lean_ctor_set(v___x_6677_, 0, v___x_6680_);
v___x_6682_ = v___x_6677_;
goto v_reusejp_6681_;
}
else
{
lean_object* v_reuseFailAlloc_6683_; 
v_reuseFailAlloc_6683_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6683_, 0, v___x_6680_);
v___x_6682_ = v_reuseFailAlloc_6683_;
goto v_reusejp_6681_;
}
v_reusejp_6681_:
{
return v___x_6682_;
}
}
}
}
else
{
lean_object* v_a_6762_; lean_object* v___x_6764_; uint8_t v_isShared_6765_; uint8_t v_isSharedCheck_6769_; 
lean_dec(v_a_6672_);
lean_dec_ref(v_a_6671_);
lean_dec(v_a_6670_);
lean_dec_ref(v_a_6669_);
v_a_6762_ = lean_ctor_get(v___x_6674_, 0);
v_isSharedCheck_6769_ = !lean_is_exclusive(v___x_6674_);
if (v_isSharedCheck_6769_ == 0)
{
v___x_6764_ = v___x_6674_;
v_isShared_6765_ = v_isSharedCheck_6769_;
goto v_resetjp_6763_;
}
else
{
lean_inc(v_a_6762_);
lean_dec(v___x_6674_);
v___x_6764_ = lean_box(0);
v_isShared_6765_ = v_isSharedCheck_6769_;
goto v_resetjp_6763_;
}
v_resetjp_6763_:
{
lean_object* v___x_6767_; 
if (v_isShared_6765_ == 0)
{
v___x_6767_ = v___x_6764_;
goto v_reusejp_6766_;
}
else
{
lean_object* v_reuseFailAlloc_6768_; 
v_reuseFailAlloc_6768_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6768_, 0, v_a_6762_);
v___x_6767_ = v_reuseFailAlloc_6768_;
goto v_reusejp_6766_;
}
v_reusejp_6766_:
{
return v___x_6767_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCast___redArg___boxed(lean_object* v_e_6770_, lean_object* v_a_6771_, lean_object* v_a_6772_, lean_object* v_a_6773_, lean_object* v_a_6774_, lean_object* v_a_6775_, lean_object* v_a_6776_){
_start:
{
lean_object* v_res_6777_; 
v_res_6777_ = l_BitVec_reduceCast___redArg(v_e_6770_, v_a_6771_, v_a_6772_, v_a_6773_, v_a_6774_, v_a_6775_);
lean_dec_ref(v_a_6771_);
return v_res_6777_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCast(lean_object* v_e_6778_, lean_object* v_a_6779_, lean_object* v_a_6780_, lean_object* v_a_6781_, lean_object* v_a_6782_, lean_object* v_a_6783_, lean_object* v_a_6784_, lean_object* v_a_6785_){
_start:
{
lean_object* v___x_6787_; 
v___x_6787_ = l_BitVec_reduceCast___redArg(v_e_6778_, v_a_6780_, v_a_6782_, v_a_6783_, v_a_6784_, v_a_6785_);
return v___x_6787_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCast___boxed(lean_object* v_e_6788_, lean_object* v_a_6789_, lean_object* v_a_6790_, lean_object* v_a_6791_, lean_object* v_a_6792_, lean_object* v_a_6793_, lean_object* v_a_6794_, lean_object* v_a_6795_, lean_object* v_a_6796_){
_start:
{
lean_object* v_res_6797_; 
v_res_6797_ = l_BitVec_reduceCast(v_e_6788_, v_a_6789_, v_a_6790_, v_a_6791_, v_a_6792_, v_a_6793_, v_a_6794_, v_a_6795_);
lean_dec(v_a_6791_);
lean_dec_ref(v_a_6790_);
lean_dec(v_a_6789_);
return v_res_6797_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_6815_; lean_object* v___x_6816_; lean_object* v___x_6817_; lean_object* v___x_6818_; 
v___x_6815_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_));
v___x_6816_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_));
v___x_6817_ = lean_alloc_closure((void*)(l_BitVec_reduceCast___boxed), 9, 0);
v___x_6818_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_6815_, v___x_6816_, v___x_6817_);
return v___x_6818_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14____boxed(lean_object* v_a_6819_){
_start:
{
lean_object* v_res_6820_; 
v_res_6820_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_();
return v_res_6820_;
}
}
static lean_object* _init_l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_6821_; lean_object* v___x_6822_; 
v___x_6821_ = lean_alloc_closure((void*)(l_BitVec_reduceCast___boxed), 9, 0);
v___x_6822_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_6822_, 0, v___x_6821_);
return v___x_6822_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_6824_; uint8_t v___x_6825_; lean_object* v___x_6826_; lean_object* v___x_6827_; 
v___x_6824_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_));
v___x_6825_ = 1;
v___x_6826_ = lean_obj_once(&l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_, &l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16__once, _init_l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_);
v___x_6827_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_6824_, v___x_6825_, v___x_6826_);
return v___x_6827_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16____boxed(lean_object* v_a_6828_){
_start:
{
lean_object* v_res_6829_; 
v_res_6829_ = l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_();
return v_res_6829_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_6831_; uint8_t v___x_6832_; lean_object* v___x_6833_; lean_object* v___x_6834_; 
v___x_6831_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_));
v___x_6832_ = 1;
v___x_6833_ = lean_obj_once(&l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_, &l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16__once, _init_l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_);
v___x_6834_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_6831_, v___x_6832_, v___x_6833_);
return v___x_6834_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_18____boxed(lean_object* v_a_6835_){
_start:
{
lean_object* v_res_6836_; 
v_res_6836_ = l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_18_();
return v_res_6836_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___redArg(lean_object* v_e_6841_, lean_object* v_a_6842_, lean_object* v_a_6843_, lean_object* v_a_6844_, lean_object* v_a_6845_){
_start:
{
lean_object* v___x_6847_; 
v___x_6847_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_6841_, v_a_6843_);
if (lean_obj_tag(v___x_6847_) == 0)
{
lean_object* v_a_6848_; lean_object* v___x_6850_; uint8_t v_isShared_6851_; uint8_t v_isSharedCheck_6896_; 
v_a_6848_ = lean_ctor_get(v___x_6847_, 0);
v_isSharedCheck_6896_ = !lean_is_exclusive(v___x_6847_);
if (v_isSharedCheck_6896_ == 0)
{
v___x_6850_ = v___x_6847_;
v_isShared_6851_ = v_isSharedCheck_6896_;
goto v_resetjp_6849_;
}
else
{
lean_inc(v_a_6848_);
lean_dec(v___x_6847_);
v___x_6850_ = lean_box(0);
v_isShared_6851_ = v_isSharedCheck_6896_;
goto v_resetjp_6849_;
}
v_resetjp_6849_:
{
lean_object* v___x_6857_; uint8_t v___x_6858_; 
v___x_6857_ = l_Lean_Expr_cleanupAnnotations(v_a_6848_);
v___x_6858_ = l_Lean_Expr_isApp(v___x_6857_);
if (v___x_6858_ == 0)
{
lean_dec_ref(v___x_6857_);
lean_dec(v_a_6845_);
lean_dec_ref(v_a_6844_);
lean_dec(v_a_6843_);
lean_dec_ref(v_a_6842_);
goto v___jp_6852_;
}
else
{
lean_object* v_arg_6859_; lean_object* v___x_6860_; uint8_t v___x_6861_; 
v_arg_6859_ = lean_ctor_get(v___x_6857_, 1);
lean_inc_ref(v_arg_6859_);
v___x_6860_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6857_);
v___x_6861_ = l_Lean_Expr_isApp(v___x_6860_);
if (v___x_6861_ == 0)
{
lean_dec_ref(v___x_6860_);
lean_dec_ref(v_arg_6859_);
lean_dec(v_a_6845_);
lean_dec_ref(v_a_6844_);
lean_dec(v_a_6843_);
lean_dec_ref(v_a_6842_);
goto v___jp_6852_;
}
else
{
lean_object* v___x_6862_; lean_object* v___x_6863_; uint8_t v___x_6864_; 
v___x_6862_ = l_Lean_Expr_appFnCleanup___redArg(v___x_6860_);
v___x_6863_ = ((lean_object*)(l_BitVec_reduceToNat___redArg___closed__1));
v___x_6864_ = l_Lean_Expr_isConstOf(v___x_6862_, v___x_6863_);
lean_dec_ref(v___x_6862_);
if (v___x_6864_ == 0)
{
lean_dec_ref(v_arg_6859_);
lean_dec(v_a_6845_);
lean_dec_ref(v_a_6844_);
lean_dec(v_a_6843_);
lean_dec_ref(v_a_6842_);
goto v___jp_6852_;
}
else
{
lean_object* v___x_6865_; 
lean_del_object(v___x_6850_);
v___x_6865_ = l_BitVec_fromExpr_x3f___redArg(v_arg_6859_, v_a_6842_, v_a_6843_, v_a_6844_, v_a_6845_);
if (lean_obj_tag(v___x_6865_) == 0)
{
lean_object* v_a_6866_; lean_object* v___x_6868_; uint8_t v_isShared_6869_; uint8_t v_isSharedCheck_6887_; 
v_a_6866_ = lean_ctor_get(v___x_6865_, 0);
v_isSharedCheck_6887_ = !lean_is_exclusive(v___x_6865_);
if (v_isSharedCheck_6887_ == 0)
{
v___x_6868_ = v___x_6865_;
v_isShared_6869_ = v_isSharedCheck_6887_;
goto v_resetjp_6867_;
}
else
{
lean_inc(v_a_6866_);
lean_dec(v___x_6865_);
v___x_6868_ = lean_box(0);
v_isShared_6869_ = v_isSharedCheck_6887_;
goto v_resetjp_6867_;
}
v_resetjp_6867_:
{
if (lean_obj_tag(v_a_6866_) == 1)
{
lean_object* v_val_6870_; lean_object* v___x_6872_; uint8_t v_isShared_6873_; uint8_t v_isSharedCheck_6882_; 
v_val_6870_ = lean_ctor_get(v_a_6866_, 0);
v_isSharedCheck_6882_ = !lean_is_exclusive(v_a_6866_);
if (v_isSharedCheck_6882_ == 0)
{
v___x_6872_ = v_a_6866_;
v_isShared_6873_ = v_isSharedCheck_6882_;
goto v_resetjp_6871_;
}
else
{
lean_inc(v_val_6870_);
lean_dec(v_a_6866_);
v___x_6872_ = lean_box(0);
v_isShared_6873_ = v_isSharedCheck_6882_;
goto v_resetjp_6871_;
}
v_resetjp_6871_:
{
lean_object* v_value_6874_; lean_object* v___x_6875_; lean_object* v___x_6877_; 
v_value_6874_ = lean_ctor_get(v_val_6870_, 1);
lean_inc(v_value_6874_);
lean_dec(v_val_6870_);
v___x_6875_ = l_Lean_mkNatLit(v_value_6874_);
if (v_isShared_6873_ == 0)
{
lean_ctor_set_tag(v___x_6872_, 0);
lean_ctor_set(v___x_6872_, 0, v___x_6875_);
v___x_6877_ = v___x_6872_;
goto v_reusejp_6876_;
}
else
{
lean_object* v_reuseFailAlloc_6881_; 
v_reuseFailAlloc_6881_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6881_, 0, v___x_6875_);
v___x_6877_ = v_reuseFailAlloc_6881_;
goto v_reusejp_6876_;
}
v_reusejp_6876_:
{
lean_object* v___x_6879_; 
if (v_isShared_6869_ == 0)
{
lean_ctor_set(v___x_6868_, 0, v___x_6877_);
v___x_6879_ = v___x_6868_;
goto v_reusejp_6878_;
}
else
{
lean_object* v_reuseFailAlloc_6880_; 
v_reuseFailAlloc_6880_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6880_, 0, v___x_6877_);
v___x_6879_ = v_reuseFailAlloc_6880_;
goto v_reusejp_6878_;
}
v_reusejp_6878_:
{
return v___x_6879_;
}
}
}
}
else
{
lean_object* v___x_6883_; lean_object* v___x_6885_; 
lean_dec(v_a_6866_);
v___x_6883_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6869_ == 0)
{
lean_ctor_set(v___x_6868_, 0, v___x_6883_);
v___x_6885_ = v___x_6868_;
goto v_reusejp_6884_;
}
else
{
lean_object* v_reuseFailAlloc_6886_; 
v_reuseFailAlloc_6886_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6886_, 0, v___x_6883_);
v___x_6885_ = v_reuseFailAlloc_6886_;
goto v_reusejp_6884_;
}
v_reusejp_6884_:
{
return v___x_6885_;
}
}
}
}
else
{
lean_object* v_a_6888_; lean_object* v___x_6890_; uint8_t v_isShared_6891_; uint8_t v_isSharedCheck_6895_; 
v_a_6888_ = lean_ctor_get(v___x_6865_, 0);
v_isSharedCheck_6895_ = !lean_is_exclusive(v___x_6865_);
if (v_isSharedCheck_6895_ == 0)
{
v___x_6890_ = v___x_6865_;
v_isShared_6891_ = v_isSharedCheck_6895_;
goto v_resetjp_6889_;
}
else
{
lean_inc(v_a_6888_);
lean_dec(v___x_6865_);
v___x_6890_ = lean_box(0);
v_isShared_6891_ = v_isSharedCheck_6895_;
goto v_resetjp_6889_;
}
v_resetjp_6889_:
{
lean_object* v___x_6893_; 
if (v_isShared_6891_ == 0)
{
v___x_6893_ = v___x_6890_;
goto v_reusejp_6892_;
}
else
{
lean_object* v_reuseFailAlloc_6894_; 
v_reuseFailAlloc_6894_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6894_, 0, v_a_6888_);
v___x_6893_ = v_reuseFailAlloc_6894_;
goto v_reusejp_6892_;
}
v_reusejp_6892_:
{
return v___x_6893_;
}
}
}
}
}
}
v___jp_6852_:
{
lean_object* v___x_6853_; lean_object* v___x_6855_; 
v___x_6853_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_6851_ == 0)
{
lean_ctor_set(v___x_6850_, 0, v___x_6853_);
v___x_6855_ = v___x_6850_;
goto v_reusejp_6854_;
}
else
{
lean_object* v_reuseFailAlloc_6856_; 
v_reuseFailAlloc_6856_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6856_, 0, v___x_6853_);
v___x_6855_ = v_reuseFailAlloc_6856_;
goto v_reusejp_6854_;
}
v_reusejp_6854_:
{
return v___x_6855_;
}
}
}
}
else
{
lean_object* v_a_6897_; lean_object* v___x_6899_; uint8_t v_isShared_6900_; uint8_t v_isSharedCheck_6904_; 
lean_dec(v_a_6845_);
lean_dec_ref(v_a_6844_);
lean_dec(v_a_6843_);
lean_dec_ref(v_a_6842_);
v_a_6897_ = lean_ctor_get(v___x_6847_, 0);
v_isSharedCheck_6904_ = !lean_is_exclusive(v___x_6847_);
if (v_isSharedCheck_6904_ == 0)
{
v___x_6899_ = v___x_6847_;
v_isShared_6900_ = v_isSharedCheck_6904_;
goto v_resetjp_6898_;
}
else
{
lean_inc(v_a_6897_);
lean_dec(v___x_6847_);
v___x_6899_ = lean_box(0);
v_isShared_6900_ = v_isSharedCheck_6904_;
goto v_resetjp_6898_;
}
v_resetjp_6898_:
{
lean_object* v___x_6902_; 
if (v_isShared_6900_ == 0)
{
v___x_6902_ = v___x_6899_;
goto v_reusejp_6901_;
}
else
{
lean_object* v_reuseFailAlloc_6903_; 
v_reuseFailAlloc_6903_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_6903_, 0, v_a_6897_);
v___x_6902_ = v_reuseFailAlloc_6903_;
goto v_reusejp_6901_;
}
v_reusejp_6901_:
{
return v___x_6902_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___redArg___boxed(lean_object* v_e_6905_, lean_object* v_a_6906_, lean_object* v_a_6907_, lean_object* v_a_6908_, lean_object* v_a_6909_, lean_object* v_a_6910_){
_start:
{
lean_object* v_res_6911_; 
v_res_6911_ = l_BitVec_reduceToNat___redArg(v_e_6905_, v_a_6906_, v_a_6907_, v_a_6908_, v_a_6909_);
return v_res_6911_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToNat(lean_object* v_e_6912_, lean_object* v_a_6913_, lean_object* v_a_6914_, lean_object* v_a_6915_, lean_object* v_a_6916_, lean_object* v_a_6917_, lean_object* v_a_6918_, lean_object* v_a_6919_){
_start:
{
lean_object* v___x_6921_; 
v___x_6921_ = l_BitVec_reduceToNat___redArg(v_e_6912_, v_a_6916_, v_a_6917_, v_a_6918_, v_a_6919_);
return v___x_6921_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___boxed(lean_object* v_e_6922_, lean_object* v_a_6923_, lean_object* v_a_6924_, lean_object* v_a_6925_, lean_object* v_a_6926_, lean_object* v_a_6927_, lean_object* v_a_6928_, lean_object* v_a_6929_, lean_object* v_a_6930_){
_start:
{
lean_object* v_res_6931_; 
v_res_6931_ = l_BitVec_reduceToNat(v_e_6922_, v_a_6923_, v_a_6924_, v_a_6925_, v_a_6926_, v_a_6927_, v_a_6928_, v_a_6929_);
lean_dec(v_a_6925_);
lean_dec_ref(v_a_6924_);
lean_dec(v_a_6923_);
return v_res_6931_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_(){
_start:
{
lean_object* v___x_6947_; lean_object* v___x_6948_; lean_object* v___x_6949_; lean_object* v___x_6950_; 
v___x_6947_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_));
v___x_6948_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_));
v___x_6949_ = lean_alloc_closure((void*)(l_BitVec_reduceToNat___boxed), 9, 0);
v___x_6950_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_6947_, v___x_6948_, v___x_6949_);
return v___x_6950_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13____boxed(lean_object* v_a_6951_){
_start:
{
lean_object* v_res_6952_; 
v_res_6952_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_();
return v_res_6952_;
}
}
static lean_object* _init_l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_(void){
_start:
{
lean_object* v___x_6953_; lean_object* v___x_6954_; 
v___x_6953_ = lean_alloc_closure((void*)(l_BitVec_reduceToNat___boxed), 9, 0);
v___x_6954_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_6954_, 0, v___x_6953_);
return v___x_6954_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_(){
_start:
{
lean_object* v___x_6956_; uint8_t v___x_6957_; lean_object* v___x_6958_; lean_object* v___x_6959_; 
v___x_6956_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_));
v___x_6957_ = 1;
v___x_6958_ = lean_obj_once(&l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_, &l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15__once, _init_l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_);
v___x_6959_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_6956_, v___x_6957_, v___x_6958_);
return v___x_6959_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15____boxed(lean_object* v_a_6960_){
_start:
{
lean_object* v_res_6961_; 
v_res_6961_ = l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_();
return v_res_6961_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_17_(){
_start:
{
lean_object* v___x_6963_; uint8_t v___x_6964_; lean_object* v___x_6965_; lean_object* v___x_6966_; 
v___x_6963_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_));
v___x_6964_ = 1;
v___x_6965_ = lean_obj_once(&l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_, &l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15__once, _init_l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_);
v___x_6966_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_6963_, v___x_6964_, v___x_6965_);
return v___x_6966_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_17____boxed(lean_object* v_a_6967_){
_start:
{
lean_object* v_res_6968_; 
v_res_6968_ = l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_17_();
return v_res_6968_;
}
}
static lean_object* _init_l_BitVec_reduceToInt___redArg___closed__2(void){
_start:
{
lean_object* v___x_6973_; lean_object* v___x_6974_; 
v___x_6973_ = lean_unsigned_to_nat(0u);
v___x_6974_ = lean_nat_to_int(v___x_6973_);
return v___x_6974_;
}
}
static lean_object* _init_l_BitVec_reduceToInt___redArg___closed__3(void){
_start:
{
lean_object* v___x_6975_; lean_object* v___x_6976_; 
v___x_6975_ = lean_unsigned_to_nat(0u);
v___x_6976_ = l_Lean_Level_ofNat(v___x_6975_);
return v___x_6976_;
}
}
static lean_object* _init_l_BitVec_reduceToInt___redArg___closed__4(void){
_start:
{
lean_object* v___x_6977_; lean_object* v___x_6978_; lean_object* v___x_6979_; 
v___x_6977_ = lean_box(0);
v___x_6978_ = lean_obj_once(&l_BitVec_reduceToInt___redArg___closed__3, &l_BitVec_reduceToInt___redArg___closed__3_once, _init_l_BitVec_reduceToInt___redArg___closed__3);
v___x_6979_ = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(v___x_6979_, 0, v___x_6978_);
lean_ctor_set(v___x_6979_, 1, v___x_6977_);
return v___x_6979_;
}
}
static lean_object* _init_l_BitVec_reduceToInt___redArg___closed__5(void){
_start:
{
lean_object* v___x_6980_; lean_object* v___x_6981_; lean_object* v___x_6982_; 
v___x_6980_ = lean_obj_once(&l_BitVec_reduceToInt___redArg___closed__4, &l_BitVec_reduceToInt___redArg___closed__4_once, _init_l_BitVec_reduceToInt___redArg___closed__4);
v___x_6981_ = ((lean_object*)(l_BitVec_reduceNeg___redArg___closed__2));
v___x_6982_ = l_Lean_Expr_const___override(v___x_6981_, v___x_6980_);
return v___x_6982_;
}
}
static lean_object* _init_l_BitVec_reduceToInt___redArg___closed__8(void){
_start:
{
lean_object* v___x_6986_; lean_object* v___x_6987_; lean_object* v___x_6988_; 
v___x_6986_ = lean_box(0);
v___x_6987_ = ((lean_object*)(l_BitVec_reduceToInt___redArg___closed__7));
v___x_6988_ = l_Lean_Expr_const___override(v___x_6987_, v___x_6986_);
return v___x_6988_;
}
}
static lean_object* _init_l_BitVec_reduceToInt___redArg___closed__11(void){
_start:
{
lean_object* v___x_6993_; lean_object* v___x_6994_; lean_object* v___x_6995_; 
v___x_6993_ = lean_box(0);
v___x_6994_ = ((lean_object*)(l_BitVec_reduceToInt___redArg___closed__10));
v___x_6995_ = l_Lean_Expr_const___override(v___x_6994_, v___x_6993_);
return v___x_6995_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___redArg(lean_object* v_e_6996_, lean_object* v_a_6997_, lean_object* v_a_6998_, lean_object* v_a_6999_, lean_object* v_a_7000_){
_start:
{
lean_object* v___x_7002_; 
v___x_7002_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_6996_, v_a_6998_);
if (lean_obj_tag(v___x_7002_) == 0)
{
lean_object* v_a_7003_; lean_object* v___x_7005_; uint8_t v_isShared_7006_; uint8_t v_isSharedCheck_7057_; 
v_a_7003_ = lean_ctor_get(v___x_7002_, 0);
v_isSharedCheck_7057_ = !lean_is_exclusive(v___x_7002_);
if (v_isSharedCheck_7057_ == 0)
{
v___x_7005_ = v___x_7002_;
v_isShared_7006_ = v_isSharedCheck_7057_;
goto v_resetjp_7004_;
}
else
{
lean_inc(v_a_7003_);
lean_dec(v___x_7002_);
v___x_7005_ = lean_box(0);
v_isShared_7006_ = v_isSharedCheck_7057_;
goto v_resetjp_7004_;
}
v_resetjp_7004_:
{
lean_object* v___x_7012_; uint8_t v___x_7013_; 
v___x_7012_ = l_Lean_Expr_cleanupAnnotations(v_a_7003_);
v___x_7013_ = l_Lean_Expr_isApp(v___x_7012_);
if (v___x_7013_ == 0)
{
lean_dec_ref(v___x_7012_);
lean_dec(v_a_7000_);
lean_dec_ref(v_a_6999_);
lean_dec(v_a_6998_);
lean_dec_ref(v_a_6997_);
goto v___jp_7007_;
}
else
{
lean_object* v_arg_7014_; lean_object* v___x_7015_; uint8_t v___x_7016_; 
v_arg_7014_ = lean_ctor_get(v___x_7012_, 1);
lean_inc_ref(v_arg_7014_);
v___x_7015_ = l_Lean_Expr_appFnCleanup___redArg(v___x_7012_);
v___x_7016_ = l_Lean_Expr_isApp(v___x_7015_);
if (v___x_7016_ == 0)
{
lean_dec_ref(v___x_7015_);
lean_dec_ref(v_arg_7014_);
lean_dec(v_a_7000_);
lean_dec_ref(v_a_6999_);
lean_dec(v_a_6998_);
lean_dec_ref(v_a_6997_);
goto v___jp_7007_;
}
else
{
lean_object* v___x_7017_; lean_object* v___x_7018_; uint8_t v___x_7019_; 
v___x_7017_ = l_Lean_Expr_appFnCleanup___redArg(v___x_7015_);
v___x_7018_ = ((lean_object*)(l_BitVec_reduceToInt___redArg___closed__1));
v___x_7019_ = l_Lean_Expr_isConstOf(v___x_7017_, v___x_7018_);
lean_dec_ref(v___x_7017_);
if (v___x_7019_ == 0)
{
lean_dec_ref(v_arg_7014_);
lean_dec(v_a_7000_);
lean_dec_ref(v_a_6999_);
lean_dec(v_a_6998_);
lean_dec_ref(v_a_6997_);
goto v___jp_7007_;
}
else
{
lean_object* v___x_7020_; 
lean_del_object(v___x_7005_);
v___x_7020_ = l_BitVec_fromExpr_x3f___redArg(v_arg_7014_, v_a_6997_, v_a_6998_, v_a_6999_, v_a_7000_);
if (lean_obj_tag(v___x_7020_) == 0)
{
lean_object* v_a_7021_; lean_object* v___x_7023_; uint8_t v_isShared_7024_; uint8_t v_isSharedCheck_7048_; 
v_a_7021_ = lean_ctor_get(v___x_7020_, 0);
v_isSharedCheck_7048_ = !lean_is_exclusive(v___x_7020_);
if (v_isSharedCheck_7048_ == 0)
{
v___x_7023_ = v___x_7020_;
v_isShared_7024_ = v_isSharedCheck_7048_;
goto v_resetjp_7022_;
}
else
{
lean_inc(v_a_7021_);
lean_dec(v___x_7020_);
v___x_7023_ = lean_box(0);
v_isShared_7024_ = v_isSharedCheck_7048_;
goto v_resetjp_7022_;
}
v_resetjp_7022_:
{
lean_object* v___y_7026_; 
if (lean_obj_tag(v_a_7021_) == 1)
{
lean_object* v_val_7031_; lean_object* v_n_7032_; lean_object* v_value_7033_; lean_object* v___x_7034_; lean_object* v___x_7035_; uint8_t v___x_7036_; 
v_val_7031_ = lean_ctor_get(v_a_7021_, 0);
lean_inc(v_val_7031_);
lean_dec_ref(v_a_7021_);
v_n_7032_ = lean_ctor_get(v_val_7031_, 0);
lean_inc(v_n_7032_);
v_value_7033_ = lean_ctor_get(v_val_7031_, 1);
lean_inc(v_value_7033_);
lean_dec(v_val_7031_);
v___x_7034_ = l_BitVec_toInt(v_n_7032_, v_value_7033_);
lean_dec(v_n_7032_);
v___x_7035_ = lean_obj_once(&l_BitVec_reduceToInt___redArg___closed__2, &l_BitVec_reduceToInt___redArg___closed__2_once, _init_l_BitVec_reduceToInt___redArg___closed__2);
v___x_7036_ = lean_int_dec_le(v___x_7035_, v___x_7034_);
if (v___x_7036_ == 0)
{
lean_object* v___x_7037_; lean_object* v___x_7038_; lean_object* v___x_7039_; lean_object* v___x_7040_; lean_object* v___x_7041_; lean_object* v___x_7042_; lean_object* v___x_7043_; 
v___x_7037_ = lean_obj_once(&l_BitVec_reduceToInt___redArg___closed__5, &l_BitVec_reduceToInt___redArg___closed__5_once, _init_l_BitVec_reduceToInt___redArg___closed__5);
v___x_7038_ = lean_obj_once(&l_BitVec_reduceToInt___redArg___closed__8, &l_BitVec_reduceToInt___redArg___closed__8_once, _init_l_BitVec_reduceToInt___redArg___closed__8);
v___x_7039_ = lean_obj_once(&l_BitVec_reduceToInt___redArg___closed__11, &l_BitVec_reduceToInt___redArg___closed__11_once, _init_l_BitVec_reduceToInt___redArg___closed__11);
v___x_7040_ = lean_int_neg(v___x_7034_);
lean_dec(v___x_7034_);
v___x_7041_ = l_Int_toNat(v___x_7040_);
lean_dec(v___x_7040_);
v___x_7042_ = l_Lean_instToExprInt_mkNat(v___x_7041_);
v___x_7043_ = l_Lean_mkApp3(v___x_7037_, v___x_7038_, v___x_7039_, v___x_7042_);
v___y_7026_ = v___x_7043_;
goto v___jp_7025_;
}
else
{
lean_object* v___x_7044_; lean_object* v___x_7045_; 
v___x_7044_ = l_Int_toNat(v___x_7034_);
lean_dec(v___x_7034_);
v___x_7045_ = l_Lean_instToExprInt_mkNat(v___x_7044_);
v___y_7026_ = v___x_7045_;
goto v___jp_7025_;
}
}
else
{
lean_object* v___x_7046_; lean_object* v___x_7047_; 
lean_del_object(v___x_7023_);
lean_dec(v_a_7021_);
v___x_7046_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_7047_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7047_, 0, v___x_7046_);
return v___x_7047_;
}
v___jp_7025_:
{
lean_object* v___x_7027_; lean_object* v___x_7029_; 
v___x_7027_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7027_, 0, v___y_7026_);
if (v_isShared_7024_ == 0)
{
lean_ctor_set(v___x_7023_, 0, v___x_7027_);
v___x_7029_ = v___x_7023_;
goto v_reusejp_7028_;
}
else
{
lean_object* v_reuseFailAlloc_7030_; 
v_reuseFailAlloc_7030_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7030_, 0, v___x_7027_);
v___x_7029_ = v_reuseFailAlloc_7030_;
goto v_reusejp_7028_;
}
v_reusejp_7028_:
{
return v___x_7029_;
}
}
}
}
else
{
lean_object* v_a_7049_; lean_object* v___x_7051_; uint8_t v_isShared_7052_; uint8_t v_isSharedCheck_7056_; 
v_a_7049_ = lean_ctor_get(v___x_7020_, 0);
v_isSharedCheck_7056_ = !lean_is_exclusive(v___x_7020_);
if (v_isSharedCheck_7056_ == 0)
{
v___x_7051_ = v___x_7020_;
v_isShared_7052_ = v_isSharedCheck_7056_;
goto v_resetjp_7050_;
}
else
{
lean_inc(v_a_7049_);
lean_dec(v___x_7020_);
v___x_7051_ = lean_box(0);
v_isShared_7052_ = v_isSharedCheck_7056_;
goto v_resetjp_7050_;
}
v_resetjp_7050_:
{
lean_object* v___x_7054_; 
if (v_isShared_7052_ == 0)
{
v___x_7054_ = v___x_7051_;
goto v_reusejp_7053_;
}
else
{
lean_object* v_reuseFailAlloc_7055_; 
v_reuseFailAlloc_7055_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7055_, 0, v_a_7049_);
v___x_7054_ = v_reuseFailAlloc_7055_;
goto v_reusejp_7053_;
}
v_reusejp_7053_:
{
return v___x_7054_;
}
}
}
}
}
}
v___jp_7007_:
{
lean_object* v___x_7008_; lean_object* v___x_7010_; 
v___x_7008_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7006_ == 0)
{
lean_ctor_set(v___x_7005_, 0, v___x_7008_);
v___x_7010_ = v___x_7005_;
goto v_reusejp_7009_;
}
else
{
lean_object* v_reuseFailAlloc_7011_; 
v_reuseFailAlloc_7011_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7011_, 0, v___x_7008_);
v___x_7010_ = v_reuseFailAlloc_7011_;
goto v_reusejp_7009_;
}
v_reusejp_7009_:
{
return v___x_7010_;
}
}
}
}
else
{
lean_object* v_a_7058_; lean_object* v___x_7060_; uint8_t v_isShared_7061_; uint8_t v_isSharedCheck_7065_; 
lean_dec(v_a_7000_);
lean_dec_ref(v_a_6999_);
lean_dec(v_a_6998_);
lean_dec_ref(v_a_6997_);
v_a_7058_ = lean_ctor_get(v___x_7002_, 0);
v_isSharedCheck_7065_ = !lean_is_exclusive(v___x_7002_);
if (v_isSharedCheck_7065_ == 0)
{
v___x_7060_ = v___x_7002_;
v_isShared_7061_ = v_isSharedCheck_7065_;
goto v_resetjp_7059_;
}
else
{
lean_inc(v_a_7058_);
lean_dec(v___x_7002_);
v___x_7060_ = lean_box(0);
v_isShared_7061_ = v_isSharedCheck_7065_;
goto v_resetjp_7059_;
}
v_resetjp_7059_:
{
lean_object* v___x_7063_; 
if (v_isShared_7061_ == 0)
{
v___x_7063_ = v___x_7060_;
goto v_reusejp_7062_;
}
else
{
lean_object* v_reuseFailAlloc_7064_; 
v_reuseFailAlloc_7064_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7064_, 0, v_a_7058_);
v___x_7063_ = v_reuseFailAlloc_7064_;
goto v_reusejp_7062_;
}
v_reusejp_7062_:
{
return v___x_7063_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___redArg___boxed(lean_object* v_e_7066_, lean_object* v_a_7067_, lean_object* v_a_7068_, lean_object* v_a_7069_, lean_object* v_a_7070_, lean_object* v_a_7071_){
_start:
{
lean_object* v_res_7072_; 
v_res_7072_ = l_BitVec_reduceToInt___redArg(v_e_7066_, v_a_7067_, v_a_7068_, v_a_7069_, v_a_7070_);
return v_res_7072_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToInt(lean_object* v_e_7073_, lean_object* v_a_7074_, lean_object* v_a_7075_, lean_object* v_a_7076_, lean_object* v_a_7077_, lean_object* v_a_7078_, lean_object* v_a_7079_, lean_object* v_a_7080_){
_start:
{
lean_object* v___x_7082_; 
v___x_7082_ = l_BitVec_reduceToInt___redArg(v_e_7073_, v_a_7077_, v_a_7078_, v_a_7079_, v_a_7080_);
return v___x_7082_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___boxed(lean_object* v_e_7083_, lean_object* v_a_7084_, lean_object* v_a_7085_, lean_object* v_a_7086_, lean_object* v_a_7087_, lean_object* v_a_7088_, lean_object* v_a_7089_, lean_object* v_a_7090_, lean_object* v_a_7091_){
_start:
{
lean_object* v_res_7092_; 
v_res_7092_ = l_BitVec_reduceToInt(v_e_7083_, v_a_7084_, v_a_7085_, v_a_7086_, v_a_7087_, v_a_7088_, v_a_7089_, v_a_7090_);
lean_dec(v_a_7086_);
lean_dec_ref(v_a_7085_);
lean_dec(v_a_7084_);
return v_res_7092_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_(){
_start:
{
lean_object* v___x_7108_; lean_object* v___x_7109_; lean_object* v___x_7110_; lean_object* v___x_7111_; 
v___x_7108_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_));
v___x_7109_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_));
v___x_7110_ = lean_alloc_closure((void*)(l_BitVec_reduceToInt___boxed), 9, 0);
v___x_7111_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_7108_, v___x_7109_, v___x_7110_);
return v___x_7111_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13____boxed(lean_object* v_a_7112_){
_start:
{
lean_object* v_res_7113_; 
v_res_7113_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_();
return v_res_7113_;
}
}
static lean_object* _init_l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_(void){
_start:
{
lean_object* v___x_7114_; lean_object* v___x_7115_; 
v___x_7114_ = lean_alloc_closure((void*)(l_BitVec_reduceToInt___boxed), 9, 0);
v___x_7115_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_7115_, 0, v___x_7114_);
return v___x_7115_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_(){
_start:
{
lean_object* v___x_7117_; uint8_t v___x_7118_; lean_object* v___x_7119_; lean_object* v___x_7120_; 
v___x_7117_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_));
v___x_7118_ = 1;
v___x_7119_ = lean_obj_once(&l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_, &l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15__once, _init_l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_);
v___x_7120_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_7117_, v___x_7118_, v___x_7119_);
return v___x_7120_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15____boxed(lean_object* v_a_7121_){
_start:
{
lean_object* v_res_7122_; 
v_res_7122_ = l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_();
return v_res_7122_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_17_(){
_start:
{
lean_object* v___x_7124_; uint8_t v___x_7125_; lean_object* v___x_7126_; lean_object* v___x_7127_; 
v___x_7124_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_));
v___x_7125_ = 1;
v___x_7126_ = lean_obj_once(&l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_, &l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15__once, _init_l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_);
v___x_7127_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_7124_, v___x_7125_, v___x_7126_);
return v___x_7127_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_17____boxed(lean_object* v_a_7128_){
_start:
{
lean_object* v_res_7129_; 
v_res_7129_ = l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_17_();
return v_res_7129_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___redArg(lean_object* v_e_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_){
_start:
{
lean_object* v___x_7141_; 
v___x_7141_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_7134_, v_a_7137_);
if (lean_obj_tag(v___x_7141_) == 0)
{
lean_object* v_a_7142_; lean_object* v___x_7144_; uint8_t v_isShared_7145_; uint8_t v_isSharedCheck_7223_; 
v_a_7142_ = lean_ctor_get(v___x_7141_, 0);
v_isSharedCheck_7223_ = !lean_is_exclusive(v___x_7141_);
if (v_isSharedCheck_7223_ == 0)
{
v___x_7144_ = v___x_7141_;
v_isShared_7145_ = v_isSharedCheck_7223_;
goto v_resetjp_7143_;
}
else
{
lean_inc(v_a_7142_);
lean_dec(v___x_7141_);
v___x_7144_ = lean_box(0);
v_isShared_7145_ = v_isSharedCheck_7223_;
goto v_resetjp_7143_;
}
v_resetjp_7143_:
{
lean_object* v___x_7151_; uint8_t v___x_7152_; 
v___x_7151_ = l_Lean_Expr_cleanupAnnotations(v_a_7142_);
v___x_7152_ = l_Lean_Expr_isApp(v___x_7151_);
if (v___x_7152_ == 0)
{
lean_dec_ref(v___x_7151_);
lean_dec(v_a_7139_);
lean_dec_ref(v_a_7138_);
lean_dec(v_a_7137_);
lean_dec_ref(v_a_7136_);
goto v___jp_7146_;
}
else
{
lean_object* v_arg_7153_; lean_object* v___x_7154_; uint8_t v___x_7155_; 
v_arg_7153_ = lean_ctor_get(v___x_7151_, 1);
lean_inc_ref(v_arg_7153_);
v___x_7154_ = l_Lean_Expr_appFnCleanup___redArg(v___x_7151_);
v___x_7155_ = l_Lean_Expr_isApp(v___x_7154_);
if (v___x_7155_ == 0)
{
lean_dec_ref(v___x_7154_);
lean_dec_ref(v_arg_7153_);
lean_dec(v_a_7139_);
lean_dec_ref(v_a_7138_);
lean_dec(v_a_7137_);
lean_dec_ref(v_a_7136_);
goto v___jp_7146_;
}
else
{
lean_object* v_arg_7156_; lean_object* v___x_7157_; lean_object* v___x_7158_; uint8_t v___x_7159_; 
v_arg_7156_ = lean_ctor_get(v___x_7154_, 1);
lean_inc_ref(v_arg_7156_);
v___x_7157_ = l_Lean_Expr_appFnCleanup___redArg(v___x_7154_);
v___x_7158_ = ((lean_object*)(l_BitVec_reduceOfInt___redArg___closed__1));
v___x_7159_ = l_Lean_Expr_isConstOf(v___x_7157_, v___x_7158_);
lean_dec_ref(v___x_7157_);
if (v___x_7159_ == 0)
{
lean_dec_ref(v_arg_7156_);
lean_dec_ref(v_arg_7153_);
lean_dec(v_a_7139_);
lean_dec_ref(v_a_7138_);
lean_dec(v_a_7137_);
lean_dec_ref(v_a_7136_);
goto v___jp_7146_;
}
else
{
lean_object* v___x_7160_; 
lean_del_object(v___x_7144_);
lean_inc(v_a_7139_);
lean_inc_ref(v_a_7138_);
lean_inc(v_a_7137_);
lean_inc_ref(v_a_7136_);
v___x_7160_ = l_Lean_Meta_getNatValue_x3f(v_arg_7156_, v_a_7136_, v_a_7137_, v_a_7138_, v_a_7139_);
lean_dec_ref(v_arg_7156_);
if (lean_obj_tag(v___x_7160_) == 0)
{
lean_object* v_a_7161_; lean_object* v___x_7163_; uint8_t v_isShared_7164_; uint8_t v_isSharedCheck_7214_; 
v_a_7161_ = lean_ctor_get(v___x_7160_, 0);
v_isSharedCheck_7214_ = !lean_is_exclusive(v___x_7160_);
if (v_isSharedCheck_7214_ == 0)
{
v___x_7163_ = v___x_7160_;
v_isShared_7164_ = v_isSharedCheck_7214_;
goto v_resetjp_7162_;
}
else
{
lean_inc(v_a_7161_);
lean_dec(v___x_7160_);
v___x_7163_ = lean_box(0);
v_isShared_7164_ = v_isSharedCheck_7214_;
goto v_resetjp_7162_;
}
v_resetjp_7162_:
{
if (lean_obj_tag(v_a_7161_) == 1)
{
lean_object* v_val_7165_; lean_object* v___x_7166_; 
lean_del_object(v___x_7163_);
v_val_7165_ = lean_ctor_get(v_a_7161_, 0);
lean_inc(v_val_7165_);
lean_dec_ref(v_a_7161_);
lean_inc(v_a_7139_);
lean_inc_ref(v_a_7138_);
lean_inc(v_a_7137_);
lean_inc_ref(v_a_7136_);
v___x_7166_ = l_Lean_Meta_getIntValue_x3f(v_arg_7153_, v_a_7136_, v_a_7137_, v_a_7138_, v_a_7139_);
if (lean_obj_tag(v___x_7166_) == 0)
{
lean_object* v_a_7167_; lean_object* v___x_7169_; uint8_t v_isShared_7170_; uint8_t v_isSharedCheck_7201_; 
v_a_7167_ = lean_ctor_get(v___x_7166_, 0);
v_isSharedCheck_7201_ = !lean_is_exclusive(v___x_7166_);
if (v_isSharedCheck_7201_ == 0)
{
v___x_7169_ = v___x_7166_;
v_isShared_7170_ = v_isSharedCheck_7201_;
goto v_resetjp_7168_;
}
else
{
lean_inc(v_a_7167_);
lean_dec(v___x_7166_);
v___x_7169_ = lean_box(0);
v_isShared_7170_ = v_isSharedCheck_7201_;
goto v_resetjp_7168_;
}
v_resetjp_7168_:
{
if (lean_obj_tag(v_a_7167_) == 1)
{
lean_object* v_val_7171_; lean_object* v___x_7173_; uint8_t v_isShared_7174_; uint8_t v_isSharedCheck_7196_; 
lean_del_object(v___x_7169_);
v_val_7171_ = lean_ctor_get(v_a_7167_, 0);
v_isSharedCheck_7196_ = !lean_is_exclusive(v_a_7167_);
if (v_isSharedCheck_7196_ == 0)
{
v___x_7173_ = v_a_7167_;
v_isShared_7174_ = v_isSharedCheck_7196_;
goto v_resetjp_7172_;
}
else
{
lean_inc(v_val_7171_);
lean_dec(v_a_7167_);
v___x_7173_ = lean_box(0);
v_isShared_7174_ = v_isSharedCheck_7196_;
goto v_resetjp_7172_;
}
v_resetjp_7172_:
{
lean_object* v___x_7175_; lean_object* v___x_7176_; 
v___x_7175_ = l_BitVec_ofInt(v_val_7165_, v_val_7171_);
lean_dec(v_val_7171_);
v___x_7176_ = l_BitVec_toExpr_x27___redArg(v_val_7165_, v___x_7175_, v_a_7135_, v_a_7136_, v_a_7137_, v_a_7138_, v_a_7139_);
if (lean_obj_tag(v___x_7176_) == 0)
{
lean_object* v_a_7177_; lean_object* v___x_7179_; uint8_t v_isShared_7180_; uint8_t v_isSharedCheck_7187_; 
v_a_7177_ = lean_ctor_get(v___x_7176_, 0);
v_isSharedCheck_7187_ = !lean_is_exclusive(v___x_7176_);
if (v_isSharedCheck_7187_ == 0)
{
v___x_7179_ = v___x_7176_;
v_isShared_7180_ = v_isSharedCheck_7187_;
goto v_resetjp_7178_;
}
else
{
lean_inc(v_a_7177_);
lean_dec(v___x_7176_);
v___x_7179_ = lean_box(0);
v_isShared_7180_ = v_isSharedCheck_7187_;
goto v_resetjp_7178_;
}
v_resetjp_7178_:
{
lean_object* v___x_7182_; 
if (v_isShared_7174_ == 0)
{
lean_ctor_set_tag(v___x_7173_, 0);
lean_ctor_set(v___x_7173_, 0, v_a_7177_);
v___x_7182_ = v___x_7173_;
goto v_reusejp_7181_;
}
else
{
lean_object* v_reuseFailAlloc_7186_; 
v_reuseFailAlloc_7186_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7186_, 0, v_a_7177_);
v___x_7182_ = v_reuseFailAlloc_7186_;
goto v_reusejp_7181_;
}
v_reusejp_7181_:
{
lean_object* v___x_7184_; 
if (v_isShared_7180_ == 0)
{
lean_ctor_set(v___x_7179_, 0, v___x_7182_);
v___x_7184_ = v___x_7179_;
goto v_reusejp_7183_;
}
else
{
lean_object* v_reuseFailAlloc_7185_; 
v_reuseFailAlloc_7185_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7185_, 0, v___x_7182_);
v___x_7184_ = v_reuseFailAlloc_7185_;
goto v_reusejp_7183_;
}
v_reusejp_7183_:
{
return v___x_7184_;
}
}
}
}
else
{
lean_object* v_a_7188_; lean_object* v___x_7190_; uint8_t v_isShared_7191_; uint8_t v_isSharedCheck_7195_; 
lean_del_object(v___x_7173_);
v_a_7188_ = lean_ctor_get(v___x_7176_, 0);
v_isSharedCheck_7195_ = !lean_is_exclusive(v___x_7176_);
if (v_isSharedCheck_7195_ == 0)
{
v___x_7190_ = v___x_7176_;
v_isShared_7191_ = v_isSharedCheck_7195_;
goto v_resetjp_7189_;
}
else
{
lean_inc(v_a_7188_);
lean_dec(v___x_7176_);
v___x_7190_ = lean_box(0);
v_isShared_7191_ = v_isSharedCheck_7195_;
goto v_resetjp_7189_;
}
v_resetjp_7189_:
{
lean_object* v___x_7193_; 
if (v_isShared_7191_ == 0)
{
v___x_7193_ = v___x_7190_;
goto v_reusejp_7192_;
}
else
{
lean_object* v_reuseFailAlloc_7194_; 
v_reuseFailAlloc_7194_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7194_, 0, v_a_7188_);
v___x_7193_ = v_reuseFailAlloc_7194_;
goto v_reusejp_7192_;
}
v_reusejp_7192_:
{
return v___x_7193_;
}
}
}
}
}
else
{
lean_object* v___x_7197_; lean_object* v___x_7199_; 
lean_dec(v_a_7167_);
lean_dec(v_val_7165_);
lean_dec(v_a_7139_);
lean_dec_ref(v_a_7138_);
lean_dec(v_a_7137_);
lean_dec_ref(v_a_7136_);
v___x_7197_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7170_ == 0)
{
lean_ctor_set(v___x_7169_, 0, v___x_7197_);
v___x_7199_ = v___x_7169_;
goto v_reusejp_7198_;
}
else
{
lean_object* v_reuseFailAlloc_7200_; 
v_reuseFailAlloc_7200_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7200_, 0, v___x_7197_);
v___x_7199_ = v_reuseFailAlloc_7200_;
goto v_reusejp_7198_;
}
v_reusejp_7198_:
{
return v___x_7199_;
}
}
}
}
else
{
lean_object* v_a_7202_; lean_object* v___x_7204_; uint8_t v_isShared_7205_; uint8_t v_isSharedCheck_7209_; 
lean_dec(v_val_7165_);
lean_dec(v_a_7139_);
lean_dec_ref(v_a_7138_);
lean_dec(v_a_7137_);
lean_dec_ref(v_a_7136_);
v_a_7202_ = lean_ctor_get(v___x_7166_, 0);
v_isSharedCheck_7209_ = !lean_is_exclusive(v___x_7166_);
if (v_isSharedCheck_7209_ == 0)
{
v___x_7204_ = v___x_7166_;
v_isShared_7205_ = v_isSharedCheck_7209_;
goto v_resetjp_7203_;
}
else
{
lean_inc(v_a_7202_);
lean_dec(v___x_7166_);
v___x_7204_ = lean_box(0);
v_isShared_7205_ = v_isSharedCheck_7209_;
goto v_resetjp_7203_;
}
v_resetjp_7203_:
{
lean_object* v___x_7207_; 
if (v_isShared_7205_ == 0)
{
v___x_7207_ = v___x_7204_;
goto v_reusejp_7206_;
}
else
{
lean_object* v_reuseFailAlloc_7208_; 
v_reuseFailAlloc_7208_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7208_, 0, v_a_7202_);
v___x_7207_ = v_reuseFailAlloc_7208_;
goto v_reusejp_7206_;
}
v_reusejp_7206_:
{
return v___x_7207_;
}
}
}
}
else
{
lean_object* v___x_7210_; lean_object* v___x_7212_; 
lean_dec(v_a_7161_);
lean_dec_ref(v_arg_7153_);
lean_dec(v_a_7139_);
lean_dec_ref(v_a_7138_);
lean_dec(v_a_7137_);
lean_dec_ref(v_a_7136_);
v___x_7210_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7164_ == 0)
{
lean_ctor_set(v___x_7163_, 0, v___x_7210_);
v___x_7212_ = v___x_7163_;
goto v_reusejp_7211_;
}
else
{
lean_object* v_reuseFailAlloc_7213_; 
v_reuseFailAlloc_7213_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7213_, 0, v___x_7210_);
v___x_7212_ = v_reuseFailAlloc_7213_;
goto v_reusejp_7211_;
}
v_reusejp_7211_:
{
return v___x_7212_;
}
}
}
}
else
{
lean_object* v_a_7215_; lean_object* v___x_7217_; uint8_t v_isShared_7218_; uint8_t v_isSharedCheck_7222_; 
lean_dec_ref(v_arg_7153_);
lean_dec(v_a_7139_);
lean_dec_ref(v_a_7138_);
lean_dec(v_a_7137_);
lean_dec_ref(v_a_7136_);
v_a_7215_ = lean_ctor_get(v___x_7160_, 0);
v_isSharedCheck_7222_ = !lean_is_exclusive(v___x_7160_);
if (v_isSharedCheck_7222_ == 0)
{
v___x_7217_ = v___x_7160_;
v_isShared_7218_ = v_isSharedCheck_7222_;
goto v_resetjp_7216_;
}
else
{
lean_inc(v_a_7215_);
lean_dec(v___x_7160_);
v___x_7217_ = lean_box(0);
v_isShared_7218_ = v_isSharedCheck_7222_;
goto v_resetjp_7216_;
}
v_resetjp_7216_:
{
lean_object* v___x_7220_; 
if (v_isShared_7218_ == 0)
{
v___x_7220_ = v___x_7217_;
goto v_reusejp_7219_;
}
else
{
lean_object* v_reuseFailAlloc_7221_; 
v_reuseFailAlloc_7221_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7221_, 0, v_a_7215_);
v___x_7220_ = v_reuseFailAlloc_7221_;
goto v_reusejp_7219_;
}
v_reusejp_7219_:
{
return v___x_7220_;
}
}
}
}
}
}
v___jp_7146_:
{
lean_object* v___x_7147_; lean_object* v___x_7149_; 
v___x_7147_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7145_ == 0)
{
lean_ctor_set(v___x_7144_, 0, v___x_7147_);
v___x_7149_ = v___x_7144_;
goto v_reusejp_7148_;
}
else
{
lean_object* v_reuseFailAlloc_7150_; 
v_reuseFailAlloc_7150_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7150_, 0, v___x_7147_);
v___x_7149_ = v_reuseFailAlloc_7150_;
goto v_reusejp_7148_;
}
v_reusejp_7148_:
{
return v___x_7149_;
}
}
}
}
else
{
lean_object* v_a_7224_; lean_object* v___x_7226_; uint8_t v_isShared_7227_; uint8_t v_isSharedCheck_7231_; 
lean_dec(v_a_7139_);
lean_dec_ref(v_a_7138_);
lean_dec(v_a_7137_);
lean_dec_ref(v_a_7136_);
v_a_7224_ = lean_ctor_get(v___x_7141_, 0);
v_isSharedCheck_7231_ = !lean_is_exclusive(v___x_7141_);
if (v_isSharedCheck_7231_ == 0)
{
v___x_7226_ = v___x_7141_;
v_isShared_7227_ = v_isSharedCheck_7231_;
goto v_resetjp_7225_;
}
else
{
lean_inc(v_a_7224_);
lean_dec(v___x_7141_);
v___x_7226_ = lean_box(0);
v_isShared_7227_ = v_isSharedCheck_7231_;
goto v_resetjp_7225_;
}
v_resetjp_7225_:
{
lean_object* v___x_7229_; 
if (v_isShared_7227_ == 0)
{
v___x_7229_ = v___x_7226_;
goto v_reusejp_7228_;
}
else
{
lean_object* v_reuseFailAlloc_7230_; 
v_reuseFailAlloc_7230_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7230_, 0, v_a_7224_);
v___x_7229_ = v_reuseFailAlloc_7230_;
goto v_reusejp_7228_;
}
v_reusejp_7228_:
{
return v___x_7229_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___redArg___boxed(lean_object* v_e_7232_, lean_object* v_a_7233_, lean_object* v_a_7234_, lean_object* v_a_7235_, lean_object* v_a_7236_, lean_object* v_a_7237_, lean_object* v_a_7238_){
_start:
{
lean_object* v_res_7239_; 
v_res_7239_ = l_BitVec_reduceOfInt___redArg(v_e_7232_, v_a_7233_, v_a_7234_, v_a_7235_, v_a_7236_, v_a_7237_);
lean_dec_ref(v_a_7233_);
return v_res_7239_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt(lean_object* v_e_7240_, lean_object* v_a_7241_, lean_object* v_a_7242_, lean_object* v_a_7243_, lean_object* v_a_7244_, lean_object* v_a_7245_, lean_object* v_a_7246_, lean_object* v_a_7247_){
_start:
{
lean_object* v___x_7249_; 
v___x_7249_ = l_BitVec_reduceOfInt___redArg(v_e_7240_, v_a_7242_, v_a_7244_, v_a_7245_, v_a_7246_, v_a_7247_);
return v___x_7249_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___boxed(lean_object* v_e_7250_, lean_object* v_a_7251_, lean_object* v_a_7252_, lean_object* v_a_7253_, lean_object* v_a_7254_, lean_object* v_a_7255_, lean_object* v_a_7256_, lean_object* v_a_7257_, lean_object* v_a_7258_){
_start:
{
lean_object* v_res_7259_; 
v_res_7259_ = l_BitVec_reduceOfInt(v_e_7250_, v_a_7251_, v_a_7252_, v_a_7253_, v_a_7254_, v_a_7255_, v_a_7256_, v_a_7257_);
lean_dec(v_a_7253_);
lean_dec_ref(v_a_7252_);
lean_dec(v_a_7251_);
return v_res_7259_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_7275_; lean_object* v___x_7276_; lean_object* v___x_7277_; lean_object* v___x_7278_; 
v___x_7275_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_));
v___x_7276_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_));
v___x_7277_ = lean_alloc_closure((void*)(l_BitVec_reduceOfInt___boxed), 9, 0);
v___x_7278_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_7275_, v___x_7276_, v___x_7277_);
return v___x_7278_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14____boxed(lean_object* v_a_7279_){
_start:
{
lean_object* v_res_7280_; 
v_res_7280_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_();
return v_res_7280_;
}
}
static lean_object* _init_l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_7281_; lean_object* v___x_7282_; 
v___x_7281_ = lean_alloc_closure((void*)(l_BitVec_reduceOfInt___boxed), 9, 0);
v___x_7282_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_7282_, 0, v___x_7281_);
return v___x_7282_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_7284_; uint8_t v___x_7285_; lean_object* v___x_7286_; lean_object* v___x_7287_; 
v___x_7284_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_));
v___x_7285_ = 1;
v___x_7286_ = lean_obj_once(&l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_, &l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16__once, _init_l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_);
v___x_7287_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_7284_, v___x_7285_, v___x_7286_);
return v___x_7287_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16____boxed(lean_object* v_a_7288_){
_start:
{
lean_object* v_res_7289_; 
v_res_7289_ = l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_();
return v_res_7289_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_7291_; uint8_t v___x_7292_; lean_object* v___x_7293_; lean_object* v___x_7294_; 
v___x_7291_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_));
v___x_7292_ = 1;
v___x_7293_ = lean_obj_once(&l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_, &l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16__once, _init_l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_);
v___x_7294_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_7291_, v___x_7292_, v___x_7293_);
return v___x_7294_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_18____boxed(lean_object* v_a_7295_){
_start:
{
lean_object* v_res_7296_; 
v_res_7296_ = l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_18_();
return v_res_7296_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___redArg(lean_object* v_e_7297_, lean_object* v_a_7298_, lean_object* v_a_7299_, lean_object* v_a_7300_, lean_object* v_a_7301_, lean_object* v_a_7302_){
_start:
{
lean_object* v___x_7304_; 
v___x_7304_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_7297_, v_a_7300_);
if (lean_obj_tag(v___x_7304_) == 0)
{
lean_object* v_a_7305_; lean_object* v___x_7307_; uint8_t v_isShared_7308_; uint8_t v_isSharedCheck_7391_; 
v_a_7305_ = lean_ctor_get(v___x_7304_, 0);
v_isSharedCheck_7391_ = !lean_is_exclusive(v___x_7304_);
if (v_isSharedCheck_7391_ == 0)
{
v___x_7307_ = v___x_7304_;
v_isShared_7308_ = v_isSharedCheck_7391_;
goto v_resetjp_7306_;
}
else
{
lean_inc(v_a_7305_);
lean_dec(v___x_7304_);
v___x_7307_ = lean_box(0);
v_isShared_7308_ = v_isSharedCheck_7391_;
goto v_resetjp_7306_;
}
v_resetjp_7306_:
{
lean_object* v___x_7314_; uint8_t v___x_7315_; 
v___x_7314_ = l_Lean_Expr_cleanupAnnotations(v_a_7305_);
v___x_7315_ = l_Lean_Expr_isApp(v___x_7314_);
if (v___x_7315_ == 0)
{
lean_dec_ref(v___x_7314_);
lean_dec(v_a_7302_);
lean_dec_ref(v_a_7301_);
lean_dec(v_a_7300_);
lean_dec_ref(v_a_7299_);
goto v___jp_7309_;
}
else
{
lean_object* v_arg_7316_; lean_object* v___x_7317_; uint8_t v___x_7318_; 
v_arg_7316_ = lean_ctor_get(v___x_7314_, 1);
lean_inc_ref(v_arg_7316_);
v___x_7317_ = l_Lean_Expr_appFnCleanup___redArg(v___x_7314_);
v___x_7318_ = l_Lean_Expr_isApp(v___x_7317_);
if (v___x_7318_ == 0)
{
lean_dec_ref(v___x_7317_);
lean_dec_ref(v_arg_7316_);
lean_dec(v_a_7302_);
lean_dec_ref(v_a_7301_);
lean_dec(v_a_7300_);
lean_dec_ref(v_a_7299_);
goto v___jp_7309_;
}
else
{
lean_object* v_arg_7319_; lean_object* v___x_7320_; lean_object* v___x_7321_; uint8_t v___x_7322_; 
v_arg_7319_ = lean_ctor_get(v___x_7317_, 1);
lean_inc_ref(v_arg_7319_);
v___x_7320_ = l_Lean_Expr_appFnCleanup___redArg(v___x_7317_);
v___x_7321_ = ((lean_object*)(l_BitVec_toExpr_x27___redArg___closed__4));
v___x_7322_ = l_Lean_Expr_isConstOf(v___x_7320_, v___x_7321_);
lean_dec_ref(v___x_7320_);
if (v___x_7322_ == 0)
{
lean_dec_ref(v_arg_7319_);
lean_dec_ref(v_arg_7316_);
lean_dec(v_a_7302_);
lean_dec_ref(v_a_7301_);
lean_dec(v_a_7300_);
lean_dec_ref(v_a_7299_);
goto v___jp_7309_;
}
else
{
lean_object* v___x_7323_; 
lean_del_object(v___x_7307_);
lean_inc(v_a_7302_);
lean_inc_ref(v_a_7301_);
lean_inc(v_a_7300_);
lean_inc_ref(v_a_7299_);
v___x_7323_ = l_Lean_Meta_getNatValue_x3f(v_arg_7319_, v_a_7299_, v_a_7300_, v_a_7301_, v_a_7302_);
lean_dec_ref(v_arg_7319_);
if (lean_obj_tag(v___x_7323_) == 0)
{
lean_object* v_a_7324_; lean_object* v___x_7326_; uint8_t v_isShared_7327_; uint8_t v_isSharedCheck_7382_; 
v_a_7324_ = lean_ctor_get(v___x_7323_, 0);
v_isSharedCheck_7382_ = !lean_is_exclusive(v___x_7323_);
if (v_isSharedCheck_7382_ == 0)
{
v___x_7326_ = v___x_7323_;
v_isShared_7327_ = v_isSharedCheck_7382_;
goto v_resetjp_7325_;
}
else
{
lean_inc(v_a_7324_);
lean_dec(v___x_7323_);
v___x_7326_ = lean_box(0);
v_isShared_7327_ = v_isSharedCheck_7382_;
goto v_resetjp_7325_;
}
v_resetjp_7325_:
{
if (lean_obj_tag(v_a_7324_) == 1)
{
lean_object* v_val_7328_; lean_object* v___x_7329_; 
lean_del_object(v___x_7326_);
v_val_7328_ = lean_ctor_get(v_a_7324_, 0);
lean_inc(v_val_7328_);
lean_dec_ref(v_a_7324_);
lean_inc(v_a_7302_);
lean_inc_ref(v_a_7301_);
lean_inc(v_a_7300_);
lean_inc_ref(v_a_7299_);
v___x_7329_ = l_Lean_Meta_getNatValue_x3f(v_arg_7316_, v_a_7299_, v_a_7300_, v_a_7301_, v_a_7302_);
lean_dec_ref(v_arg_7316_);
if (lean_obj_tag(v___x_7329_) == 0)
{
lean_object* v_a_7330_; lean_object* v___x_7332_; uint8_t v_isShared_7333_; uint8_t v_isSharedCheck_7369_; 
v_a_7330_ = lean_ctor_get(v___x_7329_, 0);
v_isSharedCheck_7369_ = !lean_is_exclusive(v___x_7329_);
if (v_isSharedCheck_7369_ == 0)
{
v___x_7332_ = v___x_7329_;
v_isShared_7333_ = v_isSharedCheck_7369_;
goto v_resetjp_7331_;
}
else
{
lean_inc(v_a_7330_);
lean_dec(v___x_7329_);
v___x_7332_ = lean_box(0);
v_isShared_7333_ = v_isSharedCheck_7369_;
goto v_resetjp_7331_;
}
v_resetjp_7331_:
{
if (lean_obj_tag(v_a_7330_) == 1)
{
lean_object* v_val_7334_; lean_object* v___x_7336_; uint8_t v_isShared_7337_; uint8_t v_isSharedCheck_7364_; 
v_val_7334_ = lean_ctor_get(v_a_7330_, 0);
v_isSharedCheck_7364_ = !lean_is_exclusive(v_a_7330_);
if (v_isSharedCheck_7364_ == 0)
{
v___x_7336_ = v_a_7330_;
v_isShared_7337_ = v_isSharedCheck_7364_;
goto v_resetjp_7335_;
}
else
{
lean_inc(v_val_7334_);
lean_dec(v_a_7330_);
v___x_7336_ = lean_box(0);
v_isShared_7337_ = v_isSharedCheck_7364_;
goto v_resetjp_7335_;
}
v_resetjp_7335_:
{
lean_object* v___x_7338_; uint8_t v___x_7339_; 
v___x_7338_ = l_BitVec_ofNat(v_val_7328_, v_val_7334_);
v___x_7339_ = lean_nat_dec_eq(v___x_7338_, v_val_7334_);
lean_dec(v_val_7334_);
if (v___x_7339_ == 0)
{
lean_object* v___x_7340_; 
lean_del_object(v___x_7332_);
v___x_7340_ = l_BitVec_toExpr_x27___redArg(v_val_7328_, v___x_7338_, v_a_7298_, v_a_7299_, v_a_7300_, v_a_7301_, v_a_7302_);
if (lean_obj_tag(v___x_7340_) == 0)
{
lean_object* v_a_7341_; lean_object* v___x_7343_; uint8_t v_isShared_7344_; uint8_t v_isSharedCheck_7351_; 
v_a_7341_ = lean_ctor_get(v___x_7340_, 0);
v_isSharedCheck_7351_ = !lean_is_exclusive(v___x_7340_);
if (v_isSharedCheck_7351_ == 0)
{
v___x_7343_ = v___x_7340_;
v_isShared_7344_ = v_isSharedCheck_7351_;
goto v_resetjp_7342_;
}
else
{
lean_inc(v_a_7341_);
lean_dec(v___x_7340_);
v___x_7343_ = lean_box(0);
v_isShared_7344_ = v_isSharedCheck_7351_;
goto v_resetjp_7342_;
}
v_resetjp_7342_:
{
lean_object* v___x_7346_; 
if (v_isShared_7337_ == 0)
{
lean_ctor_set_tag(v___x_7336_, 0);
lean_ctor_set(v___x_7336_, 0, v_a_7341_);
v___x_7346_ = v___x_7336_;
goto v_reusejp_7345_;
}
else
{
lean_object* v_reuseFailAlloc_7350_; 
v_reuseFailAlloc_7350_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7350_, 0, v_a_7341_);
v___x_7346_ = v_reuseFailAlloc_7350_;
goto v_reusejp_7345_;
}
v_reusejp_7345_:
{
lean_object* v___x_7348_; 
if (v_isShared_7344_ == 0)
{
lean_ctor_set(v___x_7343_, 0, v___x_7346_);
v___x_7348_ = v___x_7343_;
goto v_reusejp_7347_;
}
else
{
lean_object* v_reuseFailAlloc_7349_; 
v_reuseFailAlloc_7349_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7349_, 0, v___x_7346_);
v___x_7348_ = v_reuseFailAlloc_7349_;
goto v_reusejp_7347_;
}
v_reusejp_7347_:
{
return v___x_7348_;
}
}
}
}
else
{
lean_object* v_a_7352_; lean_object* v___x_7354_; uint8_t v_isShared_7355_; uint8_t v_isSharedCheck_7359_; 
lean_del_object(v___x_7336_);
v_a_7352_ = lean_ctor_get(v___x_7340_, 0);
v_isSharedCheck_7359_ = !lean_is_exclusive(v___x_7340_);
if (v_isSharedCheck_7359_ == 0)
{
v___x_7354_ = v___x_7340_;
v_isShared_7355_ = v_isSharedCheck_7359_;
goto v_resetjp_7353_;
}
else
{
lean_inc(v_a_7352_);
lean_dec(v___x_7340_);
v___x_7354_ = lean_box(0);
v_isShared_7355_ = v_isSharedCheck_7359_;
goto v_resetjp_7353_;
}
v_resetjp_7353_:
{
lean_object* v___x_7357_; 
if (v_isShared_7355_ == 0)
{
v___x_7357_ = v___x_7354_;
goto v_reusejp_7356_;
}
else
{
lean_object* v_reuseFailAlloc_7358_; 
v_reuseFailAlloc_7358_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7358_, 0, v_a_7352_);
v___x_7357_ = v_reuseFailAlloc_7358_;
goto v_reusejp_7356_;
}
v_reusejp_7356_:
{
return v___x_7357_;
}
}
}
}
else
{
lean_object* v___x_7360_; lean_object* v___x_7362_; 
lean_dec(v___x_7338_);
lean_del_object(v___x_7336_);
lean_dec(v_val_7328_);
lean_dec(v_a_7302_);
lean_dec_ref(v_a_7301_);
lean_dec(v_a_7300_);
lean_dec_ref(v_a_7299_);
v___x_7360_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7333_ == 0)
{
lean_ctor_set(v___x_7332_, 0, v___x_7360_);
v___x_7362_ = v___x_7332_;
goto v_reusejp_7361_;
}
else
{
lean_object* v_reuseFailAlloc_7363_; 
v_reuseFailAlloc_7363_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7363_, 0, v___x_7360_);
v___x_7362_ = v_reuseFailAlloc_7363_;
goto v_reusejp_7361_;
}
v_reusejp_7361_:
{
return v___x_7362_;
}
}
}
}
else
{
lean_object* v___x_7365_; lean_object* v___x_7367_; 
lean_dec(v_a_7330_);
lean_dec(v_val_7328_);
lean_dec(v_a_7302_);
lean_dec_ref(v_a_7301_);
lean_dec(v_a_7300_);
lean_dec_ref(v_a_7299_);
v___x_7365_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7333_ == 0)
{
lean_ctor_set(v___x_7332_, 0, v___x_7365_);
v___x_7367_ = v___x_7332_;
goto v_reusejp_7366_;
}
else
{
lean_object* v_reuseFailAlloc_7368_; 
v_reuseFailAlloc_7368_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7368_, 0, v___x_7365_);
v___x_7367_ = v_reuseFailAlloc_7368_;
goto v_reusejp_7366_;
}
v_reusejp_7366_:
{
return v___x_7367_;
}
}
}
}
else
{
lean_object* v_a_7370_; lean_object* v___x_7372_; uint8_t v_isShared_7373_; uint8_t v_isSharedCheck_7377_; 
lean_dec(v_val_7328_);
lean_dec(v_a_7302_);
lean_dec_ref(v_a_7301_);
lean_dec(v_a_7300_);
lean_dec_ref(v_a_7299_);
v_a_7370_ = lean_ctor_get(v___x_7329_, 0);
v_isSharedCheck_7377_ = !lean_is_exclusive(v___x_7329_);
if (v_isSharedCheck_7377_ == 0)
{
v___x_7372_ = v___x_7329_;
v_isShared_7373_ = v_isSharedCheck_7377_;
goto v_resetjp_7371_;
}
else
{
lean_inc(v_a_7370_);
lean_dec(v___x_7329_);
v___x_7372_ = lean_box(0);
v_isShared_7373_ = v_isSharedCheck_7377_;
goto v_resetjp_7371_;
}
v_resetjp_7371_:
{
lean_object* v___x_7375_; 
if (v_isShared_7373_ == 0)
{
v___x_7375_ = v___x_7372_;
goto v_reusejp_7374_;
}
else
{
lean_object* v_reuseFailAlloc_7376_; 
v_reuseFailAlloc_7376_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7376_, 0, v_a_7370_);
v___x_7375_ = v_reuseFailAlloc_7376_;
goto v_reusejp_7374_;
}
v_reusejp_7374_:
{
return v___x_7375_;
}
}
}
}
else
{
lean_object* v___x_7378_; lean_object* v___x_7380_; 
lean_dec(v_a_7324_);
lean_dec_ref(v_arg_7316_);
lean_dec(v_a_7302_);
lean_dec_ref(v_a_7301_);
lean_dec(v_a_7300_);
lean_dec_ref(v_a_7299_);
v___x_7378_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7327_ == 0)
{
lean_ctor_set(v___x_7326_, 0, v___x_7378_);
v___x_7380_ = v___x_7326_;
goto v_reusejp_7379_;
}
else
{
lean_object* v_reuseFailAlloc_7381_; 
v_reuseFailAlloc_7381_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7381_, 0, v___x_7378_);
v___x_7380_ = v_reuseFailAlloc_7381_;
goto v_reusejp_7379_;
}
v_reusejp_7379_:
{
return v___x_7380_;
}
}
}
}
else
{
lean_object* v_a_7383_; lean_object* v___x_7385_; uint8_t v_isShared_7386_; uint8_t v_isSharedCheck_7390_; 
lean_dec_ref(v_arg_7316_);
lean_dec(v_a_7302_);
lean_dec_ref(v_a_7301_);
lean_dec(v_a_7300_);
lean_dec_ref(v_a_7299_);
v_a_7383_ = lean_ctor_get(v___x_7323_, 0);
v_isSharedCheck_7390_ = !lean_is_exclusive(v___x_7323_);
if (v_isSharedCheck_7390_ == 0)
{
v___x_7385_ = v___x_7323_;
v_isShared_7386_ = v_isSharedCheck_7390_;
goto v_resetjp_7384_;
}
else
{
lean_inc(v_a_7383_);
lean_dec(v___x_7323_);
v___x_7385_ = lean_box(0);
v_isShared_7386_ = v_isSharedCheck_7390_;
goto v_resetjp_7384_;
}
v_resetjp_7384_:
{
lean_object* v___x_7388_; 
if (v_isShared_7386_ == 0)
{
v___x_7388_ = v___x_7385_;
goto v_reusejp_7387_;
}
else
{
lean_object* v_reuseFailAlloc_7389_; 
v_reuseFailAlloc_7389_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7389_, 0, v_a_7383_);
v___x_7388_ = v_reuseFailAlloc_7389_;
goto v_reusejp_7387_;
}
v_reusejp_7387_:
{
return v___x_7388_;
}
}
}
}
}
}
v___jp_7309_:
{
lean_object* v___x_7310_; lean_object* v___x_7312_; 
v___x_7310_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7308_ == 0)
{
lean_ctor_set(v___x_7307_, 0, v___x_7310_);
v___x_7312_ = v___x_7307_;
goto v_reusejp_7311_;
}
else
{
lean_object* v_reuseFailAlloc_7313_; 
v_reuseFailAlloc_7313_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7313_, 0, v___x_7310_);
v___x_7312_ = v_reuseFailAlloc_7313_;
goto v_reusejp_7311_;
}
v_reusejp_7311_:
{
return v___x_7312_;
}
}
}
}
else
{
lean_object* v_a_7392_; lean_object* v___x_7394_; uint8_t v_isShared_7395_; uint8_t v_isSharedCheck_7399_; 
lean_dec(v_a_7302_);
lean_dec_ref(v_a_7301_);
lean_dec(v_a_7300_);
lean_dec_ref(v_a_7299_);
v_a_7392_ = lean_ctor_get(v___x_7304_, 0);
v_isSharedCheck_7399_ = !lean_is_exclusive(v___x_7304_);
if (v_isSharedCheck_7399_ == 0)
{
v___x_7394_ = v___x_7304_;
v_isShared_7395_ = v_isSharedCheck_7399_;
goto v_resetjp_7393_;
}
else
{
lean_inc(v_a_7392_);
lean_dec(v___x_7304_);
v___x_7394_ = lean_box(0);
v_isShared_7395_ = v_isSharedCheck_7399_;
goto v_resetjp_7393_;
}
v_resetjp_7393_:
{
lean_object* v___x_7397_; 
if (v_isShared_7395_ == 0)
{
v___x_7397_ = v___x_7394_;
goto v_reusejp_7396_;
}
else
{
lean_object* v_reuseFailAlloc_7398_; 
v_reuseFailAlloc_7398_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7398_, 0, v_a_7392_);
v___x_7397_ = v_reuseFailAlloc_7398_;
goto v_reusejp_7396_;
}
v_reusejp_7396_:
{
return v___x_7397_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___redArg___boxed(lean_object* v_e_7400_, lean_object* v_a_7401_, lean_object* v_a_7402_, lean_object* v_a_7403_, lean_object* v_a_7404_, lean_object* v_a_7405_, lean_object* v_a_7406_){
_start:
{
lean_object* v_res_7407_; 
v_res_7407_ = l_BitVec_reduceOfNat___redArg(v_e_7400_, v_a_7401_, v_a_7402_, v_a_7403_, v_a_7404_, v_a_7405_);
lean_dec_ref(v_a_7401_);
return v_res_7407_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat(lean_object* v_e_7408_, lean_object* v_a_7409_, lean_object* v_a_7410_, lean_object* v_a_7411_, lean_object* v_a_7412_, lean_object* v_a_7413_, lean_object* v_a_7414_, lean_object* v_a_7415_){
_start:
{
lean_object* v___x_7417_; 
v___x_7417_ = l_BitVec_reduceOfNat___redArg(v_e_7408_, v_a_7410_, v_a_7412_, v_a_7413_, v_a_7414_, v_a_7415_);
return v___x_7417_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___boxed(lean_object* v_e_7418_, lean_object* v_a_7419_, lean_object* v_a_7420_, lean_object* v_a_7421_, lean_object* v_a_7422_, lean_object* v_a_7423_, lean_object* v_a_7424_, lean_object* v_a_7425_, lean_object* v_a_7426_){
_start:
{
lean_object* v_res_7427_; 
v_res_7427_ = l_BitVec_reduceOfNat(v_e_7418_, v_a_7419_, v_a_7420_, v_a_7421_, v_a_7422_, v_a_7423_, v_a_7424_, v_a_7425_);
lean_dec(v_a_7421_);
lean_dec_ref(v_a_7420_);
lean_dec(v_a_7419_);
return v_res_7427_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_7443_; lean_object* v___x_7444_; lean_object* v___x_7445_; lean_object* v___x_7446_; 
v___x_7443_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_));
v___x_7444_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_));
v___x_7445_ = lean_alloc_closure((void*)(l_BitVec_reduceOfNat___boxed), 9, 0);
v___x_7446_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_7443_, v___x_7444_, v___x_7445_);
return v___x_7446_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14____boxed(lean_object* v_a_7447_){
_start:
{
lean_object* v_res_7448_; 
v_res_7448_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_();
return v_res_7448_;
}
}
static lean_object* _init_l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_7449_; lean_object* v___x_7450_; 
v___x_7449_ = lean_alloc_closure((void*)(l_BitVec_reduceOfNat___boxed), 9, 0);
v___x_7450_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_7450_, 0, v___x_7449_);
return v___x_7450_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_7452_; uint8_t v___x_7453_; lean_object* v___x_7454_; lean_object* v___x_7455_; 
v___x_7452_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_));
v___x_7453_ = 1;
v___x_7454_ = lean_obj_once(&l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_, &l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16__once, _init_l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_);
v___x_7455_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_7452_, v___x_7453_, v___x_7454_);
return v___x_7455_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16____boxed(lean_object* v_a_7456_){
_start:
{
lean_object* v_res_7457_; 
v_res_7457_ = l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_();
return v_res_7457_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_7459_; uint8_t v___x_7460_; lean_object* v___x_7461_; lean_object* v___x_7462_; 
v___x_7459_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_));
v___x_7460_ = 1;
v___x_7461_ = lean_obj_once(&l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_, &l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16__once, _init_l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_);
v___x_7462_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_7459_, v___x_7460_, v___x_7461_);
return v___x_7462_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_18____boxed(lean_object* v_a_7463_){
_start:
{
lean_object* v_res_7464_; 
v_res_7464_ = l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_18_();
return v_res_7464_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceEq___redArg(lean_object* v_e_7468_, lean_object* v_a_7469_, lean_object* v_a_7470_, lean_object* v_a_7471_, lean_object* v_a_7472_){
_start:
{
lean_object* v___x_7474_; lean_object* v___x_7475_; uint8_t v___x_7476_; 
v___x_7474_ = ((lean_object*)(l_BitVec_reduceEq___redArg___closed__1));
v___x_7475_ = lean_unsigned_to_nat(3u);
v___x_7476_ = l_Lean_Expr_isAppOfArity(v_e_7468_, v___x_7474_, v___x_7475_);
if (v___x_7476_ == 0)
{
lean_object* v___x_7477_; lean_object* v___x_7478_; 
lean_dec(v_a_7472_);
lean_dec_ref(v_a_7471_);
lean_dec(v_a_7470_);
lean_dec_ref(v_a_7469_);
lean_dec_ref(v_e_7468_);
v___x_7477_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_7478_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7478_, 0, v___x_7477_);
return v___x_7478_;
}
else
{
lean_object* v___x_7479_; lean_object* v___x_7480_; lean_object* v___x_7481_; 
v___x_7479_ = l_Lean_Expr_appFn_x21(v_e_7468_);
v___x_7480_ = l_Lean_Expr_appArg_x21(v___x_7479_);
lean_dec_ref(v___x_7479_);
lean_inc(v_a_7472_);
lean_inc_ref(v_a_7471_);
lean_inc(v_a_7470_);
lean_inc_ref(v_a_7469_);
v___x_7481_ = l_BitVec_fromExpr_x3f___redArg(v___x_7480_, v_a_7469_, v_a_7470_, v_a_7471_, v_a_7472_);
if (lean_obj_tag(v___x_7481_) == 0)
{
lean_object* v_a_7482_; lean_object* v___x_7484_; uint8_t v_isShared_7485_; uint8_t v_isSharedCheck_7522_; 
v_a_7482_ = lean_ctor_get(v___x_7481_, 0);
v_isSharedCheck_7522_ = !lean_is_exclusive(v___x_7481_);
if (v_isSharedCheck_7522_ == 0)
{
v___x_7484_ = v___x_7481_;
v_isShared_7485_ = v_isSharedCheck_7522_;
goto v_resetjp_7483_;
}
else
{
lean_inc(v_a_7482_);
lean_dec(v___x_7481_);
v___x_7484_ = lean_box(0);
v_isShared_7485_ = v_isSharedCheck_7522_;
goto v_resetjp_7483_;
}
v_resetjp_7483_:
{
if (lean_obj_tag(v_a_7482_) == 1)
{
lean_object* v_val_7486_; lean_object* v___x_7487_; lean_object* v___x_7488_; 
lean_del_object(v___x_7484_);
v_val_7486_ = lean_ctor_get(v_a_7482_, 0);
lean_inc(v_val_7486_);
lean_dec_ref(v_a_7482_);
v___x_7487_ = l_Lean_Expr_appArg_x21(v_e_7468_);
lean_inc(v_a_7472_);
lean_inc_ref(v_a_7471_);
lean_inc(v_a_7470_);
lean_inc_ref(v_a_7469_);
v___x_7488_ = l_BitVec_fromExpr_x3f___redArg(v___x_7487_, v_a_7469_, v_a_7470_, v_a_7471_, v_a_7472_);
if (lean_obj_tag(v___x_7488_) == 0)
{
lean_object* v_a_7489_; lean_object* v___x_7491_; uint8_t v_isShared_7492_; uint8_t v_isSharedCheck_7509_; 
v_a_7489_ = lean_ctor_get(v___x_7488_, 0);
v_isSharedCheck_7509_ = !lean_is_exclusive(v___x_7488_);
if (v_isSharedCheck_7509_ == 0)
{
v___x_7491_ = v___x_7488_;
v_isShared_7492_ = v_isSharedCheck_7509_;
goto v_resetjp_7490_;
}
else
{
lean_inc(v_a_7489_);
lean_dec(v___x_7488_);
v___x_7491_ = lean_box(0);
v_isShared_7492_ = v_isSharedCheck_7509_;
goto v_resetjp_7490_;
}
v_resetjp_7490_:
{
if (lean_obj_tag(v_a_7489_) == 1)
{
lean_object* v_val_7493_; lean_object* v_n_7494_; lean_object* v_value_7495_; lean_object* v_n_7496_; lean_object* v_value_7497_; uint8_t v___x_7498_; 
v_val_7493_ = lean_ctor_get(v_a_7489_, 0);
lean_inc(v_val_7493_);
lean_dec_ref(v_a_7489_);
v_n_7494_ = lean_ctor_get(v_val_7486_, 0);
lean_inc(v_n_7494_);
v_value_7495_ = lean_ctor_get(v_val_7486_, 1);
lean_inc(v_value_7495_);
lean_dec(v_val_7486_);
v_n_7496_ = lean_ctor_get(v_val_7493_, 0);
lean_inc(v_n_7496_);
v_value_7497_ = lean_ctor_get(v_val_7493_, 1);
lean_inc(v_value_7497_);
lean_dec(v_val_7493_);
v___x_7498_ = lean_nat_dec_eq(v_n_7494_, v_n_7496_);
lean_dec(v_n_7496_);
lean_dec(v_n_7494_);
if (v___x_7498_ == 0)
{
lean_object* v___x_7499_; lean_object* v___x_7501_; 
lean_dec(v_value_7497_);
lean_dec(v_value_7495_);
lean_dec(v_a_7472_);
lean_dec_ref(v_a_7471_);
lean_dec(v_a_7470_);
lean_dec_ref(v_a_7469_);
lean_dec_ref(v_e_7468_);
v___x_7499_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_7492_ == 0)
{
lean_ctor_set(v___x_7491_, 0, v___x_7499_);
v___x_7501_ = v___x_7491_;
goto v_reusejp_7500_;
}
else
{
lean_object* v_reuseFailAlloc_7502_; 
v_reuseFailAlloc_7502_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7502_, 0, v___x_7499_);
v___x_7501_ = v_reuseFailAlloc_7502_;
goto v_reusejp_7500_;
}
v_reusejp_7500_:
{
return v___x_7501_;
}
}
else
{
uint8_t v___x_7503_; lean_object* v___x_7504_; 
lean_del_object(v___x_7491_);
v___x_7503_ = lean_nat_dec_eq(v_value_7495_, v_value_7497_);
lean_dec(v_value_7497_);
lean_dec(v_value_7495_);
v___x_7504_ = l_Lean_Meta_Simp_evalPropStep___redArg(v_e_7468_, v___x_7503_, v_a_7469_, v_a_7470_, v_a_7471_, v_a_7472_);
return v___x_7504_;
}
}
else
{
lean_object* v___x_7505_; lean_object* v___x_7507_; 
lean_dec(v_a_7489_);
lean_dec(v_val_7486_);
lean_dec(v_a_7472_);
lean_dec_ref(v_a_7471_);
lean_dec(v_a_7470_);
lean_dec_ref(v_a_7469_);
lean_dec_ref(v_e_7468_);
v___x_7505_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_7492_ == 0)
{
lean_ctor_set(v___x_7491_, 0, v___x_7505_);
v___x_7507_ = v___x_7491_;
goto v_reusejp_7506_;
}
else
{
lean_object* v_reuseFailAlloc_7508_; 
v_reuseFailAlloc_7508_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7508_, 0, v___x_7505_);
v___x_7507_ = v_reuseFailAlloc_7508_;
goto v_reusejp_7506_;
}
v_reusejp_7506_:
{
return v___x_7507_;
}
}
}
}
else
{
lean_object* v_a_7510_; lean_object* v___x_7512_; uint8_t v_isShared_7513_; uint8_t v_isSharedCheck_7517_; 
lean_dec(v_val_7486_);
lean_dec(v_a_7472_);
lean_dec_ref(v_a_7471_);
lean_dec(v_a_7470_);
lean_dec_ref(v_a_7469_);
lean_dec_ref(v_e_7468_);
v_a_7510_ = lean_ctor_get(v___x_7488_, 0);
v_isSharedCheck_7517_ = !lean_is_exclusive(v___x_7488_);
if (v_isSharedCheck_7517_ == 0)
{
v___x_7512_ = v___x_7488_;
v_isShared_7513_ = v_isSharedCheck_7517_;
goto v_resetjp_7511_;
}
else
{
lean_inc(v_a_7510_);
lean_dec(v___x_7488_);
v___x_7512_ = lean_box(0);
v_isShared_7513_ = v_isSharedCheck_7517_;
goto v_resetjp_7511_;
}
v_resetjp_7511_:
{
lean_object* v___x_7515_; 
if (v_isShared_7513_ == 0)
{
v___x_7515_ = v___x_7512_;
goto v_reusejp_7514_;
}
else
{
lean_object* v_reuseFailAlloc_7516_; 
v_reuseFailAlloc_7516_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7516_, 0, v_a_7510_);
v___x_7515_ = v_reuseFailAlloc_7516_;
goto v_reusejp_7514_;
}
v_reusejp_7514_:
{
return v___x_7515_;
}
}
}
}
else
{
lean_object* v___x_7518_; lean_object* v___x_7520_; 
lean_dec(v_a_7482_);
lean_dec(v_a_7472_);
lean_dec_ref(v_a_7471_);
lean_dec(v_a_7470_);
lean_dec_ref(v_a_7469_);
lean_dec_ref(v_e_7468_);
v___x_7518_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_7485_ == 0)
{
lean_ctor_set(v___x_7484_, 0, v___x_7518_);
v___x_7520_ = v___x_7484_;
goto v_reusejp_7519_;
}
else
{
lean_object* v_reuseFailAlloc_7521_; 
v_reuseFailAlloc_7521_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7521_, 0, v___x_7518_);
v___x_7520_ = v_reuseFailAlloc_7521_;
goto v_reusejp_7519_;
}
v_reusejp_7519_:
{
return v___x_7520_;
}
}
}
}
else
{
lean_object* v_a_7523_; lean_object* v___x_7525_; uint8_t v_isShared_7526_; uint8_t v_isSharedCheck_7530_; 
lean_dec(v_a_7472_);
lean_dec_ref(v_a_7471_);
lean_dec(v_a_7470_);
lean_dec_ref(v_a_7469_);
lean_dec_ref(v_e_7468_);
v_a_7523_ = lean_ctor_get(v___x_7481_, 0);
v_isSharedCheck_7530_ = !lean_is_exclusive(v___x_7481_);
if (v_isSharedCheck_7530_ == 0)
{
v___x_7525_ = v___x_7481_;
v_isShared_7526_ = v_isSharedCheck_7530_;
goto v_resetjp_7524_;
}
else
{
lean_inc(v_a_7523_);
lean_dec(v___x_7481_);
v___x_7525_ = lean_box(0);
v_isShared_7526_ = v_isSharedCheck_7530_;
goto v_resetjp_7524_;
}
v_resetjp_7524_:
{
lean_object* v___x_7528_; 
if (v_isShared_7526_ == 0)
{
v___x_7528_ = v___x_7525_;
goto v_reusejp_7527_;
}
else
{
lean_object* v_reuseFailAlloc_7529_; 
v_reuseFailAlloc_7529_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7529_, 0, v_a_7523_);
v___x_7528_ = v_reuseFailAlloc_7529_;
goto v_reusejp_7527_;
}
v_reusejp_7527_:
{
return v___x_7528_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceEq___redArg___boxed(lean_object* v_e_7531_, lean_object* v_a_7532_, lean_object* v_a_7533_, lean_object* v_a_7534_, lean_object* v_a_7535_, lean_object* v_a_7536_){
_start:
{
lean_object* v_res_7537_; 
v_res_7537_ = l_BitVec_reduceEq___redArg(v_e_7531_, v_a_7532_, v_a_7533_, v_a_7534_, v_a_7535_);
return v_res_7537_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceEq(lean_object* v_e_7538_, lean_object* v_a_7539_, lean_object* v_a_7540_, lean_object* v_a_7541_, lean_object* v_a_7542_, lean_object* v_a_7543_, lean_object* v_a_7544_, lean_object* v_a_7545_){
_start:
{
lean_object* v___x_7547_; 
v___x_7547_ = l_BitVec_reduceEq___redArg(v_e_7538_, v_a_7542_, v_a_7543_, v_a_7544_, v_a_7545_);
return v___x_7547_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceEq___boxed(lean_object* v_e_7548_, lean_object* v_a_7549_, lean_object* v_a_7550_, lean_object* v_a_7551_, lean_object* v_a_7552_, lean_object* v_a_7553_, lean_object* v_a_7554_, lean_object* v_a_7555_, lean_object* v_a_7556_){
_start:
{
lean_object* v_res_7557_; 
v_res_7557_ = l_BitVec_reduceEq(v_e_7548_, v_a_7549_, v_a_7550_, v_a_7551_, v_a_7552_, v_a_7553_, v_a_7554_, v_a_7555_);
lean_dec(v_a_7551_);
lean_dec_ref(v_a_7550_);
lean_dec(v_a_7549_);
return v_res_7557_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_7576_; lean_object* v___x_7577_; lean_object* v___x_7578_; lean_object* v___x_7579_; 
v___x_7576_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_));
v___x_7577_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_));
v___x_7578_ = lean_alloc_closure((void*)(l_BitVec_reduceEq___boxed), 9, 0);
v___x_7579_ = l_Lean_Meta_Simp_registerBuiltinSimproc(v___x_7576_, v___x_7577_, v___x_7578_);
return v___x_7579_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21____boxed(lean_object* v_a_7580_){
_start:
{
lean_object* v_res_7581_; 
v_res_7581_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_();
return v_res_7581_;
}
}
static lean_object* _init_l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_(void){
_start:
{
lean_object* v___x_7582_; lean_object* v___x_7583_; 
v___x_7582_ = lean_alloc_closure((void*)(l_BitVec_reduceEq___boxed), 9, 0);
v___x_7583_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7583_, 0, v___x_7582_);
return v___x_7583_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_7585_; uint8_t v___x_7586_; lean_object* v___x_7587_; lean_object* v___x_7588_; 
v___x_7585_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_));
v___x_7586_ = 1;
v___x_7587_ = lean_obj_once(&l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_, &l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23__once, _init_l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_);
v___x_7588_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_7585_, v___x_7586_, v___x_7587_);
return v___x_7588_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23____boxed(lean_object* v_a_7589_){
_start:
{
lean_object* v_res_7590_; 
v_res_7590_ = l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_();
return v_res_7590_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_25_(){
_start:
{
lean_object* v___x_7592_; uint8_t v___x_7593_; lean_object* v___x_7594_; lean_object* v___x_7595_; 
v___x_7592_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_));
v___x_7593_ = 1;
v___x_7594_ = lean_obj_once(&l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_, &l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23__once, _init_l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_);
v___x_7595_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_7592_, v___x_7593_, v___x_7594_);
return v___x_7595_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_25____boxed(lean_object* v_a_7596_){
_start:
{
lean_object* v_res_7597_; 
v_res_7597_ = l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_25_();
return v_res_7597_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNe___redArg(lean_object* v_e_7601_, lean_object* v_a_7602_, lean_object* v_a_7603_, lean_object* v_a_7604_, lean_object* v_a_7605_){
_start:
{
lean_object* v___x_7607_; lean_object* v___x_7608_; uint8_t v___x_7609_; 
v___x_7607_ = ((lean_object*)(l_BitVec_reduceNe___redArg___closed__1));
v___x_7608_ = lean_unsigned_to_nat(3u);
v___x_7609_ = l_Lean_Expr_isAppOfArity(v_e_7601_, v___x_7607_, v___x_7608_);
if (v___x_7609_ == 0)
{
lean_object* v___x_7610_; lean_object* v___x_7611_; 
lean_dec(v_a_7605_);
lean_dec_ref(v_a_7604_);
lean_dec(v_a_7603_);
lean_dec_ref(v_a_7602_);
lean_dec_ref(v_e_7601_);
v___x_7610_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_7611_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7611_, 0, v___x_7610_);
return v___x_7611_;
}
else
{
lean_object* v___x_7612_; lean_object* v___x_7613_; lean_object* v___x_7614_; 
v___x_7612_ = l_Lean_Expr_appFn_x21(v_e_7601_);
v___x_7613_ = l_Lean_Expr_appArg_x21(v___x_7612_);
lean_dec_ref(v___x_7612_);
lean_inc(v_a_7605_);
lean_inc_ref(v_a_7604_);
lean_inc(v_a_7603_);
lean_inc_ref(v_a_7602_);
v___x_7614_ = l_BitVec_fromExpr_x3f___redArg(v___x_7613_, v_a_7602_, v_a_7603_, v_a_7604_, v_a_7605_);
if (lean_obj_tag(v___x_7614_) == 0)
{
lean_object* v_a_7615_; lean_object* v___x_7617_; uint8_t v_isShared_7618_; uint8_t v_isSharedCheck_7657_; 
v_a_7615_ = lean_ctor_get(v___x_7614_, 0);
v_isSharedCheck_7657_ = !lean_is_exclusive(v___x_7614_);
if (v_isSharedCheck_7657_ == 0)
{
v___x_7617_ = v___x_7614_;
v_isShared_7618_ = v_isSharedCheck_7657_;
goto v_resetjp_7616_;
}
else
{
lean_inc(v_a_7615_);
lean_dec(v___x_7614_);
v___x_7617_ = lean_box(0);
v_isShared_7618_ = v_isSharedCheck_7657_;
goto v_resetjp_7616_;
}
v_resetjp_7616_:
{
if (lean_obj_tag(v_a_7615_) == 1)
{
lean_object* v_val_7619_; lean_object* v___x_7620_; lean_object* v___x_7621_; 
lean_del_object(v___x_7617_);
v_val_7619_ = lean_ctor_get(v_a_7615_, 0);
lean_inc(v_val_7619_);
lean_dec_ref(v_a_7615_);
v___x_7620_ = l_Lean_Expr_appArg_x21(v_e_7601_);
lean_inc(v_a_7605_);
lean_inc_ref(v_a_7604_);
lean_inc(v_a_7603_);
lean_inc_ref(v_a_7602_);
v___x_7621_ = l_BitVec_fromExpr_x3f___redArg(v___x_7620_, v_a_7602_, v_a_7603_, v_a_7604_, v_a_7605_);
if (lean_obj_tag(v___x_7621_) == 0)
{
lean_object* v_a_7622_; lean_object* v___x_7624_; uint8_t v_isShared_7625_; uint8_t v_isSharedCheck_7644_; 
v_a_7622_ = lean_ctor_get(v___x_7621_, 0);
v_isSharedCheck_7644_ = !lean_is_exclusive(v___x_7621_);
if (v_isSharedCheck_7644_ == 0)
{
v___x_7624_ = v___x_7621_;
v_isShared_7625_ = v_isSharedCheck_7644_;
goto v_resetjp_7623_;
}
else
{
lean_inc(v_a_7622_);
lean_dec(v___x_7621_);
v___x_7624_ = lean_box(0);
v_isShared_7625_ = v_isSharedCheck_7644_;
goto v_resetjp_7623_;
}
v_resetjp_7623_:
{
if (lean_obj_tag(v_a_7622_) == 1)
{
lean_object* v_val_7626_; lean_object* v_n_7627_; lean_object* v_value_7628_; lean_object* v_n_7629_; lean_object* v_value_7630_; uint8_t v___x_7631_; 
v_val_7626_ = lean_ctor_get(v_a_7622_, 0);
lean_inc(v_val_7626_);
lean_dec_ref(v_a_7622_);
v_n_7627_ = lean_ctor_get(v_val_7619_, 0);
lean_inc(v_n_7627_);
v_value_7628_ = lean_ctor_get(v_val_7619_, 1);
lean_inc(v_value_7628_);
lean_dec(v_val_7619_);
v_n_7629_ = lean_ctor_get(v_val_7626_, 0);
lean_inc(v_n_7629_);
v_value_7630_ = lean_ctor_get(v_val_7626_, 1);
lean_inc(v_value_7630_);
lean_dec(v_val_7626_);
v___x_7631_ = lean_nat_dec_eq(v_n_7627_, v_n_7629_);
lean_dec(v_n_7629_);
lean_dec(v_n_7627_);
if (v___x_7631_ == 0)
{
lean_object* v___x_7632_; lean_object* v___x_7634_; 
lean_dec(v_value_7630_);
lean_dec(v_value_7628_);
lean_dec(v_a_7605_);
lean_dec_ref(v_a_7604_);
lean_dec(v_a_7603_);
lean_dec_ref(v_a_7602_);
lean_dec_ref(v_e_7601_);
v___x_7632_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_7625_ == 0)
{
lean_ctor_set(v___x_7624_, 0, v___x_7632_);
v___x_7634_ = v___x_7624_;
goto v_reusejp_7633_;
}
else
{
lean_object* v_reuseFailAlloc_7635_; 
v_reuseFailAlloc_7635_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7635_, 0, v___x_7632_);
v___x_7634_ = v_reuseFailAlloc_7635_;
goto v_reusejp_7633_;
}
v_reusejp_7633_:
{
return v___x_7634_;
}
}
else
{
uint8_t v___x_7636_; 
lean_del_object(v___x_7624_);
v___x_7636_ = lean_nat_dec_eq(v_value_7628_, v_value_7630_);
lean_dec(v_value_7630_);
lean_dec(v_value_7628_);
if (v___x_7636_ == 0)
{
lean_object* v___x_7637_; 
v___x_7637_ = l_Lean_Meta_Simp_evalPropStep___redArg(v_e_7601_, v___x_7631_, v_a_7602_, v_a_7603_, v_a_7604_, v_a_7605_);
return v___x_7637_;
}
else
{
uint8_t v___x_7638_; lean_object* v___x_7639_; 
v___x_7638_ = 0;
v___x_7639_ = l_Lean_Meta_Simp_evalPropStep___redArg(v_e_7601_, v___x_7638_, v_a_7602_, v_a_7603_, v_a_7604_, v_a_7605_);
return v___x_7639_;
}
}
}
else
{
lean_object* v___x_7640_; lean_object* v___x_7642_; 
lean_dec(v_a_7622_);
lean_dec(v_val_7619_);
lean_dec(v_a_7605_);
lean_dec_ref(v_a_7604_);
lean_dec(v_a_7603_);
lean_dec_ref(v_a_7602_);
lean_dec_ref(v_e_7601_);
v___x_7640_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_7625_ == 0)
{
lean_ctor_set(v___x_7624_, 0, v___x_7640_);
v___x_7642_ = v___x_7624_;
goto v_reusejp_7641_;
}
else
{
lean_object* v_reuseFailAlloc_7643_; 
v_reuseFailAlloc_7643_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7643_, 0, v___x_7640_);
v___x_7642_ = v_reuseFailAlloc_7643_;
goto v_reusejp_7641_;
}
v_reusejp_7641_:
{
return v___x_7642_;
}
}
}
}
else
{
lean_object* v_a_7645_; lean_object* v___x_7647_; uint8_t v_isShared_7648_; uint8_t v_isSharedCheck_7652_; 
lean_dec(v_val_7619_);
lean_dec(v_a_7605_);
lean_dec_ref(v_a_7604_);
lean_dec(v_a_7603_);
lean_dec_ref(v_a_7602_);
lean_dec_ref(v_e_7601_);
v_a_7645_ = lean_ctor_get(v___x_7621_, 0);
v_isSharedCheck_7652_ = !lean_is_exclusive(v___x_7621_);
if (v_isSharedCheck_7652_ == 0)
{
v___x_7647_ = v___x_7621_;
v_isShared_7648_ = v_isSharedCheck_7652_;
goto v_resetjp_7646_;
}
else
{
lean_inc(v_a_7645_);
lean_dec(v___x_7621_);
v___x_7647_ = lean_box(0);
v_isShared_7648_ = v_isSharedCheck_7652_;
goto v_resetjp_7646_;
}
v_resetjp_7646_:
{
lean_object* v___x_7650_; 
if (v_isShared_7648_ == 0)
{
v___x_7650_ = v___x_7647_;
goto v_reusejp_7649_;
}
else
{
lean_object* v_reuseFailAlloc_7651_; 
v_reuseFailAlloc_7651_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7651_, 0, v_a_7645_);
v___x_7650_ = v_reuseFailAlloc_7651_;
goto v_reusejp_7649_;
}
v_reusejp_7649_:
{
return v___x_7650_;
}
}
}
}
else
{
lean_object* v___x_7653_; lean_object* v___x_7655_; 
lean_dec(v_a_7615_);
lean_dec(v_a_7605_);
lean_dec_ref(v_a_7604_);
lean_dec(v_a_7603_);
lean_dec_ref(v_a_7602_);
lean_dec_ref(v_e_7601_);
v___x_7653_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_7618_ == 0)
{
lean_ctor_set(v___x_7617_, 0, v___x_7653_);
v___x_7655_ = v___x_7617_;
goto v_reusejp_7654_;
}
else
{
lean_object* v_reuseFailAlloc_7656_; 
v_reuseFailAlloc_7656_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7656_, 0, v___x_7653_);
v___x_7655_ = v_reuseFailAlloc_7656_;
goto v_reusejp_7654_;
}
v_reusejp_7654_:
{
return v___x_7655_;
}
}
}
}
else
{
lean_object* v_a_7658_; lean_object* v___x_7660_; uint8_t v_isShared_7661_; uint8_t v_isSharedCheck_7665_; 
lean_dec(v_a_7605_);
lean_dec_ref(v_a_7604_);
lean_dec(v_a_7603_);
lean_dec_ref(v_a_7602_);
lean_dec_ref(v_e_7601_);
v_a_7658_ = lean_ctor_get(v___x_7614_, 0);
v_isSharedCheck_7665_ = !lean_is_exclusive(v___x_7614_);
if (v_isSharedCheck_7665_ == 0)
{
v___x_7660_ = v___x_7614_;
v_isShared_7661_ = v_isSharedCheck_7665_;
goto v_resetjp_7659_;
}
else
{
lean_inc(v_a_7658_);
lean_dec(v___x_7614_);
v___x_7660_ = lean_box(0);
v_isShared_7661_ = v_isSharedCheck_7665_;
goto v_resetjp_7659_;
}
v_resetjp_7659_:
{
lean_object* v___x_7663_; 
if (v_isShared_7661_ == 0)
{
v___x_7663_ = v___x_7660_;
goto v_reusejp_7662_;
}
else
{
lean_object* v_reuseFailAlloc_7664_; 
v_reuseFailAlloc_7664_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7664_, 0, v_a_7658_);
v___x_7663_ = v_reuseFailAlloc_7664_;
goto v_reusejp_7662_;
}
v_reusejp_7662_:
{
return v___x_7663_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNe___redArg___boxed(lean_object* v_e_7666_, lean_object* v_a_7667_, lean_object* v_a_7668_, lean_object* v_a_7669_, lean_object* v_a_7670_, lean_object* v_a_7671_){
_start:
{
lean_object* v_res_7672_; 
v_res_7672_ = l_BitVec_reduceNe___redArg(v_e_7666_, v_a_7667_, v_a_7668_, v_a_7669_, v_a_7670_);
return v_res_7672_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNe(lean_object* v_e_7673_, lean_object* v_a_7674_, lean_object* v_a_7675_, lean_object* v_a_7676_, lean_object* v_a_7677_, lean_object* v_a_7678_, lean_object* v_a_7679_, lean_object* v_a_7680_){
_start:
{
lean_object* v___x_7682_; 
v___x_7682_ = l_BitVec_reduceNe___redArg(v_e_7673_, v_a_7677_, v_a_7678_, v_a_7679_, v_a_7680_);
return v___x_7682_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNe___boxed(lean_object* v_e_7683_, lean_object* v_a_7684_, lean_object* v_a_7685_, lean_object* v_a_7686_, lean_object* v_a_7687_, lean_object* v_a_7688_, lean_object* v_a_7689_, lean_object* v_a_7690_, lean_object* v_a_7691_){
_start:
{
lean_object* v_res_7692_; 
v_res_7692_ = l_BitVec_reduceNe(v_e_7683_, v_a_7684_, v_a_7685_, v_a_7686_, v_a_7687_, v_a_7688_, v_a_7689_, v_a_7690_);
lean_dec(v_a_7686_);
lean_dec_ref(v_a_7685_);
lean_dec(v_a_7684_);
return v_res_7692_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_7716_; lean_object* v___x_7717_; lean_object* v___x_7718_; lean_object* v___x_7719_; 
v___x_7716_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_));
v___x_7717_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__5_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_));
v___x_7718_ = lean_alloc_closure((void*)(l_BitVec_reduceNe___boxed), 9, 0);
v___x_7719_ = l_Lean_Meta_Simp_registerBuiltinSimproc(v___x_7716_, v___x_7717_, v___x_7718_);
return v___x_7719_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21____boxed(lean_object* v_a_7720_){
_start:
{
lean_object* v_res_7721_; 
v_res_7721_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_();
return v_res_7721_;
}
}
static lean_object* _init_l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_(void){
_start:
{
lean_object* v___x_7722_; lean_object* v___x_7723_; 
v___x_7722_ = lean_alloc_closure((void*)(l_BitVec_reduceNe___boxed), 9, 0);
v___x_7723_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7723_, 0, v___x_7722_);
return v___x_7723_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_7725_; uint8_t v___x_7726_; lean_object* v___x_7727_; lean_object* v___x_7728_; 
v___x_7725_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_));
v___x_7726_ = 1;
v___x_7727_ = lean_obj_once(&l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_, &l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23__once, _init_l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_);
v___x_7728_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_7725_, v___x_7726_, v___x_7727_);
return v___x_7728_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23____boxed(lean_object* v_a_7729_){
_start:
{
lean_object* v_res_7730_; 
v_res_7730_ = l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_();
return v_res_7730_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_25_(){
_start:
{
lean_object* v___x_7732_; uint8_t v___x_7733_; lean_object* v___x_7734_; lean_object* v___x_7735_; 
v___x_7732_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_));
v___x_7733_ = 1;
v___x_7734_ = lean_obj_once(&l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_, &l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23__once, _init_l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_);
v___x_7735_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_7732_, v___x_7733_, v___x_7734_);
return v___x_7735_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_25____boxed(lean_object* v_a_7736_){
_start:
{
lean_object* v_res_7737_; 
v_res_7737_ = l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_25_();
return v_res_7737_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___redArg(lean_object* v_e_7743_, lean_object* v_a_7744_, lean_object* v_a_7745_, lean_object* v_a_7746_, lean_object* v_a_7747_){
_start:
{
lean_object* v___x_7749_; lean_object* v___x_7750_; uint8_t v___x_7751_; 
v___x_7749_ = ((lean_object*)(l_BitVec_reduceBEq___redArg___closed__2));
v___x_7750_ = lean_unsigned_to_nat(4u);
v___x_7751_ = l_Lean_Expr_isAppOfArity(v_e_7743_, v___x_7749_, v___x_7750_);
if (v___x_7751_ == 0)
{
lean_object* v___x_7752_; lean_object* v___x_7753_; 
lean_dec(v_a_7747_);
lean_dec_ref(v_a_7746_);
lean_dec(v_a_7745_);
lean_dec_ref(v_a_7744_);
v___x_7752_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_7753_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7753_, 0, v___x_7752_);
return v___x_7753_;
}
else
{
lean_object* v___x_7754_; lean_object* v___x_7755_; lean_object* v___x_7756_; 
v___x_7754_ = l_Lean_Expr_appFn_x21(v_e_7743_);
v___x_7755_ = l_Lean_Expr_appArg_x21(v___x_7754_);
lean_dec_ref(v___x_7754_);
lean_inc(v_a_7747_);
lean_inc_ref(v_a_7746_);
lean_inc(v_a_7745_);
lean_inc_ref(v_a_7744_);
v___x_7756_ = l_BitVec_fromExpr_x3f___redArg(v___x_7755_, v_a_7744_, v_a_7745_, v_a_7746_, v_a_7747_);
if (lean_obj_tag(v___x_7756_) == 0)
{
lean_object* v_a_7757_; lean_object* v___x_7759_; uint8_t v_isShared_7760_; uint8_t v_isSharedCheck_7810_; 
v_a_7757_ = lean_ctor_get(v___x_7756_, 0);
v_isSharedCheck_7810_ = !lean_is_exclusive(v___x_7756_);
if (v_isSharedCheck_7810_ == 0)
{
v___x_7759_ = v___x_7756_;
v_isShared_7760_ = v_isSharedCheck_7810_;
goto v_resetjp_7758_;
}
else
{
lean_inc(v_a_7757_);
lean_dec(v___x_7756_);
v___x_7759_ = lean_box(0);
v_isShared_7760_ = v_isSharedCheck_7810_;
goto v_resetjp_7758_;
}
v_resetjp_7758_:
{
if (lean_obj_tag(v_a_7757_) == 1)
{
lean_object* v_val_7761_; lean_object* v___x_7763_; uint8_t v_isShared_7764_; uint8_t v_isSharedCheck_7805_; 
v_val_7761_ = lean_ctor_get(v_a_7757_, 0);
v_isSharedCheck_7805_ = !lean_is_exclusive(v_a_7757_);
if (v_isSharedCheck_7805_ == 0)
{
v___x_7763_ = v_a_7757_;
v_isShared_7764_ = v_isSharedCheck_7805_;
goto v_resetjp_7762_;
}
else
{
lean_inc(v_val_7761_);
lean_dec(v_a_7757_);
v___x_7763_ = lean_box(0);
v_isShared_7764_ = v_isSharedCheck_7805_;
goto v_resetjp_7762_;
}
v_resetjp_7762_:
{
lean_object* v___x_7765_; lean_object* v___x_7766_; 
v___x_7765_ = l_Lean_Expr_appArg_x21(v_e_7743_);
v___x_7766_ = l_BitVec_fromExpr_x3f___redArg(v___x_7765_, v_a_7744_, v_a_7745_, v_a_7746_, v_a_7747_);
if (lean_obj_tag(v___x_7766_) == 0)
{
lean_object* v_a_7767_; lean_object* v___x_7769_; uint8_t v_isShared_7770_; uint8_t v_isSharedCheck_7796_; 
v_a_7767_ = lean_ctor_get(v___x_7766_, 0);
v_isSharedCheck_7796_ = !lean_is_exclusive(v___x_7766_);
if (v_isSharedCheck_7796_ == 0)
{
v___x_7769_ = v___x_7766_;
v_isShared_7770_ = v_isSharedCheck_7796_;
goto v_resetjp_7768_;
}
else
{
lean_inc(v_a_7767_);
lean_dec(v___x_7766_);
v___x_7769_ = lean_box(0);
v_isShared_7770_ = v_isSharedCheck_7796_;
goto v_resetjp_7768_;
}
v_resetjp_7768_:
{
lean_object* v___y_7772_; 
if (lean_obj_tag(v_a_7767_) == 1)
{
lean_object* v_val_7779_; lean_object* v_n_7780_; lean_object* v_value_7781_; lean_object* v_n_7782_; lean_object* v_value_7783_; uint8_t v___x_7784_; 
v_val_7779_ = lean_ctor_get(v_a_7767_, 0);
lean_inc(v_val_7779_);
lean_dec_ref(v_a_7767_);
v_n_7780_ = lean_ctor_get(v_val_7761_, 0);
lean_inc(v_n_7780_);
v_value_7781_ = lean_ctor_get(v_val_7761_, 1);
lean_inc(v_value_7781_);
lean_dec(v_val_7761_);
v_n_7782_ = lean_ctor_get(v_val_7779_, 0);
lean_inc(v_n_7782_);
v_value_7783_ = lean_ctor_get(v_val_7779_, 1);
lean_inc(v_value_7783_);
lean_dec(v_val_7779_);
v___x_7784_ = lean_nat_dec_eq(v_n_7780_, v_n_7782_);
lean_dec(v_n_7782_);
lean_dec(v_n_7780_);
if (v___x_7784_ == 0)
{
lean_object* v___x_7785_; lean_object* v___x_7787_; 
lean_dec(v_value_7783_);
lean_dec(v_value_7781_);
lean_del_object(v___x_7769_);
lean_del_object(v___x_7763_);
v___x_7785_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7760_ == 0)
{
lean_ctor_set(v___x_7759_, 0, v___x_7785_);
v___x_7787_ = v___x_7759_;
goto v_reusejp_7786_;
}
else
{
lean_object* v_reuseFailAlloc_7788_; 
v_reuseFailAlloc_7788_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7788_, 0, v___x_7785_);
v___x_7787_ = v_reuseFailAlloc_7788_;
goto v_reusejp_7786_;
}
v_reusejp_7786_:
{
return v___x_7787_;
}
}
else
{
uint8_t v___x_7789_; 
lean_del_object(v___x_7759_);
v___x_7789_ = lean_nat_dec_eq(v_value_7781_, v_value_7783_);
lean_dec(v_value_7783_);
lean_dec(v_value_7781_);
if (v___x_7789_ == 0)
{
lean_object* v___x_7790_; 
v___x_7790_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_7772_ = v___x_7790_;
goto v___jp_7771_;
}
else
{
lean_object* v___x_7791_; 
v___x_7791_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_7772_ = v___x_7791_;
goto v___jp_7771_;
}
}
}
else
{
lean_object* v___x_7792_; lean_object* v___x_7794_; 
lean_del_object(v___x_7769_);
lean_dec(v_a_7767_);
lean_del_object(v___x_7763_);
lean_dec(v_val_7761_);
v___x_7792_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7760_ == 0)
{
lean_ctor_set(v___x_7759_, 0, v___x_7792_);
v___x_7794_ = v___x_7759_;
goto v_reusejp_7793_;
}
else
{
lean_object* v_reuseFailAlloc_7795_; 
v_reuseFailAlloc_7795_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7795_, 0, v___x_7792_);
v___x_7794_ = v_reuseFailAlloc_7795_;
goto v_reusejp_7793_;
}
v_reusejp_7793_:
{
return v___x_7794_;
}
}
v___jp_7771_:
{
lean_object* v___x_7774_; 
if (v_isShared_7764_ == 0)
{
lean_ctor_set_tag(v___x_7763_, 0);
lean_ctor_set(v___x_7763_, 0, v___y_7772_);
v___x_7774_ = v___x_7763_;
goto v_reusejp_7773_;
}
else
{
lean_object* v_reuseFailAlloc_7778_; 
v_reuseFailAlloc_7778_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7778_, 0, v___y_7772_);
v___x_7774_ = v_reuseFailAlloc_7778_;
goto v_reusejp_7773_;
}
v_reusejp_7773_:
{
lean_object* v___x_7776_; 
if (v_isShared_7770_ == 0)
{
lean_ctor_set(v___x_7769_, 0, v___x_7774_);
v___x_7776_ = v___x_7769_;
goto v_reusejp_7775_;
}
else
{
lean_object* v_reuseFailAlloc_7777_; 
v_reuseFailAlloc_7777_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7777_, 0, v___x_7774_);
v___x_7776_ = v_reuseFailAlloc_7777_;
goto v_reusejp_7775_;
}
v_reusejp_7775_:
{
return v___x_7776_;
}
}
}
}
}
else
{
lean_object* v_a_7797_; lean_object* v___x_7799_; uint8_t v_isShared_7800_; uint8_t v_isSharedCheck_7804_; 
lean_del_object(v___x_7763_);
lean_dec(v_val_7761_);
lean_del_object(v___x_7759_);
v_a_7797_ = lean_ctor_get(v___x_7766_, 0);
v_isSharedCheck_7804_ = !lean_is_exclusive(v___x_7766_);
if (v_isSharedCheck_7804_ == 0)
{
v___x_7799_ = v___x_7766_;
v_isShared_7800_ = v_isSharedCheck_7804_;
goto v_resetjp_7798_;
}
else
{
lean_inc(v_a_7797_);
lean_dec(v___x_7766_);
v___x_7799_ = lean_box(0);
v_isShared_7800_ = v_isSharedCheck_7804_;
goto v_resetjp_7798_;
}
v_resetjp_7798_:
{
lean_object* v___x_7802_; 
if (v_isShared_7800_ == 0)
{
v___x_7802_ = v___x_7799_;
goto v_reusejp_7801_;
}
else
{
lean_object* v_reuseFailAlloc_7803_; 
v_reuseFailAlloc_7803_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7803_, 0, v_a_7797_);
v___x_7802_ = v_reuseFailAlloc_7803_;
goto v_reusejp_7801_;
}
v_reusejp_7801_:
{
return v___x_7802_;
}
}
}
}
}
else
{
lean_object* v___x_7806_; lean_object* v___x_7808_; 
lean_dec(v_a_7757_);
lean_dec(v_a_7747_);
lean_dec_ref(v_a_7746_);
lean_dec(v_a_7745_);
lean_dec_ref(v_a_7744_);
v___x_7806_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7760_ == 0)
{
lean_ctor_set(v___x_7759_, 0, v___x_7806_);
v___x_7808_ = v___x_7759_;
goto v_reusejp_7807_;
}
else
{
lean_object* v_reuseFailAlloc_7809_; 
v_reuseFailAlloc_7809_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7809_, 0, v___x_7806_);
v___x_7808_ = v_reuseFailAlloc_7809_;
goto v_reusejp_7807_;
}
v_reusejp_7807_:
{
return v___x_7808_;
}
}
}
}
else
{
lean_object* v_a_7811_; lean_object* v___x_7813_; uint8_t v_isShared_7814_; uint8_t v_isSharedCheck_7818_; 
lean_dec(v_a_7747_);
lean_dec_ref(v_a_7746_);
lean_dec(v_a_7745_);
lean_dec_ref(v_a_7744_);
v_a_7811_ = lean_ctor_get(v___x_7756_, 0);
v_isSharedCheck_7818_ = !lean_is_exclusive(v___x_7756_);
if (v_isSharedCheck_7818_ == 0)
{
v___x_7813_ = v___x_7756_;
v_isShared_7814_ = v_isSharedCheck_7818_;
goto v_resetjp_7812_;
}
else
{
lean_inc(v_a_7811_);
lean_dec(v___x_7756_);
v___x_7813_ = lean_box(0);
v_isShared_7814_ = v_isSharedCheck_7818_;
goto v_resetjp_7812_;
}
v_resetjp_7812_:
{
lean_object* v___x_7816_; 
if (v_isShared_7814_ == 0)
{
v___x_7816_ = v___x_7813_;
goto v_reusejp_7815_;
}
else
{
lean_object* v_reuseFailAlloc_7817_; 
v_reuseFailAlloc_7817_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7817_, 0, v_a_7811_);
v___x_7816_ = v_reuseFailAlloc_7817_;
goto v_reusejp_7815_;
}
v_reusejp_7815_:
{
return v___x_7816_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___redArg___boxed(lean_object* v_e_7819_, lean_object* v_a_7820_, lean_object* v_a_7821_, lean_object* v_a_7822_, lean_object* v_a_7823_, lean_object* v_a_7824_){
_start:
{
lean_object* v_res_7825_; 
v_res_7825_ = l_BitVec_reduceBEq___redArg(v_e_7819_, v_a_7820_, v_a_7821_, v_a_7822_, v_a_7823_);
lean_dec_ref(v_e_7819_);
return v_res_7825_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBEq(lean_object* v_e_7826_, lean_object* v_a_7827_, lean_object* v_a_7828_, lean_object* v_a_7829_, lean_object* v_a_7830_, lean_object* v_a_7831_, lean_object* v_a_7832_, lean_object* v_a_7833_){
_start:
{
lean_object* v___x_7835_; 
v___x_7835_ = l_BitVec_reduceBEq___redArg(v_e_7826_, v_a_7830_, v_a_7831_, v_a_7832_, v_a_7833_);
return v___x_7835_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___boxed(lean_object* v_e_7836_, lean_object* v_a_7837_, lean_object* v_a_7838_, lean_object* v_a_7839_, lean_object* v_a_7840_, lean_object* v_a_7841_, lean_object* v_a_7842_, lean_object* v_a_7843_, lean_object* v_a_7844_){
_start:
{
lean_object* v_res_7845_; 
v_res_7845_ = l_BitVec_reduceBEq(v_e_7836_, v_a_7837_, v_a_7838_, v_a_7839_, v_a_7840_, v_a_7841_, v_a_7842_, v_a_7843_);
lean_dec(v_a_7839_);
lean_dec_ref(v_a_7838_);
lean_dec(v_a_7837_);
lean_dec_ref(v_e_7836_);
return v_res_7845_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_7865_; lean_object* v___x_7866_; lean_object* v___x_7867_; lean_object* v___x_7868_; 
v___x_7865_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_));
v___x_7866_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_));
v___x_7867_ = lean_alloc_closure((void*)(l_BitVec_reduceBEq___boxed), 9, 0);
v___x_7868_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_7865_, v___x_7866_, v___x_7867_);
return v___x_7868_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21____boxed(lean_object* v_a_7869_){
_start:
{
lean_object* v_res_7870_; 
v_res_7870_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_();
return v_res_7870_;
}
}
static lean_object* _init_l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_(void){
_start:
{
lean_object* v___x_7871_; lean_object* v___x_7872_; 
v___x_7871_ = lean_alloc_closure((void*)(l_BitVec_reduceBEq___boxed), 9, 0);
v___x_7872_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_7872_, 0, v___x_7871_);
return v___x_7872_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_7874_; uint8_t v___x_7875_; lean_object* v___x_7876_; lean_object* v___x_7877_; 
v___x_7874_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_));
v___x_7875_ = 1;
v___x_7876_ = lean_obj_once(&l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_, &l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23__once, _init_l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_);
v___x_7877_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_7874_, v___x_7875_, v___x_7876_);
return v___x_7877_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23____boxed(lean_object* v_a_7878_){
_start:
{
lean_object* v_res_7879_; 
v_res_7879_ = l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_();
return v_res_7879_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_25_(){
_start:
{
lean_object* v___x_7881_; uint8_t v___x_7882_; lean_object* v___x_7883_; lean_object* v___x_7884_; 
v___x_7881_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_));
v___x_7882_ = 1;
v___x_7883_ = lean_obj_once(&l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_, &l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23__once, _init_l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_);
v___x_7884_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_7881_, v___x_7882_, v___x_7883_);
return v___x_7884_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_25____boxed(lean_object* v_a_7885_){
_start:
{
lean_object* v_res_7886_; 
v_res_7886_ = l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_25_();
return v_res_7886_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___redArg(lean_object* v_e_7890_, lean_object* v_a_7891_, lean_object* v_a_7892_, lean_object* v_a_7893_, lean_object* v_a_7894_){
_start:
{
lean_object* v___x_7896_; lean_object* v___x_7897_; uint8_t v___x_7898_; 
v___x_7896_ = ((lean_object*)(l_BitVec_reduceBNe___redArg___closed__1));
v___x_7897_ = lean_unsigned_to_nat(4u);
v___x_7898_ = l_Lean_Expr_isAppOfArity(v_e_7890_, v___x_7896_, v___x_7897_);
if (v___x_7898_ == 0)
{
lean_object* v___x_7899_; lean_object* v___x_7900_; 
lean_dec(v_a_7894_);
lean_dec_ref(v_a_7893_);
lean_dec(v_a_7892_);
lean_dec_ref(v_a_7891_);
v___x_7899_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_7900_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_7900_, 0, v___x_7899_);
return v___x_7900_;
}
else
{
lean_object* v___x_7901_; lean_object* v___x_7902_; lean_object* v___x_7903_; 
v___x_7901_ = l_Lean_Expr_appFn_x21(v_e_7890_);
v___x_7902_ = l_Lean_Expr_appArg_x21(v___x_7901_);
lean_dec_ref(v___x_7901_);
lean_inc(v_a_7894_);
lean_inc_ref(v_a_7893_);
lean_inc(v_a_7892_);
lean_inc_ref(v_a_7891_);
v___x_7903_ = l_BitVec_fromExpr_x3f___redArg(v___x_7902_, v_a_7891_, v_a_7892_, v_a_7893_, v_a_7894_);
if (lean_obj_tag(v___x_7903_) == 0)
{
lean_object* v_a_7904_; lean_object* v___x_7906_; uint8_t v_isShared_7907_; uint8_t v_isSharedCheck_7958_; 
v_a_7904_ = lean_ctor_get(v___x_7903_, 0);
v_isSharedCheck_7958_ = !lean_is_exclusive(v___x_7903_);
if (v_isSharedCheck_7958_ == 0)
{
v___x_7906_ = v___x_7903_;
v_isShared_7907_ = v_isSharedCheck_7958_;
goto v_resetjp_7905_;
}
else
{
lean_inc(v_a_7904_);
lean_dec(v___x_7903_);
v___x_7906_ = lean_box(0);
v_isShared_7907_ = v_isSharedCheck_7958_;
goto v_resetjp_7905_;
}
v_resetjp_7905_:
{
if (lean_obj_tag(v_a_7904_) == 1)
{
lean_object* v_val_7908_; lean_object* v___x_7910_; uint8_t v_isShared_7911_; uint8_t v_isSharedCheck_7953_; 
v_val_7908_ = lean_ctor_get(v_a_7904_, 0);
v_isSharedCheck_7953_ = !lean_is_exclusive(v_a_7904_);
if (v_isSharedCheck_7953_ == 0)
{
v___x_7910_ = v_a_7904_;
v_isShared_7911_ = v_isSharedCheck_7953_;
goto v_resetjp_7909_;
}
else
{
lean_inc(v_val_7908_);
lean_dec(v_a_7904_);
v___x_7910_ = lean_box(0);
v_isShared_7911_ = v_isSharedCheck_7953_;
goto v_resetjp_7909_;
}
v_resetjp_7909_:
{
lean_object* v___x_7912_; lean_object* v___x_7913_; 
v___x_7912_ = l_Lean_Expr_appArg_x21(v_e_7890_);
v___x_7913_ = l_BitVec_fromExpr_x3f___redArg(v___x_7912_, v_a_7891_, v_a_7892_, v_a_7893_, v_a_7894_);
if (lean_obj_tag(v___x_7913_) == 0)
{
lean_object* v_a_7914_; lean_object* v___x_7916_; uint8_t v_isShared_7917_; uint8_t v_isSharedCheck_7944_; 
v_a_7914_ = lean_ctor_get(v___x_7913_, 0);
v_isSharedCheck_7944_ = !lean_is_exclusive(v___x_7913_);
if (v_isSharedCheck_7944_ == 0)
{
v___x_7916_ = v___x_7913_;
v_isShared_7917_ = v_isSharedCheck_7944_;
goto v_resetjp_7915_;
}
else
{
lean_inc(v_a_7914_);
lean_dec(v___x_7913_);
v___x_7916_ = lean_box(0);
v_isShared_7917_ = v_isSharedCheck_7944_;
goto v_resetjp_7915_;
}
v_resetjp_7915_:
{
lean_object* v___y_7919_; 
if (lean_obj_tag(v_a_7914_) == 1)
{
lean_object* v_val_7928_; lean_object* v_n_7929_; lean_object* v_value_7930_; lean_object* v_n_7931_; lean_object* v_value_7932_; uint8_t v___x_7933_; 
v_val_7928_ = lean_ctor_get(v_a_7914_, 0);
lean_inc(v_val_7928_);
lean_dec_ref(v_a_7914_);
v_n_7929_ = lean_ctor_get(v_val_7908_, 0);
lean_inc(v_n_7929_);
v_value_7930_ = lean_ctor_get(v_val_7908_, 1);
lean_inc(v_value_7930_);
lean_dec(v_val_7908_);
v_n_7931_ = lean_ctor_get(v_val_7928_, 0);
lean_inc(v_n_7931_);
v_value_7932_ = lean_ctor_get(v_val_7928_, 1);
lean_inc(v_value_7932_);
lean_dec(v_val_7928_);
v___x_7933_ = lean_nat_dec_eq(v_n_7929_, v_n_7931_);
lean_dec(v_n_7931_);
lean_dec(v_n_7929_);
if (v___x_7933_ == 0)
{
lean_object* v___x_7934_; lean_object* v___x_7936_; 
lean_dec(v_value_7932_);
lean_dec(v_value_7930_);
lean_del_object(v___x_7916_);
lean_del_object(v___x_7910_);
v___x_7934_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7907_ == 0)
{
lean_ctor_set(v___x_7906_, 0, v___x_7934_);
v___x_7936_ = v___x_7906_;
goto v_reusejp_7935_;
}
else
{
lean_object* v_reuseFailAlloc_7937_; 
v_reuseFailAlloc_7937_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7937_, 0, v___x_7934_);
v___x_7936_ = v_reuseFailAlloc_7937_;
goto v_reusejp_7935_;
}
v_reusejp_7935_:
{
return v___x_7936_;
}
}
else
{
uint8_t v___x_7938_; 
lean_del_object(v___x_7906_);
v___x_7938_ = lean_nat_dec_eq(v_value_7930_, v_value_7932_);
lean_dec(v_value_7932_);
lean_dec(v_value_7930_);
if (v___x_7938_ == 0)
{
if (v___x_7898_ == 0)
{
goto v___jp_7926_;
}
else
{
lean_object* v___x_7939_; 
v___x_7939_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_7919_ = v___x_7939_;
goto v___jp_7918_;
}
}
else
{
goto v___jp_7926_;
}
}
}
else
{
lean_object* v___x_7940_; lean_object* v___x_7942_; 
lean_del_object(v___x_7916_);
lean_dec(v_a_7914_);
lean_del_object(v___x_7910_);
lean_dec(v_val_7908_);
v___x_7940_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7907_ == 0)
{
lean_ctor_set(v___x_7906_, 0, v___x_7940_);
v___x_7942_ = v___x_7906_;
goto v_reusejp_7941_;
}
else
{
lean_object* v_reuseFailAlloc_7943_; 
v_reuseFailAlloc_7943_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7943_, 0, v___x_7940_);
v___x_7942_ = v_reuseFailAlloc_7943_;
goto v_reusejp_7941_;
}
v_reusejp_7941_:
{
return v___x_7942_;
}
}
v___jp_7918_:
{
lean_object* v___x_7921_; 
if (v_isShared_7911_ == 0)
{
lean_ctor_set_tag(v___x_7910_, 0);
lean_ctor_set(v___x_7910_, 0, v___y_7919_);
v___x_7921_ = v___x_7910_;
goto v_reusejp_7920_;
}
else
{
lean_object* v_reuseFailAlloc_7925_; 
v_reuseFailAlloc_7925_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7925_, 0, v___y_7919_);
v___x_7921_ = v_reuseFailAlloc_7925_;
goto v_reusejp_7920_;
}
v_reusejp_7920_:
{
lean_object* v___x_7923_; 
if (v_isShared_7917_ == 0)
{
lean_ctor_set(v___x_7916_, 0, v___x_7921_);
v___x_7923_ = v___x_7916_;
goto v_reusejp_7922_;
}
else
{
lean_object* v_reuseFailAlloc_7924_; 
v_reuseFailAlloc_7924_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7924_, 0, v___x_7921_);
v___x_7923_ = v_reuseFailAlloc_7924_;
goto v_reusejp_7922_;
}
v_reusejp_7922_:
{
return v___x_7923_;
}
}
}
v___jp_7926_:
{
lean_object* v___x_7927_; 
v___x_7927_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_7919_ = v___x_7927_;
goto v___jp_7918_;
}
}
}
else
{
lean_object* v_a_7945_; lean_object* v___x_7947_; uint8_t v_isShared_7948_; uint8_t v_isSharedCheck_7952_; 
lean_del_object(v___x_7910_);
lean_dec(v_val_7908_);
lean_del_object(v___x_7906_);
v_a_7945_ = lean_ctor_get(v___x_7913_, 0);
v_isSharedCheck_7952_ = !lean_is_exclusive(v___x_7913_);
if (v_isSharedCheck_7952_ == 0)
{
v___x_7947_ = v___x_7913_;
v_isShared_7948_ = v_isSharedCheck_7952_;
goto v_resetjp_7946_;
}
else
{
lean_inc(v_a_7945_);
lean_dec(v___x_7913_);
v___x_7947_ = lean_box(0);
v_isShared_7948_ = v_isSharedCheck_7952_;
goto v_resetjp_7946_;
}
v_resetjp_7946_:
{
lean_object* v___x_7950_; 
if (v_isShared_7948_ == 0)
{
v___x_7950_ = v___x_7947_;
goto v_reusejp_7949_;
}
else
{
lean_object* v_reuseFailAlloc_7951_; 
v_reuseFailAlloc_7951_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7951_, 0, v_a_7945_);
v___x_7950_ = v_reuseFailAlloc_7951_;
goto v_reusejp_7949_;
}
v_reusejp_7949_:
{
return v___x_7950_;
}
}
}
}
}
else
{
lean_object* v___x_7954_; lean_object* v___x_7956_; 
lean_dec(v_a_7904_);
lean_dec(v_a_7894_);
lean_dec_ref(v_a_7893_);
lean_dec(v_a_7892_);
lean_dec_ref(v_a_7891_);
v___x_7954_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_7907_ == 0)
{
lean_ctor_set(v___x_7906_, 0, v___x_7954_);
v___x_7956_ = v___x_7906_;
goto v_reusejp_7955_;
}
else
{
lean_object* v_reuseFailAlloc_7957_; 
v_reuseFailAlloc_7957_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7957_, 0, v___x_7954_);
v___x_7956_ = v_reuseFailAlloc_7957_;
goto v_reusejp_7955_;
}
v_reusejp_7955_:
{
return v___x_7956_;
}
}
}
}
else
{
lean_object* v_a_7959_; lean_object* v___x_7961_; uint8_t v_isShared_7962_; uint8_t v_isSharedCheck_7966_; 
lean_dec(v_a_7894_);
lean_dec_ref(v_a_7893_);
lean_dec(v_a_7892_);
lean_dec_ref(v_a_7891_);
v_a_7959_ = lean_ctor_get(v___x_7903_, 0);
v_isSharedCheck_7966_ = !lean_is_exclusive(v___x_7903_);
if (v_isSharedCheck_7966_ == 0)
{
v___x_7961_ = v___x_7903_;
v_isShared_7962_ = v_isSharedCheck_7966_;
goto v_resetjp_7960_;
}
else
{
lean_inc(v_a_7959_);
lean_dec(v___x_7903_);
v___x_7961_ = lean_box(0);
v_isShared_7962_ = v_isSharedCheck_7966_;
goto v_resetjp_7960_;
}
v_resetjp_7960_:
{
lean_object* v___x_7964_; 
if (v_isShared_7962_ == 0)
{
v___x_7964_ = v___x_7961_;
goto v_reusejp_7963_;
}
else
{
lean_object* v_reuseFailAlloc_7965_; 
v_reuseFailAlloc_7965_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_7965_, 0, v_a_7959_);
v___x_7964_ = v_reuseFailAlloc_7965_;
goto v_reusejp_7963_;
}
v_reusejp_7963_:
{
return v___x_7964_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___redArg___boxed(lean_object* v_e_7967_, lean_object* v_a_7968_, lean_object* v_a_7969_, lean_object* v_a_7970_, lean_object* v_a_7971_, lean_object* v_a_7972_){
_start:
{
lean_object* v_res_7973_; 
v_res_7973_ = l_BitVec_reduceBNe___redArg(v_e_7967_, v_a_7968_, v_a_7969_, v_a_7970_, v_a_7971_);
lean_dec_ref(v_e_7967_);
return v_res_7973_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBNe(lean_object* v_e_7974_, lean_object* v_a_7975_, lean_object* v_a_7976_, lean_object* v_a_7977_, lean_object* v_a_7978_, lean_object* v_a_7979_, lean_object* v_a_7980_, lean_object* v_a_7981_){
_start:
{
lean_object* v___x_7983_; 
v___x_7983_ = l_BitVec_reduceBNe___redArg(v_e_7974_, v_a_7978_, v_a_7979_, v_a_7980_, v_a_7981_);
return v___x_7983_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___boxed(lean_object* v_e_7984_, lean_object* v_a_7985_, lean_object* v_a_7986_, lean_object* v_a_7987_, lean_object* v_a_7988_, lean_object* v_a_7989_, lean_object* v_a_7990_, lean_object* v_a_7991_, lean_object* v_a_7992_){
_start:
{
lean_object* v_res_7993_; 
v_res_7993_ = l_BitVec_reduceBNe(v_e_7984_, v_a_7985_, v_a_7986_, v_a_7987_, v_a_7988_, v_a_7989_, v_a_7990_, v_a_7991_);
lean_dec(v_a_7987_);
lean_dec_ref(v_a_7986_);
lean_dec(v_a_7985_);
lean_dec_ref(v_e_7984_);
return v_res_7993_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_8013_; lean_object* v___x_8014_; lean_object* v___x_8015_; lean_object* v___x_8016_; 
v___x_8013_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_));
v___x_8014_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_));
v___x_8015_ = lean_alloc_closure((void*)(l_BitVec_reduceBNe___boxed), 9, 0);
v___x_8016_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_8013_, v___x_8014_, v___x_8015_);
return v___x_8016_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21____boxed(lean_object* v_a_8017_){
_start:
{
lean_object* v_res_8018_; 
v_res_8018_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_();
return v_res_8018_;
}
}
static lean_object* _init_l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_(void){
_start:
{
lean_object* v___x_8019_; lean_object* v___x_8020_; 
v___x_8019_ = lean_alloc_closure((void*)(l_BitVec_reduceBNe___boxed), 9, 0);
v___x_8020_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_8020_, 0, v___x_8019_);
return v___x_8020_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_8022_; uint8_t v___x_8023_; lean_object* v___x_8024_; lean_object* v___x_8025_; 
v___x_8022_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_));
v___x_8023_ = 1;
v___x_8024_ = lean_obj_once(&l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_, &l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23__once, _init_l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_);
v___x_8025_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_8022_, v___x_8023_, v___x_8024_);
return v___x_8025_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23____boxed(lean_object* v_a_8026_){
_start:
{
lean_object* v_res_8027_; 
v_res_8027_ = l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_();
return v_res_8027_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_25_(){
_start:
{
lean_object* v___x_8029_; uint8_t v___x_8030_; lean_object* v___x_8031_; lean_object* v___x_8032_; 
v___x_8029_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_));
v___x_8030_ = 1;
v___x_8031_ = lean_obj_once(&l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_, &l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23__once, _init_l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_);
v___x_8032_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_8029_, v___x_8030_, v___x_8031_);
return v___x_8032_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_25____boxed(lean_object* v_a_8033_){
_start:
{
lean_object* v_res_8034_; 
v_res_8034_ = l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_25_();
return v_res_8034_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLT___redArg(lean_object* v_e_8040_, lean_object* v_a_8041_, lean_object* v_a_8042_, lean_object* v_a_8043_, lean_object* v_a_8044_){
_start:
{
lean_object* v___x_8046_; lean_object* v___x_8047_; uint8_t v___x_8048_; 
v___x_8046_ = ((lean_object*)(l_BitVec_reduceLT___redArg___closed__2));
v___x_8047_ = lean_unsigned_to_nat(4u);
v___x_8048_ = l_Lean_Expr_isAppOfArity(v_e_8040_, v___x_8046_, v___x_8047_);
if (v___x_8048_ == 0)
{
lean_object* v___x_8049_; lean_object* v___x_8050_; 
lean_dec(v_a_8044_);
lean_dec_ref(v_a_8043_);
lean_dec(v_a_8042_);
lean_dec_ref(v_a_8041_);
lean_dec_ref(v_e_8040_);
v___x_8049_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_8050_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8050_, 0, v___x_8049_);
return v___x_8050_;
}
else
{
lean_object* v___x_8051_; lean_object* v___x_8052_; lean_object* v___x_8053_; 
v___x_8051_ = l_Lean_Expr_appFn_x21(v_e_8040_);
v___x_8052_ = l_Lean_Expr_appArg_x21(v___x_8051_);
lean_dec_ref(v___x_8051_);
lean_inc(v_a_8044_);
lean_inc_ref(v_a_8043_);
lean_inc(v_a_8042_);
lean_inc_ref(v_a_8041_);
v___x_8053_ = l_BitVec_fromExpr_x3f___redArg(v___x_8052_, v_a_8041_, v_a_8042_, v_a_8043_, v_a_8044_);
if (lean_obj_tag(v___x_8053_) == 0)
{
lean_object* v_a_8054_; lean_object* v___x_8056_; uint8_t v_isShared_8057_; uint8_t v_isSharedCheck_8094_; 
v_a_8054_ = lean_ctor_get(v___x_8053_, 0);
v_isSharedCheck_8094_ = !lean_is_exclusive(v___x_8053_);
if (v_isSharedCheck_8094_ == 0)
{
v___x_8056_ = v___x_8053_;
v_isShared_8057_ = v_isSharedCheck_8094_;
goto v_resetjp_8055_;
}
else
{
lean_inc(v_a_8054_);
lean_dec(v___x_8053_);
v___x_8056_ = lean_box(0);
v_isShared_8057_ = v_isSharedCheck_8094_;
goto v_resetjp_8055_;
}
v_resetjp_8055_:
{
if (lean_obj_tag(v_a_8054_) == 1)
{
lean_object* v_val_8058_; lean_object* v___x_8059_; lean_object* v___x_8060_; 
lean_del_object(v___x_8056_);
v_val_8058_ = lean_ctor_get(v_a_8054_, 0);
lean_inc(v_val_8058_);
lean_dec_ref(v_a_8054_);
v___x_8059_ = l_Lean_Expr_appArg_x21(v_e_8040_);
lean_inc(v_a_8044_);
lean_inc_ref(v_a_8043_);
lean_inc(v_a_8042_);
lean_inc_ref(v_a_8041_);
v___x_8060_ = l_BitVec_fromExpr_x3f___redArg(v___x_8059_, v_a_8041_, v_a_8042_, v_a_8043_, v_a_8044_);
if (lean_obj_tag(v___x_8060_) == 0)
{
lean_object* v_a_8061_; lean_object* v___x_8063_; uint8_t v_isShared_8064_; uint8_t v_isSharedCheck_8081_; 
v_a_8061_ = lean_ctor_get(v___x_8060_, 0);
v_isSharedCheck_8081_ = !lean_is_exclusive(v___x_8060_);
if (v_isSharedCheck_8081_ == 0)
{
v___x_8063_ = v___x_8060_;
v_isShared_8064_ = v_isSharedCheck_8081_;
goto v_resetjp_8062_;
}
else
{
lean_inc(v_a_8061_);
lean_dec(v___x_8060_);
v___x_8063_ = lean_box(0);
v_isShared_8064_ = v_isSharedCheck_8081_;
goto v_resetjp_8062_;
}
v_resetjp_8062_:
{
if (lean_obj_tag(v_a_8061_) == 1)
{
lean_object* v_val_8065_; lean_object* v_n_8066_; lean_object* v_value_8067_; lean_object* v_n_8068_; lean_object* v_value_8069_; uint8_t v___x_8070_; 
v_val_8065_ = lean_ctor_get(v_a_8061_, 0);
lean_inc(v_val_8065_);
lean_dec_ref(v_a_8061_);
v_n_8066_ = lean_ctor_get(v_val_8058_, 0);
lean_inc(v_n_8066_);
v_value_8067_ = lean_ctor_get(v_val_8058_, 1);
lean_inc(v_value_8067_);
lean_dec(v_val_8058_);
v_n_8068_ = lean_ctor_get(v_val_8065_, 0);
lean_inc(v_n_8068_);
v_value_8069_ = lean_ctor_get(v_val_8065_, 1);
lean_inc(v_value_8069_);
lean_dec(v_val_8065_);
v___x_8070_ = lean_nat_dec_eq(v_n_8066_, v_n_8068_);
lean_dec(v_n_8068_);
lean_dec(v_n_8066_);
if (v___x_8070_ == 0)
{
lean_object* v___x_8071_; lean_object* v___x_8073_; 
lean_dec(v_value_8069_);
lean_dec(v_value_8067_);
lean_dec(v_a_8044_);
lean_dec_ref(v_a_8043_);
lean_dec(v_a_8042_);
lean_dec_ref(v_a_8041_);
lean_dec_ref(v_e_8040_);
v___x_8071_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8064_ == 0)
{
lean_ctor_set(v___x_8063_, 0, v___x_8071_);
v___x_8073_ = v___x_8063_;
goto v_reusejp_8072_;
}
else
{
lean_object* v_reuseFailAlloc_8074_; 
v_reuseFailAlloc_8074_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8074_, 0, v___x_8071_);
v___x_8073_ = v_reuseFailAlloc_8074_;
goto v_reusejp_8072_;
}
v_reusejp_8072_:
{
return v___x_8073_;
}
}
else
{
uint8_t v___x_8075_; lean_object* v___x_8076_; 
lean_del_object(v___x_8063_);
v___x_8075_ = lean_nat_dec_lt(v_value_8067_, v_value_8069_);
lean_dec(v_value_8069_);
lean_dec(v_value_8067_);
v___x_8076_ = l_Lean_Meta_Simp_evalPropStep___redArg(v_e_8040_, v___x_8075_, v_a_8041_, v_a_8042_, v_a_8043_, v_a_8044_);
return v___x_8076_;
}
}
else
{
lean_object* v___x_8077_; lean_object* v___x_8079_; 
lean_dec(v_a_8061_);
lean_dec(v_val_8058_);
lean_dec(v_a_8044_);
lean_dec_ref(v_a_8043_);
lean_dec(v_a_8042_);
lean_dec_ref(v_a_8041_);
lean_dec_ref(v_e_8040_);
v___x_8077_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8064_ == 0)
{
lean_ctor_set(v___x_8063_, 0, v___x_8077_);
v___x_8079_ = v___x_8063_;
goto v_reusejp_8078_;
}
else
{
lean_object* v_reuseFailAlloc_8080_; 
v_reuseFailAlloc_8080_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8080_, 0, v___x_8077_);
v___x_8079_ = v_reuseFailAlloc_8080_;
goto v_reusejp_8078_;
}
v_reusejp_8078_:
{
return v___x_8079_;
}
}
}
}
else
{
lean_object* v_a_8082_; lean_object* v___x_8084_; uint8_t v_isShared_8085_; uint8_t v_isSharedCheck_8089_; 
lean_dec(v_val_8058_);
lean_dec(v_a_8044_);
lean_dec_ref(v_a_8043_);
lean_dec(v_a_8042_);
lean_dec_ref(v_a_8041_);
lean_dec_ref(v_e_8040_);
v_a_8082_ = lean_ctor_get(v___x_8060_, 0);
v_isSharedCheck_8089_ = !lean_is_exclusive(v___x_8060_);
if (v_isSharedCheck_8089_ == 0)
{
v___x_8084_ = v___x_8060_;
v_isShared_8085_ = v_isSharedCheck_8089_;
goto v_resetjp_8083_;
}
else
{
lean_inc(v_a_8082_);
lean_dec(v___x_8060_);
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___x_8090_; lean_object* v___x_8092_; 
lean_dec(v_a_8054_);
lean_dec(v_a_8044_);
lean_dec_ref(v_a_8043_);
lean_dec(v_a_8042_);
lean_dec_ref(v_a_8041_);
lean_dec_ref(v_e_8040_);
v___x_8090_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8057_ == 0)
{
lean_ctor_set(v___x_8056_, 0, v___x_8090_);
v___x_8092_ = v___x_8056_;
goto v_reusejp_8091_;
}
else
{
lean_object* v_reuseFailAlloc_8093_; 
v_reuseFailAlloc_8093_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8093_, 0, v___x_8090_);
v___x_8092_ = v_reuseFailAlloc_8093_;
goto v_reusejp_8091_;
}
v_reusejp_8091_:
{
return v___x_8092_;
}
}
}
}
else
{
lean_object* v_a_8095_; lean_object* v___x_8097_; uint8_t v_isShared_8098_; uint8_t v_isSharedCheck_8102_; 
lean_dec(v_a_8044_);
lean_dec_ref(v_a_8043_);
lean_dec(v_a_8042_);
lean_dec_ref(v_a_8041_);
lean_dec_ref(v_e_8040_);
v_a_8095_ = lean_ctor_get(v___x_8053_, 0);
v_isSharedCheck_8102_ = !lean_is_exclusive(v___x_8053_);
if (v_isSharedCheck_8102_ == 0)
{
v___x_8097_ = v___x_8053_;
v_isShared_8098_ = v_isSharedCheck_8102_;
goto v_resetjp_8096_;
}
else
{
lean_inc(v_a_8095_);
lean_dec(v___x_8053_);
v___x_8097_ = lean_box(0);
v_isShared_8098_ = v_isSharedCheck_8102_;
goto v_resetjp_8096_;
}
v_resetjp_8096_:
{
lean_object* v___x_8100_; 
if (v_isShared_8098_ == 0)
{
v___x_8100_ = v___x_8097_;
goto v_reusejp_8099_;
}
else
{
lean_object* v_reuseFailAlloc_8101_; 
v_reuseFailAlloc_8101_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8101_, 0, v_a_8095_);
v___x_8100_ = v_reuseFailAlloc_8101_;
goto v_reusejp_8099_;
}
v_reusejp_8099_:
{
return v___x_8100_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLT___redArg___boxed(lean_object* v_e_8103_, lean_object* v_a_8104_, lean_object* v_a_8105_, lean_object* v_a_8106_, lean_object* v_a_8107_, lean_object* v_a_8108_){
_start:
{
lean_object* v_res_8109_; 
v_res_8109_ = l_BitVec_reduceLT___redArg(v_e_8103_, v_a_8104_, v_a_8105_, v_a_8106_, v_a_8107_);
return v_res_8109_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLT(lean_object* v_e_8110_, lean_object* v_a_8111_, lean_object* v_a_8112_, lean_object* v_a_8113_, lean_object* v_a_8114_, lean_object* v_a_8115_, lean_object* v_a_8116_, lean_object* v_a_8117_){
_start:
{
lean_object* v___x_8119_; 
v___x_8119_ = l_BitVec_reduceLT___redArg(v_e_8110_, v_a_8114_, v_a_8115_, v_a_8116_, v_a_8117_);
return v___x_8119_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLT___boxed(lean_object* v_e_8120_, lean_object* v_a_8121_, lean_object* v_a_8122_, lean_object* v_a_8123_, lean_object* v_a_8124_, lean_object* v_a_8125_, lean_object* v_a_8126_, lean_object* v_a_8127_, lean_object* v_a_8128_){
_start:
{
lean_object* v_res_8129_; 
v_res_8129_ = l_BitVec_reduceLT(v_e_8120_, v_a_8121_, v_a_8122_, v_a_8123_, v_a_8124_, v_a_8125_, v_a_8126_, v_a_8127_);
lean_dec(v_a_8123_);
lean_dec_ref(v_a_8122_);
lean_dec(v_a_8121_);
return v_res_8129_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_8149_; lean_object* v___x_8150_; lean_object* v___x_8151_; lean_object* v___x_8152_; 
v___x_8149_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_));
v___x_8150_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_));
v___x_8151_ = lean_alloc_closure((void*)(l_BitVec_reduceLT___boxed), 9, 0);
v___x_8152_ = l_Lean_Meta_Simp_registerBuiltinSimproc(v___x_8149_, v___x_8150_, v___x_8151_);
return v___x_8152_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21____boxed(lean_object* v_a_8153_){
_start:
{
lean_object* v_res_8154_; 
v_res_8154_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_();
return v_res_8154_;
}
}
static lean_object* _init_l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_(void){
_start:
{
lean_object* v___x_8155_; lean_object* v___x_8156_; 
v___x_8155_ = lean_alloc_closure((void*)(l_BitVec_reduceLT___boxed), 9, 0);
v___x_8156_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8156_, 0, v___x_8155_);
return v___x_8156_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_8158_; uint8_t v___x_8159_; lean_object* v___x_8160_; lean_object* v___x_8161_; 
v___x_8158_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_));
v___x_8159_ = 1;
v___x_8160_ = lean_obj_once(&l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_, &l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23__once, _init_l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_);
v___x_8161_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_8158_, v___x_8159_, v___x_8160_);
return v___x_8161_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23____boxed(lean_object* v_a_8162_){
_start:
{
lean_object* v_res_8163_; 
v_res_8163_ = l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_();
return v_res_8163_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_25_(){
_start:
{
lean_object* v___x_8165_; uint8_t v___x_8166_; lean_object* v___x_8167_; lean_object* v___x_8168_; 
v___x_8165_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_));
v___x_8166_ = 1;
v___x_8167_ = lean_obj_once(&l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_, &l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23__once, _init_l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_);
v___x_8168_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_8165_, v___x_8166_, v___x_8167_);
return v___x_8168_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_25____boxed(lean_object* v_a_8169_){
_start:
{
lean_object* v_res_8170_; 
v_res_8170_ = l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_25_();
return v_res_8170_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLE___redArg(lean_object* v_e_8176_, lean_object* v_a_8177_, lean_object* v_a_8178_, lean_object* v_a_8179_, lean_object* v_a_8180_){
_start:
{
lean_object* v___x_8182_; lean_object* v___x_8183_; uint8_t v___x_8184_; 
v___x_8182_ = ((lean_object*)(l_BitVec_reduceLE___redArg___closed__2));
v___x_8183_ = lean_unsigned_to_nat(4u);
v___x_8184_ = l_Lean_Expr_isAppOfArity(v_e_8176_, v___x_8182_, v___x_8183_);
if (v___x_8184_ == 0)
{
lean_object* v___x_8185_; lean_object* v___x_8186_; 
lean_dec(v_a_8180_);
lean_dec_ref(v_a_8179_);
lean_dec(v_a_8178_);
lean_dec_ref(v_a_8177_);
lean_dec_ref(v_e_8176_);
v___x_8185_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_8186_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8186_, 0, v___x_8185_);
return v___x_8186_;
}
else
{
lean_object* v___x_8187_; lean_object* v___x_8188_; lean_object* v___x_8189_; 
v___x_8187_ = l_Lean_Expr_appFn_x21(v_e_8176_);
v___x_8188_ = l_Lean_Expr_appArg_x21(v___x_8187_);
lean_dec_ref(v___x_8187_);
lean_inc(v_a_8180_);
lean_inc_ref(v_a_8179_);
lean_inc(v_a_8178_);
lean_inc_ref(v_a_8177_);
v___x_8189_ = l_BitVec_fromExpr_x3f___redArg(v___x_8188_, v_a_8177_, v_a_8178_, v_a_8179_, v_a_8180_);
if (lean_obj_tag(v___x_8189_) == 0)
{
lean_object* v_a_8190_; lean_object* v___x_8192_; uint8_t v_isShared_8193_; uint8_t v_isSharedCheck_8230_; 
v_a_8190_ = lean_ctor_get(v___x_8189_, 0);
v_isSharedCheck_8230_ = !lean_is_exclusive(v___x_8189_);
if (v_isSharedCheck_8230_ == 0)
{
v___x_8192_ = v___x_8189_;
v_isShared_8193_ = v_isSharedCheck_8230_;
goto v_resetjp_8191_;
}
else
{
lean_inc(v_a_8190_);
lean_dec(v___x_8189_);
v___x_8192_ = lean_box(0);
v_isShared_8193_ = v_isSharedCheck_8230_;
goto v_resetjp_8191_;
}
v_resetjp_8191_:
{
if (lean_obj_tag(v_a_8190_) == 1)
{
lean_object* v_val_8194_; lean_object* v___x_8195_; lean_object* v___x_8196_; 
lean_del_object(v___x_8192_);
v_val_8194_ = lean_ctor_get(v_a_8190_, 0);
lean_inc(v_val_8194_);
lean_dec_ref(v_a_8190_);
v___x_8195_ = l_Lean_Expr_appArg_x21(v_e_8176_);
lean_inc(v_a_8180_);
lean_inc_ref(v_a_8179_);
lean_inc(v_a_8178_);
lean_inc_ref(v_a_8177_);
v___x_8196_ = l_BitVec_fromExpr_x3f___redArg(v___x_8195_, v_a_8177_, v_a_8178_, v_a_8179_, v_a_8180_);
if (lean_obj_tag(v___x_8196_) == 0)
{
lean_object* v_a_8197_; lean_object* v___x_8199_; uint8_t v_isShared_8200_; uint8_t v_isSharedCheck_8217_; 
v_a_8197_ = lean_ctor_get(v___x_8196_, 0);
v_isSharedCheck_8217_ = !lean_is_exclusive(v___x_8196_);
if (v_isSharedCheck_8217_ == 0)
{
v___x_8199_ = v___x_8196_;
v_isShared_8200_ = v_isSharedCheck_8217_;
goto v_resetjp_8198_;
}
else
{
lean_inc(v_a_8197_);
lean_dec(v___x_8196_);
v___x_8199_ = lean_box(0);
v_isShared_8200_ = v_isSharedCheck_8217_;
goto v_resetjp_8198_;
}
v_resetjp_8198_:
{
if (lean_obj_tag(v_a_8197_) == 1)
{
lean_object* v_val_8201_; lean_object* v_n_8202_; lean_object* v_value_8203_; lean_object* v_n_8204_; lean_object* v_value_8205_; uint8_t v___x_8206_; 
v_val_8201_ = lean_ctor_get(v_a_8197_, 0);
lean_inc(v_val_8201_);
lean_dec_ref(v_a_8197_);
v_n_8202_ = lean_ctor_get(v_val_8194_, 0);
lean_inc(v_n_8202_);
v_value_8203_ = lean_ctor_get(v_val_8194_, 1);
lean_inc(v_value_8203_);
lean_dec(v_val_8194_);
v_n_8204_ = lean_ctor_get(v_val_8201_, 0);
lean_inc(v_n_8204_);
v_value_8205_ = lean_ctor_get(v_val_8201_, 1);
lean_inc(v_value_8205_);
lean_dec(v_val_8201_);
v___x_8206_ = lean_nat_dec_eq(v_n_8202_, v_n_8204_);
lean_dec(v_n_8204_);
lean_dec(v_n_8202_);
if (v___x_8206_ == 0)
{
lean_object* v___x_8207_; lean_object* v___x_8209_; 
lean_dec(v_value_8205_);
lean_dec(v_value_8203_);
lean_dec(v_a_8180_);
lean_dec_ref(v_a_8179_);
lean_dec(v_a_8178_);
lean_dec_ref(v_a_8177_);
lean_dec_ref(v_e_8176_);
v___x_8207_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8200_ == 0)
{
lean_ctor_set(v___x_8199_, 0, v___x_8207_);
v___x_8209_ = v___x_8199_;
goto v_reusejp_8208_;
}
else
{
lean_object* v_reuseFailAlloc_8210_; 
v_reuseFailAlloc_8210_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8210_, 0, v___x_8207_);
v___x_8209_ = v_reuseFailAlloc_8210_;
goto v_reusejp_8208_;
}
v_reusejp_8208_:
{
return v___x_8209_;
}
}
else
{
uint8_t v___x_8211_; lean_object* v___x_8212_; 
lean_del_object(v___x_8199_);
v___x_8211_ = lean_nat_dec_le(v_value_8203_, v_value_8205_);
lean_dec(v_value_8205_);
lean_dec(v_value_8203_);
v___x_8212_ = l_Lean_Meta_Simp_evalPropStep___redArg(v_e_8176_, v___x_8211_, v_a_8177_, v_a_8178_, v_a_8179_, v_a_8180_);
return v___x_8212_;
}
}
else
{
lean_object* v___x_8213_; lean_object* v___x_8215_; 
lean_dec(v_a_8197_);
lean_dec(v_val_8194_);
lean_dec(v_a_8180_);
lean_dec_ref(v_a_8179_);
lean_dec(v_a_8178_);
lean_dec_ref(v_a_8177_);
lean_dec_ref(v_e_8176_);
v___x_8213_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8200_ == 0)
{
lean_ctor_set(v___x_8199_, 0, v___x_8213_);
v___x_8215_ = v___x_8199_;
goto v_reusejp_8214_;
}
else
{
lean_object* v_reuseFailAlloc_8216_; 
v_reuseFailAlloc_8216_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8216_, 0, v___x_8213_);
v___x_8215_ = v_reuseFailAlloc_8216_;
goto v_reusejp_8214_;
}
v_reusejp_8214_:
{
return v___x_8215_;
}
}
}
}
else
{
lean_object* v_a_8218_; lean_object* v___x_8220_; uint8_t v_isShared_8221_; uint8_t v_isSharedCheck_8225_; 
lean_dec(v_val_8194_);
lean_dec(v_a_8180_);
lean_dec_ref(v_a_8179_);
lean_dec(v_a_8178_);
lean_dec_ref(v_a_8177_);
lean_dec_ref(v_e_8176_);
v_a_8218_ = lean_ctor_get(v___x_8196_, 0);
v_isSharedCheck_8225_ = !lean_is_exclusive(v___x_8196_);
if (v_isSharedCheck_8225_ == 0)
{
v___x_8220_ = v___x_8196_;
v_isShared_8221_ = v_isSharedCheck_8225_;
goto v_resetjp_8219_;
}
else
{
lean_inc(v_a_8218_);
lean_dec(v___x_8196_);
v___x_8220_ = lean_box(0);
v_isShared_8221_ = v_isSharedCheck_8225_;
goto v_resetjp_8219_;
}
v_resetjp_8219_:
{
lean_object* v___x_8223_; 
if (v_isShared_8221_ == 0)
{
v___x_8223_ = v___x_8220_;
goto v_reusejp_8222_;
}
else
{
lean_object* v_reuseFailAlloc_8224_; 
v_reuseFailAlloc_8224_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8224_, 0, v_a_8218_);
v___x_8223_ = v_reuseFailAlloc_8224_;
goto v_reusejp_8222_;
}
v_reusejp_8222_:
{
return v___x_8223_;
}
}
}
}
else
{
lean_object* v___x_8226_; lean_object* v___x_8228_; 
lean_dec(v_a_8190_);
lean_dec(v_a_8180_);
lean_dec_ref(v_a_8179_);
lean_dec(v_a_8178_);
lean_dec_ref(v_a_8177_);
lean_dec_ref(v_e_8176_);
v___x_8226_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8193_ == 0)
{
lean_ctor_set(v___x_8192_, 0, v___x_8226_);
v___x_8228_ = v___x_8192_;
goto v_reusejp_8227_;
}
else
{
lean_object* v_reuseFailAlloc_8229_; 
v_reuseFailAlloc_8229_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8229_, 0, v___x_8226_);
v___x_8228_ = v_reuseFailAlloc_8229_;
goto v_reusejp_8227_;
}
v_reusejp_8227_:
{
return v___x_8228_;
}
}
}
}
else
{
lean_object* v_a_8231_; lean_object* v___x_8233_; uint8_t v_isShared_8234_; uint8_t v_isSharedCheck_8238_; 
lean_dec(v_a_8180_);
lean_dec_ref(v_a_8179_);
lean_dec(v_a_8178_);
lean_dec_ref(v_a_8177_);
lean_dec_ref(v_e_8176_);
v_a_8231_ = lean_ctor_get(v___x_8189_, 0);
v_isSharedCheck_8238_ = !lean_is_exclusive(v___x_8189_);
if (v_isSharedCheck_8238_ == 0)
{
v___x_8233_ = v___x_8189_;
v_isShared_8234_ = v_isSharedCheck_8238_;
goto v_resetjp_8232_;
}
else
{
lean_inc(v_a_8231_);
lean_dec(v___x_8189_);
v___x_8233_ = lean_box(0);
v_isShared_8234_ = v_isSharedCheck_8238_;
goto v_resetjp_8232_;
}
v_resetjp_8232_:
{
lean_object* v___x_8236_; 
if (v_isShared_8234_ == 0)
{
v___x_8236_ = v___x_8233_;
goto v_reusejp_8235_;
}
else
{
lean_object* v_reuseFailAlloc_8237_; 
v_reuseFailAlloc_8237_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8237_, 0, v_a_8231_);
v___x_8236_ = v_reuseFailAlloc_8237_;
goto v_reusejp_8235_;
}
v_reusejp_8235_:
{
return v___x_8236_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLE___redArg___boxed(lean_object* v_e_8239_, lean_object* v_a_8240_, lean_object* v_a_8241_, lean_object* v_a_8242_, lean_object* v_a_8243_, lean_object* v_a_8244_){
_start:
{
lean_object* v_res_8245_; 
v_res_8245_ = l_BitVec_reduceLE___redArg(v_e_8239_, v_a_8240_, v_a_8241_, v_a_8242_, v_a_8243_);
return v_res_8245_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLE(lean_object* v_e_8246_, lean_object* v_a_8247_, lean_object* v_a_8248_, 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_){
_start:
{
lean_object* v___x_8255_; 
v___x_8255_ = l_BitVec_reduceLE___redArg(v_e_8246_, v_a_8250_, v_a_8251_, v_a_8252_, v_a_8253_);
return v___x_8255_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLE___boxed(lean_object* v_e_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_, lean_object* v_a_8262_, lean_object* v_a_8263_, lean_object* v_a_8264_){
_start:
{
lean_object* v_res_8265_; 
v_res_8265_ = l_BitVec_reduceLE(v_e_8256_, v_a_8257_, v_a_8258_, v_a_8259_, v_a_8260_, v_a_8261_, v_a_8262_, v_a_8263_);
lean_dec(v_a_8259_);
lean_dec_ref(v_a_8258_);
lean_dec(v_a_8257_);
return v_res_8265_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_8285_; lean_object* v___x_8286_; lean_object* v___x_8287_; lean_object* v___x_8288_; 
v___x_8285_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_));
v___x_8286_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_));
v___x_8287_ = lean_alloc_closure((void*)(l_BitVec_reduceLE___boxed), 9, 0);
v___x_8288_ = l_Lean_Meta_Simp_registerBuiltinSimproc(v___x_8285_, v___x_8286_, v___x_8287_);
return v___x_8288_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21____boxed(lean_object* v_a_8289_){
_start:
{
lean_object* v_res_8290_; 
v_res_8290_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_();
return v_res_8290_;
}
}
static lean_object* _init_l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_(void){
_start:
{
lean_object* v___x_8291_; lean_object* v___x_8292_; 
v___x_8291_ = lean_alloc_closure((void*)(l_BitVec_reduceLE___boxed), 9, 0);
v___x_8292_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8292_, 0, v___x_8291_);
return v___x_8292_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_8294_; uint8_t v___x_8295_; lean_object* v___x_8296_; lean_object* v___x_8297_; 
v___x_8294_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_));
v___x_8295_ = 1;
v___x_8296_ = lean_obj_once(&l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_, &l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23__once, _init_l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_);
v___x_8297_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_8294_, v___x_8295_, v___x_8296_);
return v___x_8297_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23____boxed(lean_object* v_a_8298_){
_start:
{
lean_object* v_res_8299_; 
v_res_8299_ = l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_();
return v_res_8299_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_25_(){
_start:
{
lean_object* v___x_8301_; uint8_t v___x_8302_; lean_object* v___x_8303_; lean_object* v___x_8304_; 
v___x_8301_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_));
v___x_8302_ = 1;
v___x_8303_ = lean_obj_once(&l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_, &l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23__once, _init_l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_);
v___x_8304_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_8301_, v___x_8302_, v___x_8303_);
return v___x_8304_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_25____boxed(lean_object* v_a_8305_){
_start:
{
lean_object* v_res_8306_; 
v_res_8306_ = l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_25_();
return v_res_8306_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGT___redArg(lean_object* v_e_8312_, lean_object* v_a_8313_, lean_object* v_a_8314_, lean_object* v_a_8315_, lean_object* v_a_8316_){
_start:
{
lean_object* v___x_8318_; lean_object* v___x_8319_; uint8_t v___x_8320_; 
v___x_8318_ = ((lean_object*)(l_BitVec_reduceGT___redArg___closed__2));
v___x_8319_ = lean_unsigned_to_nat(4u);
v___x_8320_ = l_Lean_Expr_isAppOfArity(v_e_8312_, v___x_8318_, v___x_8319_);
if (v___x_8320_ == 0)
{
lean_object* v___x_8321_; lean_object* v___x_8322_; 
lean_dec(v_a_8316_);
lean_dec_ref(v_a_8315_);
lean_dec(v_a_8314_);
lean_dec_ref(v_a_8313_);
lean_dec_ref(v_e_8312_);
v___x_8321_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_8322_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8322_, 0, v___x_8321_);
return v___x_8322_;
}
else
{
lean_object* v___x_8323_; lean_object* v___x_8324_; lean_object* v___x_8325_; 
v___x_8323_ = l_Lean_Expr_appFn_x21(v_e_8312_);
v___x_8324_ = l_Lean_Expr_appArg_x21(v___x_8323_);
lean_dec_ref(v___x_8323_);
lean_inc(v_a_8316_);
lean_inc_ref(v_a_8315_);
lean_inc(v_a_8314_);
lean_inc_ref(v_a_8313_);
v___x_8325_ = l_BitVec_fromExpr_x3f___redArg(v___x_8324_, v_a_8313_, v_a_8314_, v_a_8315_, v_a_8316_);
if (lean_obj_tag(v___x_8325_) == 0)
{
lean_object* v_a_8326_; lean_object* v___x_8328_; uint8_t v_isShared_8329_; uint8_t v_isSharedCheck_8366_; 
v_a_8326_ = lean_ctor_get(v___x_8325_, 0);
v_isSharedCheck_8366_ = !lean_is_exclusive(v___x_8325_);
if (v_isSharedCheck_8366_ == 0)
{
v___x_8328_ = v___x_8325_;
v_isShared_8329_ = v_isSharedCheck_8366_;
goto v_resetjp_8327_;
}
else
{
lean_inc(v_a_8326_);
lean_dec(v___x_8325_);
v___x_8328_ = lean_box(0);
v_isShared_8329_ = v_isSharedCheck_8366_;
goto v_resetjp_8327_;
}
v_resetjp_8327_:
{
if (lean_obj_tag(v_a_8326_) == 1)
{
lean_object* v_val_8330_; lean_object* v___x_8331_; lean_object* v___x_8332_; 
lean_del_object(v___x_8328_);
v_val_8330_ = lean_ctor_get(v_a_8326_, 0);
lean_inc(v_val_8330_);
lean_dec_ref(v_a_8326_);
v___x_8331_ = l_Lean_Expr_appArg_x21(v_e_8312_);
lean_inc(v_a_8316_);
lean_inc_ref(v_a_8315_);
lean_inc(v_a_8314_);
lean_inc_ref(v_a_8313_);
v___x_8332_ = l_BitVec_fromExpr_x3f___redArg(v___x_8331_, v_a_8313_, v_a_8314_, v_a_8315_, v_a_8316_);
if (lean_obj_tag(v___x_8332_) == 0)
{
lean_object* v_a_8333_; lean_object* v___x_8335_; uint8_t v_isShared_8336_; uint8_t v_isSharedCheck_8353_; 
v_a_8333_ = lean_ctor_get(v___x_8332_, 0);
v_isSharedCheck_8353_ = !lean_is_exclusive(v___x_8332_);
if (v_isSharedCheck_8353_ == 0)
{
v___x_8335_ = v___x_8332_;
v_isShared_8336_ = v_isSharedCheck_8353_;
goto v_resetjp_8334_;
}
else
{
lean_inc(v_a_8333_);
lean_dec(v___x_8332_);
v___x_8335_ = lean_box(0);
v_isShared_8336_ = v_isSharedCheck_8353_;
goto v_resetjp_8334_;
}
v_resetjp_8334_:
{
if (lean_obj_tag(v_a_8333_) == 1)
{
lean_object* v_val_8337_; lean_object* v_n_8338_; lean_object* v_value_8339_; lean_object* v_n_8340_; lean_object* v_value_8341_; uint8_t v___x_8342_; 
v_val_8337_ = lean_ctor_get(v_a_8333_, 0);
lean_inc(v_val_8337_);
lean_dec_ref(v_a_8333_);
v_n_8338_ = lean_ctor_get(v_val_8330_, 0);
lean_inc(v_n_8338_);
v_value_8339_ = lean_ctor_get(v_val_8330_, 1);
lean_inc(v_value_8339_);
lean_dec(v_val_8330_);
v_n_8340_ = lean_ctor_get(v_val_8337_, 0);
lean_inc(v_n_8340_);
v_value_8341_ = lean_ctor_get(v_val_8337_, 1);
lean_inc(v_value_8341_);
lean_dec(v_val_8337_);
v___x_8342_ = lean_nat_dec_eq(v_n_8338_, v_n_8340_);
lean_dec(v_n_8340_);
lean_dec(v_n_8338_);
if (v___x_8342_ == 0)
{
lean_object* v___x_8343_; lean_object* v___x_8345_; 
lean_dec(v_value_8341_);
lean_dec(v_value_8339_);
lean_dec(v_a_8316_);
lean_dec_ref(v_a_8315_);
lean_dec(v_a_8314_);
lean_dec_ref(v_a_8313_);
lean_dec_ref(v_e_8312_);
v___x_8343_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8336_ == 0)
{
lean_ctor_set(v___x_8335_, 0, v___x_8343_);
v___x_8345_ = v___x_8335_;
goto v_reusejp_8344_;
}
else
{
lean_object* v_reuseFailAlloc_8346_; 
v_reuseFailAlloc_8346_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8346_, 0, v___x_8343_);
v___x_8345_ = v_reuseFailAlloc_8346_;
goto v_reusejp_8344_;
}
v_reusejp_8344_:
{
return v___x_8345_;
}
}
else
{
uint8_t v___x_8347_; lean_object* v___x_8348_; 
lean_del_object(v___x_8335_);
v___x_8347_ = lean_nat_dec_lt(v_value_8341_, v_value_8339_);
lean_dec(v_value_8339_);
lean_dec(v_value_8341_);
v___x_8348_ = l_Lean_Meta_Simp_evalPropStep___redArg(v_e_8312_, v___x_8347_, v_a_8313_, v_a_8314_, v_a_8315_, v_a_8316_);
return v___x_8348_;
}
}
else
{
lean_object* v___x_8349_; lean_object* v___x_8351_; 
lean_dec(v_a_8333_);
lean_dec(v_val_8330_);
lean_dec(v_a_8316_);
lean_dec_ref(v_a_8315_);
lean_dec(v_a_8314_);
lean_dec_ref(v_a_8313_);
lean_dec_ref(v_e_8312_);
v___x_8349_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8336_ == 0)
{
lean_ctor_set(v___x_8335_, 0, v___x_8349_);
v___x_8351_ = v___x_8335_;
goto v_reusejp_8350_;
}
else
{
lean_object* v_reuseFailAlloc_8352_; 
v_reuseFailAlloc_8352_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8352_, 0, v___x_8349_);
v___x_8351_ = v_reuseFailAlloc_8352_;
goto v_reusejp_8350_;
}
v_reusejp_8350_:
{
return v___x_8351_;
}
}
}
}
else
{
lean_object* v_a_8354_; lean_object* v___x_8356_; uint8_t v_isShared_8357_; uint8_t v_isSharedCheck_8361_; 
lean_dec(v_val_8330_);
lean_dec(v_a_8316_);
lean_dec_ref(v_a_8315_);
lean_dec(v_a_8314_);
lean_dec_ref(v_a_8313_);
lean_dec_ref(v_e_8312_);
v_a_8354_ = lean_ctor_get(v___x_8332_, 0);
v_isSharedCheck_8361_ = !lean_is_exclusive(v___x_8332_);
if (v_isSharedCheck_8361_ == 0)
{
v___x_8356_ = v___x_8332_;
v_isShared_8357_ = v_isSharedCheck_8361_;
goto v_resetjp_8355_;
}
else
{
lean_inc(v_a_8354_);
lean_dec(v___x_8332_);
v___x_8356_ = lean_box(0);
v_isShared_8357_ = v_isSharedCheck_8361_;
goto v_resetjp_8355_;
}
v_resetjp_8355_:
{
lean_object* v___x_8359_; 
if (v_isShared_8357_ == 0)
{
v___x_8359_ = v___x_8356_;
goto v_reusejp_8358_;
}
else
{
lean_object* v_reuseFailAlloc_8360_; 
v_reuseFailAlloc_8360_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8360_, 0, v_a_8354_);
v___x_8359_ = v_reuseFailAlloc_8360_;
goto v_reusejp_8358_;
}
v_reusejp_8358_:
{
return v___x_8359_;
}
}
}
}
else
{
lean_object* v___x_8362_; lean_object* v___x_8364_; 
lean_dec(v_a_8326_);
lean_dec(v_a_8316_);
lean_dec_ref(v_a_8315_);
lean_dec(v_a_8314_);
lean_dec_ref(v_a_8313_);
lean_dec_ref(v_e_8312_);
v___x_8362_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8329_ == 0)
{
lean_ctor_set(v___x_8328_, 0, v___x_8362_);
v___x_8364_ = v___x_8328_;
goto v_reusejp_8363_;
}
else
{
lean_object* v_reuseFailAlloc_8365_; 
v_reuseFailAlloc_8365_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8365_, 0, v___x_8362_);
v___x_8364_ = v_reuseFailAlloc_8365_;
goto v_reusejp_8363_;
}
v_reusejp_8363_:
{
return v___x_8364_;
}
}
}
}
else
{
lean_object* v_a_8367_; lean_object* v___x_8369_; uint8_t v_isShared_8370_; uint8_t v_isSharedCheck_8374_; 
lean_dec(v_a_8316_);
lean_dec_ref(v_a_8315_);
lean_dec(v_a_8314_);
lean_dec_ref(v_a_8313_);
lean_dec_ref(v_e_8312_);
v_a_8367_ = lean_ctor_get(v___x_8325_, 0);
v_isSharedCheck_8374_ = !lean_is_exclusive(v___x_8325_);
if (v_isSharedCheck_8374_ == 0)
{
v___x_8369_ = v___x_8325_;
v_isShared_8370_ = v_isSharedCheck_8374_;
goto v_resetjp_8368_;
}
else
{
lean_inc(v_a_8367_);
lean_dec(v___x_8325_);
v___x_8369_ = lean_box(0);
v_isShared_8370_ = v_isSharedCheck_8374_;
goto v_resetjp_8368_;
}
v_resetjp_8368_:
{
lean_object* v___x_8372_; 
if (v_isShared_8370_ == 0)
{
v___x_8372_ = v___x_8369_;
goto v_reusejp_8371_;
}
else
{
lean_object* v_reuseFailAlloc_8373_; 
v_reuseFailAlloc_8373_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8373_, 0, v_a_8367_);
v___x_8372_ = v_reuseFailAlloc_8373_;
goto v_reusejp_8371_;
}
v_reusejp_8371_:
{
return v___x_8372_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGT___redArg___boxed(lean_object* v_e_8375_, lean_object* v_a_8376_, lean_object* v_a_8377_, lean_object* v_a_8378_, lean_object* v_a_8379_, lean_object* v_a_8380_){
_start:
{
lean_object* v_res_8381_; 
v_res_8381_ = l_BitVec_reduceGT___redArg(v_e_8375_, v_a_8376_, v_a_8377_, v_a_8378_, v_a_8379_);
return v_res_8381_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGT(lean_object* v_e_8382_, lean_object* v_a_8383_, lean_object* v_a_8384_, lean_object* v_a_8385_, lean_object* v_a_8386_, lean_object* v_a_8387_, lean_object* v_a_8388_, lean_object* v_a_8389_){
_start:
{
lean_object* v___x_8391_; 
v___x_8391_ = l_BitVec_reduceGT___redArg(v_e_8382_, v_a_8386_, v_a_8387_, v_a_8388_, v_a_8389_);
return v___x_8391_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGT___boxed(lean_object* v_e_8392_, lean_object* v_a_8393_, lean_object* v_a_8394_, lean_object* v_a_8395_, lean_object* v_a_8396_, lean_object* v_a_8397_, lean_object* v_a_8398_, lean_object* v_a_8399_, lean_object* v_a_8400_){
_start:
{
lean_object* v_res_8401_; 
v_res_8401_ = l_BitVec_reduceGT(v_e_8392_, v_a_8393_, v_a_8394_, v_a_8395_, v_a_8396_, v_a_8397_, v_a_8398_, v_a_8399_);
lean_dec(v_a_8395_);
lean_dec_ref(v_a_8394_);
lean_dec(v_a_8393_);
return v_res_8401_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_8407_; lean_object* v___x_8408_; lean_object* v___x_8409_; lean_object* v___x_8410_; 
v___x_8407_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21_));
v___x_8408_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_));
v___x_8409_ = lean_alloc_closure((void*)(l_BitVec_reduceGT___boxed), 9, 0);
v___x_8410_ = l_Lean_Meta_Simp_registerBuiltinSimproc(v___x_8407_, v___x_8408_, v___x_8409_);
return v___x_8410_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21____boxed(lean_object* v_a_8411_){
_start:
{
lean_object* v_res_8412_; 
v_res_8412_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21_();
return v_res_8412_;
}
}
static lean_object* _init_l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_(void){
_start:
{
lean_object* v___x_8413_; lean_object* v___x_8414_; 
v___x_8413_ = lean_alloc_closure((void*)(l_BitVec_reduceGT___boxed), 9, 0);
v___x_8414_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8414_, 0, v___x_8413_);
return v___x_8414_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_8416_; uint8_t v___x_8417_; lean_object* v___x_8418_; lean_object* v___x_8419_; 
v___x_8416_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21_));
v___x_8417_ = 1;
v___x_8418_ = lean_obj_once(&l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_, &l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23__once, _init_l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_);
v___x_8419_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_8416_, v___x_8417_, v___x_8418_);
return v___x_8419_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23____boxed(lean_object* v_a_8420_){
_start:
{
lean_object* v_res_8421_; 
v_res_8421_ = l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_();
return v_res_8421_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_25_(){
_start:
{
lean_object* v___x_8423_; uint8_t v___x_8424_; lean_object* v___x_8425_; lean_object* v___x_8426_; 
v___x_8423_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21_));
v___x_8424_ = 1;
v___x_8425_ = lean_obj_once(&l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_, &l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23__once, _init_l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_);
v___x_8426_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_8423_, v___x_8424_, v___x_8425_);
return v___x_8426_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_25____boxed(lean_object* v_a_8427_){
_start:
{
lean_object* v_res_8428_; 
v_res_8428_ = l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_25_();
return v_res_8428_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGE___redArg(lean_object* v_e_8434_, lean_object* v_a_8435_, lean_object* v_a_8436_, lean_object* v_a_8437_, lean_object* v_a_8438_){
_start:
{
lean_object* v___x_8440_; lean_object* v___x_8441_; uint8_t v___x_8442_; 
v___x_8440_ = ((lean_object*)(l_BitVec_reduceGE___redArg___closed__2));
v___x_8441_ = lean_unsigned_to_nat(4u);
v___x_8442_ = l_Lean_Expr_isAppOfArity(v_e_8434_, v___x_8440_, v___x_8441_);
if (v___x_8442_ == 0)
{
lean_object* v___x_8443_; lean_object* v___x_8444_; 
lean_dec(v_a_8438_);
lean_dec_ref(v_a_8437_);
lean_dec(v_a_8436_);
lean_dec_ref(v_a_8435_);
lean_dec_ref(v_e_8434_);
v___x_8443_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_8444_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8444_, 0, v___x_8443_);
return v___x_8444_;
}
else
{
lean_object* v___x_8445_; lean_object* v___x_8446_; lean_object* v___x_8447_; 
v___x_8445_ = l_Lean_Expr_appFn_x21(v_e_8434_);
v___x_8446_ = l_Lean_Expr_appArg_x21(v___x_8445_);
lean_dec_ref(v___x_8445_);
lean_inc(v_a_8438_);
lean_inc_ref(v_a_8437_);
lean_inc(v_a_8436_);
lean_inc_ref(v_a_8435_);
v___x_8447_ = l_BitVec_fromExpr_x3f___redArg(v___x_8446_, v_a_8435_, v_a_8436_, v_a_8437_, v_a_8438_);
if (lean_obj_tag(v___x_8447_) == 0)
{
lean_object* v_a_8448_; lean_object* v___x_8450_; uint8_t v_isShared_8451_; uint8_t v_isSharedCheck_8488_; 
v_a_8448_ = lean_ctor_get(v___x_8447_, 0);
v_isSharedCheck_8488_ = !lean_is_exclusive(v___x_8447_);
if (v_isSharedCheck_8488_ == 0)
{
v___x_8450_ = v___x_8447_;
v_isShared_8451_ = v_isSharedCheck_8488_;
goto v_resetjp_8449_;
}
else
{
lean_inc(v_a_8448_);
lean_dec(v___x_8447_);
v___x_8450_ = lean_box(0);
v_isShared_8451_ = v_isSharedCheck_8488_;
goto v_resetjp_8449_;
}
v_resetjp_8449_:
{
if (lean_obj_tag(v_a_8448_) == 1)
{
lean_object* v_val_8452_; lean_object* v___x_8453_; lean_object* v___x_8454_; 
lean_del_object(v___x_8450_);
v_val_8452_ = lean_ctor_get(v_a_8448_, 0);
lean_inc(v_val_8452_);
lean_dec_ref(v_a_8448_);
v___x_8453_ = l_Lean_Expr_appArg_x21(v_e_8434_);
lean_inc(v_a_8438_);
lean_inc_ref(v_a_8437_);
lean_inc(v_a_8436_);
lean_inc_ref(v_a_8435_);
v___x_8454_ = l_BitVec_fromExpr_x3f___redArg(v___x_8453_, v_a_8435_, v_a_8436_, v_a_8437_, v_a_8438_);
if (lean_obj_tag(v___x_8454_) == 0)
{
lean_object* v_a_8455_; lean_object* v___x_8457_; uint8_t v_isShared_8458_; uint8_t v_isSharedCheck_8475_; 
v_a_8455_ = lean_ctor_get(v___x_8454_, 0);
v_isSharedCheck_8475_ = !lean_is_exclusive(v___x_8454_);
if (v_isSharedCheck_8475_ == 0)
{
v___x_8457_ = v___x_8454_;
v_isShared_8458_ = v_isSharedCheck_8475_;
goto v_resetjp_8456_;
}
else
{
lean_inc(v_a_8455_);
lean_dec(v___x_8454_);
v___x_8457_ = lean_box(0);
v_isShared_8458_ = v_isSharedCheck_8475_;
goto v_resetjp_8456_;
}
v_resetjp_8456_:
{
if (lean_obj_tag(v_a_8455_) == 1)
{
lean_object* v_val_8459_; lean_object* v_n_8460_; lean_object* v_value_8461_; lean_object* v_n_8462_; lean_object* v_value_8463_; uint8_t v___x_8464_; 
v_val_8459_ = lean_ctor_get(v_a_8455_, 0);
lean_inc(v_val_8459_);
lean_dec_ref(v_a_8455_);
v_n_8460_ = lean_ctor_get(v_val_8452_, 0);
lean_inc(v_n_8460_);
v_value_8461_ = lean_ctor_get(v_val_8452_, 1);
lean_inc(v_value_8461_);
lean_dec(v_val_8452_);
v_n_8462_ = lean_ctor_get(v_val_8459_, 0);
lean_inc(v_n_8462_);
v_value_8463_ = lean_ctor_get(v_val_8459_, 1);
lean_inc(v_value_8463_);
lean_dec(v_val_8459_);
v___x_8464_ = lean_nat_dec_eq(v_n_8460_, v_n_8462_);
lean_dec(v_n_8462_);
lean_dec(v_n_8460_);
if (v___x_8464_ == 0)
{
lean_object* v___x_8465_; lean_object* v___x_8467_; 
lean_dec(v_value_8463_);
lean_dec(v_value_8461_);
lean_dec(v_a_8438_);
lean_dec_ref(v_a_8437_);
lean_dec(v_a_8436_);
lean_dec_ref(v_a_8435_);
lean_dec_ref(v_e_8434_);
v___x_8465_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8458_ == 0)
{
lean_ctor_set(v___x_8457_, 0, v___x_8465_);
v___x_8467_ = v___x_8457_;
goto v_reusejp_8466_;
}
else
{
lean_object* v_reuseFailAlloc_8468_; 
v_reuseFailAlloc_8468_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8468_, 0, v___x_8465_);
v___x_8467_ = v_reuseFailAlloc_8468_;
goto v_reusejp_8466_;
}
v_reusejp_8466_:
{
return v___x_8467_;
}
}
else
{
uint8_t v___x_8469_; lean_object* v___x_8470_; 
lean_del_object(v___x_8457_);
v___x_8469_ = lean_nat_dec_le(v_value_8463_, v_value_8461_);
lean_dec(v_value_8461_);
lean_dec(v_value_8463_);
v___x_8470_ = l_Lean_Meta_Simp_evalPropStep___redArg(v_e_8434_, v___x_8469_, v_a_8435_, v_a_8436_, v_a_8437_, v_a_8438_);
return v___x_8470_;
}
}
else
{
lean_object* v___x_8471_; lean_object* v___x_8473_; 
lean_dec(v_a_8455_);
lean_dec(v_val_8452_);
lean_dec(v_a_8438_);
lean_dec_ref(v_a_8437_);
lean_dec(v_a_8436_);
lean_dec_ref(v_a_8435_);
lean_dec_ref(v_e_8434_);
v___x_8471_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8458_ == 0)
{
lean_ctor_set(v___x_8457_, 0, v___x_8471_);
v___x_8473_ = v___x_8457_;
goto v_reusejp_8472_;
}
else
{
lean_object* v_reuseFailAlloc_8474_; 
v_reuseFailAlloc_8474_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8474_, 0, v___x_8471_);
v___x_8473_ = v_reuseFailAlloc_8474_;
goto v_reusejp_8472_;
}
v_reusejp_8472_:
{
return v___x_8473_;
}
}
}
}
else
{
lean_object* v_a_8476_; lean_object* v___x_8478_; uint8_t v_isShared_8479_; uint8_t v_isSharedCheck_8483_; 
lean_dec(v_val_8452_);
lean_dec(v_a_8438_);
lean_dec_ref(v_a_8437_);
lean_dec(v_a_8436_);
lean_dec_ref(v_a_8435_);
lean_dec_ref(v_e_8434_);
v_a_8476_ = lean_ctor_get(v___x_8454_, 0);
v_isSharedCheck_8483_ = !lean_is_exclusive(v___x_8454_);
if (v_isSharedCheck_8483_ == 0)
{
v___x_8478_ = v___x_8454_;
v_isShared_8479_ = v_isSharedCheck_8483_;
goto v_resetjp_8477_;
}
else
{
lean_inc(v_a_8476_);
lean_dec(v___x_8454_);
v___x_8478_ = lean_box(0);
v_isShared_8479_ = v_isSharedCheck_8483_;
goto v_resetjp_8477_;
}
v_resetjp_8477_:
{
lean_object* v___x_8481_; 
if (v_isShared_8479_ == 0)
{
v___x_8481_ = v___x_8478_;
goto v_reusejp_8480_;
}
else
{
lean_object* v_reuseFailAlloc_8482_; 
v_reuseFailAlloc_8482_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8482_, 0, v_a_8476_);
v___x_8481_ = v_reuseFailAlloc_8482_;
goto v_reusejp_8480_;
}
v_reusejp_8480_:
{
return v___x_8481_;
}
}
}
}
else
{
lean_object* v___x_8484_; lean_object* v___x_8486_; 
lean_dec(v_a_8448_);
lean_dec(v_a_8438_);
lean_dec_ref(v_a_8437_);
lean_dec(v_a_8436_);
lean_dec_ref(v_a_8435_);
lean_dec_ref(v_e_8434_);
v___x_8484_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_8451_ == 0)
{
lean_ctor_set(v___x_8450_, 0, v___x_8484_);
v___x_8486_ = v___x_8450_;
goto v_reusejp_8485_;
}
else
{
lean_object* v_reuseFailAlloc_8487_; 
v_reuseFailAlloc_8487_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8487_, 0, v___x_8484_);
v___x_8486_ = v_reuseFailAlloc_8487_;
goto v_reusejp_8485_;
}
v_reusejp_8485_:
{
return v___x_8486_;
}
}
}
}
else
{
lean_object* v_a_8489_; lean_object* v___x_8491_; uint8_t v_isShared_8492_; uint8_t v_isSharedCheck_8496_; 
lean_dec(v_a_8438_);
lean_dec_ref(v_a_8437_);
lean_dec(v_a_8436_);
lean_dec_ref(v_a_8435_);
lean_dec_ref(v_e_8434_);
v_a_8489_ = lean_ctor_get(v___x_8447_, 0);
v_isSharedCheck_8496_ = !lean_is_exclusive(v___x_8447_);
if (v_isSharedCheck_8496_ == 0)
{
v___x_8491_ = v___x_8447_;
v_isShared_8492_ = v_isSharedCheck_8496_;
goto v_resetjp_8490_;
}
else
{
lean_inc(v_a_8489_);
lean_dec(v___x_8447_);
v___x_8491_ = lean_box(0);
v_isShared_8492_ = v_isSharedCheck_8496_;
goto v_resetjp_8490_;
}
v_resetjp_8490_:
{
lean_object* v___x_8494_; 
if (v_isShared_8492_ == 0)
{
v___x_8494_ = v___x_8491_;
goto v_reusejp_8493_;
}
else
{
lean_object* v_reuseFailAlloc_8495_; 
v_reuseFailAlloc_8495_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8495_, 0, v_a_8489_);
v___x_8494_ = v_reuseFailAlloc_8495_;
goto v_reusejp_8493_;
}
v_reusejp_8493_:
{
return v___x_8494_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGE___redArg___boxed(lean_object* v_e_8497_, lean_object* v_a_8498_, lean_object* v_a_8499_, lean_object* v_a_8500_, lean_object* v_a_8501_, lean_object* v_a_8502_){
_start:
{
lean_object* v_res_8503_; 
v_res_8503_ = l_BitVec_reduceGE___redArg(v_e_8497_, v_a_8498_, v_a_8499_, v_a_8500_, v_a_8501_);
return v_res_8503_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGE(lean_object* v_e_8504_, lean_object* v_a_8505_, lean_object* v_a_8506_, lean_object* v_a_8507_, lean_object* v_a_8508_, lean_object* v_a_8509_, lean_object* v_a_8510_, lean_object* v_a_8511_){
_start:
{
lean_object* v___x_8513_; 
v___x_8513_ = l_BitVec_reduceGE___redArg(v_e_8504_, v_a_8508_, v_a_8509_, v_a_8510_, v_a_8511_);
return v___x_8513_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGE___boxed(lean_object* v_e_8514_, lean_object* v_a_8515_, lean_object* v_a_8516_, lean_object* v_a_8517_, lean_object* v_a_8518_, lean_object* v_a_8519_, lean_object* v_a_8520_, lean_object* v_a_8521_, lean_object* v_a_8522_){
_start:
{
lean_object* v_res_8523_; 
v_res_8523_ = l_BitVec_reduceGE(v_e_8514_, v_a_8515_, v_a_8516_, v_a_8517_, v_a_8518_, v_a_8519_, v_a_8520_, v_a_8521_);
lean_dec(v_a_8517_);
lean_dec_ref(v_a_8516_);
lean_dec(v_a_8515_);
return v_res_8523_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21_(){
_start:
{
lean_object* v___x_8529_; lean_object* v___x_8530_; lean_object* v___x_8531_; lean_object* v___x_8532_; 
v___x_8529_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21_));
v___x_8530_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_));
v___x_8531_ = lean_alloc_closure((void*)(l_BitVec_reduceGE___boxed), 9, 0);
v___x_8532_ = l_Lean_Meta_Simp_registerBuiltinSimproc(v___x_8529_, v___x_8530_, v___x_8531_);
return v___x_8532_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21____boxed(lean_object* v_a_8533_){
_start:
{
lean_object* v_res_8534_; 
v_res_8534_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21_();
return v_res_8534_;
}
}
static lean_object* _init_l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_(void){
_start:
{
lean_object* v___x_8535_; lean_object* v___x_8536_; 
v___x_8535_ = lean_alloc_closure((void*)(l_BitVec_reduceGE___boxed), 9, 0);
v___x_8536_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8536_, 0, v___x_8535_);
return v___x_8536_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_(){
_start:
{
lean_object* v___x_8538_; uint8_t v___x_8539_; lean_object* v___x_8540_; lean_object* v___x_8541_; 
v___x_8538_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21_));
v___x_8539_ = 1;
v___x_8540_ = lean_obj_once(&l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_, &l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23__once, _init_l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_);
v___x_8541_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_8538_, v___x_8539_, v___x_8540_);
return v___x_8541_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23____boxed(lean_object* v_a_8542_){
_start:
{
lean_object* v_res_8543_; 
v_res_8543_ = l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_();
return v_res_8543_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_25_(){
_start:
{
lean_object* v___x_8545_; uint8_t v___x_8546_; lean_object* v___x_8547_; lean_object* v___x_8548_; 
v___x_8545_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21_));
v___x_8546_ = 1;
v___x_8547_ = lean_obj_once(&l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_, &l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23__once, _init_l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_);
v___x_8548_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_8545_, v___x_8546_, v___x_8547_);
return v___x_8548_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_25____boxed(lean_object* v_a_8549_){
_start:
{
lean_object* v_res_8550_; 
v_res_8550_ = l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_25_();
return v_res_8550_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULT___redArg(lean_object* v_e_8555_, lean_object* v_a_8556_, lean_object* v_a_8557_, lean_object* v_a_8558_, lean_object* v_a_8559_){
_start:
{
lean_object* v___x_8561_; lean_object* v___x_8562_; uint8_t v___x_8563_; 
v___x_8561_ = ((lean_object*)(l_BitVec_reduceULT___redArg___closed__1));
v___x_8562_ = lean_unsigned_to_nat(3u);
v___x_8563_ = l_Lean_Expr_isAppOfArity(v_e_8555_, v___x_8561_, v___x_8562_);
if (v___x_8563_ == 0)
{
lean_object* v___x_8564_; lean_object* v___x_8565_; 
lean_dec(v_a_8559_);
lean_dec_ref(v_a_8558_);
lean_dec(v_a_8557_);
lean_dec_ref(v_a_8556_);
v___x_8564_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_8565_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8565_, 0, v___x_8564_);
return v___x_8565_;
}
else
{
lean_object* v___x_8566_; lean_object* v___x_8567_; lean_object* v___x_8568_; 
v___x_8566_ = l_Lean_Expr_appFn_x21(v_e_8555_);
v___x_8567_ = l_Lean_Expr_appArg_x21(v___x_8566_);
lean_dec_ref(v___x_8566_);
lean_inc(v_a_8559_);
lean_inc_ref(v_a_8558_);
lean_inc(v_a_8557_);
lean_inc_ref(v_a_8556_);
v___x_8568_ = l_BitVec_fromExpr_x3f___redArg(v___x_8567_, v_a_8556_, v_a_8557_, v_a_8558_, v_a_8559_);
if (lean_obj_tag(v___x_8568_) == 0)
{
lean_object* v_a_8569_; lean_object* v___x_8571_; uint8_t v_isShared_8572_; uint8_t v_isSharedCheck_8622_; 
v_a_8569_ = lean_ctor_get(v___x_8568_, 0);
v_isSharedCheck_8622_ = !lean_is_exclusive(v___x_8568_);
if (v_isSharedCheck_8622_ == 0)
{
v___x_8571_ = v___x_8568_;
v_isShared_8572_ = v_isSharedCheck_8622_;
goto v_resetjp_8570_;
}
else
{
lean_inc(v_a_8569_);
lean_dec(v___x_8568_);
v___x_8571_ = lean_box(0);
v_isShared_8572_ = v_isSharedCheck_8622_;
goto v_resetjp_8570_;
}
v_resetjp_8570_:
{
if (lean_obj_tag(v_a_8569_) == 1)
{
lean_object* v_val_8573_; lean_object* v___x_8575_; uint8_t v_isShared_8576_; uint8_t v_isSharedCheck_8617_; 
v_val_8573_ = lean_ctor_get(v_a_8569_, 0);
v_isSharedCheck_8617_ = !lean_is_exclusive(v_a_8569_);
if (v_isSharedCheck_8617_ == 0)
{
v___x_8575_ = v_a_8569_;
v_isShared_8576_ = v_isSharedCheck_8617_;
goto v_resetjp_8574_;
}
else
{
lean_inc(v_val_8573_);
lean_dec(v_a_8569_);
v___x_8575_ = lean_box(0);
v_isShared_8576_ = v_isSharedCheck_8617_;
goto v_resetjp_8574_;
}
v_resetjp_8574_:
{
lean_object* v___x_8577_; lean_object* v___x_8578_; 
v___x_8577_ = l_Lean_Expr_appArg_x21(v_e_8555_);
v___x_8578_ = l_BitVec_fromExpr_x3f___redArg(v___x_8577_, v_a_8556_, v_a_8557_, v_a_8558_, v_a_8559_);
if (lean_obj_tag(v___x_8578_) == 0)
{
lean_object* v_a_8579_; lean_object* v___x_8581_; uint8_t v_isShared_8582_; uint8_t v_isSharedCheck_8608_; 
v_a_8579_ = lean_ctor_get(v___x_8578_, 0);
v_isSharedCheck_8608_ = !lean_is_exclusive(v___x_8578_);
if (v_isSharedCheck_8608_ == 0)
{
v___x_8581_ = v___x_8578_;
v_isShared_8582_ = v_isSharedCheck_8608_;
goto v_resetjp_8580_;
}
else
{
lean_inc(v_a_8579_);
lean_dec(v___x_8578_);
v___x_8581_ = lean_box(0);
v_isShared_8582_ = v_isSharedCheck_8608_;
goto v_resetjp_8580_;
}
v_resetjp_8580_:
{
lean_object* v___y_8584_; 
if (lean_obj_tag(v_a_8579_) == 1)
{
lean_object* v_val_8591_; lean_object* v_n_8592_; lean_object* v_value_8593_; lean_object* v_n_8594_; lean_object* v_value_8595_; uint8_t v___x_8596_; 
v_val_8591_ = lean_ctor_get(v_a_8579_, 0);
lean_inc(v_val_8591_);
lean_dec_ref(v_a_8579_);
v_n_8592_ = lean_ctor_get(v_val_8573_, 0);
lean_inc(v_n_8592_);
v_value_8593_ = lean_ctor_get(v_val_8573_, 1);
lean_inc(v_value_8593_);
lean_dec(v_val_8573_);
v_n_8594_ = lean_ctor_get(v_val_8591_, 0);
lean_inc(v_n_8594_);
v_value_8595_ = lean_ctor_get(v_val_8591_, 1);
lean_inc(v_value_8595_);
lean_dec(v_val_8591_);
v___x_8596_ = lean_nat_dec_eq(v_n_8592_, v_n_8594_);
lean_dec(v_n_8594_);
lean_dec(v_n_8592_);
if (v___x_8596_ == 0)
{
lean_object* v___x_8597_; lean_object* v___x_8599_; 
lean_dec(v_value_8595_);
lean_dec(v_value_8593_);
lean_del_object(v___x_8581_);
lean_del_object(v___x_8575_);
v___x_8597_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_8572_ == 0)
{
lean_ctor_set(v___x_8571_, 0, v___x_8597_);
v___x_8599_ = v___x_8571_;
goto v_reusejp_8598_;
}
else
{
lean_object* v_reuseFailAlloc_8600_; 
v_reuseFailAlloc_8600_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8600_, 0, v___x_8597_);
v___x_8599_ = v_reuseFailAlloc_8600_;
goto v_reusejp_8598_;
}
v_reusejp_8598_:
{
return v___x_8599_;
}
}
else
{
uint8_t v___x_8601_; 
lean_del_object(v___x_8571_);
v___x_8601_ = lean_nat_dec_lt(v_value_8593_, v_value_8595_);
lean_dec(v_value_8595_);
lean_dec(v_value_8593_);
if (v___x_8601_ == 0)
{
lean_object* v___x_8602_; 
v___x_8602_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_8584_ = v___x_8602_;
goto v___jp_8583_;
}
else
{
lean_object* v___x_8603_; 
v___x_8603_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_8584_ = v___x_8603_;
goto v___jp_8583_;
}
}
}
else
{
lean_object* v___x_8604_; lean_object* v___x_8606_; 
lean_del_object(v___x_8581_);
lean_dec(v_a_8579_);
lean_del_object(v___x_8575_);
lean_dec(v_val_8573_);
v___x_8604_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_8572_ == 0)
{
lean_ctor_set(v___x_8571_, 0, v___x_8604_);
v___x_8606_ = v___x_8571_;
goto v_reusejp_8605_;
}
else
{
lean_object* v_reuseFailAlloc_8607_; 
v_reuseFailAlloc_8607_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8607_, 0, v___x_8604_);
v___x_8606_ = v_reuseFailAlloc_8607_;
goto v_reusejp_8605_;
}
v_reusejp_8605_:
{
return v___x_8606_;
}
}
v___jp_8583_:
{
lean_object* v___x_8586_; 
if (v_isShared_8576_ == 0)
{
lean_ctor_set_tag(v___x_8575_, 0);
lean_ctor_set(v___x_8575_, 0, v___y_8584_);
v___x_8586_ = v___x_8575_;
goto v_reusejp_8585_;
}
else
{
lean_object* v_reuseFailAlloc_8590_; 
v_reuseFailAlloc_8590_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8590_, 0, v___y_8584_);
v___x_8586_ = v_reuseFailAlloc_8590_;
goto v_reusejp_8585_;
}
v_reusejp_8585_:
{
lean_object* v___x_8588_; 
if (v_isShared_8582_ == 0)
{
lean_ctor_set(v___x_8581_, 0, v___x_8586_);
v___x_8588_ = v___x_8581_;
goto v_reusejp_8587_;
}
else
{
lean_object* v_reuseFailAlloc_8589_; 
v_reuseFailAlloc_8589_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8589_, 0, v___x_8586_);
v___x_8588_ = v_reuseFailAlloc_8589_;
goto v_reusejp_8587_;
}
v_reusejp_8587_:
{
return v___x_8588_;
}
}
}
}
}
else
{
lean_object* v_a_8609_; lean_object* v___x_8611_; uint8_t v_isShared_8612_; uint8_t v_isSharedCheck_8616_; 
lean_del_object(v___x_8575_);
lean_dec(v_val_8573_);
lean_del_object(v___x_8571_);
v_a_8609_ = lean_ctor_get(v___x_8578_, 0);
v_isSharedCheck_8616_ = !lean_is_exclusive(v___x_8578_);
if (v_isSharedCheck_8616_ == 0)
{
v___x_8611_ = v___x_8578_;
v_isShared_8612_ = v_isSharedCheck_8616_;
goto v_resetjp_8610_;
}
else
{
lean_inc(v_a_8609_);
lean_dec(v___x_8578_);
v___x_8611_ = lean_box(0);
v_isShared_8612_ = v_isSharedCheck_8616_;
goto v_resetjp_8610_;
}
v_resetjp_8610_:
{
lean_object* v___x_8614_; 
if (v_isShared_8612_ == 0)
{
v___x_8614_ = v___x_8611_;
goto v_reusejp_8613_;
}
else
{
lean_object* v_reuseFailAlloc_8615_; 
v_reuseFailAlloc_8615_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8615_, 0, v_a_8609_);
v___x_8614_ = v_reuseFailAlloc_8615_;
goto v_reusejp_8613_;
}
v_reusejp_8613_:
{
return v___x_8614_;
}
}
}
}
}
else
{
lean_object* v___x_8618_; lean_object* v___x_8620_; 
lean_dec(v_a_8569_);
lean_dec(v_a_8559_);
lean_dec_ref(v_a_8558_);
lean_dec(v_a_8557_);
lean_dec_ref(v_a_8556_);
v___x_8618_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_8572_ == 0)
{
lean_ctor_set(v___x_8571_, 0, v___x_8618_);
v___x_8620_ = v___x_8571_;
goto v_reusejp_8619_;
}
else
{
lean_object* v_reuseFailAlloc_8621_; 
v_reuseFailAlloc_8621_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8621_, 0, v___x_8618_);
v___x_8620_ = v_reuseFailAlloc_8621_;
goto v_reusejp_8619_;
}
v_reusejp_8619_:
{
return v___x_8620_;
}
}
}
}
else
{
lean_object* v_a_8623_; lean_object* v___x_8625_; uint8_t v_isShared_8626_; uint8_t v_isSharedCheck_8630_; 
lean_dec(v_a_8559_);
lean_dec_ref(v_a_8558_);
lean_dec(v_a_8557_);
lean_dec_ref(v_a_8556_);
v_a_8623_ = lean_ctor_get(v___x_8568_, 0);
v_isSharedCheck_8630_ = !lean_is_exclusive(v___x_8568_);
if (v_isSharedCheck_8630_ == 0)
{
v___x_8625_ = v___x_8568_;
v_isShared_8626_ = v_isSharedCheck_8630_;
goto v_resetjp_8624_;
}
else
{
lean_inc(v_a_8623_);
lean_dec(v___x_8568_);
v___x_8625_ = lean_box(0);
v_isShared_8626_ = v_isSharedCheck_8630_;
goto v_resetjp_8624_;
}
v_resetjp_8624_:
{
lean_object* v___x_8628_; 
if (v_isShared_8626_ == 0)
{
v___x_8628_ = v___x_8625_;
goto v_reusejp_8627_;
}
else
{
lean_object* v_reuseFailAlloc_8629_; 
v_reuseFailAlloc_8629_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8629_, 0, v_a_8623_);
v___x_8628_ = v_reuseFailAlloc_8629_;
goto v_reusejp_8627_;
}
v_reusejp_8627_:
{
return v___x_8628_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULT___redArg___boxed(lean_object* v_e_8631_, lean_object* v_a_8632_, lean_object* v_a_8633_, lean_object* v_a_8634_, lean_object* v_a_8635_, lean_object* v_a_8636_){
_start:
{
lean_object* v_res_8637_; 
v_res_8637_ = l_BitVec_reduceULT___redArg(v_e_8631_, v_a_8632_, v_a_8633_, v_a_8634_, v_a_8635_);
lean_dec_ref(v_e_8631_);
return v_res_8637_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULT(lean_object* v_e_8638_, lean_object* v_a_8639_, lean_object* v_a_8640_, lean_object* v_a_8641_, lean_object* v_a_8642_, lean_object* v_a_8643_, lean_object* v_a_8644_, lean_object* v_a_8645_){
_start:
{
lean_object* v___x_8647_; 
v___x_8647_ = l_BitVec_reduceULT___redArg(v_e_8638_, v_a_8642_, v_a_8643_, v_a_8644_, v_a_8645_);
return v___x_8647_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULT___boxed(lean_object* v_e_8648_, lean_object* v_a_8649_, lean_object* v_a_8650_, lean_object* v_a_8651_, lean_object* v_a_8652_, lean_object* v_a_8653_, lean_object* v_a_8654_, lean_object* v_a_8655_, lean_object* v_a_8656_){
_start:
{
lean_object* v_res_8657_; 
v_res_8657_ = l_BitVec_reduceULT(v_e_8648_, v_a_8649_, v_a_8650_, v_a_8651_, v_a_8652_, v_a_8653_, v_a_8654_, v_a_8655_);
lean_dec(v_a_8651_);
lean_dec_ref(v_a_8650_);
lean_dec(v_a_8649_);
lean_dec_ref(v_e_8648_);
return v_res_8657_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_8674_; lean_object* v___x_8675_; lean_object* v___x_8676_; lean_object* v___x_8677_; 
v___x_8674_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_));
v___x_8675_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_));
v___x_8676_ = lean_alloc_closure((void*)(l_BitVec_reduceULT___boxed), 9, 0);
v___x_8677_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_8674_, v___x_8675_, v___x_8676_);
return v___x_8677_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14____boxed(lean_object* v_a_8678_){
_start:
{
lean_object* v_res_8679_; 
v_res_8679_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_();
return v_res_8679_;
}
}
static lean_object* _init_l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_8680_; lean_object* v___x_8681_; 
v___x_8680_ = lean_alloc_closure((void*)(l_BitVec_reduceULT___boxed), 9, 0);
v___x_8681_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_8681_, 0, v___x_8680_);
return v___x_8681_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_8683_; uint8_t v___x_8684_; lean_object* v___x_8685_; lean_object* v___x_8686_; 
v___x_8683_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_));
v___x_8684_ = 1;
v___x_8685_ = lean_obj_once(&l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_, &l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16__once, _init_l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_);
v___x_8686_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_8683_, v___x_8684_, v___x_8685_);
return v___x_8686_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16____boxed(lean_object* v_a_8687_){
_start:
{
lean_object* v_res_8688_; 
v_res_8688_ = l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_();
return v_res_8688_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_8690_; uint8_t v___x_8691_; lean_object* v___x_8692_; lean_object* v___x_8693_; 
v___x_8690_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_));
v___x_8691_ = 1;
v___x_8692_ = lean_obj_once(&l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_, &l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16__once, _init_l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_);
v___x_8693_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_8690_, v___x_8691_, v___x_8692_);
return v___x_8693_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_18____boxed(lean_object* v_a_8694_){
_start:
{
lean_object* v_res_8695_; 
v_res_8695_ = l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_18_();
return v_res_8695_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULE___redArg(lean_object* v_e_8700_, lean_object* v_a_8701_, lean_object* v_a_8702_, lean_object* v_a_8703_, lean_object* v_a_8704_){
_start:
{
lean_object* v___x_8706_; lean_object* v___x_8707_; uint8_t v___x_8708_; 
v___x_8706_ = ((lean_object*)(l_BitVec_reduceULE___redArg___closed__1));
v___x_8707_ = lean_unsigned_to_nat(3u);
v___x_8708_ = l_Lean_Expr_isAppOfArity(v_e_8700_, v___x_8706_, v___x_8707_);
if (v___x_8708_ == 0)
{
lean_object* v___x_8709_; lean_object* v___x_8710_; 
lean_dec(v_a_8704_);
lean_dec_ref(v_a_8703_);
lean_dec(v_a_8702_);
lean_dec_ref(v_a_8701_);
v___x_8709_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_8710_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8710_, 0, v___x_8709_);
return v___x_8710_;
}
else
{
lean_object* v___x_8711_; lean_object* v___x_8712_; lean_object* v___x_8713_; 
v___x_8711_ = l_Lean_Expr_appFn_x21(v_e_8700_);
v___x_8712_ = l_Lean_Expr_appArg_x21(v___x_8711_);
lean_dec_ref(v___x_8711_);
lean_inc(v_a_8704_);
lean_inc_ref(v_a_8703_);
lean_inc(v_a_8702_);
lean_inc_ref(v_a_8701_);
v___x_8713_ = l_BitVec_fromExpr_x3f___redArg(v___x_8712_, v_a_8701_, v_a_8702_, v_a_8703_, v_a_8704_);
if (lean_obj_tag(v___x_8713_) == 0)
{
lean_object* v_a_8714_; lean_object* v___x_8716_; uint8_t v_isShared_8717_; uint8_t v_isSharedCheck_8767_; 
v_a_8714_ = lean_ctor_get(v___x_8713_, 0);
v_isSharedCheck_8767_ = !lean_is_exclusive(v___x_8713_);
if (v_isSharedCheck_8767_ == 0)
{
v___x_8716_ = v___x_8713_;
v_isShared_8717_ = v_isSharedCheck_8767_;
goto v_resetjp_8715_;
}
else
{
lean_inc(v_a_8714_);
lean_dec(v___x_8713_);
v___x_8716_ = lean_box(0);
v_isShared_8717_ = v_isSharedCheck_8767_;
goto v_resetjp_8715_;
}
v_resetjp_8715_:
{
if (lean_obj_tag(v_a_8714_) == 1)
{
lean_object* v_val_8718_; lean_object* v___x_8720_; uint8_t v_isShared_8721_; uint8_t v_isSharedCheck_8762_; 
v_val_8718_ = lean_ctor_get(v_a_8714_, 0);
v_isSharedCheck_8762_ = !lean_is_exclusive(v_a_8714_);
if (v_isSharedCheck_8762_ == 0)
{
v___x_8720_ = v_a_8714_;
v_isShared_8721_ = v_isSharedCheck_8762_;
goto v_resetjp_8719_;
}
else
{
lean_inc(v_val_8718_);
lean_dec(v_a_8714_);
v___x_8720_ = lean_box(0);
v_isShared_8721_ = v_isSharedCheck_8762_;
goto v_resetjp_8719_;
}
v_resetjp_8719_:
{
lean_object* v___x_8722_; lean_object* v___x_8723_; 
v___x_8722_ = l_Lean_Expr_appArg_x21(v_e_8700_);
v___x_8723_ = l_BitVec_fromExpr_x3f___redArg(v___x_8722_, v_a_8701_, v_a_8702_, v_a_8703_, v_a_8704_);
if (lean_obj_tag(v___x_8723_) == 0)
{
lean_object* v_a_8724_; lean_object* v___x_8726_; uint8_t v_isShared_8727_; uint8_t v_isSharedCheck_8753_; 
v_a_8724_ = lean_ctor_get(v___x_8723_, 0);
v_isSharedCheck_8753_ = !lean_is_exclusive(v___x_8723_);
if (v_isSharedCheck_8753_ == 0)
{
v___x_8726_ = v___x_8723_;
v_isShared_8727_ = v_isSharedCheck_8753_;
goto v_resetjp_8725_;
}
else
{
lean_inc(v_a_8724_);
lean_dec(v___x_8723_);
v___x_8726_ = lean_box(0);
v_isShared_8727_ = v_isSharedCheck_8753_;
goto v_resetjp_8725_;
}
v_resetjp_8725_:
{
lean_object* v___y_8729_; 
if (lean_obj_tag(v_a_8724_) == 1)
{
lean_object* v_val_8736_; lean_object* v_n_8737_; lean_object* v_value_8738_; lean_object* v_n_8739_; lean_object* v_value_8740_; uint8_t v___x_8741_; 
v_val_8736_ = lean_ctor_get(v_a_8724_, 0);
lean_inc(v_val_8736_);
lean_dec_ref(v_a_8724_);
v_n_8737_ = lean_ctor_get(v_val_8718_, 0);
lean_inc(v_n_8737_);
v_value_8738_ = lean_ctor_get(v_val_8718_, 1);
lean_inc(v_value_8738_);
lean_dec(v_val_8718_);
v_n_8739_ = lean_ctor_get(v_val_8736_, 0);
lean_inc(v_n_8739_);
v_value_8740_ = lean_ctor_get(v_val_8736_, 1);
lean_inc(v_value_8740_);
lean_dec(v_val_8736_);
v___x_8741_ = lean_nat_dec_eq(v_n_8737_, v_n_8739_);
lean_dec(v_n_8739_);
lean_dec(v_n_8737_);
if (v___x_8741_ == 0)
{
lean_object* v___x_8742_; lean_object* v___x_8744_; 
lean_dec(v_value_8740_);
lean_dec(v_value_8738_);
lean_del_object(v___x_8726_);
lean_del_object(v___x_8720_);
v___x_8742_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_8717_ == 0)
{
lean_ctor_set(v___x_8716_, 0, v___x_8742_);
v___x_8744_ = v___x_8716_;
goto v_reusejp_8743_;
}
else
{
lean_object* v_reuseFailAlloc_8745_; 
v_reuseFailAlloc_8745_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8745_, 0, v___x_8742_);
v___x_8744_ = v_reuseFailAlloc_8745_;
goto v_reusejp_8743_;
}
v_reusejp_8743_:
{
return v___x_8744_;
}
}
else
{
uint8_t v___x_8746_; 
lean_del_object(v___x_8716_);
v___x_8746_ = lean_nat_dec_le(v_value_8738_, v_value_8740_);
lean_dec(v_value_8740_);
lean_dec(v_value_8738_);
if (v___x_8746_ == 0)
{
lean_object* v___x_8747_; 
v___x_8747_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_8729_ = v___x_8747_;
goto v___jp_8728_;
}
else
{
lean_object* v___x_8748_; 
v___x_8748_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_8729_ = v___x_8748_;
goto v___jp_8728_;
}
}
}
else
{
lean_object* v___x_8749_; lean_object* v___x_8751_; 
lean_del_object(v___x_8726_);
lean_dec(v_a_8724_);
lean_del_object(v___x_8720_);
lean_dec(v_val_8718_);
v___x_8749_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_8717_ == 0)
{
lean_ctor_set(v___x_8716_, 0, v___x_8749_);
v___x_8751_ = v___x_8716_;
goto v_reusejp_8750_;
}
else
{
lean_object* v_reuseFailAlloc_8752_; 
v_reuseFailAlloc_8752_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8752_, 0, v___x_8749_);
v___x_8751_ = v_reuseFailAlloc_8752_;
goto v_reusejp_8750_;
}
v_reusejp_8750_:
{
return v___x_8751_;
}
}
v___jp_8728_:
{
lean_object* v___x_8731_; 
if (v_isShared_8721_ == 0)
{
lean_ctor_set_tag(v___x_8720_, 0);
lean_ctor_set(v___x_8720_, 0, v___y_8729_);
v___x_8731_ = v___x_8720_;
goto v_reusejp_8730_;
}
else
{
lean_object* v_reuseFailAlloc_8735_; 
v_reuseFailAlloc_8735_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8735_, 0, v___y_8729_);
v___x_8731_ = v_reuseFailAlloc_8735_;
goto v_reusejp_8730_;
}
v_reusejp_8730_:
{
lean_object* v___x_8733_; 
if (v_isShared_8727_ == 0)
{
lean_ctor_set(v___x_8726_, 0, v___x_8731_);
v___x_8733_ = v___x_8726_;
goto v_reusejp_8732_;
}
else
{
lean_object* v_reuseFailAlloc_8734_; 
v_reuseFailAlloc_8734_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8734_, 0, v___x_8731_);
v___x_8733_ = v_reuseFailAlloc_8734_;
goto v_reusejp_8732_;
}
v_reusejp_8732_:
{
return v___x_8733_;
}
}
}
}
}
else
{
lean_object* v_a_8754_; lean_object* v___x_8756_; uint8_t v_isShared_8757_; uint8_t v_isSharedCheck_8761_; 
lean_del_object(v___x_8720_);
lean_dec(v_val_8718_);
lean_del_object(v___x_8716_);
v_a_8754_ = lean_ctor_get(v___x_8723_, 0);
v_isSharedCheck_8761_ = !lean_is_exclusive(v___x_8723_);
if (v_isSharedCheck_8761_ == 0)
{
v___x_8756_ = v___x_8723_;
v_isShared_8757_ = v_isSharedCheck_8761_;
goto v_resetjp_8755_;
}
else
{
lean_inc(v_a_8754_);
lean_dec(v___x_8723_);
v___x_8756_ = lean_box(0);
v_isShared_8757_ = v_isSharedCheck_8761_;
goto v_resetjp_8755_;
}
v_resetjp_8755_:
{
lean_object* v___x_8759_; 
if (v_isShared_8757_ == 0)
{
v___x_8759_ = v___x_8756_;
goto v_reusejp_8758_;
}
else
{
lean_object* v_reuseFailAlloc_8760_; 
v_reuseFailAlloc_8760_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8760_, 0, v_a_8754_);
v___x_8759_ = v_reuseFailAlloc_8760_;
goto v_reusejp_8758_;
}
v_reusejp_8758_:
{
return v___x_8759_;
}
}
}
}
}
else
{
lean_object* v___x_8763_; lean_object* v___x_8765_; 
lean_dec(v_a_8714_);
lean_dec(v_a_8704_);
lean_dec_ref(v_a_8703_);
lean_dec(v_a_8702_);
lean_dec_ref(v_a_8701_);
v___x_8763_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_8717_ == 0)
{
lean_ctor_set(v___x_8716_, 0, v___x_8763_);
v___x_8765_ = v___x_8716_;
goto v_reusejp_8764_;
}
else
{
lean_object* v_reuseFailAlloc_8766_; 
v_reuseFailAlloc_8766_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8766_, 0, v___x_8763_);
v___x_8765_ = v_reuseFailAlloc_8766_;
goto v_reusejp_8764_;
}
v_reusejp_8764_:
{
return v___x_8765_;
}
}
}
}
else
{
lean_object* v_a_8768_; lean_object* v___x_8770_; uint8_t v_isShared_8771_; uint8_t v_isSharedCheck_8775_; 
lean_dec(v_a_8704_);
lean_dec_ref(v_a_8703_);
lean_dec(v_a_8702_);
lean_dec_ref(v_a_8701_);
v_a_8768_ = lean_ctor_get(v___x_8713_, 0);
v_isSharedCheck_8775_ = !lean_is_exclusive(v___x_8713_);
if (v_isSharedCheck_8775_ == 0)
{
v___x_8770_ = v___x_8713_;
v_isShared_8771_ = v_isSharedCheck_8775_;
goto v_resetjp_8769_;
}
else
{
lean_inc(v_a_8768_);
lean_dec(v___x_8713_);
v___x_8770_ = lean_box(0);
v_isShared_8771_ = v_isSharedCheck_8775_;
goto v_resetjp_8769_;
}
v_resetjp_8769_:
{
lean_object* v___x_8773_; 
if (v_isShared_8771_ == 0)
{
v___x_8773_ = v___x_8770_;
goto v_reusejp_8772_;
}
else
{
lean_object* v_reuseFailAlloc_8774_; 
v_reuseFailAlloc_8774_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8774_, 0, v_a_8768_);
v___x_8773_ = v_reuseFailAlloc_8774_;
goto v_reusejp_8772_;
}
v_reusejp_8772_:
{
return v___x_8773_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULE___redArg___boxed(lean_object* v_e_8776_, lean_object* v_a_8777_, lean_object* v_a_8778_, lean_object* v_a_8779_, lean_object* v_a_8780_, lean_object* v_a_8781_){
_start:
{
lean_object* v_res_8782_; 
v_res_8782_ = l_BitVec_reduceULE___redArg(v_e_8776_, v_a_8777_, v_a_8778_, v_a_8779_, v_a_8780_);
lean_dec_ref(v_e_8776_);
return v_res_8782_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULE(lean_object* v_e_8783_, lean_object* v_a_8784_, lean_object* v_a_8785_, lean_object* v_a_8786_, lean_object* v_a_8787_, lean_object* v_a_8788_, lean_object* v_a_8789_, lean_object* v_a_8790_){
_start:
{
lean_object* v___x_8792_; 
v___x_8792_ = l_BitVec_reduceULE___redArg(v_e_8783_, v_a_8787_, v_a_8788_, v_a_8789_, v_a_8790_);
return v___x_8792_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULE___boxed(lean_object* v_e_8793_, lean_object* v_a_8794_, lean_object* v_a_8795_, lean_object* v_a_8796_, lean_object* v_a_8797_, lean_object* v_a_8798_, lean_object* v_a_8799_, lean_object* v_a_8800_, lean_object* v_a_8801_){
_start:
{
lean_object* v_res_8802_; 
v_res_8802_ = l_BitVec_reduceULE(v_e_8793_, v_a_8794_, v_a_8795_, v_a_8796_, v_a_8797_, v_a_8798_, v_a_8799_, v_a_8800_);
lean_dec(v_a_8796_);
lean_dec_ref(v_a_8795_);
lean_dec(v_a_8794_);
lean_dec_ref(v_e_8793_);
return v_res_8802_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_8819_; lean_object* v___x_8820_; lean_object* v___x_8821_; lean_object* v___x_8822_; 
v___x_8819_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_));
v___x_8820_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_));
v___x_8821_ = lean_alloc_closure((void*)(l_BitVec_reduceULE___boxed), 9, 0);
v___x_8822_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_8819_, v___x_8820_, v___x_8821_);
return v___x_8822_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14____boxed(lean_object* v_a_8823_){
_start:
{
lean_object* v_res_8824_; 
v_res_8824_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_();
return v_res_8824_;
}
}
static lean_object* _init_l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_8825_; lean_object* v___x_8826_; 
v___x_8825_ = lean_alloc_closure((void*)(l_BitVec_reduceULE___boxed), 9, 0);
v___x_8826_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_8826_, 0, v___x_8825_);
return v___x_8826_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_8828_; uint8_t v___x_8829_; lean_object* v___x_8830_; lean_object* v___x_8831_; 
v___x_8828_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_));
v___x_8829_ = 1;
v___x_8830_ = lean_obj_once(&l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_, &l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16__once, _init_l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_);
v___x_8831_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_8828_, v___x_8829_, v___x_8830_);
return v___x_8831_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16____boxed(lean_object* v_a_8832_){
_start:
{
lean_object* v_res_8833_; 
v_res_8833_ = l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_();
return v_res_8833_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_8835_; uint8_t v___x_8836_; lean_object* v___x_8837_; lean_object* v___x_8838_; 
v___x_8835_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_));
v___x_8836_ = 1;
v___x_8837_ = lean_obj_once(&l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_, &l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16__once, _init_l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_);
v___x_8838_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_8835_, v___x_8836_, v___x_8837_);
return v___x_8838_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_18____boxed(lean_object* v_a_8839_){
_start:
{
lean_object* v_res_8840_; 
v_res_8840_ = l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_18_();
return v_res_8840_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___redArg(lean_object* v_e_8845_, lean_object* v_a_8846_, lean_object* v_a_8847_, lean_object* v_a_8848_, lean_object* v_a_8849_){
_start:
{
lean_object* v___x_8851_; lean_object* v___x_8852_; uint8_t v___x_8853_; 
v___x_8851_ = ((lean_object*)(l_BitVec_reduceSLT___redArg___closed__1));
v___x_8852_ = lean_unsigned_to_nat(3u);
v___x_8853_ = l_Lean_Expr_isAppOfArity(v_e_8845_, v___x_8851_, v___x_8852_);
if (v___x_8853_ == 0)
{
lean_object* v___x_8854_; lean_object* v___x_8855_; 
lean_dec(v_a_8849_);
lean_dec_ref(v_a_8848_);
lean_dec(v_a_8847_);
lean_dec_ref(v_a_8846_);
v___x_8854_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_8855_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_8855_, 0, v___x_8854_);
return v___x_8855_;
}
else
{
lean_object* v___x_8856_; lean_object* v___x_8857_; lean_object* v___x_8858_; 
v___x_8856_ = l_Lean_Expr_appFn_x21(v_e_8845_);
v___x_8857_ = l_Lean_Expr_appArg_x21(v___x_8856_);
lean_dec_ref(v___x_8856_);
lean_inc(v_a_8849_);
lean_inc_ref(v_a_8848_);
lean_inc(v_a_8847_);
lean_inc_ref(v_a_8846_);
v___x_8858_ = l_BitVec_fromExpr_x3f___redArg(v___x_8857_, v_a_8846_, v_a_8847_, v_a_8848_, v_a_8849_);
if (lean_obj_tag(v___x_8858_) == 0)
{
lean_object* v_a_8859_; lean_object* v___x_8861_; uint8_t v_isShared_8862_; uint8_t v_isSharedCheck_8912_; 
v_a_8859_ = lean_ctor_get(v___x_8858_, 0);
v_isSharedCheck_8912_ = !lean_is_exclusive(v___x_8858_);
if (v_isSharedCheck_8912_ == 0)
{
v___x_8861_ = v___x_8858_;
v_isShared_8862_ = v_isSharedCheck_8912_;
goto v_resetjp_8860_;
}
else
{
lean_inc(v_a_8859_);
lean_dec(v___x_8858_);
v___x_8861_ = lean_box(0);
v_isShared_8862_ = v_isSharedCheck_8912_;
goto v_resetjp_8860_;
}
v_resetjp_8860_:
{
if (lean_obj_tag(v_a_8859_) == 1)
{
lean_object* v_val_8863_; lean_object* v___x_8865_; uint8_t v_isShared_8866_; uint8_t v_isSharedCheck_8907_; 
v_val_8863_ = lean_ctor_get(v_a_8859_, 0);
v_isSharedCheck_8907_ = !lean_is_exclusive(v_a_8859_);
if (v_isSharedCheck_8907_ == 0)
{
v___x_8865_ = v_a_8859_;
v_isShared_8866_ = v_isSharedCheck_8907_;
goto v_resetjp_8864_;
}
else
{
lean_inc(v_val_8863_);
lean_dec(v_a_8859_);
v___x_8865_ = lean_box(0);
v_isShared_8866_ = v_isSharedCheck_8907_;
goto v_resetjp_8864_;
}
v_resetjp_8864_:
{
lean_object* v___x_8867_; lean_object* v___x_8868_; 
v___x_8867_ = l_Lean_Expr_appArg_x21(v_e_8845_);
v___x_8868_ = l_BitVec_fromExpr_x3f___redArg(v___x_8867_, v_a_8846_, v_a_8847_, v_a_8848_, v_a_8849_);
if (lean_obj_tag(v___x_8868_) == 0)
{
lean_object* v_a_8869_; lean_object* v___x_8871_; uint8_t v_isShared_8872_; uint8_t v_isSharedCheck_8898_; 
v_a_8869_ = lean_ctor_get(v___x_8868_, 0);
v_isSharedCheck_8898_ = !lean_is_exclusive(v___x_8868_);
if (v_isSharedCheck_8898_ == 0)
{
v___x_8871_ = v___x_8868_;
v_isShared_8872_ = v_isSharedCheck_8898_;
goto v_resetjp_8870_;
}
else
{
lean_inc(v_a_8869_);
lean_dec(v___x_8868_);
v___x_8871_ = lean_box(0);
v_isShared_8872_ = v_isSharedCheck_8898_;
goto v_resetjp_8870_;
}
v_resetjp_8870_:
{
lean_object* v___y_8874_; 
if (lean_obj_tag(v_a_8869_) == 1)
{
lean_object* v_val_8881_; lean_object* v_n_8882_; lean_object* v_value_8883_; lean_object* v_n_8884_; lean_object* v_value_8885_; uint8_t v___x_8886_; 
v_val_8881_ = lean_ctor_get(v_a_8869_, 0);
lean_inc(v_val_8881_);
lean_dec_ref(v_a_8869_);
v_n_8882_ = lean_ctor_get(v_val_8863_, 0);
lean_inc(v_n_8882_);
v_value_8883_ = lean_ctor_get(v_val_8863_, 1);
lean_inc(v_value_8883_);
lean_dec(v_val_8863_);
v_n_8884_ = lean_ctor_get(v_val_8881_, 0);
lean_inc(v_n_8884_);
v_value_8885_ = lean_ctor_get(v_val_8881_, 1);
lean_inc(v_value_8885_);
lean_dec(v_val_8881_);
v___x_8886_ = lean_nat_dec_eq(v_n_8882_, v_n_8884_);
lean_dec(v_n_8884_);
if (v___x_8886_ == 0)
{
lean_object* v___x_8887_; lean_object* v___x_8889_; 
lean_dec(v_value_8885_);
lean_dec(v_value_8883_);
lean_dec(v_n_8882_);
lean_del_object(v___x_8871_);
lean_del_object(v___x_8865_);
v___x_8887_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_8862_ == 0)
{
lean_ctor_set(v___x_8861_, 0, v___x_8887_);
v___x_8889_ = v___x_8861_;
goto v_reusejp_8888_;
}
else
{
lean_object* v_reuseFailAlloc_8890_; 
v_reuseFailAlloc_8890_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8890_, 0, v___x_8887_);
v___x_8889_ = v_reuseFailAlloc_8890_;
goto v_reusejp_8888_;
}
v_reusejp_8888_:
{
return v___x_8889_;
}
}
else
{
uint8_t v___x_8891_; 
lean_del_object(v___x_8861_);
v___x_8891_ = l_BitVec_slt(v_n_8882_, v_value_8883_, v_value_8885_);
lean_dec(v_n_8882_);
if (v___x_8891_ == 0)
{
lean_object* v___x_8892_; 
v___x_8892_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_8874_ = v___x_8892_;
goto v___jp_8873_;
}
else
{
lean_object* v___x_8893_; 
v___x_8893_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_8874_ = v___x_8893_;
goto v___jp_8873_;
}
}
}
else
{
lean_object* v___x_8894_; lean_object* v___x_8896_; 
lean_del_object(v___x_8871_);
lean_dec(v_a_8869_);
lean_del_object(v___x_8865_);
lean_dec(v_val_8863_);
v___x_8894_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_8862_ == 0)
{
lean_ctor_set(v___x_8861_, 0, v___x_8894_);
v___x_8896_ = v___x_8861_;
goto v_reusejp_8895_;
}
else
{
lean_object* v_reuseFailAlloc_8897_; 
v_reuseFailAlloc_8897_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8897_, 0, v___x_8894_);
v___x_8896_ = v_reuseFailAlloc_8897_;
goto v_reusejp_8895_;
}
v_reusejp_8895_:
{
return v___x_8896_;
}
}
v___jp_8873_:
{
lean_object* v___x_8876_; 
if (v_isShared_8866_ == 0)
{
lean_ctor_set_tag(v___x_8865_, 0);
lean_ctor_set(v___x_8865_, 0, v___y_8874_);
v___x_8876_ = v___x_8865_;
goto v_reusejp_8875_;
}
else
{
lean_object* v_reuseFailAlloc_8880_; 
v_reuseFailAlloc_8880_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8880_, 0, v___y_8874_);
v___x_8876_ = v_reuseFailAlloc_8880_;
goto v_reusejp_8875_;
}
v_reusejp_8875_:
{
lean_object* v___x_8878_; 
if (v_isShared_8872_ == 0)
{
lean_ctor_set(v___x_8871_, 0, v___x_8876_);
v___x_8878_ = v___x_8871_;
goto v_reusejp_8877_;
}
else
{
lean_object* v_reuseFailAlloc_8879_; 
v_reuseFailAlloc_8879_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8879_, 0, v___x_8876_);
v___x_8878_ = v_reuseFailAlloc_8879_;
goto v_reusejp_8877_;
}
v_reusejp_8877_:
{
return v___x_8878_;
}
}
}
}
}
else
{
lean_object* v_a_8899_; lean_object* v___x_8901_; uint8_t v_isShared_8902_; uint8_t v_isSharedCheck_8906_; 
lean_del_object(v___x_8865_);
lean_dec(v_val_8863_);
lean_del_object(v___x_8861_);
v_a_8899_ = lean_ctor_get(v___x_8868_, 0);
v_isSharedCheck_8906_ = !lean_is_exclusive(v___x_8868_);
if (v_isSharedCheck_8906_ == 0)
{
v___x_8901_ = v___x_8868_;
v_isShared_8902_ = v_isSharedCheck_8906_;
goto v_resetjp_8900_;
}
else
{
lean_inc(v_a_8899_);
lean_dec(v___x_8868_);
v___x_8901_ = lean_box(0);
v_isShared_8902_ = v_isSharedCheck_8906_;
goto v_resetjp_8900_;
}
v_resetjp_8900_:
{
lean_object* v___x_8904_; 
if (v_isShared_8902_ == 0)
{
v___x_8904_ = v___x_8901_;
goto v_reusejp_8903_;
}
else
{
lean_object* v_reuseFailAlloc_8905_; 
v_reuseFailAlloc_8905_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8905_, 0, v_a_8899_);
v___x_8904_ = v_reuseFailAlloc_8905_;
goto v_reusejp_8903_;
}
v_reusejp_8903_:
{
return v___x_8904_;
}
}
}
}
}
else
{
lean_object* v___x_8908_; lean_object* v___x_8910_; 
lean_dec(v_a_8859_);
lean_dec(v_a_8849_);
lean_dec_ref(v_a_8848_);
lean_dec(v_a_8847_);
lean_dec_ref(v_a_8846_);
v___x_8908_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_8862_ == 0)
{
lean_ctor_set(v___x_8861_, 0, v___x_8908_);
v___x_8910_ = v___x_8861_;
goto v_reusejp_8909_;
}
else
{
lean_object* v_reuseFailAlloc_8911_; 
v_reuseFailAlloc_8911_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8911_, 0, v___x_8908_);
v___x_8910_ = v_reuseFailAlloc_8911_;
goto v_reusejp_8909_;
}
v_reusejp_8909_:
{
return v___x_8910_;
}
}
}
}
else
{
lean_object* v_a_8913_; lean_object* v___x_8915_; uint8_t v_isShared_8916_; uint8_t v_isSharedCheck_8920_; 
lean_dec(v_a_8849_);
lean_dec_ref(v_a_8848_);
lean_dec(v_a_8847_);
lean_dec_ref(v_a_8846_);
v_a_8913_ = lean_ctor_get(v___x_8858_, 0);
v_isSharedCheck_8920_ = !lean_is_exclusive(v___x_8858_);
if (v_isSharedCheck_8920_ == 0)
{
v___x_8915_ = v___x_8858_;
v_isShared_8916_ = v_isSharedCheck_8920_;
goto v_resetjp_8914_;
}
else
{
lean_inc(v_a_8913_);
lean_dec(v___x_8858_);
v___x_8915_ = lean_box(0);
v_isShared_8916_ = v_isSharedCheck_8920_;
goto v_resetjp_8914_;
}
v_resetjp_8914_:
{
lean_object* v___x_8918_; 
if (v_isShared_8916_ == 0)
{
v___x_8918_ = v___x_8915_;
goto v_reusejp_8917_;
}
else
{
lean_object* v_reuseFailAlloc_8919_; 
v_reuseFailAlloc_8919_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_8919_, 0, v_a_8913_);
v___x_8918_ = v_reuseFailAlloc_8919_;
goto v_reusejp_8917_;
}
v_reusejp_8917_:
{
return v___x_8918_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___redArg___boxed(lean_object* v_e_8921_, lean_object* v_a_8922_, lean_object* v_a_8923_, lean_object* v_a_8924_, lean_object* v_a_8925_, lean_object* v_a_8926_){
_start:
{
lean_object* v_res_8927_; 
v_res_8927_ = l_BitVec_reduceSLT___redArg(v_e_8921_, v_a_8922_, v_a_8923_, v_a_8924_, v_a_8925_);
lean_dec_ref(v_e_8921_);
return v_res_8927_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLT(lean_object* v_e_8928_, lean_object* v_a_8929_, lean_object* v_a_8930_, lean_object* v_a_8931_, lean_object* v_a_8932_, lean_object* v_a_8933_, lean_object* v_a_8934_, lean_object* v_a_8935_){
_start:
{
lean_object* v___x_8937_; 
v___x_8937_ = l_BitVec_reduceSLT___redArg(v_e_8928_, v_a_8932_, v_a_8933_, v_a_8934_, v_a_8935_);
return v___x_8937_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___boxed(lean_object* v_e_8938_, lean_object* v_a_8939_, lean_object* v_a_8940_, lean_object* v_a_8941_, lean_object* v_a_8942_, lean_object* v_a_8943_, lean_object* v_a_8944_, lean_object* v_a_8945_, lean_object* v_a_8946_){
_start:
{
lean_object* v_res_8947_; 
v_res_8947_ = l_BitVec_reduceSLT(v_e_8938_, v_a_8939_, v_a_8940_, v_a_8941_, v_a_8942_, v_a_8943_, v_a_8944_, v_a_8945_);
lean_dec(v_a_8941_);
lean_dec_ref(v_a_8940_);
lean_dec(v_a_8939_);
lean_dec_ref(v_e_8938_);
return v_res_8947_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_8964_; lean_object* v___x_8965_; lean_object* v___x_8966_; lean_object* v___x_8967_; 
v___x_8964_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_));
v___x_8965_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_));
v___x_8966_ = lean_alloc_closure((void*)(l_BitVec_reduceSLT___boxed), 9, 0);
v___x_8967_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_8964_, v___x_8965_, v___x_8966_);
return v___x_8967_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14____boxed(lean_object* v_a_8968_){
_start:
{
lean_object* v_res_8969_; 
v_res_8969_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_();
return v_res_8969_;
}
}
static lean_object* _init_l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_8970_; lean_object* v___x_8971_; 
v___x_8970_ = lean_alloc_closure((void*)(l_BitVec_reduceSLT___boxed), 9, 0);
v___x_8971_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_8971_, 0, v___x_8970_);
return v___x_8971_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_8973_; uint8_t v___x_8974_; lean_object* v___x_8975_; lean_object* v___x_8976_; 
v___x_8973_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_));
v___x_8974_ = 1;
v___x_8975_ = lean_obj_once(&l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_, &l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16__once, _init_l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_);
v___x_8976_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_8973_, v___x_8974_, v___x_8975_);
return v___x_8976_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16____boxed(lean_object* v_a_8977_){
_start:
{
lean_object* v_res_8978_; 
v_res_8978_ = l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_();
return v_res_8978_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_8980_; uint8_t v___x_8981_; lean_object* v___x_8982_; lean_object* v___x_8983_; 
v___x_8980_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_));
v___x_8981_ = 1;
v___x_8982_ = lean_obj_once(&l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_, &l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16__once, _init_l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_);
v___x_8983_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_8980_, v___x_8981_, v___x_8982_);
return v___x_8983_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_18____boxed(lean_object* v_a_8984_){
_start:
{
lean_object* v_res_8985_; 
v_res_8985_ = l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_18_();
return v_res_8985_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___redArg(lean_object* v_e_8990_, lean_object* v_a_8991_, lean_object* v_a_8992_, lean_object* v_a_8993_, lean_object* v_a_8994_){
_start:
{
lean_object* v___x_8996_; lean_object* v___x_8997_; uint8_t v___x_8998_; 
v___x_8996_ = ((lean_object*)(l_BitVec_reduceSLE___redArg___closed__1));
v___x_8997_ = lean_unsigned_to_nat(3u);
v___x_8998_ = l_Lean_Expr_isAppOfArity(v_e_8990_, v___x_8996_, v___x_8997_);
if (v___x_8998_ == 0)
{
lean_object* v___x_8999_; lean_object* v___x_9000_; 
lean_dec(v_a_8994_);
lean_dec_ref(v_a_8993_);
lean_dec(v_a_8992_);
lean_dec_ref(v_a_8991_);
v___x_8999_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_9000_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_9000_, 0, v___x_8999_);
return v___x_9000_;
}
else
{
lean_object* v___x_9001_; lean_object* v___x_9002_; lean_object* v___x_9003_; 
v___x_9001_ = l_Lean_Expr_appFn_x21(v_e_8990_);
v___x_9002_ = l_Lean_Expr_appArg_x21(v___x_9001_);
lean_dec_ref(v___x_9001_);
lean_inc(v_a_8994_);
lean_inc_ref(v_a_8993_);
lean_inc(v_a_8992_);
lean_inc_ref(v_a_8991_);
v___x_9003_ = l_BitVec_fromExpr_x3f___redArg(v___x_9002_, v_a_8991_, v_a_8992_, v_a_8993_, v_a_8994_);
if (lean_obj_tag(v___x_9003_) == 0)
{
lean_object* v_a_9004_; lean_object* v___x_9006_; uint8_t v_isShared_9007_; uint8_t v_isSharedCheck_9057_; 
v_a_9004_ = lean_ctor_get(v___x_9003_, 0);
v_isSharedCheck_9057_ = !lean_is_exclusive(v___x_9003_);
if (v_isSharedCheck_9057_ == 0)
{
v___x_9006_ = v___x_9003_;
v_isShared_9007_ = v_isSharedCheck_9057_;
goto v_resetjp_9005_;
}
else
{
lean_inc(v_a_9004_);
lean_dec(v___x_9003_);
v___x_9006_ = lean_box(0);
v_isShared_9007_ = v_isSharedCheck_9057_;
goto v_resetjp_9005_;
}
v_resetjp_9005_:
{
if (lean_obj_tag(v_a_9004_) == 1)
{
lean_object* v_val_9008_; lean_object* v___x_9010_; uint8_t v_isShared_9011_; uint8_t v_isSharedCheck_9052_; 
v_val_9008_ = lean_ctor_get(v_a_9004_, 0);
v_isSharedCheck_9052_ = !lean_is_exclusive(v_a_9004_);
if (v_isSharedCheck_9052_ == 0)
{
v___x_9010_ = v_a_9004_;
v_isShared_9011_ = v_isSharedCheck_9052_;
goto v_resetjp_9009_;
}
else
{
lean_inc(v_val_9008_);
lean_dec(v_a_9004_);
v___x_9010_ = lean_box(0);
v_isShared_9011_ = v_isSharedCheck_9052_;
goto v_resetjp_9009_;
}
v_resetjp_9009_:
{
lean_object* v___x_9012_; lean_object* v___x_9013_; 
v___x_9012_ = l_Lean_Expr_appArg_x21(v_e_8990_);
v___x_9013_ = l_BitVec_fromExpr_x3f___redArg(v___x_9012_, v_a_8991_, v_a_8992_, v_a_8993_, v_a_8994_);
if (lean_obj_tag(v___x_9013_) == 0)
{
lean_object* v_a_9014_; lean_object* v___x_9016_; uint8_t v_isShared_9017_; uint8_t v_isSharedCheck_9043_; 
v_a_9014_ = lean_ctor_get(v___x_9013_, 0);
v_isSharedCheck_9043_ = !lean_is_exclusive(v___x_9013_);
if (v_isSharedCheck_9043_ == 0)
{
v___x_9016_ = v___x_9013_;
v_isShared_9017_ = v_isSharedCheck_9043_;
goto v_resetjp_9015_;
}
else
{
lean_inc(v_a_9014_);
lean_dec(v___x_9013_);
v___x_9016_ = lean_box(0);
v_isShared_9017_ = v_isSharedCheck_9043_;
goto v_resetjp_9015_;
}
v_resetjp_9015_:
{
lean_object* v___y_9019_; 
if (lean_obj_tag(v_a_9014_) == 1)
{
lean_object* v_val_9026_; lean_object* v_n_9027_; lean_object* v_value_9028_; lean_object* v_n_9029_; lean_object* v_value_9030_; uint8_t v___x_9031_; 
v_val_9026_ = lean_ctor_get(v_a_9014_, 0);
lean_inc(v_val_9026_);
lean_dec_ref(v_a_9014_);
v_n_9027_ = lean_ctor_get(v_val_9008_, 0);
lean_inc(v_n_9027_);
v_value_9028_ = lean_ctor_get(v_val_9008_, 1);
lean_inc(v_value_9028_);
lean_dec(v_val_9008_);
v_n_9029_ = lean_ctor_get(v_val_9026_, 0);
lean_inc(v_n_9029_);
v_value_9030_ = lean_ctor_get(v_val_9026_, 1);
lean_inc(v_value_9030_);
lean_dec(v_val_9026_);
v___x_9031_ = lean_nat_dec_eq(v_n_9027_, v_n_9029_);
lean_dec(v_n_9029_);
if (v___x_9031_ == 0)
{
lean_object* v___x_9032_; lean_object* v___x_9034_; 
lean_dec(v_value_9030_);
lean_dec(v_value_9028_);
lean_dec(v_n_9027_);
lean_del_object(v___x_9016_);
lean_del_object(v___x_9010_);
v___x_9032_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9007_ == 0)
{
lean_ctor_set(v___x_9006_, 0, v___x_9032_);
v___x_9034_ = v___x_9006_;
goto v_reusejp_9033_;
}
else
{
lean_object* v_reuseFailAlloc_9035_; 
v_reuseFailAlloc_9035_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9035_, 0, v___x_9032_);
v___x_9034_ = v_reuseFailAlloc_9035_;
goto v_reusejp_9033_;
}
v_reusejp_9033_:
{
return v___x_9034_;
}
}
else
{
uint8_t v___x_9036_; 
lean_del_object(v___x_9006_);
v___x_9036_ = l_BitVec_sle(v_n_9027_, v_value_9028_, v_value_9030_);
lean_dec(v_n_9027_);
if (v___x_9036_ == 0)
{
lean_object* v___x_9037_; 
v___x_9037_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__3, &l_BitVec_reduceGetBit___redArg___closed__3_once, _init_l_BitVec_reduceGetBit___redArg___closed__3);
v___y_9019_ = v___x_9037_;
goto v___jp_9018_;
}
else
{
lean_object* v___x_9038_; 
v___x_9038_ = lean_obj_once(&l_BitVec_reduceGetBit___redArg___closed__6, &l_BitVec_reduceGetBit___redArg___closed__6_once, _init_l_BitVec_reduceGetBit___redArg___closed__6);
v___y_9019_ = v___x_9038_;
goto v___jp_9018_;
}
}
}
else
{
lean_object* v___x_9039_; lean_object* v___x_9041_; 
lean_del_object(v___x_9016_);
lean_dec(v_a_9014_);
lean_del_object(v___x_9010_);
lean_dec(v_val_9008_);
v___x_9039_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9007_ == 0)
{
lean_ctor_set(v___x_9006_, 0, v___x_9039_);
v___x_9041_ = v___x_9006_;
goto v_reusejp_9040_;
}
else
{
lean_object* v_reuseFailAlloc_9042_; 
v_reuseFailAlloc_9042_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9042_, 0, v___x_9039_);
v___x_9041_ = v_reuseFailAlloc_9042_;
goto v_reusejp_9040_;
}
v_reusejp_9040_:
{
return v___x_9041_;
}
}
v___jp_9018_:
{
lean_object* v___x_9021_; 
if (v_isShared_9011_ == 0)
{
lean_ctor_set_tag(v___x_9010_, 0);
lean_ctor_set(v___x_9010_, 0, v___y_9019_);
v___x_9021_ = v___x_9010_;
goto v_reusejp_9020_;
}
else
{
lean_object* v_reuseFailAlloc_9025_; 
v_reuseFailAlloc_9025_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9025_, 0, v___y_9019_);
v___x_9021_ = v_reuseFailAlloc_9025_;
goto v_reusejp_9020_;
}
v_reusejp_9020_:
{
lean_object* v___x_9023_; 
if (v_isShared_9017_ == 0)
{
lean_ctor_set(v___x_9016_, 0, v___x_9021_);
v___x_9023_ = v___x_9016_;
goto v_reusejp_9022_;
}
else
{
lean_object* v_reuseFailAlloc_9024_; 
v_reuseFailAlloc_9024_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9024_, 0, v___x_9021_);
v___x_9023_ = v_reuseFailAlloc_9024_;
goto v_reusejp_9022_;
}
v_reusejp_9022_:
{
return v___x_9023_;
}
}
}
}
}
else
{
lean_object* v_a_9044_; lean_object* v___x_9046_; uint8_t v_isShared_9047_; uint8_t v_isSharedCheck_9051_; 
lean_del_object(v___x_9010_);
lean_dec(v_val_9008_);
lean_del_object(v___x_9006_);
v_a_9044_ = lean_ctor_get(v___x_9013_, 0);
v_isSharedCheck_9051_ = !lean_is_exclusive(v___x_9013_);
if (v_isSharedCheck_9051_ == 0)
{
v___x_9046_ = v___x_9013_;
v_isShared_9047_ = v_isSharedCheck_9051_;
goto v_resetjp_9045_;
}
else
{
lean_inc(v_a_9044_);
lean_dec(v___x_9013_);
v___x_9046_ = lean_box(0);
v_isShared_9047_ = v_isSharedCheck_9051_;
goto v_resetjp_9045_;
}
v_resetjp_9045_:
{
lean_object* v___x_9049_; 
if (v_isShared_9047_ == 0)
{
v___x_9049_ = v___x_9046_;
goto v_reusejp_9048_;
}
else
{
lean_object* v_reuseFailAlloc_9050_; 
v_reuseFailAlloc_9050_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9050_, 0, v_a_9044_);
v___x_9049_ = v_reuseFailAlloc_9050_;
goto v_reusejp_9048_;
}
v_reusejp_9048_:
{
return v___x_9049_;
}
}
}
}
}
else
{
lean_object* v___x_9053_; lean_object* v___x_9055_; 
lean_dec(v_a_9004_);
lean_dec(v_a_8994_);
lean_dec_ref(v_a_8993_);
lean_dec(v_a_8992_);
lean_dec_ref(v_a_8991_);
v___x_9053_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9007_ == 0)
{
lean_ctor_set(v___x_9006_, 0, v___x_9053_);
v___x_9055_ = v___x_9006_;
goto v_reusejp_9054_;
}
else
{
lean_object* v_reuseFailAlloc_9056_; 
v_reuseFailAlloc_9056_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9056_, 0, v___x_9053_);
v___x_9055_ = v_reuseFailAlloc_9056_;
goto v_reusejp_9054_;
}
v_reusejp_9054_:
{
return v___x_9055_;
}
}
}
}
else
{
lean_object* v_a_9058_; lean_object* v___x_9060_; uint8_t v_isShared_9061_; uint8_t v_isSharedCheck_9065_; 
lean_dec(v_a_8994_);
lean_dec_ref(v_a_8993_);
lean_dec(v_a_8992_);
lean_dec_ref(v_a_8991_);
v_a_9058_ = lean_ctor_get(v___x_9003_, 0);
v_isSharedCheck_9065_ = !lean_is_exclusive(v___x_9003_);
if (v_isSharedCheck_9065_ == 0)
{
v___x_9060_ = v___x_9003_;
v_isShared_9061_ = v_isSharedCheck_9065_;
goto v_resetjp_9059_;
}
else
{
lean_inc(v_a_9058_);
lean_dec(v___x_9003_);
v___x_9060_ = lean_box(0);
v_isShared_9061_ = v_isSharedCheck_9065_;
goto v_resetjp_9059_;
}
v_resetjp_9059_:
{
lean_object* v___x_9063_; 
if (v_isShared_9061_ == 0)
{
v___x_9063_ = v___x_9060_;
goto v_reusejp_9062_;
}
else
{
lean_object* v_reuseFailAlloc_9064_; 
v_reuseFailAlloc_9064_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9064_, 0, v_a_9058_);
v___x_9063_ = v_reuseFailAlloc_9064_;
goto v_reusejp_9062_;
}
v_reusejp_9062_:
{
return v___x_9063_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___redArg___boxed(lean_object* v_e_9066_, lean_object* v_a_9067_, lean_object* v_a_9068_, lean_object* v_a_9069_, lean_object* v_a_9070_, lean_object* v_a_9071_){
_start:
{
lean_object* v_res_9072_; 
v_res_9072_ = l_BitVec_reduceSLE___redArg(v_e_9066_, v_a_9067_, v_a_9068_, v_a_9069_, v_a_9070_);
lean_dec_ref(v_e_9066_);
return v_res_9072_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLE(lean_object* v_e_9073_, lean_object* v_a_9074_, lean_object* v_a_9075_, lean_object* v_a_9076_, lean_object* v_a_9077_, lean_object* v_a_9078_, lean_object* v_a_9079_, lean_object* v_a_9080_){
_start:
{
lean_object* v___x_9082_; 
v___x_9082_ = l_BitVec_reduceSLE___redArg(v_e_9073_, v_a_9077_, v_a_9078_, v_a_9079_, v_a_9080_);
return v___x_9082_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___boxed(lean_object* v_e_9083_, lean_object* v_a_9084_, lean_object* v_a_9085_, lean_object* v_a_9086_, lean_object* v_a_9087_, lean_object* v_a_9088_, lean_object* v_a_9089_, lean_object* v_a_9090_, lean_object* v_a_9091_){
_start:
{
lean_object* v_res_9092_; 
v_res_9092_ = l_BitVec_reduceSLE(v_e_9083_, v_a_9084_, v_a_9085_, v_a_9086_, v_a_9087_, v_a_9088_, v_a_9089_, v_a_9090_);
lean_dec(v_a_9086_);
lean_dec_ref(v_a_9085_);
lean_dec(v_a_9084_);
lean_dec_ref(v_e_9083_);
return v_res_9092_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_9109_; lean_object* v___x_9110_; lean_object* v___x_9111_; lean_object* v___x_9112_; 
v___x_9109_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_));
v___x_9110_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_));
v___x_9111_ = lean_alloc_closure((void*)(l_BitVec_reduceSLE___boxed), 9, 0);
v___x_9112_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_9109_, v___x_9110_, v___x_9111_);
return v___x_9112_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14____boxed(lean_object* v_a_9113_){
_start:
{
lean_object* v_res_9114_; 
v_res_9114_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_();
return v_res_9114_;
}
}
static lean_object* _init_l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_9115_; lean_object* v___x_9116_; 
v___x_9115_ = lean_alloc_closure((void*)(l_BitVec_reduceSLE___boxed), 9, 0);
v___x_9116_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_9116_, 0, v___x_9115_);
return v___x_9116_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_9118_; uint8_t v___x_9119_; lean_object* v___x_9120_; lean_object* v___x_9121_; 
v___x_9118_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_));
v___x_9119_ = 1;
v___x_9120_ = lean_obj_once(&l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_, &l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16__once, _init_l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_);
v___x_9121_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_9118_, v___x_9119_, v___x_9120_);
return v___x_9121_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16____boxed(lean_object* v_a_9122_){
_start:
{
lean_object* v_res_9123_; 
v_res_9123_ = l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_();
return v_res_9123_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_9125_; uint8_t v___x_9126_; lean_object* v___x_9127_; lean_object* v___x_9128_; 
v___x_9125_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_));
v___x_9126_ = 1;
v___x_9127_ = lean_obj_once(&l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_, &l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16__once, _init_l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_);
v___x_9128_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_9125_, v___x_9126_, v___x_9127_);
return v___x_9128_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_18____boxed(lean_object* v_a_9129_){
_start:
{
lean_object* v_res_9130_; 
v_res_9130_ = l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_18_();
return v_res_9130_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___redArg(lean_object* v_e_9135_, lean_object* v_a_9136_, lean_object* v_a_9137_, lean_object* v_a_9138_, lean_object* v_a_9139_, lean_object* v_a_9140_){
_start:
{
lean_object* v___x_9142_; 
v___x_9142_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_9135_, v_a_9138_);
if (lean_obj_tag(v___x_9142_) == 0)
{
lean_object* v_a_9143_; lean_object* v___x_9145_; uint8_t v_isShared_9146_; uint8_t v_isSharedCheck_9234_; 
v_a_9143_ = lean_ctor_get(v___x_9142_, 0);
v_isSharedCheck_9234_ = !lean_is_exclusive(v___x_9142_);
if (v_isSharedCheck_9234_ == 0)
{
v___x_9145_ = v___x_9142_;
v_isShared_9146_ = v_isSharedCheck_9234_;
goto v_resetjp_9144_;
}
else
{
lean_inc(v_a_9143_);
lean_dec(v___x_9142_);
v___x_9145_ = lean_box(0);
v_isShared_9146_ = v_isSharedCheck_9234_;
goto v_resetjp_9144_;
}
v_resetjp_9144_:
{
lean_object* v___x_9152_; uint8_t v___x_9153_; 
v___x_9152_ = l_Lean_Expr_cleanupAnnotations(v_a_9143_);
v___x_9153_ = l_Lean_Expr_isApp(v___x_9152_);
if (v___x_9153_ == 0)
{
lean_dec_ref(v___x_9152_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
goto v___jp_9147_;
}
else
{
lean_object* v_arg_9154_; lean_object* v___x_9155_; uint8_t v___x_9156_; 
v_arg_9154_ = lean_ctor_get(v___x_9152_, 1);
lean_inc_ref(v_arg_9154_);
v___x_9155_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9152_);
v___x_9156_ = l_Lean_Expr_isApp(v___x_9155_);
if (v___x_9156_ == 0)
{
lean_dec_ref(v___x_9155_);
lean_dec_ref(v_arg_9154_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
goto v___jp_9147_;
}
else
{
lean_object* v___x_9157_; uint8_t v___x_9158_; 
v___x_9157_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9155_);
v___x_9158_ = l_Lean_Expr_isApp(v___x_9157_);
if (v___x_9158_ == 0)
{
lean_dec_ref(v___x_9157_);
lean_dec_ref(v_arg_9154_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
goto v___jp_9147_;
}
else
{
lean_object* v_arg_9159_; lean_object* v___x_9160_; uint8_t v___x_9161_; 
v_arg_9159_ = lean_ctor_get(v___x_9157_, 1);
lean_inc_ref(v_arg_9159_);
v___x_9160_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9157_);
v___x_9161_ = l_Lean_Expr_isApp(v___x_9160_);
if (v___x_9161_ == 0)
{
lean_dec_ref(v___x_9160_);
lean_dec_ref(v_arg_9159_);
lean_dec_ref(v_arg_9154_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
goto v___jp_9147_;
}
else
{
lean_object* v___x_9162_; lean_object* v___x_9163_; uint8_t v___x_9164_; 
v___x_9162_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9160_);
v___x_9163_ = ((lean_object*)(l_BitVec_reduceSetWidth_x27___redArg___closed__1));
v___x_9164_ = l_Lean_Expr_isConstOf(v___x_9162_, v___x_9163_);
lean_dec_ref(v___x_9162_);
if (v___x_9164_ == 0)
{
lean_dec_ref(v_arg_9159_);
lean_dec_ref(v_arg_9154_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
goto v___jp_9147_;
}
else
{
lean_object* v___x_9165_; 
lean_del_object(v___x_9145_);
lean_inc(v_a_9140_);
lean_inc_ref(v_a_9139_);
lean_inc(v_a_9138_);
lean_inc_ref(v_a_9137_);
v___x_9165_ = l_BitVec_fromExpr_x3f___redArg(v_arg_9154_, v_a_9137_, v_a_9138_, v_a_9139_, v_a_9140_);
if (lean_obj_tag(v___x_9165_) == 0)
{
lean_object* v_a_9166_; lean_object* v___x_9168_; uint8_t v_isShared_9169_; uint8_t v_isSharedCheck_9225_; 
v_a_9166_ = lean_ctor_get(v___x_9165_, 0);
v_isSharedCheck_9225_ = !lean_is_exclusive(v___x_9165_);
if (v_isSharedCheck_9225_ == 0)
{
v___x_9168_ = v___x_9165_;
v_isShared_9169_ = v_isSharedCheck_9225_;
goto v_resetjp_9167_;
}
else
{
lean_inc(v_a_9166_);
lean_dec(v___x_9165_);
v___x_9168_ = lean_box(0);
v_isShared_9169_ = v_isSharedCheck_9225_;
goto v_resetjp_9167_;
}
v_resetjp_9167_:
{
if (lean_obj_tag(v_a_9166_) == 1)
{
lean_object* v_val_9170_; lean_object* v___x_9171_; 
lean_del_object(v___x_9168_);
v_val_9170_ = lean_ctor_get(v_a_9166_, 0);
lean_inc(v_val_9170_);
lean_dec_ref(v_a_9166_);
lean_inc(v_a_9140_);
lean_inc_ref(v_a_9139_);
lean_inc(v_a_9138_);
lean_inc_ref(v_a_9137_);
v___x_9171_ = l_Lean_Meta_getNatValue_x3f(v_arg_9159_, v_a_9137_, v_a_9138_, v_a_9139_, v_a_9140_);
lean_dec_ref(v_arg_9159_);
if (lean_obj_tag(v___x_9171_) == 0)
{
lean_object* v_a_9172_; lean_object* v___x_9174_; uint8_t v_isShared_9175_; uint8_t v_isSharedCheck_9212_; 
v_a_9172_ = lean_ctor_get(v___x_9171_, 0);
v_isSharedCheck_9212_ = !lean_is_exclusive(v___x_9171_);
if (v_isSharedCheck_9212_ == 0)
{
v___x_9174_ = v___x_9171_;
v_isShared_9175_ = v_isSharedCheck_9212_;
goto v_resetjp_9173_;
}
else
{
lean_inc(v_a_9172_);
lean_dec(v___x_9171_);
v___x_9174_ = lean_box(0);
v_isShared_9175_ = v_isSharedCheck_9212_;
goto v_resetjp_9173_;
}
v_resetjp_9173_:
{
if (lean_obj_tag(v_a_9172_) == 1)
{
lean_object* v_val_9176_; lean_object* v___x_9178_; uint8_t v_isShared_9179_; uint8_t v_isSharedCheck_9207_; 
v_val_9176_ = lean_ctor_get(v_a_9172_, 0);
v_isSharedCheck_9207_ = !lean_is_exclusive(v_a_9172_);
if (v_isSharedCheck_9207_ == 0)
{
v___x_9178_ = v_a_9172_;
v_isShared_9179_ = v_isSharedCheck_9207_;
goto v_resetjp_9177_;
}
else
{
lean_inc(v_val_9176_);
lean_dec(v_a_9172_);
v___x_9178_ = lean_box(0);
v_isShared_9179_ = v_isSharedCheck_9207_;
goto v_resetjp_9177_;
}
v_resetjp_9177_:
{
lean_object* v_n_9180_; lean_object* v_value_9181_; uint8_t v___x_9182_; 
v_n_9180_ = lean_ctor_get(v_val_9170_, 0);
lean_inc(v_n_9180_);
v_value_9181_ = lean_ctor_get(v_val_9170_, 1);
lean_inc(v_value_9181_);
lean_dec(v_val_9170_);
v___x_9182_ = lean_nat_dec_le(v_n_9180_, v_val_9176_);
lean_dec(v_n_9180_);
if (v___x_9182_ == 0)
{
lean_object* v___x_9183_; lean_object* v___x_9185_; 
lean_dec(v_value_9181_);
lean_del_object(v___x_9178_);
lean_dec(v_val_9176_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
v___x_9183_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9175_ == 0)
{
lean_ctor_set(v___x_9174_, 0, v___x_9183_);
v___x_9185_ = v___x_9174_;
goto v_reusejp_9184_;
}
else
{
lean_object* v_reuseFailAlloc_9186_; 
v_reuseFailAlloc_9186_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9186_, 0, v___x_9183_);
v___x_9185_ = v_reuseFailAlloc_9186_;
goto v_reusejp_9184_;
}
v_reusejp_9184_:
{
return v___x_9185_;
}
}
else
{
lean_object* v___x_9187_; 
lean_del_object(v___x_9174_);
v___x_9187_ = l_BitVec_toExpr_x27___redArg(v_val_9176_, v_value_9181_, v_a_9136_, v_a_9137_, v_a_9138_, v_a_9139_, v_a_9140_);
if (lean_obj_tag(v___x_9187_) == 0)
{
lean_object* v_a_9188_; lean_object* v___x_9190_; uint8_t v_isShared_9191_; uint8_t v_isSharedCheck_9198_; 
v_a_9188_ = lean_ctor_get(v___x_9187_, 0);
v_isSharedCheck_9198_ = !lean_is_exclusive(v___x_9187_);
if (v_isSharedCheck_9198_ == 0)
{
v___x_9190_ = v___x_9187_;
v_isShared_9191_ = v_isSharedCheck_9198_;
goto v_resetjp_9189_;
}
else
{
lean_inc(v_a_9188_);
lean_dec(v___x_9187_);
v___x_9190_ = lean_box(0);
v_isShared_9191_ = v_isSharedCheck_9198_;
goto v_resetjp_9189_;
}
v_resetjp_9189_:
{
lean_object* v___x_9193_; 
if (v_isShared_9179_ == 0)
{
lean_ctor_set_tag(v___x_9178_, 0);
lean_ctor_set(v___x_9178_, 0, v_a_9188_);
v___x_9193_ = v___x_9178_;
goto v_reusejp_9192_;
}
else
{
lean_object* v_reuseFailAlloc_9197_; 
v_reuseFailAlloc_9197_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9197_, 0, v_a_9188_);
v___x_9193_ = v_reuseFailAlloc_9197_;
goto v_reusejp_9192_;
}
v_reusejp_9192_:
{
lean_object* v___x_9195_; 
if (v_isShared_9191_ == 0)
{
lean_ctor_set(v___x_9190_, 0, v___x_9193_);
v___x_9195_ = v___x_9190_;
goto v_reusejp_9194_;
}
else
{
lean_object* v_reuseFailAlloc_9196_; 
v_reuseFailAlloc_9196_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9196_, 0, v___x_9193_);
v___x_9195_ = v_reuseFailAlloc_9196_;
goto v_reusejp_9194_;
}
v_reusejp_9194_:
{
return v___x_9195_;
}
}
}
}
else
{
lean_object* v_a_9199_; lean_object* v___x_9201_; uint8_t v_isShared_9202_; uint8_t v_isSharedCheck_9206_; 
lean_del_object(v___x_9178_);
v_a_9199_ = lean_ctor_get(v___x_9187_, 0);
v_isSharedCheck_9206_ = !lean_is_exclusive(v___x_9187_);
if (v_isSharedCheck_9206_ == 0)
{
v___x_9201_ = v___x_9187_;
v_isShared_9202_ = v_isSharedCheck_9206_;
goto v_resetjp_9200_;
}
else
{
lean_inc(v_a_9199_);
lean_dec(v___x_9187_);
v___x_9201_ = lean_box(0);
v_isShared_9202_ = v_isSharedCheck_9206_;
goto v_resetjp_9200_;
}
v_resetjp_9200_:
{
lean_object* v___x_9204_; 
if (v_isShared_9202_ == 0)
{
v___x_9204_ = v___x_9201_;
goto v_reusejp_9203_;
}
else
{
lean_object* v_reuseFailAlloc_9205_; 
v_reuseFailAlloc_9205_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9205_, 0, v_a_9199_);
v___x_9204_ = v_reuseFailAlloc_9205_;
goto v_reusejp_9203_;
}
v_reusejp_9203_:
{
return v___x_9204_;
}
}
}
}
}
}
else
{
lean_object* v___x_9208_; lean_object* v___x_9210_; 
lean_dec(v_a_9172_);
lean_dec(v_val_9170_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
v___x_9208_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9175_ == 0)
{
lean_ctor_set(v___x_9174_, 0, v___x_9208_);
v___x_9210_ = v___x_9174_;
goto v_reusejp_9209_;
}
else
{
lean_object* v_reuseFailAlloc_9211_; 
v_reuseFailAlloc_9211_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9211_, 0, v___x_9208_);
v___x_9210_ = v_reuseFailAlloc_9211_;
goto v_reusejp_9209_;
}
v_reusejp_9209_:
{
return v___x_9210_;
}
}
}
}
else
{
lean_object* v_a_9213_; lean_object* v___x_9215_; uint8_t v_isShared_9216_; uint8_t v_isSharedCheck_9220_; 
lean_dec(v_val_9170_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
v_a_9213_ = lean_ctor_get(v___x_9171_, 0);
v_isSharedCheck_9220_ = !lean_is_exclusive(v___x_9171_);
if (v_isSharedCheck_9220_ == 0)
{
v___x_9215_ = v___x_9171_;
v_isShared_9216_ = v_isSharedCheck_9220_;
goto v_resetjp_9214_;
}
else
{
lean_inc(v_a_9213_);
lean_dec(v___x_9171_);
v___x_9215_ = lean_box(0);
v_isShared_9216_ = v_isSharedCheck_9220_;
goto v_resetjp_9214_;
}
v_resetjp_9214_:
{
lean_object* v___x_9218_; 
if (v_isShared_9216_ == 0)
{
v___x_9218_ = v___x_9215_;
goto v_reusejp_9217_;
}
else
{
lean_object* v_reuseFailAlloc_9219_; 
v_reuseFailAlloc_9219_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9219_, 0, v_a_9213_);
v___x_9218_ = v_reuseFailAlloc_9219_;
goto v_reusejp_9217_;
}
v_reusejp_9217_:
{
return v___x_9218_;
}
}
}
}
else
{
lean_object* v___x_9221_; lean_object* v___x_9223_; 
lean_dec(v_a_9166_);
lean_dec_ref(v_arg_9159_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
v___x_9221_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9169_ == 0)
{
lean_ctor_set(v___x_9168_, 0, v___x_9221_);
v___x_9223_ = v___x_9168_;
goto v_reusejp_9222_;
}
else
{
lean_object* v_reuseFailAlloc_9224_; 
v_reuseFailAlloc_9224_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9224_, 0, v___x_9221_);
v___x_9223_ = v_reuseFailAlloc_9224_;
goto v_reusejp_9222_;
}
v_reusejp_9222_:
{
return v___x_9223_;
}
}
}
}
else
{
lean_object* v_a_9226_; lean_object* v___x_9228_; uint8_t v_isShared_9229_; uint8_t v_isSharedCheck_9233_; 
lean_dec_ref(v_arg_9159_);
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
v_a_9226_ = lean_ctor_get(v___x_9165_, 0);
v_isSharedCheck_9233_ = !lean_is_exclusive(v___x_9165_);
if (v_isSharedCheck_9233_ == 0)
{
v___x_9228_ = v___x_9165_;
v_isShared_9229_ = v_isSharedCheck_9233_;
goto v_resetjp_9227_;
}
else
{
lean_inc(v_a_9226_);
lean_dec(v___x_9165_);
v___x_9228_ = lean_box(0);
v_isShared_9229_ = v_isSharedCheck_9233_;
goto v_resetjp_9227_;
}
v_resetjp_9227_:
{
lean_object* v___x_9231_; 
if (v_isShared_9229_ == 0)
{
v___x_9231_ = v___x_9228_;
goto v_reusejp_9230_;
}
else
{
lean_object* v_reuseFailAlloc_9232_; 
v_reuseFailAlloc_9232_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9232_, 0, v_a_9226_);
v___x_9231_ = v_reuseFailAlloc_9232_;
goto v_reusejp_9230_;
}
v_reusejp_9230_:
{
return v___x_9231_;
}
}
}
}
}
}
}
}
v___jp_9147_:
{
lean_object* v___x_9148_; lean_object* v___x_9150_; 
v___x_9148_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9146_ == 0)
{
lean_ctor_set(v___x_9145_, 0, v___x_9148_);
v___x_9150_ = v___x_9145_;
goto v_reusejp_9149_;
}
else
{
lean_object* v_reuseFailAlloc_9151_; 
v_reuseFailAlloc_9151_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9151_, 0, v___x_9148_);
v___x_9150_ = v_reuseFailAlloc_9151_;
goto v_reusejp_9149_;
}
v_reusejp_9149_:
{
return v___x_9150_;
}
}
}
}
else
{
lean_object* v_a_9235_; lean_object* v___x_9237_; uint8_t v_isShared_9238_; uint8_t v_isSharedCheck_9242_; 
lean_dec(v_a_9140_);
lean_dec_ref(v_a_9139_);
lean_dec(v_a_9138_);
lean_dec_ref(v_a_9137_);
v_a_9235_ = lean_ctor_get(v___x_9142_, 0);
v_isSharedCheck_9242_ = !lean_is_exclusive(v___x_9142_);
if (v_isSharedCheck_9242_ == 0)
{
v___x_9237_ = v___x_9142_;
v_isShared_9238_ = v_isSharedCheck_9242_;
goto v_resetjp_9236_;
}
else
{
lean_inc(v_a_9235_);
lean_dec(v___x_9142_);
v___x_9237_ = lean_box(0);
v_isShared_9238_ = v_isSharedCheck_9242_;
goto v_resetjp_9236_;
}
v_resetjp_9236_:
{
lean_object* v___x_9240_; 
if (v_isShared_9238_ == 0)
{
v___x_9240_ = v___x_9237_;
goto v_reusejp_9239_;
}
else
{
lean_object* v_reuseFailAlloc_9241_; 
v_reuseFailAlloc_9241_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9241_, 0, v_a_9235_);
v___x_9240_ = v_reuseFailAlloc_9241_;
goto v_reusejp_9239_;
}
v_reusejp_9239_:
{
return v___x_9240_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___redArg___boxed(lean_object* v_e_9243_, lean_object* v_a_9244_, lean_object* v_a_9245_, lean_object* v_a_9246_, lean_object* v_a_9247_, lean_object* v_a_9248_, lean_object* v_a_9249_){
_start:
{
lean_object* v_res_9250_; 
v_res_9250_ = l_BitVec_reduceSetWidth_x27___redArg(v_e_9243_, v_a_9244_, v_a_9245_, v_a_9246_, v_a_9247_, v_a_9248_);
lean_dec_ref(v_a_9244_);
return v_res_9250_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27(lean_object* v_e_9251_, lean_object* v_a_9252_, lean_object* v_a_9253_, lean_object* v_a_9254_, lean_object* v_a_9255_, lean_object* v_a_9256_, lean_object* v_a_9257_, lean_object* v_a_9258_){
_start:
{
lean_object* v___x_9260_; 
v___x_9260_ = l_BitVec_reduceSetWidth_x27___redArg(v_e_9251_, v_a_9253_, v_a_9255_, v_a_9256_, v_a_9257_, v_a_9258_);
return v___x_9260_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___boxed(lean_object* v_e_9261_, lean_object* v_a_9262_, lean_object* v_a_9263_, lean_object* v_a_9264_, lean_object* v_a_9265_, lean_object* v_a_9266_, lean_object* v_a_9267_, lean_object* v_a_9268_, lean_object* v_a_9269_){
_start:
{
lean_object* v_res_9270_; 
v_res_9270_ = l_BitVec_reduceSetWidth_x27(v_e_9261_, v_a_9262_, v_a_9263_, v_a_9264_, v_a_9265_, v_a_9266_, v_a_9267_, v_a_9268_);
lean_dec(v_a_9264_);
lean_dec_ref(v_a_9263_);
lean_dec(v_a_9262_);
return v_res_9270_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_9288_; lean_object* v___x_9289_; lean_object* v___x_9290_; lean_object* v___x_9291_; 
v___x_9288_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_));
v___x_9289_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_));
v___x_9290_ = lean_alloc_closure((void*)(l_BitVec_reduceSetWidth_x27___boxed), 9, 0);
v___x_9291_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_9288_, v___x_9289_, v___x_9290_);
return v___x_9291_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14____boxed(lean_object* v_a_9292_){
_start:
{
lean_object* v_res_9293_; 
v_res_9293_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_();
return v_res_9293_;
}
}
static lean_object* _init_l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_9294_; lean_object* v___x_9295_; 
v___x_9294_ = lean_alloc_closure((void*)(l_BitVec_reduceSetWidth_x27___boxed), 9, 0);
v___x_9295_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_9295_, 0, v___x_9294_);
return v___x_9295_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_9297_; uint8_t v___x_9298_; lean_object* v___x_9299_; lean_object* v___x_9300_; 
v___x_9297_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_));
v___x_9298_ = 1;
v___x_9299_ = lean_obj_once(&l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_, &l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16__once, _init_l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_);
v___x_9300_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_9297_, v___x_9298_, v___x_9299_);
return v___x_9300_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16____boxed(lean_object* v_a_9301_){
_start:
{
lean_object* v_res_9302_; 
v_res_9302_ = l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_();
return v_res_9302_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_9304_; uint8_t v___x_9305_; lean_object* v___x_9306_; lean_object* v___x_9307_; 
v___x_9304_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_));
v___x_9305_ = 1;
v___x_9306_ = lean_obj_once(&l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_, &l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16__once, _init_l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_);
v___x_9307_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_9304_, v___x_9305_, v___x_9306_);
return v___x_9307_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_18____boxed(lean_object* v_a_9308_){
_start:
{
lean_object* v_res_9309_; 
v_res_9309_ = l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_18_();
return v_res_9309_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___redArg(lean_object* v_e_9314_, lean_object* v_a_9315_, lean_object* v_a_9316_, lean_object* v_a_9317_, lean_object* v_a_9318_, lean_object* v_a_9319_){
_start:
{
lean_object* v___x_9321_; 
v___x_9321_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_9314_, v_a_9317_);
if (lean_obj_tag(v___x_9321_) == 0)
{
lean_object* v_a_9322_; lean_object* v___x_9324_; uint8_t v_isShared_9325_; uint8_t v_isSharedCheck_9408_; 
v_a_9322_ = lean_ctor_get(v___x_9321_, 0);
v_isSharedCheck_9408_ = !lean_is_exclusive(v___x_9321_);
if (v_isSharedCheck_9408_ == 0)
{
v___x_9324_ = v___x_9321_;
v_isShared_9325_ = v_isSharedCheck_9408_;
goto v_resetjp_9323_;
}
else
{
lean_inc(v_a_9322_);
lean_dec(v___x_9321_);
v___x_9324_ = lean_box(0);
v_isShared_9325_ = v_isSharedCheck_9408_;
goto v_resetjp_9323_;
}
v_resetjp_9323_:
{
lean_object* v___x_9331_; uint8_t v___x_9332_; 
v___x_9331_ = l_Lean_Expr_cleanupAnnotations(v_a_9322_);
v___x_9332_ = l_Lean_Expr_isApp(v___x_9331_);
if (v___x_9332_ == 0)
{
lean_dec_ref(v___x_9331_);
lean_dec(v_a_9319_);
lean_dec_ref(v_a_9318_);
lean_dec(v_a_9317_);
lean_dec_ref(v_a_9316_);
goto v___jp_9326_;
}
else
{
lean_object* v_arg_9333_; lean_object* v___x_9334_; uint8_t v___x_9335_; 
v_arg_9333_ = lean_ctor_get(v___x_9331_, 1);
lean_inc_ref(v_arg_9333_);
v___x_9334_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9331_);
v___x_9335_ = l_Lean_Expr_isApp(v___x_9334_);
if (v___x_9335_ == 0)
{
lean_dec_ref(v___x_9334_);
lean_dec_ref(v_arg_9333_);
lean_dec(v_a_9319_);
lean_dec_ref(v_a_9318_);
lean_dec(v_a_9317_);
lean_dec_ref(v_a_9316_);
goto v___jp_9326_;
}
else
{
lean_object* v_arg_9336_; lean_object* v___x_9337_; uint8_t v___x_9338_; 
v_arg_9336_ = lean_ctor_get(v___x_9334_, 1);
lean_inc_ref(v_arg_9336_);
v___x_9337_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9334_);
v___x_9338_ = l_Lean_Expr_isApp(v___x_9337_);
if (v___x_9338_ == 0)
{
lean_dec_ref(v___x_9337_);
lean_dec_ref(v_arg_9336_);
lean_dec_ref(v_arg_9333_);
lean_dec(v_a_9319_);
lean_dec_ref(v_a_9318_);
lean_dec(v_a_9317_);
lean_dec_ref(v_a_9316_);
goto v___jp_9326_;
}
else
{
lean_object* v___x_9339_; lean_object* v___x_9340_; uint8_t v___x_9341_; 
v___x_9339_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9337_);
v___x_9340_ = ((lean_object*)(l_BitVec_reduceShiftLeftZeroExtend___redArg___closed__1));
v___x_9341_ = l_Lean_Expr_isConstOf(v___x_9339_, v___x_9340_);
lean_dec_ref(v___x_9339_);
if (v___x_9341_ == 0)
{
lean_dec_ref(v_arg_9336_);
lean_dec_ref(v_arg_9333_);
lean_dec(v_a_9319_);
lean_dec_ref(v_a_9318_);
lean_dec(v_a_9317_);
lean_dec_ref(v_a_9316_);
goto v___jp_9326_;
}
else
{
lean_object* v___x_9342_; 
lean_del_object(v___x_9324_);
lean_inc(v_a_9319_);
lean_inc_ref(v_a_9318_);
lean_inc(v_a_9317_);
lean_inc_ref(v_a_9316_);
v___x_9342_ = l_BitVec_fromExpr_x3f___redArg(v_arg_9336_, v_a_9316_, v_a_9317_, v_a_9318_, v_a_9319_);
if (lean_obj_tag(v___x_9342_) == 0)
{
lean_object* v_a_9343_; lean_object* v___x_9345_; uint8_t v_isShared_9346_; uint8_t v_isSharedCheck_9399_; 
v_a_9343_ = lean_ctor_get(v___x_9342_, 0);
v_isSharedCheck_9399_ = !lean_is_exclusive(v___x_9342_);
if (v_isSharedCheck_9399_ == 0)
{
v___x_9345_ = v___x_9342_;
v_isShared_9346_ = v_isSharedCheck_9399_;
goto v_resetjp_9344_;
}
else
{
lean_inc(v_a_9343_);
lean_dec(v___x_9342_);
v___x_9345_ = lean_box(0);
v_isShared_9346_ = v_isSharedCheck_9399_;
goto v_resetjp_9344_;
}
v_resetjp_9344_:
{
if (lean_obj_tag(v_a_9343_) == 1)
{
lean_object* v_val_9347_; lean_object* v___x_9348_; 
lean_del_object(v___x_9345_);
v_val_9347_ = lean_ctor_get(v_a_9343_, 0);
lean_inc(v_val_9347_);
lean_dec_ref(v_a_9343_);
lean_inc(v_a_9319_);
lean_inc_ref(v_a_9318_);
lean_inc(v_a_9317_);
lean_inc_ref(v_a_9316_);
v___x_9348_ = l_Lean_Meta_getNatValue_x3f(v_arg_9333_, v_a_9316_, v_a_9317_, v_a_9318_, v_a_9319_);
lean_dec_ref(v_arg_9333_);
if (lean_obj_tag(v___x_9348_) == 0)
{
lean_object* v_a_9349_; lean_object* v___x_9351_; uint8_t v_isShared_9352_; uint8_t v_isSharedCheck_9386_; 
v_a_9349_ = lean_ctor_get(v___x_9348_, 0);
v_isSharedCheck_9386_ = !lean_is_exclusive(v___x_9348_);
if (v_isSharedCheck_9386_ == 0)
{
v___x_9351_ = v___x_9348_;
v_isShared_9352_ = v_isSharedCheck_9386_;
goto v_resetjp_9350_;
}
else
{
lean_inc(v_a_9349_);
lean_dec(v___x_9348_);
v___x_9351_ = lean_box(0);
v_isShared_9352_ = v_isSharedCheck_9386_;
goto v_resetjp_9350_;
}
v_resetjp_9350_:
{
if (lean_obj_tag(v_a_9349_) == 1)
{
lean_object* v_val_9353_; lean_object* v___x_9355_; uint8_t v_isShared_9356_; uint8_t v_isSharedCheck_9381_; 
lean_del_object(v___x_9351_);
v_val_9353_ = lean_ctor_get(v_a_9349_, 0);
v_isSharedCheck_9381_ = !lean_is_exclusive(v_a_9349_);
if (v_isSharedCheck_9381_ == 0)
{
v___x_9355_ = v_a_9349_;
v_isShared_9356_ = v_isSharedCheck_9381_;
goto v_resetjp_9354_;
}
else
{
lean_inc(v_val_9353_);
lean_dec(v_a_9349_);
v___x_9355_ = lean_box(0);
v_isShared_9356_ = v_isSharedCheck_9381_;
goto v_resetjp_9354_;
}
v_resetjp_9354_:
{
lean_object* v_n_9357_; lean_object* v_value_9358_; lean_object* v___x_9359_; lean_object* v___x_9360_; lean_object* v___x_9361_; 
v_n_9357_ = lean_ctor_get(v_val_9347_, 0);
lean_inc(v_n_9357_);
v_value_9358_ = lean_ctor_get(v_val_9347_, 1);
lean_inc(v_value_9358_);
lean_dec(v_val_9347_);
v___x_9359_ = lean_nat_add(v_n_9357_, v_val_9353_);
lean_dec(v_n_9357_);
v___x_9360_ = lean_nat_shiftl(v_value_9358_, v_val_9353_);
lean_dec(v_val_9353_);
lean_dec(v_value_9358_);
v___x_9361_ = l_BitVec_toExpr_x27___redArg(v___x_9359_, v___x_9360_, v_a_9315_, v_a_9316_, v_a_9317_, v_a_9318_, v_a_9319_);
if (lean_obj_tag(v___x_9361_) == 0)
{
lean_object* v_a_9362_; lean_object* v___x_9364_; uint8_t v_isShared_9365_; uint8_t v_isSharedCheck_9372_; 
v_a_9362_ = lean_ctor_get(v___x_9361_, 0);
v_isSharedCheck_9372_ = !lean_is_exclusive(v___x_9361_);
if (v_isSharedCheck_9372_ == 0)
{
v___x_9364_ = v___x_9361_;
v_isShared_9365_ = v_isSharedCheck_9372_;
goto v_resetjp_9363_;
}
else
{
lean_inc(v_a_9362_);
lean_dec(v___x_9361_);
v___x_9364_ = lean_box(0);
v_isShared_9365_ = v_isSharedCheck_9372_;
goto v_resetjp_9363_;
}
v_resetjp_9363_:
{
lean_object* v___x_9367_; 
if (v_isShared_9356_ == 0)
{
lean_ctor_set_tag(v___x_9355_, 0);
lean_ctor_set(v___x_9355_, 0, v_a_9362_);
v___x_9367_ = v___x_9355_;
goto v_reusejp_9366_;
}
else
{
lean_object* v_reuseFailAlloc_9371_; 
v_reuseFailAlloc_9371_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9371_, 0, v_a_9362_);
v___x_9367_ = v_reuseFailAlloc_9371_;
goto v_reusejp_9366_;
}
v_reusejp_9366_:
{
lean_object* v___x_9369_; 
if (v_isShared_9365_ == 0)
{
lean_ctor_set(v___x_9364_, 0, v___x_9367_);
v___x_9369_ = v___x_9364_;
goto v_reusejp_9368_;
}
else
{
lean_object* v_reuseFailAlloc_9370_; 
v_reuseFailAlloc_9370_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9370_, 0, v___x_9367_);
v___x_9369_ = v_reuseFailAlloc_9370_;
goto v_reusejp_9368_;
}
v_reusejp_9368_:
{
return v___x_9369_;
}
}
}
}
else
{
lean_object* v_a_9373_; lean_object* v___x_9375_; uint8_t v_isShared_9376_; uint8_t v_isSharedCheck_9380_; 
lean_del_object(v___x_9355_);
v_a_9373_ = lean_ctor_get(v___x_9361_, 0);
v_isSharedCheck_9380_ = !lean_is_exclusive(v___x_9361_);
if (v_isSharedCheck_9380_ == 0)
{
v___x_9375_ = v___x_9361_;
v_isShared_9376_ = v_isSharedCheck_9380_;
goto v_resetjp_9374_;
}
else
{
lean_inc(v_a_9373_);
lean_dec(v___x_9361_);
v___x_9375_ = lean_box(0);
v_isShared_9376_ = v_isSharedCheck_9380_;
goto v_resetjp_9374_;
}
v_resetjp_9374_:
{
lean_object* v___x_9378_; 
if (v_isShared_9376_ == 0)
{
v___x_9378_ = v___x_9375_;
goto v_reusejp_9377_;
}
else
{
lean_object* v_reuseFailAlloc_9379_; 
v_reuseFailAlloc_9379_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9379_, 0, v_a_9373_);
v___x_9378_ = v_reuseFailAlloc_9379_;
goto v_reusejp_9377_;
}
v_reusejp_9377_:
{
return v___x_9378_;
}
}
}
}
}
else
{
lean_object* v___x_9382_; lean_object* v___x_9384_; 
lean_dec(v_a_9349_);
lean_dec(v_val_9347_);
lean_dec(v_a_9319_);
lean_dec_ref(v_a_9318_);
lean_dec(v_a_9317_);
lean_dec_ref(v_a_9316_);
v___x_9382_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9352_ == 0)
{
lean_ctor_set(v___x_9351_, 0, v___x_9382_);
v___x_9384_ = v___x_9351_;
goto v_reusejp_9383_;
}
else
{
lean_object* v_reuseFailAlloc_9385_; 
v_reuseFailAlloc_9385_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9385_, 0, v___x_9382_);
v___x_9384_ = v_reuseFailAlloc_9385_;
goto v_reusejp_9383_;
}
v_reusejp_9383_:
{
return v___x_9384_;
}
}
}
}
else
{
lean_object* v_a_9387_; lean_object* v___x_9389_; uint8_t v_isShared_9390_; uint8_t v_isSharedCheck_9394_; 
lean_dec(v_val_9347_);
lean_dec(v_a_9319_);
lean_dec_ref(v_a_9318_);
lean_dec(v_a_9317_);
lean_dec_ref(v_a_9316_);
v_a_9387_ = lean_ctor_get(v___x_9348_, 0);
v_isSharedCheck_9394_ = !lean_is_exclusive(v___x_9348_);
if (v_isSharedCheck_9394_ == 0)
{
v___x_9389_ = v___x_9348_;
v_isShared_9390_ = v_isSharedCheck_9394_;
goto v_resetjp_9388_;
}
else
{
lean_inc(v_a_9387_);
lean_dec(v___x_9348_);
v___x_9389_ = lean_box(0);
v_isShared_9390_ = v_isSharedCheck_9394_;
goto v_resetjp_9388_;
}
v_resetjp_9388_:
{
lean_object* v___x_9392_; 
if (v_isShared_9390_ == 0)
{
v___x_9392_ = v___x_9389_;
goto v_reusejp_9391_;
}
else
{
lean_object* v_reuseFailAlloc_9393_; 
v_reuseFailAlloc_9393_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9393_, 0, v_a_9387_);
v___x_9392_ = v_reuseFailAlloc_9393_;
goto v_reusejp_9391_;
}
v_reusejp_9391_:
{
return v___x_9392_;
}
}
}
}
else
{
lean_object* v___x_9395_; lean_object* v___x_9397_; 
lean_dec(v_a_9343_);
lean_dec_ref(v_arg_9333_);
lean_dec(v_a_9319_);
lean_dec_ref(v_a_9318_);
lean_dec(v_a_9317_);
lean_dec_ref(v_a_9316_);
v___x_9395_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9346_ == 0)
{
lean_ctor_set(v___x_9345_, 0, v___x_9395_);
v___x_9397_ = v___x_9345_;
goto v_reusejp_9396_;
}
else
{
lean_object* v_reuseFailAlloc_9398_; 
v_reuseFailAlloc_9398_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9398_, 0, v___x_9395_);
v___x_9397_ = v_reuseFailAlloc_9398_;
goto v_reusejp_9396_;
}
v_reusejp_9396_:
{
return v___x_9397_;
}
}
}
}
else
{
lean_object* v_a_9400_; lean_object* v___x_9402_; uint8_t v_isShared_9403_; uint8_t v_isSharedCheck_9407_; 
lean_dec_ref(v_arg_9333_);
lean_dec(v_a_9319_);
lean_dec_ref(v_a_9318_);
lean_dec(v_a_9317_);
lean_dec_ref(v_a_9316_);
v_a_9400_ = lean_ctor_get(v___x_9342_, 0);
v_isSharedCheck_9407_ = !lean_is_exclusive(v___x_9342_);
if (v_isSharedCheck_9407_ == 0)
{
v___x_9402_ = v___x_9342_;
v_isShared_9403_ = v_isSharedCheck_9407_;
goto v_resetjp_9401_;
}
else
{
lean_inc(v_a_9400_);
lean_dec(v___x_9342_);
v___x_9402_ = lean_box(0);
v_isShared_9403_ = v_isSharedCheck_9407_;
goto v_resetjp_9401_;
}
v_resetjp_9401_:
{
lean_object* v___x_9405_; 
if (v_isShared_9403_ == 0)
{
v___x_9405_ = v___x_9402_;
goto v_reusejp_9404_;
}
else
{
lean_object* v_reuseFailAlloc_9406_; 
v_reuseFailAlloc_9406_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9406_, 0, v_a_9400_);
v___x_9405_ = v_reuseFailAlloc_9406_;
goto v_reusejp_9404_;
}
v_reusejp_9404_:
{
return v___x_9405_;
}
}
}
}
}
}
}
v___jp_9326_:
{
lean_object* v___x_9327_; lean_object* v___x_9329_; 
v___x_9327_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9325_ == 0)
{
lean_ctor_set(v___x_9324_, 0, v___x_9327_);
v___x_9329_ = v___x_9324_;
goto v_reusejp_9328_;
}
else
{
lean_object* v_reuseFailAlloc_9330_; 
v_reuseFailAlloc_9330_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9330_, 0, v___x_9327_);
v___x_9329_ = v_reuseFailAlloc_9330_;
goto v_reusejp_9328_;
}
v_reusejp_9328_:
{
return v___x_9329_;
}
}
}
}
else
{
lean_object* v_a_9409_; lean_object* v___x_9411_; uint8_t v_isShared_9412_; uint8_t v_isSharedCheck_9416_; 
lean_dec(v_a_9319_);
lean_dec_ref(v_a_9318_);
lean_dec(v_a_9317_);
lean_dec_ref(v_a_9316_);
v_a_9409_ = lean_ctor_get(v___x_9321_, 0);
v_isSharedCheck_9416_ = !lean_is_exclusive(v___x_9321_);
if (v_isSharedCheck_9416_ == 0)
{
v___x_9411_ = v___x_9321_;
v_isShared_9412_ = v_isSharedCheck_9416_;
goto v_resetjp_9410_;
}
else
{
lean_inc(v_a_9409_);
lean_dec(v___x_9321_);
v___x_9411_ = lean_box(0);
v_isShared_9412_ = v_isSharedCheck_9416_;
goto v_resetjp_9410_;
}
v_resetjp_9410_:
{
lean_object* v___x_9414_; 
if (v_isShared_9412_ == 0)
{
v___x_9414_ = v___x_9411_;
goto v_reusejp_9413_;
}
else
{
lean_object* v_reuseFailAlloc_9415_; 
v_reuseFailAlloc_9415_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9415_, 0, v_a_9409_);
v___x_9414_ = v_reuseFailAlloc_9415_;
goto v_reusejp_9413_;
}
v_reusejp_9413_:
{
return v___x_9414_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___redArg___boxed(lean_object* v_e_9417_, lean_object* v_a_9418_, lean_object* v_a_9419_, lean_object* v_a_9420_, lean_object* v_a_9421_, lean_object* v_a_9422_, lean_object* v_a_9423_){
_start:
{
lean_object* v_res_9424_; 
v_res_9424_ = l_BitVec_reduceShiftLeftZeroExtend___redArg(v_e_9417_, v_a_9418_, v_a_9419_, v_a_9420_, v_a_9421_, v_a_9422_);
lean_dec_ref(v_a_9418_);
return v_res_9424_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend(lean_object* v_e_9425_, lean_object* v_a_9426_, lean_object* v_a_9427_, lean_object* v_a_9428_, lean_object* v_a_9429_, lean_object* v_a_9430_, lean_object* v_a_9431_, lean_object* v_a_9432_){
_start:
{
lean_object* v___x_9434_; 
v___x_9434_ = l_BitVec_reduceShiftLeftZeroExtend___redArg(v_e_9425_, v_a_9427_, v_a_9429_, v_a_9430_, v_a_9431_, v_a_9432_);
return v___x_9434_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___boxed(lean_object* v_e_9435_, lean_object* v_a_9436_, lean_object* v_a_9437_, lean_object* v_a_9438_, lean_object* v_a_9439_, lean_object* v_a_9440_, lean_object* v_a_9441_, lean_object* v_a_9442_, lean_object* v_a_9443_){
_start:
{
lean_object* v_res_9444_; 
v_res_9444_ = l_BitVec_reduceShiftLeftZeroExtend(v_e_9435_, v_a_9436_, v_a_9437_, v_a_9438_, v_a_9439_, v_a_9440_, v_a_9441_, v_a_9442_);
lean_dec(v_a_9438_);
lean_dec_ref(v_a_9437_);
lean_dec(v_a_9436_);
return v_res_9444_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_9461_; lean_object* v___x_9462_; lean_object* v___x_9463_; lean_object* v___x_9464_; 
v___x_9461_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_));
v___x_9462_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_));
v___x_9463_ = lean_alloc_closure((void*)(l_BitVec_reduceShiftLeftZeroExtend___boxed), 9, 0);
v___x_9464_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_9461_, v___x_9462_, v___x_9463_);
return v___x_9464_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14____boxed(lean_object* v_a_9465_){
_start:
{
lean_object* v_res_9466_; 
v_res_9466_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_();
return v_res_9466_;
}
}
static lean_object* _init_l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_9467_; lean_object* v___x_9468_; 
v___x_9467_ = lean_alloc_closure((void*)(l_BitVec_reduceShiftLeftZeroExtend___boxed), 9, 0);
v___x_9468_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_9468_, 0, v___x_9467_);
return v___x_9468_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_9470_; uint8_t v___x_9471_; lean_object* v___x_9472_; lean_object* v___x_9473_; 
v___x_9470_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_));
v___x_9471_ = 1;
v___x_9472_ = lean_obj_once(&l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_, &l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16__once, _init_l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_);
v___x_9473_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_9470_, v___x_9471_, v___x_9472_);
return v___x_9473_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16____boxed(lean_object* v_a_9474_){
_start:
{
lean_object* v_res_9475_; 
v_res_9475_ = l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_();
return v_res_9475_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_9477_; uint8_t v___x_9478_; lean_object* v___x_9479_; lean_object* v___x_9480_; 
v___x_9477_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_));
v___x_9478_ = 1;
v___x_9479_ = lean_obj_once(&l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_, &l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16__once, _init_l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_);
v___x_9480_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_9477_, v___x_9478_, v___x_9479_);
return v___x_9480_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_18____boxed(lean_object* v_a_9481_){
_start:
{
lean_object* v_res_9482_; 
v_res_9482_ = l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_18_();
return v_res_9482_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___redArg(lean_object* v_e_9487_, lean_object* v_a_9488_, lean_object* v_a_9489_, lean_object* v_a_9490_, lean_object* v_a_9491_, lean_object* v_a_9492_){
_start:
{
lean_object* v___x_9494_; 
v___x_9494_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_9487_, v_a_9490_);
if (lean_obj_tag(v___x_9494_) == 0)
{
lean_object* v_a_9495_; lean_object* v___x_9497_; uint8_t v_isShared_9498_; uint8_t v_isSharedCheck_9601_; 
v_a_9495_ = lean_ctor_get(v___x_9494_, 0);
v_isSharedCheck_9601_ = !lean_is_exclusive(v___x_9494_);
if (v_isSharedCheck_9601_ == 0)
{
v___x_9497_ = v___x_9494_;
v_isShared_9498_ = v_isSharedCheck_9601_;
goto v_resetjp_9496_;
}
else
{
lean_inc(v_a_9495_);
lean_dec(v___x_9494_);
v___x_9497_ = lean_box(0);
v_isShared_9498_ = v_isSharedCheck_9601_;
goto v_resetjp_9496_;
}
v_resetjp_9496_:
{
lean_object* v___x_9504_; uint8_t v___x_9505_; 
v___x_9504_ = l_Lean_Expr_cleanupAnnotations(v_a_9495_);
v___x_9505_ = l_Lean_Expr_isApp(v___x_9504_);
if (v___x_9505_ == 0)
{
lean_dec_ref(v___x_9504_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
goto v___jp_9499_;
}
else
{
lean_object* v_arg_9506_; lean_object* v___x_9507_; uint8_t v___x_9508_; 
v_arg_9506_ = lean_ctor_get(v___x_9504_, 1);
lean_inc_ref(v_arg_9506_);
v___x_9507_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9504_);
v___x_9508_ = l_Lean_Expr_isApp(v___x_9507_);
if (v___x_9508_ == 0)
{
lean_dec_ref(v___x_9507_);
lean_dec_ref(v_arg_9506_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
goto v___jp_9499_;
}
else
{
lean_object* v_arg_9509_; lean_object* v___x_9510_; uint8_t v___x_9511_; 
v_arg_9509_ = lean_ctor_get(v___x_9507_, 1);
lean_inc_ref(v_arg_9509_);
v___x_9510_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9507_);
v___x_9511_ = l_Lean_Expr_isApp(v___x_9510_);
if (v___x_9511_ == 0)
{
lean_dec_ref(v___x_9510_);
lean_dec_ref(v_arg_9509_);
lean_dec_ref(v_arg_9506_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
goto v___jp_9499_;
}
else
{
lean_object* v_arg_9512_; lean_object* v___x_9513_; uint8_t v___x_9514_; 
v_arg_9512_ = lean_ctor_get(v___x_9510_, 1);
lean_inc_ref(v_arg_9512_);
v___x_9513_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9510_);
v___x_9514_ = l_Lean_Expr_isApp(v___x_9513_);
if (v___x_9514_ == 0)
{
lean_dec_ref(v___x_9513_);
lean_dec_ref(v_arg_9512_);
lean_dec_ref(v_arg_9509_);
lean_dec_ref(v_arg_9506_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
goto v___jp_9499_;
}
else
{
lean_object* v___x_9515_; lean_object* v___x_9516_; uint8_t v___x_9517_; 
v___x_9515_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9513_);
v___x_9516_ = ((lean_object*)(l_BitVec_reduceExtractLsb_x27___redArg___closed__1));
v___x_9517_ = l_Lean_Expr_isConstOf(v___x_9515_, v___x_9516_);
lean_dec_ref(v___x_9515_);
if (v___x_9517_ == 0)
{
lean_dec_ref(v_arg_9512_);
lean_dec_ref(v_arg_9509_);
lean_dec_ref(v_arg_9506_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
goto v___jp_9499_;
}
else
{
lean_object* v___x_9518_; 
lean_del_object(v___x_9497_);
lean_inc(v_a_9492_);
lean_inc_ref(v_a_9491_);
lean_inc(v_a_9490_);
lean_inc_ref(v_a_9489_);
v___x_9518_ = l_BitVec_fromExpr_x3f___redArg(v_arg_9506_, v_a_9489_, v_a_9490_, v_a_9491_, v_a_9492_);
if (lean_obj_tag(v___x_9518_) == 0)
{
lean_object* v_a_9519_; lean_object* v___x_9521_; uint8_t v_isShared_9522_; uint8_t v_isSharedCheck_9592_; 
v_a_9519_ = lean_ctor_get(v___x_9518_, 0);
v_isSharedCheck_9592_ = !lean_is_exclusive(v___x_9518_);
if (v_isSharedCheck_9592_ == 0)
{
v___x_9521_ = v___x_9518_;
v_isShared_9522_ = v_isSharedCheck_9592_;
goto v_resetjp_9520_;
}
else
{
lean_inc(v_a_9519_);
lean_dec(v___x_9518_);
v___x_9521_ = lean_box(0);
v_isShared_9522_ = v_isSharedCheck_9592_;
goto v_resetjp_9520_;
}
v_resetjp_9520_:
{
if (lean_obj_tag(v_a_9519_) == 1)
{
lean_object* v_val_9523_; lean_object* v___x_9524_; 
lean_del_object(v___x_9521_);
v_val_9523_ = lean_ctor_get(v_a_9519_, 0);
lean_inc(v_val_9523_);
lean_dec_ref(v_a_9519_);
lean_inc(v_a_9492_);
lean_inc_ref(v_a_9491_);
lean_inc(v_a_9490_);
lean_inc_ref(v_a_9489_);
v___x_9524_ = l_Lean_Meta_getNatValue_x3f(v_arg_9512_, v_a_9489_, v_a_9490_, v_a_9491_, v_a_9492_);
lean_dec_ref(v_arg_9512_);
if (lean_obj_tag(v___x_9524_) == 0)
{
lean_object* v_a_9525_; lean_object* v___x_9527_; uint8_t v_isShared_9528_; uint8_t v_isSharedCheck_9579_; 
v_a_9525_ = lean_ctor_get(v___x_9524_, 0);
v_isSharedCheck_9579_ = !lean_is_exclusive(v___x_9524_);
if (v_isSharedCheck_9579_ == 0)
{
v___x_9527_ = v___x_9524_;
v_isShared_9528_ = v_isSharedCheck_9579_;
goto v_resetjp_9526_;
}
else
{
lean_inc(v_a_9525_);
lean_dec(v___x_9524_);
v___x_9527_ = lean_box(0);
v_isShared_9528_ = v_isSharedCheck_9579_;
goto v_resetjp_9526_;
}
v_resetjp_9526_:
{
if (lean_obj_tag(v_a_9525_) == 1)
{
lean_object* v_val_9529_; lean_object* v___x_9530_; 
lean_del_object(v___x_9527_);
v_val_9529_ = lean_ctor_get(v_a_9525_, 0);
lean_inc(v_val_9529_);
lean_dec_ref(v_a_9525_);
lean_inc(v_a_9492_);
lean_inc_ref(v_a_9491_);
lean_inc(v_a_9490_);
lean_inc_ref(v_a_9489_);
v___x_9530_ = l_Lean_Meta_getNatValue_x3f(v_arg_9509_, v_a_9489_, v_a_9490_, v_a_9491_, v_a_9492_);
lean_dec_ref(v_arg_9509_);
if (lean_obj_tag(v___x_9530_) == 0)
{
lean_object* v_a_9531_; lean_object* v___x_9533_; uint8_t v_isShared_9534_; uint8_t v_isSharedCheck_9566_; 
v_a_9531_ = lean_ctor_get(v___x_9530_, 0);
v_isSharedCheck_9566_ = !lean_is_exclusive(v___x_9530_);
if (v_isSharedCheck_9566_ == 0)
{
v___x_9533_ = v___x_9530_;
v_isShared_9534_ = v_isSharedCheck_9566_;
goto v_resetjp_9532_;
}
else
{
lean_inc(v_a_9531_);
lean_dec(v___x_9530_);
v___x_9533_ = lean_box(0);
v_isShared_9534_ = v_isSharedCheck_9566_;
goto v_resetjp_9532_;
}
v_resetjp_9532_:
{
if (lean_obj_tag(v_a_9531_) == 1)
{
lean_object* v_val_9535_; lean_object* v___x_9537_; uint8_t v_isShared_9538_; uint8_t v_isSharedCheck_9561_; 
lean_del_object(v___x_9533_);
v_val_9535_ = lean_ctor_get(v_a_9531_, 0);
v_isSharedCheck_9561_ = !lean_is_exclusive(v_a_9531_);
if (v_isSharedCheck_9561_ == 0)
{
v___x_9537_ = v_a_9531_;
v_isShared_9538_ = v_isSharedCheck_9561_;
goto v_resetjp_9536_;
}
else
{
lean_inc(v_val_9535_);
lean_dec(v_a_9531_);
v___x_9537_ = lean_box(0);
v_isShared_9538_ = v_isSharedCheck_9561_;
goto v_resetjp_9536_;
}
v_resetjp_9536_:
{
lean_object* v_value_9539_; lean_object* v___x_9540_; lean_object* v___x_9541_; 
v_value_9539_ = lean_ctor_get(v_val_9523_, 1);
lean_inc(v_value_9539_);
lean_dec(v_val_9523_);
v___x_9540_ = l_BitVec_extractLsb_x27___redArg(v_val_9529_, v_val_9535_, v_value_9539_);
lean_dec(v_value_9539_);
lean_dec(v_val_9529_);
v___x_9541_ = l_BitVec_toExpr_x27___redArg(v_val_9535_, v___x_9540_, v_a_9488_, v_a_9489_, v_a_9490_, v_a_9491_, v_a_9492_);
if (lean_obj_tag(v___x_9541_) == 0)
{
lean_object* v_a_9542_; lean_object* v___x_9544_; uint8_t v_isShared_9545_; uint8_t v_isSharedCheck_9552_; 
v_a_9542_ = lean_ctor_get(v___x_9541_, 0);
v_isSharedCheck_9552_ = !lean_is_exclusive(v___x_9541_);
if (v_isSharedCheck_9552_ == 0)
{
v___x_9544_ = v___x_9541_;
v_isShared_9545_ = v_isSharedCheck_9552_;
goto v_resetjp_9543_;
}
else
{
lean_inc(v_a_9542_);
lean_dec(v___x_9541_);
v___x_9544_ = lean_box(0);
v_isShared_9545_ = v_isSharedCheck_9552_;
goto v_resetjp_9543_;
}
v_resetjp_9543_:
{
lean_object* v___x_9547_; 
if (v_isShared_9538_ == 0)
{
lean_ctor_set_tag(v___x_9537_, 0);
lean_ctor_set(v___x_9537_, 0, v_a_9542_);
v___x_9547_ = v___x_9537_;
goto v_reusejp_9546_;
}
else
{
lean_object* v_reuseFailAlloc_9551_; 
v_reuseFailAlloc_9551_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9551_, 0, v_a_9542_);
v___x_9547_ = v_reuseFailAlloc_9551_;
goto v_reusejp_9546_;
}
v_reusejp_9546_:
{
lean_object* v___x_9549_; 
if (v_isShared_9545_ == 0)
{
lean_ctor_set(v___x_9544_, 0, v___x_9547_);
v___x_9549_ = v___x_9544_;
goto v_reusejp_9548_;
}
else
{
lean_object* v_reuseFailAlloc_9550_; 
v_reuseFailAlloc_9550_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9550_, 0, v___x_9547_);
v___x_9549_ = v_reuseFailAlloc_9550_;
goto v_reusejp_9548_;
}
v_reusejp_9548_:
{
return v___x_9549_;
}
}
}
}
else
{
lean_object* v_a_9553_; lean_object* v___x_9555_; uint8_t v_isShared_9556_; uint8_t v_isSharedCheck_9560_; 
lean_del_object(v___x_9537_);
v_a_9553_ = lean_ctor_get(v___x_9541_, 0);
v_isSharedCheck_9560_ = !lean_is_exclusive(v___x_9541_);
if (v_isSharedCheck_9560_ == 0)
{
v___x_9555_ = v___x_9541_;
v_isShared_9556_ = v_isSharedCheck_9560_;
goto v_resetjp_9554_;
}
else
{
lean_inc(v_a_9553_);
lean_dec(v___x_9541_);
v___x_9555_ = lean_box(0);
v_isShared_9556_ = v_isSharedCheck_9560_;
goto v_resetjp_9554_;
}
v_resetjp_9554_:
{
lean_object* v___x_9558_; 
if (v_isShared_9556_ == 0)
{
v___x_9558_ = v___x_9555_;
goto v_reusejp_9557_;
}
else
{
lean_object* v_reuseFailAlloc_9559_; 
v_reuseFailAlloc_9559_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9559_, 0, v_a_9553_);
v___x_9558_ = v_reuseFailAlloc_9559_;
goto v_reusejp_9557_;
}
v_reusejp_9557_:
{
return v___x_9558_;
}
}
}
}
}
else
{
lean_object* v___x_9562_; lean_object* v___x_9564_; 
lean_dec(v_a_9531_);
lean_dec(v_val_9529_);
lean_dec(v_val_9523_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
v___x_9562_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9534_ == 0)
{
lean_ctor_set(v___x_9533_, 0, v___x_9562_);
v___x_9564_ = v___x_9533_;
goto v_reusejp_9563_;
}
else
{
lean_object* v_reuseFailAlloc_9565_; 
v_reuseFailAlloc_9565_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9565_, 0, v___x_9562_);
v___x_9564_ = v_reuseFailAlloc_9565_;
goto v_reusejp_9563_;
}
v_reusejp_9563_:
{
return v___x_9564_;
}
}
}
}
else
{
lean_object* v_a_9567_; lean_object* v___x_9569_; uint8_t v_isShared_9570_; uint8_t v_isSharedCheck_9574_; 
lean_dec(v_val_9529_);
lean_dec(v_val_9523_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
v_a_9567_ = lean_ctor_get(v___x_9530_, 0);
v_isSharedCheck_9574_ = !lean_is_exclusive(v___x_9530_);
if (v_isSharedCheck_9574_ == 0)
{
v___x_9569_ = v___x_9530_;
v_isShared_9570_ = v_isSharedCheck_9574_;
goto v_resetjp_9568_;
}
else
{
lean_inc(v_a_9567_);
lean_dec(v___x_9530_);
v___x_9569_ = lean_box(0);
v_isShared_9570_ = v_isSharedCheck_9574_;
goto v_resetjp_9568_;
}
v_resetjp_9568_:
{
lean_object* v___x_9572_; 
if (v_isShared_9570_ == 0)
{
v___x_9572_ = v___x_9569_;
goto v_reusejp_9571_;
}
else
{
lean_object* v_reuseFailAlloc_9573_; 
v_reuseFailAlloc_9573_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9573_, 0, v_a_9567_);
v___x_9572_ = v_reuseFailAlloc_9573_;
goto v_reusejp_9571_;
}
v_reusejp_9571_:
{
return v___x_9572_;
}
}
}
}
else
{
lean_object* v___x_9575_; lean_object* v___x_9577_; 
lean_dec(v_a_9525_);
lean_dec(v_val_9523_);
lean_dec_ref(v_arg_9509_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
v___x_9575_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9528_ == 0)
{
lean_ctor_set(v___x_9527_, 0, v___x_9575_);
v___x_9577_ = v___x_9527_;
goto v_reusejp_9576_;
}
else
{
lean_object* v_reuseFailAlloc_9578_; 
v_reuseFailAlloc_9578_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9578_, 0, v___x_9575_);
v___x_9577_ = v_reuseFailAlloc_9578_;
goto v_reusejp_9576_;
}
v_reusejp_9576_:
{
return v___x_9577_;
}
}
}
}
else
{
lean_object* v_a_9580_; lean_object* v___x_9582_; uint8_t v_isShared_9583_; uint8_t v_isSharedCheck_9587_; 
lean_dec(v_val_9523_);
lean_dec_ref(v_arg_9509_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
v_a_9580_ = lean_ctor_get(v___x_9524_, 0);
v_isSharedCheck_9587_ = !lean_is_exclusive(v___x_9524_);
if (v_isSharedCheck_9587_ == 0)
{
v___x_9582_ = v___x_9524_;
v_isShared_9583_ = v_isSharedCheck_9587_;
goto v_resetjp_9581_;
}
else
{
lean_inc(v_a_9580_);
lean_dec(v___x_9524_);
v___x_9582_ = lean_box(0);
v_isShared_9583_ = v_isSharedCheck_9587_;
goto v_resetjp_9581_;
}
v_resetjp_9581_:
{
lean_object* v___x_9585_; 
if (v_isShared_9583_ == 0)
{
v___x_9585_ = v___x_9582_;
goto v_reusejp_9584_;
}
else
{
lean_object* v_reuseFailAlloc_9586_; 
v_reuseFailAlloc_9586_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9586_, 0, v_a_9580_);
v___x_9585_ = v_reuseFailAlloc_9586_;
goto v_reusejp_9584_;
}
v_reusejp_9584_:
{
return v___x_9585_;
}
}
}
}
else
{
lean_object* v___x_9588_; lean_object* v___x_9590_; 
lean_dec(v_a_9519_);
lean_dec_ref(v_arg_9512_);
lean_dec_ref(v_arg_9509_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
v___x_9588_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9522_ == 0)
{
lean_ctor_set(v___x_9521_, 0, v___x_9588_);
v___x_9590_ = v___x_9521_;
goto v_reusejp_9589_;
}
else
{
lean_object* v_reuseFailAlloc_9591_; 
v_reuseFailAlloc_9591_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9591_, 0, v___x_9588_);
v___x_9590_ = v_reuseFailAlloc_9591_;
goto v_reusejp_9589_;
}
v_reusejp_9589_:
{
return v___x_9590_;
}
}
}
}
else
{
lean_object* v_a_9593_; lean_object* v___x_9595_; uint8_t v_isShared_9596_; uint8_t v_isSharedCheck_9600_; 
lean_dec_ref(v_arg_9512_);
lean_dec_ref(v_arg_9509_);
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
v_a_9593_ = lean_ctor_get(v___x_9518_, 0);
v_isSharedCheck_9600_ = !lean_is_exclusive(v___x_9518_);
if (v_isSharedCheck_9600_ == 0)
{
v___x_9595_ = v___x_9518_;
v_isShared_9596_ = v_isSharedCheck_9600_;
goto v_resetjp_9594_;
}
else
{
lean_inc(v_a_9593_);
lean_dec(v___x_9518_);
v___x_9595_ = lean_box(0);
v_isShared_9596_ = v_isSharedCheck_9600_;
goto v_resetjp_9594_;
}
v_resetjp_9594_:
{
lean_object* v___x_9598_; 
if (v_isShared_9596_ == 0)
{
v___x_9598_ = v___x_9595_;
goto v_reusejp_9597_;
}
else
{
lean_object* v_reuseFailAlloc_9599_; 
v_reuseFailAlloc_9599_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9599_, 0, v_a_9593_);
v___x_9598_ = v_reuseFailAlloc_9599_;
goto v_reusejp_9597_;
}
v_reusejp_9597_:
{
return v___x_9598_;
}
}
}
}
}
}
}
}
v___jp_9499_:
{
lean_object* v___x_9500_; lean_object* v___x_9502_; 
v___x_9500_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9498_ == 0)
{
lean_ctor_set(v___x_9497_, 0, v___x_9500_);
v___x_9502_ = v___x_9497_;
goto v_reusejp_9501_;
}
else
{
lean_object* v_reuseFailAlloc_9503_; 
v_reuseFailAlloc_9503_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9503_, 0, v___x_9500_);
v___x_9502_ = v_reuseFailAlloc_9503_;
goto v_reusejp_9501_;
}
v_reusejp_9501_:
{
return v___x_9502_;
}
}
}
}
else
{
lean_object* v_a_9602_; lean_object* v___x_9604_; uint8_t v_isShared_9605_; uint8_t v_isSharedCheck_9609_; 
lean_dec(v_a_9492_);
lean_dec_ref(v_a_9491_);
lean_dec(v_a_9490_);
lean_dec_ref(v_a_9489_);
v_a_9602_ = lean_ctor_get(v___x_9494_, 0);
v_isSharedCheck_9609_ = !lean_is_exclusive(v___x_9494_);
if (v_isSharedCheck_9609_ == 0)
{
v___x_9604_ = v___x_9494_;
v_isShared_9605_ = v_isSharedCheck_9609_;
goto v_resetjp_9603_;
}
else
{
lean_inc(v_a_9602_);
lean_dec(v___x_9494_);
v___x_9604_ = lean_box(0);
v_isShared_9605_ = v_isSharedCheck_9609_;
goto v_resetjp_9603_;
}
v_resetjp_9603_:
{
lean_object* v___x_9607_; 
if (v_isShared_9605_ == 0)
{
v___x_9607_ = v___x_9604_;
goto v_reusejp_9606_;
}
else
{
lean_object* v_reuseFailAlloc_9608_; 
v_reuseFailAlloc_9608_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9608_, 0, v_a_9602_);
v___x_9607_ = v_reuseFailAlloc_9608_;
goto v_reusejp_9606_;
}
v_reusejp_9606_:
{
return v___x_9607_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___redArg___boxed(lean_object* v_e_9610_, lean_object* v_a_9611_, lean_object* v_a_9612_, lean_object* v_a_9613_, lean_object* v_a_9614_, lean_object* v_a_9615_, lean_object* v_a_9616_){
_start:
{
lean_object* v_res_9617_; 
v_res_9617_ = l_BitVec_reduceExtractLsb_x27___redArg(v_e_9610_, v_a_9611_, v_a_9612_, v_a_9613_, v_a_9614_, v_a_9615_);
lean_dec_ref(v_a_9611_);
return v_res_9617_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27(lean_object* v_e_9618_, lean_object* v_a_9619_, lean_object* v_a_9620_, lean_object* v_a_9621_, lean_object* v_a_9622_, lean_object* v_a_9623_, lean_object* v_a_9624_, lean_object* v_a_9625_){
_start:
{
lean_object* v___x_9627_; 
v___x_9627_ = l_BitVec_reduceExtractLsb_x27___redArg(v_e_9618_, v_a_9620_, v_a_9622_, v_a_9623_, v_a_9624_, v_a_9625_);
return v___x_9627_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___boxed(lean_object* v_e_9628_, lean_object* v_a_9629_, lean_object* v_a_9630_, lean_object* v_a_9631_, lean_object* v_a_9632_, lean_object* v_a_9633_, lean_object* v_a_9634_, lean_object* v_a_9635_, lean_object* v_a_9636_){
_start:
{
lean_object* v_res_9637_; 
v_res_9637_ = l_BitVec_reduceExtractLsb_x27(v_e_9628_, v_a_9629_, v_a_9630_, v_a_9631_, v_a_9632_, v_a_9633_, v_a_9634_, v_a_9635_);
lean_dec(v_a_9631_);
lean_dec_ref(v_a_9630_);
lean_dec(v_a_9629_);
return v_res_9637_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_(){
_start:
{
lean_object* v___x_9655_; lean_object* v___x_9656_; lean_object* v___x_9657_; lean_object* v___x_9658_; 
v___x_9655_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_));
v___x_9656_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_));
v___x_9657_ = lean_alloc_closure((void*)(l_BitVec_reduceExtractLsb_x27___boxed), 9, 0);
v___x_9658_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_9655_, v___x_9656_, v___x_9657_);
return v___x_9658_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15____boxed(lean_object* v_a_9659_){
_start:
{
lean_object* v_res_9660_; 
v_res_9660_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_();
return v_res_9660_;
}
}
static lean_object* _init_l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_(void){
_start:
{
lean_object* v___x_9661_; lean_object* v___x_9662_; 
v___x_9661_ = lean_alloc_closure((void*)(l_BitVec_reduceExtractLsb_x27___boxed), 9, 0);
v___x_9662_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_9662_, 0, v___x_9661_);
return v___x_9662_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_(){
_start:
{
lean_object* v___x_9664_; uint8_t v___x_9665_; lean_object* v___x_9666_; lean_object* v___x_9667_; 
v___x_9664_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_));
v___x_9665_ = 1;
v___x_9666_ = lean_obj_once(&l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_, &l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17__once, _init_l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_);
v___x_9667_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_9664_, v___x_9665_, v___x_9666_);
return v___x_9667_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17____boxed(lean_object* v_a_9668_){
_start:
{
lean_object* v_res_9669_; 
v_res_9669_ = l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_();
return v_res_9669_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_19_(){
_start:
{
lean_object* v___x_9671_; uint8_t v___x_9672_; lean_object* v___x_9673_; lean_object* v___x_9674_; 
v___x_9671_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_));
v___x_9672_ = 1;
v___x_9673_ = lean_obj_once(&l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_, &l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17__once, _init_l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_);
v___x_9674_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_9671_, v___x_9672_, v___x_9673_);
return v___x_9674_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_19____boxed(lean_object* v_a_9675_){
_start:
{
lean_object* v_res_9676_; 
v_res_9676_ = l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_19_();
return v_res_9676_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___redArg(lean_object* v_e_9681_, lean_object* v_a_9682_, lean_object* v_a_9683_, lean_object* v_a_9684_, lean_object* v_a_9685_, lean_object* v_a_9686_){
_start:
{
lean_object* v___x_9688_; 
v___x_9688_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_9681_, v_a_9684_);
if (lean_obj_tag(v___x_9688_) == 0)
{
lean_object* v_a_9689_; lean_object* v___x_9691_; uint8_t v_isShared_9692_; uint8_t v_isSharedCheck_9775_; 
v_a_9689_ = lean_ctor_get(v___x_9688_, 0);
v_isSharedCheck_9775_ = !lean_is_exclusive(v___x_9688_);
if (v_isSharedCheck_9775_ == 0)
{
v___x_9691_ = v___x_9688_;
v_isShared_9692_ = v_isSharedCheck_9775_;
goto v_resetjp_9690_;
}
else
{
lean_inc(v_a_9689_);
lean_dec(v___x_9688_);
v___x_9691_ = lean_box(0);
v_isShared_9692_ = v_isSharedCheck_9775_;
goto v_resetjp_9690_;
}
v_resetjp_9690_:
{
lean_object* v___x_9698_; uint8_t v___x_9699_; 
v___x_9698_ = l_Lean_Expr_cleanupAnnotations(v_a_9689_);
v___x_9699_ = l_Lean_Expr_isApp(v___x_9698_);
if (v___x_9699_ == 0)
{
lean_dec_ref(v___x_9698_);
lean_dec(v_a_9686_);
lean_dec_ref(v_a_9685_);
lean_dec(v_a_9684_);
lean_dec_ref(v_a_9683_);
goto v___jp_9693_;
}
else
{
lean_object* v_arg_9700_; lean_object* v___x_9701_; uint8_t v___x_9702_; 
v_arg_9700_ = lean_ctor_get(v___x_9698_, 1);
lean_inc_ref(v_arg_9700_);
v___x_9701_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9698_);
v___x_9702_ = l_Lean_Expr_isApp(v___x_9701_);
if (v___x_9702_ == 0)
{
lean_dec_ref(v___x_9701_);
lean_dec_ref(v_arg_9700_);
lean_dec(v_a_9686_);
lean_dec_ref(v_a_9685_);
lean_dec(v_a_9684_);
lean_dec_ref(v_a_9683_);
goto v___jp_9693_;
}
else
{
lean_object* v_arg_9703_; lean_object* v___x_9704_; uint8_t v___x_9705_; 
v_arg_9703_ = lean_ctor_get(v___x_9701_, 1);
lean_inc_ref(v_arg_9703_);
v___x_9704_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9701_);
v___x_9705_ = l_Lean_Expr_isApp(v___x_9704_);
if (v___x_9705_ == 0)
{
lean_dec_ref(v___x_9704_);
lean_dec_ref(v_arg_9703_);
lean_dec_ref(v_arg_9700_);
lean_dec(v_a_9686_);
lean_dec_ref(v_a_9685_);
lean_dec(v_a_9684_);
lean_dec_ref(v_a_9683_);
goto v___jp_9693_;
}
else
{
lean_object* v___x_9706_; lean_object* v___x_9707_; uint8_t v___x_9708_; 
v___x_9706_ = l_Lean_Expr_appFnCleanup___redArg(v___x_9704_);
v___x_9707_ = ((lean_object*)(l_BitVec_reduceReplicate___redArg___closed__1));
v___x_9708_ = l_Lean_Expr_isConstOf(v___x_9706_, v___x_9707_);
lean_dec_ref(v___x_9706_);
if (v___x_9708_ == 0)
{
lean_dec_ref(v_arg_9703_);
lean_dec_ref(v_arg_9700_);
lean_dec(v_a_9686_);
lean_dec_ref(v_a_9685_);
lean_dec(v_a_9684_);
lean_dec_ref(v_a_9683_);
goto v___jp_9693_;
}
else
{
lean_object* v___x_9709_; 
lean_del_object(v___x_9691_);
lean_inc(v_a_9686_);
lean_inc_ref(v_a_9685_);
lean_inc(v_a_9684_);
lean_inc_ref(v_a_9683_);
v___x_9709_ = l_BitVec_fromExpr_x3f___redArg(v_arg_9700_, v_a_9683_, v_a_9684_, v_a_9685_, v_a_9686_);
if (lean_obj_tag(v___x_9709_) == 0)
{
lean_object* v_a_9710_; lean_object* v___x_9712_; uint8_t v_isShared_9713_; uint8_t v_isSharedCheck_9766_; 
v_a_9710_ = lean_ctor_get(v___x_9709_, 0);
v_isSharedCheck_9766_ = !lean_is_exclusive(v___x_9709_);
if (v_isSharedCheck_9766_ == 0)
{
v___x_9712_ = v___x_9709_;
v_isShared_9713_ = v_isSharedCheck_9766_;
goto v_resetjp_9711_;
}
else
{
lean_inc(v_a_9710_);
lean_dec(v___x_9709_);
v___x_9712_ = lean_box(0);
v_isShared_9713_ = v_isSharedCheck_9766_;
goto v_resetjp_9711_;
}
v_resetjp_9711_:
{
if (lean_obj_tag(v_a_9710_) == 1)
{
lean_object* v_val_9714_; lean_object* v___x_9715_; 
lean_del_object(v___x_9712_);
v_val_9714_ = lean_ctor_get(v_a_9710_, 0);
lean_inc(v_val_9714_);
lean_dec_ref(v_a_9710_);
lean_inc(v_a_9686_);
lean_inc_ref(v_a_9685_);
lean_inc(v_a_9684_);
lean_inc_ref(v_a_9683_);
v___x_9715_ = l_Lean_Meta_getNatValue_x3f(v_arg_9703_, v_a_9683_, v_a_9684_, v_a_9685_, v_a_9686_);
lean_dec_ref(v_arg_9703_);
if (lean_obj_tag(v___x_9715_) == 0)
{
lean_object* v_a_9716_; lean_object* v___x_9718_; uint8_t v_isShared_9719_; uint8_t v_isSharedCheck_9753_; 
v_a_9716_ = lean_ctor_get(v___x_9715_, 0);
v_isSharedCheck_9753_ = !lean_is_exclusive(v___x_9715_);
if (v_isSharedCheck_9753_ == 0)
{
v___x_9718_ = v___x_9715_;
v_isShared_9719_ = v_isSharedCheck_9753_;
goto v_resetjp_9717_;
}
else
{
lean_inc(v_a_9716_);
lean_dec(v___x_9715_);
v___x_9718_ = lean_box(0);
v_isShared_9719_ = v_isSharedCheck_9753_;
goto v_resetjp_9717_;
}
v_resetjp_9717_:
{
if (lean_obj_tag(v_a_9716_) == 1)
{
lean_object* v_val_9720_; lean_object* v___x_9722_; uint8_t v_isShared_9723_; uint8_t v_isSharedCheck_9748_; 
lean_del_object(v___x_9718_);
v_val_9720_ = lean_ctor_get(v_a_9716_, 0);
v_isSharedCheck_9748_ = !lean_is_exclusive(v_a_9716_);
if (v_isSharedCheck_9748_ == 0)
{
v___x_9722_ = v_a_9716_;
v_isShared_9723_ = v_isSharedCheck_9748_;
goto v_resetjp_9721_;
}
else
{
lean_inc(v_val_9720_);
lean_dec(v_a_9716_);
v___x_9722_ = lean_box(0);
v_isShared_9723_ = v_isSharedCheck_9748_;
goto v_resetjp_9721_;
}
v_resetjp_9721_:
{
lean_object* v_n_9724_; lean_object* v_value_9725_; lean_object* v___x_9726_; lean_object* v___x_9727_; lean_object* v___x_9728_; 
v_n_9724_ = lean_ctor_get(v_val_9714_, 0);
lean_inc(v_n_9724_);
v_value_9725_ = lean_ctor_get(v_val_9714_, 1);
lean_inc(v_value_9725_);
lean_dec(v_val_9714_);
v___x_9726_ = lean_nat_mul(v_n_9724_, v_val_9720_);
v___x_9727_ = l_BitVec_replicate(v_n_9724_, v_val_9720_, v_value_9725_);
lean_dec(v_value_9725_);
lean_dec(v_val_9720_);
lean_dec(v_n_9724_);
v___x_9728_ = l_BitVec_toExpr_x27___redArg(v___x_9726_, v___x_9727_, v_a_9682_, v_a_9683_, v_a_9684_, v_a_9685_, v_a_9686_);
if (lean_obj_tag(v___x_9728_) == 0)
{
lean_object* v_a_9729_; lean_object* v___x_9731_; uint8_t v_isShared_9732_; uint8_t v_isSharedCheck_9739_; 
v_a_9729_ = lean_ctor_get(v___x_9728_, 0);
v_isSharedCheck_9739_ = !lean_is_exclusive(v___x_9728_);
if (v_isSharedCheck_9739_ == 0)
{
v___x_9731_ = v___x_9728_;
v_isShared_9732_ = v_isSharedCheck_9739_;
goto v_resetjp_9730_;
}
else
{
lean_inc(v_a_9729_);
lean_dec(v___x_9728_);
v___x_9731_ = lean_box(0);
v_isShared_9732_ = v_isSharedCheck_9739_;
goto v_resetjp_9730_;
}
v_resetjp_9730_:
{
lean_object* v___x_9734_; 
if (v_isShared_9723_ == 0)
{
lean_ctor_set_tag(v___x_9722_, 0);
lean_ctor_set(v___x_9722_, 0, v_a_9729_);
v___x_9734_ = v___x_9722_;
goto v_reusejp_9733_;
}
else
{
lean_object* v_reuseFailAlloc_9738_; 
v_reuseFailAlloc_9738_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9738_, 0, v_a_9729_);
v___x_9734_ = v_reuseFailAlloc_9738_;
goto v_reusejp_9733_;
}
v_reusejp_9733_:
{
lean_object* v___x_9736_; 
if (v_isShared_9732_ == 0)
{
lean_ctor_set(v___x_9731_, 0, v___x_9734_);
v___x_9736_ = v___x_9731_;
goto v_reusejp_9735_;
}
else
{
lean_object* v_reuseFailAlloc_9737_; 
v_reuseFailAlloc_9737_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9737_, 0, v___x_9734_);
v___x_9736_ = v_reuseFailAlloc_9737_;
goto v_reusejp_9735_;
}
v_reusejp_9735_:
{
return v___x_9736_;
}
}
}
}
else
{
lean_object* v_a_9740_; lean_object* v___x_9742_; uint8_t v_isShared_9743_; uint8_t v_isSharedCheck_9747_; 
lean_del_object(v___x_9722_);
v_a_9740_ = lean_ctor_get(v___x_9728_, 0);
v_isSharedCheck_9747_ = !lean_is_exclusive(v___x_9728_);
if (v_isSharedCheck_9747_ == 0)
{
v___x_9742_ = v___x_9728_;
v_isShared_9743_ = v_isSharedCheck_9747_;
goto v_resetjp_9741_;
}
else
{
lean_inc(v_a_9740_);
lean_dec(v___x_9728_);
v___x_9742_ = lean_box(0);
v_isShared_9743_ = v_isSharedCheck_9747_;
goto v_resetjp_9741_;
}
v_resetjp_9741_:
{
lean_object* v___x_9745_; 
if (v_isShared_9743_ == 0)
{
v___x_9745_ = v___x_9742_;
goto v_reusejp_9744_;
}
else
{
lean_object* v_reuseFailAlloc_9746_; 
v_reuseFailAlloc_9746_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9746_, 0, v_a_9740_);
v___x_9745_ = v_reuseFailAlloc_9746_;
goto v_reusejp_9744_;
}
v_reusejp_9744_:
{
return v___x_9745_;
}
}
}
}
}
else
{
lean_object* v___x_9749_; lean_object* v___x_9751_; 
lean_dec(v_a_9716_);
lean_dec(v_val_9714_);
lean_dec(v_a_9686_);
lean_dec_ref(v_a_9685_);
lean_dec(v_a_9684_);
lean_dec_ref(v_a_9683_);
v___x_9749_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9719_ == 0)
{
lean_ctor_set(v___x_9718_, 0, v___x_9749_);
v___x_9751_ = v___x_9718_;
goto v_reusejp_9750_;
}
else
{
lean_object* v_reuseFailAlloc_9752_; 
v_reuseFailAlloc_9752_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9752_, 0, v___x_9749_);
v___x_9751_ = v_reuseFailAlloc_9752_;
goto v_reusejp_9750_;
}
v_reusejp_9750_:
{
return v___x_9751_;
}
}
}
}
else
{
lean_object* v_a_9754_; lean_object* v___x_9756_; uint8_t v_isShared_9757_; uint8_t v_isSharedCheck_9761_; 
lean_dec(v_val_9714_);
lean_dec(v_a_9686_);
lean_dec_ref(v_a_9685_);
lean_dec(v_a_9684_);
lean_dec_ref(v_a_9683_);
v_a_9754_ = lean_ctor_get(v___x_9715_, 0);
v_isSharedCheck_9761_ = !lean_is_exclusive(v___x_9715_);
if (v_isSharedCheck_9761_ == 0)
{
v___x_9756_ = v___x_9715_;
v_isShared_9757_ = v_isSharedCheck_9761_;
goto v_resetjp_9755_;
}
else
{
lean_inc(v_a_9754_);
lean_dec(v___x_9715_);
v___x_9756_ = lean_box(0);
v_isShared_9757_ = v_isSharedCheck_9761_;
goto v_resetjp_9755_;
}
v_resetjp_9755_:
{
lean_object* v___x_9759_; 
if (v_isShared_9757_ == 0)
{
v___x_9759_ = v___x_9756_;
goto v_reusejp_9758_;
}
else
{
lean_object* v_reuseFailAlloc_9760_; 
v_reuseFailAlloc_9760_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9760_, 0, v_a_9754_);
v___x_9759_ = v_reuseFailAlloc_9760_;
goto v_reusejp_9758_;
}
v_reusejp_9758_:
{
return v___x_9759_;
}
}
}
}
else
{
lean_object* v___x_9762_; lean_object* v___x_9764_; 
lean_dec(v_a_9710_);
lean_dec_ref(v_arg_9703_);
lean_dec(v_a_9686_);
lean_dec_ref(v_a_9685_);
lean_dec(v_a_9684_);
lean_dec_ref(v_a_9683_);
v___x_9762_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9713_ == 0)
{
lean_ctor_set(v___x_9712_, 0, v___x_9762_);
v___x_9764_ = v___x_9712_;
goto v_reusejp_9763_;
}
else
{
lean_object* v_reuseFailAlloc_9765_; 
v_reuseFailAlloc_9765_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9765_, 0, v___x_9762_);
v___x_9764_ = v_reuseFailAlloc_9765_;
goto v_reusejp_9763_;
}
v_reusejp_9763_:
{
return v___x_9764_;
}
}
}
}
else
{
lean_object* v_a_9767_; lean_object* v___x_9769_; uint8_t v_isShared_9770_; uint8_t v_isSharedCheck_9774_; 
lean_dec_ref(v_arg_9703_);
lean_dec(v_a_9686_);
lean_dec_ref(v_a_9685_);
lean_dec(v_a_9684_);
lean_dec_ref(v_a_9683_);
v_a_9767_ = lean_ctor_get(v___x_9709_, 0);
v_isSharedCheck_9774_ = !lean_is_exclusive(v___x_9709_);
if (v_isSharedCheck_9774_ == 0)
{
v___x_9769_ = v___x_9709_;
v_isShared_9770_ = v_isSharedCheck_9774_;
goto v_resetjp_9768_;
}
else
{
lean_inc(v_a_9767_);
lean_dec(v___x_9709_);
v___x_9769_ = lean_box(0);
v_isShared_9770_ = v_isSharedCheck_9774_;
goto v_resetjp_9768_;
}
v_resetjp_9768_:
{
lean_object* v___x_9772_; 
if (v_isShared_9770_ == 0)
{
v___x_9772_ = v___x_9769_;
goto v_reusejp_9771_;
}
else
{
lean_object* v_reuseFailAlloc_9773_; 
v_reuseFailAlloc_9773_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9773_, 0, v_a_9767_);
v___x_9772_ = v_reuseFailAlloc_9773_;
goto v_reusejp_9771_;
}
v_reusejp_9771_:
{
return v___x_9772_;
}
}
}
}
}
}
}
v___jp_9693_:
{
lean_object* v___x_9694_; lean_object* v___x_9696_; 
v___x_9694_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9692_ == 0)
{
lean_ctor_set(v___x_9691_, 0, v___x_9694_);
v___x_9696_ = v___x_9691_;
goto v_reusejp_9695_;
}
else
{
lean_object* v_reuseFailAlloc_9697_; 
v_reuseFailAlloc_9697_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9697_, 0, v___x_9694_);
v___x_9696_ = v_reuseFailAlloc_9697_;
goto v_reusejp_9695_;
}
v_reusejp_9695_:
{
return v___x_9696_;
}
}
}
}
else
{
lean_object* v_a_9776_; lean_object* v___x_9778_; uint8_t v_isShared_9779_; uint8_t v_isSharedCheck_9783_; 
lean_dec(v_a_9686_);
lean_dec_ref(v_a_9685_);
lean_dec(v_a_9684_);
lean_dec_ref(v_a_9683_);
v_a_9776_ = lean_ctor_get(v___x_9688_, 0);
v_isSharedCheck_9783_ = !lean_is_exclusive(v___x_9688_);
if (v_isSharedCheck_9783_ == 0)
{
v___x_9778_ = v___x_9688_;
v_isShared_9779_ = v_isSharedCheck_9783_;
goto v_resetjp_9777_;
}
else
{
lean_inc(v_a_9776_);
lean_dec(v___x_9688_);
v___x_9778_ = lean_box(0);
v_isShared_9779_ = v_isSharedCheck_9783_;
goto v_resetjp_9777_;
}
v_resetjp_9777_:
{
lean_object* v___x_9781_; 
if (v_isShared_9779_ == 0)
{
v___x_9781_ = v___x_9778_;
goto v_reusejp_9780_;
}
else
{
lean_object* v_reuseFailAlloc_9782_; 
v_reuseFailAlloc_9782_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9782_, 0, v_a_9776_);
v___x_9781_ = v_reuseFailAlloc_9782_;
goto v_reusejp_9780_;
}
v_reusejp_9780_:
{
return v___x_9781_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___redArg___boxed(lean_object* v_e_9784_, lean_object* v_a_9785_, lean_object* v_a_9786_, lean_object* v_a_9787_, lean_object* v_a_9788_, lean_object* v_a_9789_, lean_object* v_a_9790_){
_start:
{
lean_object* v_res_9791_; 
v_res_9791_ = l_BitVec_reduceReplicate___redArg(v_e_9784_, v_a_9785_, v_a_9786_, v_a_9787_, v_a_9788_, v_a_9789_);
lean_dec_ref(v_a_9785_);
return v_res_9791_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate(lean_object* v_e_9792_, lean_object* v_a_9793_, lean_object* v_a_9794_, lean_object* v_a_9795_, lean_object* v_a_9796_, lean_object* v_a_9797_, lean_object* v_a_9798_, lean_object* v_a_9799_){
_start:
{
lean_object* v___x_9801_; 
v___x_9801_ = l_BitVec_reduceReplicate___redArg(v_e_9792_, v_a_9794_, v_a_9796_, v_a_9797_, v_a_9798_, v_a_9799_);
return v___x_9801_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___boxed(lean_object* v_e_9802_, lean_object* v_a_9803_, lean_object* v_a_9804_, lean_object* v_a_9805_, lean_object* v_a_9806_, lean_object* v_a_9807_, lean_object* v_a_9808_, lean_object* v_a_9809_, lean_object* v_a_9810_){
_start:
{
lean_object* v_res_9811_; 
v_res_9811_ = l_BitVec_reduceReplicate(v_e_9802_, v_a_9803_, v_a_9804_, v_a_9805_, v_a_9806_, v_a_9807_, v_a_9808_, v_a_9809_);
lean_dec(v_a_9805_);
lean_dec_ref(v_a_9804_);
lean_dec(v_a_9803_);
return v_res_9811_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_9828_; lean_object* v___x_9829_; lean_object* v___x_9830_; lean_object* v___x_9831_; 
v___x_9828_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_));
v___x_9829_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_));
v___x_9830_ = lean_alloc_closure((void*)(l_BitVec_reduceReplicate___boxed), 9, 0);
v___x_9831_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_9828_, v___x_9829_, v___x_9830_);
return v___x_9831_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14____boxed(lean_object* v_a_9832_){
_start:
{
lean_object* v_res_9833_; 
v_res_9833_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_();
return v_res_9833_;
}
}
static lean_object* _init_l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_9834_; lean_object* v___x_9835_; 
v___x_9834_ = lean_alloc_closure((void*)(l_BitVec_reduceReplicate___boxed), 9, 0);
v___x_9835_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_9835_, 0, v___x_9834_);
return v___x_9835_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_9837_; uint8_t v___x_9838_; lean_object* v___x_9839_; lean_object* v___x_9840_; 
v___x_9837_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_));
v___x_9838_ = 1;
v___x_9839_ = lean_obj_once(&l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_, &l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16__once, _init_l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_);
v___x_9840_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_9837_, v___x_9838_, v___x_9839_);
return v___x_9840_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16____boxed(lean_object* v_a_9841_){
_start:
{
lean_object* v_res_9842_; 
v_res_9842_ = l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_();
return v_res_9842_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_9844_; uint8_t v___x_9845_; lean_object* v___x_9846_; lean_object* v___x_9847_; 
v___x_9844_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_));
v___x_9845_ = 1;
v___x_9846_ = lean_obj_once(&l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_, &l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16__once, _init_l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_);
v___x_9847_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_9844_, v___x_9845_, v___x_9846_);
return v___x_9847_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_18____boxed(lean_object* v_a_9848_){
_start:
{
lean_object* v_res_9849_; 
v_res_9849_ = l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_18_();
return v_res_9849_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___redArg(lean_object* v_e_9854_, lean_object* v_a_9855_, lean_object* v_a_9856_, lean_object* v_a_9857_, lean_object* v_a_9858_, lean_object* v_a_9859_){
_start:
{
lean_object* v___x_9861_; lean_object* v___x_9862_; uint8_t v___x_9863_; 
v___x_9861_ = ((lean_object*)(l_BitVec_reduceSetWidth___redArg___closed__1));
v___x_9862_ = lean_unsigned_to_nat(3u);
v___x_9863_ = l_Lean_Expr_isAppOfArity(v_e_9854_, v___x_9861_, v___x_9862_);
if (v___x_9863_ == 0)
{
lean_object* v___x_9864_; lean_object* v___x_9865_; 
lean_dec(v_a_9859_);
lean_dec_ref(v_a_9858_);
lean_dec(v_a_9857_);
lean_dec_ref(v_a_9856_);
v___x_9864_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_9865_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_9865_, 0, v___x_9864_);
return v___x_9865_;
}
else
{
lean_object* v___x_9866_; lean_object* v___x_9867_; 
v___x_9866_ = l_Lean_Expr_appArg_x21(v_e_9854_);
lean_inc(v_a_9859_);
lean_inc_ref(v_a_9858_);
lean_inc(v_a_9857_);
lean_inc_ref(v_a_9856_);
v___x_9867_ = l_BitVec_fromExpr_x3f___redArg(v___x_9866_, v_a_9856_, v_a_9857_, v_a_9858_, v_a_9859_);
if (lean_obj_tag(v___x_9867_) == 0)
{
lean_object* v_a_9868_; lean_object* v___x_9870_; uint8_t v_isShared_9871_; uint8_t v_isSharedCheck_9925_; 
v_a_9868_ = lean_ctor_get(v___x_9867_, 0);
v_isSharedCheck_9925_ = !lean_is_exclusive(v___x_9867_);
if (v_isSharedCheck_9925_ == 0)
{
v___x_9870_ = v___x_9867_;
v_isShared_9871_ = v_isSharedCheck_9925_;
goto v_resetjp_9869_;
}
else
{
lean_inc(v_a_9868_);
lean_dec(v___x_9867_);
v___x_9870_ = lean_box(0);
v_isShared_9871_ = v_isSharedCheck_9925_;
goto v_resetjp_9869_;
}
v_resetjp_9869_:
{
if (lean_obj_tag(v_a_9868_) == 1)
{
lean_object* v_val_9872_; lean_object* v___x_9873_; lean_object* v___x_9874_; lean_object* v___x_9875_; 
lean_del_object(v___x_9870_);
v_val_9872_ = lean_ctor_get(v_a_9868_, 0);
lean_inc(v_val_9872_);
lean_dec_ref(v_a_9868_);
v___x_9873_ = l_Lean_Expr_appFn_x21(v_e_9854_);
v___x_9874_ = l_Lean_Expr_appArg_x21(v___x_9873_);
lean_dec_ref(v___x_9873_);
lean_inc(v_a_9859_);
lean_inc_ref(v_a_9858_);
lean_inc(v_a_9857_);
lean_inc_ref(v_a_9856_);
v___x_9875_ = l_Lean_Meta_getNatValue_x3f(v___x_9874_, v_a_9856_, v_a_9857_, v_a_9858_, v_a_9859_);
lean_dec_ref(v___x_9874_);
if (lean_obj_tag(v___x_9875_) == 0)
{
lean_object* v_a_9876_; lean_object* v___x_9878_; uint8_t v_isShared_9879_; uint8_t v_isSharedCheck_9912_; 
v_a_9876_ = lean_ctor_get(v___x_9875_, 0);
v_isSharedCheck_9912_ = !lean_is_exclusive(v___x_9875_);
if (v_isSharedCheck_9912_ == 0)
{
v___x_9878_ = v___x_9875_;
v_isShared_9879_ = v_isSharedCheck_9912_;
goto v_resetjp_9877_;
}
else
{
lean_inc(v_a_9876_);
lean_dec(v___x_9875_);
v___x_9878_ = lean_box(0);
v_isShared_9879_ = v_isSharedCheck_9912_;
goto v_resetjp_9877_;
}
v_resetjp_9877_:
{
if (lean_obj_tag(v_a_9876_) == 1)
{
lean_object* v_val_9880_; lean_object* v___x_9882_; uint8_t v_isShared_9883_; uint8_t v_isSharedCheck_9907_; 
lean_del_object(v___x_9878_);
v_val_9880_ = lean_ctor_get(v_a_9876_, 0);
v_isSharedCheck_9907_ = !lean_is_exclusive(v_a_9876_);
if (v_isSharedCheck_9907_ == 0)
{
v___x_9882_ = v_a_9876_;
v_isShared_9883_ = v_isSharedCheck_9907_;
goto v_resetjp_9881_;
}
else
{
lean_inc(v_val_9880_);
lean_dec(v_a_9876_);
v___x_9882_ = lean_box(0);
v_isShared_9883_ = v_isSharedCheck_9907_;
goto v_resetjp_9881_;
}
v_resetjp_9881_:
{
lean_object* v_n_9884_; lean_object* v_value_9885_; lean_object* v___x_9886_; lean_object* v___x_9887_; 
v_n_9884_ = lean_ctor_get(v_val_9872_, 0);
lean_inc(v_n_9884_);
v_value_9885_ = lean_ctor_get(v_val_9872_, 1);
lean_inc(v_value_9885_);
lean_dec(v_val_9872_);
v___x_9886_ = l_BitVec_setWidth(v_n_9884_, v_val_9880_, v_value_9885_);
lean_dec(v_value_9885_);
lean_dec(v_n_9884_);
v___x_9887_ = l_BitVec_toExpr_x27___redArg(v_val_9880_, v___x_9886_, v_a_9855_, v_a_9856_, v_a_9857_, v_a_9858_, v_a_9859_);
if (lean_obj_tag(v___x_9887_) == 0)
{
lean_object* v_a_9888_; lean_object* v___x_9890_; uint8_t v_isShared_9891_; uint8_t v_isSharedCheck_9898_; 
v_a_9888_ = lean_ctor_get(v___x_9887_, 0);
v_isSharedCheck_9898_ = !lean_is_exclusive(v___x_9887_);
if (v_isSharedCheck_9898_ == 0)
{
v___x_9890_ = v___x_9887_;
v_isShared_9891_ = v_isSharedCheck_9898_;
goto v_resetjp_9889_;
}
else
{
lean_inc(v_a_9888_);
lean_dec(v___x_9887_);
v___x_9890_ = lean_box(0);
v_isShared_9891_ = v_isSharedCheck_9898_;
goto v_resetjp_9889_;
}
v_resetjp_9889_:
{
lean_object* v___x_9893_; 
if (v_isShared_9883_ == 0)
{
lean_ctor_set_tag(v___x_9882_, 0);
lean_ctor_set(v___x_9882_, 0, v_a_9888_);
v___x_9893_ = v___x_9882_;
goto v_reusejp_9892_;
}
else
{
lean_object* v_reuseFailAlloc_9897_; 
v_reuseFailAlloc_9897_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9897_, 0, v_a_9888_);
v___x_9893_ = v_reuseFailAlloc_9897_;
goto v_reusejp_9892_;
}
v_reusejp_9892_:
{
lean_object* v___x_9895_; 
if (v_isShared_9891_ == 0)
{
lean_ctor_set(v___x_9890_, 0, v___x_9893_);
v___x_9895_ = v___x_9890_;
goto v_reusejp_9894_;
}
else
{
lean_object* v_reuseFailAlloc_9896_; 
v_reuseFailAlloc_9896_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9896_, 0, v___x_9893_);
v___x_9895_ = v_reuseFailAlloc_9896_;
goto v_reusejp_9894_;
}
v_reusejp_9894_:
{
return v___x_9895_;
}
}
}
}
else
{
lean_object* v_a_9899_; lean_object* v___x_9901_; uint8_t v_isShared_9902_; uint8_t v_isSharedCheck_9906_; 
lean_del_object(v___x_9882_);
v_a_9899_ = lean_ctor_get(v___x_9887_, 0);
v_isSharedCheck_9906_ = !lean_is_exclusive(v___x_9887_);
if (v_isSharedCheck_9906_ == 0)
{
v___x_9901_ = v___x_9887_;
v_isShared_9902_ = v_isSharedCheck_9906_;
goto v_resetjp_9900_;
}
else
{
lean_inc(v_a_9899_);
lean_dec(v___x_9887_);
v___x_9901_ = lean_box(0);
v_isShared_9902_ = v_isSharedCheck_9906_;
goto v_resetjp_9900_;
}
v_resetjp_9900_:
{
lean_object* v___x_9904_; 
if (v_isShared_9902_ == 0)
{
v___x_9904_ = v___x_9901_;
goto v_reusejp_9903_;
}
else
{
lean_object* v_reuseFailAlloc_9905_; 
v_reuseFailAlloc_9905_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9905_, 0, v_a_9899_);
v___x_9904_ = v_reuseFailAlloc_9905_;
goto v_reusejp_9903_;
}
v_reusejp_9903_:
{
return v___x_9904_;
}
}
}
}
}
else
{
lean_object* v___x_9908_; lean_object* v___x_9910_; 
lean_dec(v_a_9876_);
lean_dec(v_val_9872_);
lean_dec(v_a_9859_);
lean_dec_ref(v_a_9858_);
lean_dec(v_a_9857_);
lean_dec_ref(v_a_9856_);
v___x_9908_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9879_ == 0)
{
lean_ctor_set(v___x_9878_, 0, v___x_9908_);
v___x_9910_ = v___x_9878_;
goto v_reusejp_9909_;
}
else
{
lean_object* v_reuseFailAlloc_9911_; 
v_reuseFailAlloc_9911_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9911_, 0, v___x_9908_);
v___x_9910_ = v_reuseFailAlloc_9911_;
goto v_reusejp_9909_;
}
v_reusejp_9909_:
{
return v___x_9910_;
}
}
}
}
else
{
lean_object* v_a_9913_; lean_object* v___x_9915_; uint8_t v_isShared_9916_; uint8_t v_isSharedCheck_9920_; 
lean_dec(v_val_9872_);
lean_dec(v_a_9859_);
lean_dec_ref(v_a_9858_);
lean_dec(v_a_9857_);
lean_dec_ref(v_a_9856_);
v_a_9913_ = lean_ctor_get(v___x_9875_, 0);
v_isSharedCheck_9920_ = !lean_is_exclusive(v___x_9875_);
if (v_isSharedCheck_9920_ == 0)
{
v___x_9915_ = v___x_9875_;
v_isShared_9916_ = v_isSharedCheck_9920_;
goto v_resetjp_9914_;
}
else
{
lean_inc(v_a_9913_);
lean_dec(v___x_9875_);
v___x_9915_ = lean_box(0);
v_isShared_9916_ = v_isSharedCheck_9920_;
goto v_resetjp_9914_;
}
v_resetjp_9914_:
{
lean_object* v___x_9918_; 
if (v_isShared_9916_ == 0)
{
v___x_9918_ = v___x_9915_;
goto v_reusejp_9917_;
}
else
{
lean_object* v_reuseFailAlloc_9919_; 
v_reuseFailAlloc_9919_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9919_, 0, v_a_9913_);
v___x_9918_ = v_reuseFailAlloc_9919_;
goto v_reusejp_9917_;
}
v_reusejp_9917_:
{
return v___x_9918_;
}
}
}
}
else
{
lean_object* v___x_9921_; lean_object* v___x_9923_; 
lean_dec(v_a_9868_);
lean_dec(v_a_9859_);
lean_dec_ref(v_a_9858_);
lean_dec(v_a_9857_);
lean_dec_ref(v_a_9856_);
v___x_9921_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_9871_ == 0)
{
lean_ctor_set(v___x_9870_, 0, v___x_9921_);
v___x_9923_ = v___x_9870_;
goto v_reusejp_9922_;
}
else
{
lean_object* v_reuseFailAlloc_9924_; 
v_reuseFailAlloc_9924_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9924_, 0, v___x_9921_);
v___x_9923_ = v_reuseFailAlloc_9924_;
goto v_reusejp_9922_;
}
v_reusejp_9922_:
{
return v___x_9923_;
}
}
}
}
else
{
lean_object* v_a_9926_; lean_object* v___x_9928_; uint8_t v_isShared_9929_; uint8_t v_isSharedCheck_9933_; 
lean_dec(v_a_9859_);
lean_dec_ref(v_a_9858_);
lean_dec(v_a_9857_);
lean_dec_ref(v_a_9856_);
v_a_9926_ = lean_ctor_get(v___x_9867_, 0);
v_isSharedCheck_9933_ = !lean_is_exclusive(v___x_9867_);
if (v_isSharedCheck_9933_ == 0)
{
v___x_9928_ = v___x_9867_;
v_isShared_9929_ = v_isSharedCheck_9933_;
goto v_resetjp_9927_;
}
else
{
lean_inc(v_a_9926_);
lean_dec(v___x_9867_);
v___x_9928_ = lean_box(0);
v_isShared_9929_ = v_isSharedCheck_9933_;
goto v_resetjp_9927_;
}
v_resetjp_9927_:
{
lean_object* v___x_9931_; 
if (v_isShared_9929_ == 0)
{
v___x_9931_ = v___x_9928_;
goto v_reusejp_9930_;
}
else
{
lean_object* v_reuseFailAlloc_9932_; 
v_reuseFailAlloc_9932_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_9932_, 0, v_a_9926_);
v___x_9931_ = v_reuseFailAlloc_9932_;
goto v_reusejp_9930_;
}
v_reusejp_9930_:
{
return v___x_9931_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___redArg___boxed(lean_object* v_e_9934_, lean_object* v_a_9935_, lean_object* v_a_9936_, lean_object* v_a_9937_, lean_object* v_a_9938_, lean_object* v_a_9939_, lean_object* v_a_9940_){
_start:
{
lean_object* v_res_9941_; 
v_res_9941_ = l_BitVec_reduceSetWidth___redArg(v_e_9934_, v_a_9935_, v_a_9936_, v_a_9937_, v_a_9938_, v_a_9939_);
lean_dec_ref(v_a_9935_);
lean_dec_ref(v_e_9934_);
return v_res_9941_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth(lean_object* v_e_9942_, lean_object* v_a_9943_, lean_object* v_a_9944_, lean_object* v_a_9945_, lean_object* v_a_9946_, lean_object* v_a_9947_, lean_object* v_a_9948_, lean_object* v_a_9949_){
_start:
{
lean_object* v___x_9951_; 
v___x_9951_ = l_BitVec_reduceSetWidth___redArg(v_e_9942_, v_a_9944_, v_a_9946_, v_a_9947_, v_a_9948_, v_a_9949_);
return v___x_9951_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___boxed(lean_object* v_e_9952_, lean_object* v_a_9953_, lean_object* v_a_9954_, lean_object* v_a_9955_, lean_object* v_a_9956_, lean_object* v_a_9957_, lean_object* v_a_9958_, lean_object* v_a_9959_, lean_object* v_a_9960_){
_start:
{
lean_object* v_res_9961_; 
v_res_9961_ = l_BitVec_reduceSetWidth(v_e_9952_, v_a_9953_, v_a_9954_, v_a_9955_, v_a_9956_, v_a_9957_, v_a_9958_, v_a_9959_);
lean_dec(v_a_9955_);
lean_dec_ref(v_a_9954_);
lean_dec(v_a_9953_);
lean_dec_ref(v_e_9952_);
return v_res_9961_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_9978_; lean_object* v___x_9979_; lean_object* v___x_9980_; lean_object* v___x_9981_; 
v___x_9978_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_));
v___x_9979_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_));
v___x_9980_ = lean_alloc_closure((void*)(l_BitVec_reduceSetWidth___boxed), 9, 0);
v___x_9981_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_9978_, v___x_9979_, v___x_9980_);
return v___x_9981_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14____boxed(lean_object* v_a_9982_){
_start:
{
lean_object* v_res_9983_; 
v_res_9983_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_();
return v_res_9983_;
}
}
static lean_object* _init_l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_9984_; lean_object* v___x_9985_; 
v___x_9984_ = lean_alloc_closure((void*)(l_BitVec_reduceSetWidth___boxed), 9, 0);
v___x_9985_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_9985_, 0, v___x_9984_);
return v___x_9985_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_9987_; uint8_t v___x_9988_; lean_object* v___x_9989_; lean_object* v___x_9990_; 
v___x_9987_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_));
v___x_9988_ = 1;
v___x_9989_ = lean_obj_once(&l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_, &l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16__once, _init_l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_);
v___x_9990_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_9987_, v___x_9988_, v___x_9989_);
return v___x_9990_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16____boxed(lean_object* v_a_9991_){
_start:
{
lean_object* v_res_9992_; 
v_res_9992_ = l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_();
return v_res_9992_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_9994_; uint8_t v___x_9995_; lean_object* v___x_9996_; lean_object* v___x_9997_; 
v___x_9994_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_));
v___x_9995_ = 1;
v___x_9996_ = lean_obj_once(&l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_, &l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16__once, _init_l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_);
v___x_9997_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_9994_, v___x_9995_, v___x_9996_);
return v___x_9997_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_18____boxed(lean_object* v_a_9998_){
_start:
{
lean_object* v_res_9999_; 
v_res_9999_ = l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_18_();
return v_res_9999_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___redArg(lean_object* v_e_10004_, lean_object* v_a_10005_, lean_object* v_a_10006_, lean_object* v_a_10007_, lean_object* v_a_10008_, lean_object* v_a_10009_){
_start:
{
lean_object* v___x_10011_; lean_object* v___x_10012_; uint8_t v___x_10013_; 
v___x_10011_ = ((lean_object*)(l_BitVec_reduceZeroExtend___redArg___closed__1));
v___x_10012_ = lean_unsigned_to_nat(3u);
v___x_10013_ = l_Lean_Expr_isAppOfArity(v_e_10004_, v___x_10011_, v___x_10012_);
if (v___x_10013_ == 0)
{
lean_object* v___x_10014_; lean_object* v___x_10015_; 
lean_dec(v_a_10009_);
lean_dec_ref(v_a_10008_);
lean_dec(v_a_10007_);
lean_dec_ref(v_a_10006_);
v___x_10014_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_10015_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_10015_, 0, v___x_10014_);
return v___x_10015_;
}
else
{
lean_object* v___x_10016_; lean_object* v___x_10017_; 
v___x_10016_ = l_Lean_Expr_appArg_x21(v_e_10004_);
lean_inc(v_a_10009_);
lean_inc_ref(v_a_10008_);
lean_inc(v_a_10007_);
lean_inc_ref(v_a_10006_);
v___x_10017_ = l_BitVec_fromExpr_x3f___redArg(v___x_10016_, v_a_10006_, v_a_10007_, v_a_10008_, v_a_10009_);
if (lean_obj_tag(v___x_10017_) == 0)
{
lean_object* v_a_10018_; lean_object* v___x_10020_; uint8_t v_isShared_10021_; uint8_t v_isSharedCheck_10075_; 
v_a_10018_ = lean_ctor_get(v___x_10017_, 0);
v_isSharedCheck_10075_ = !lean_is_exclusive(v___x_10017_);
if (v_isSharedCheck_10075_ == 0)
{
v___x_10020_ = v___x_10017_;
v_isShared_10021_ = v_isSharedCheck_10075_;
goto v_resetjp_10019_;
}
else
{
lean_inc(v_a_10018_);
lean_dec(v___x_10017_);
v___x_10020_ = lean_box(0);
v_isShared_10021_ = v_isSharedCheck_10075_;
goto v_resetjp_10019_;
}
v_resetjp_10019_:
{
if (lean_obj_tag(v_a_10018_) == 1)
{
lean_object* v_val_10022_; lean_object* v___x_10023_; lean_object* v___x_10024_; lean_object* v___x_10025_; 
lean_del_object(v___x_10020_);
v_val_10022_ = lean_ctor_get(v_a_10018_, 0);
lean_inc(v_val_10022_);
lean_dec_ref(v_a_10018_);
v___x_10023_ = l_Lean_Expr_appFn_x21(v_e_10004_);
v___x_10024_ = l_Lean_Expr_appArg_x21(v___x_10023_);
lean_dec_ref(v___x_10023_);
lean_inc(v_a_10009_);
lean_inc_ref(v_a_10008_);
lean_inc(v_a_10007_);
lean_inc_ref(v_a_10006_);
v___x_10025_ = l_Lean_Meta_getNatValue_x3f(v___x_10024_, v_a_10006_, v_a_10007_, v_a_10008_, v_a_10009_);
lean_dec_ref(v___x_10024_);
if (lean_obj_tag(v___x_10025_) == 0)
{
lean_object* v_a_10026_; lean_object* v___x_10028_; uint8_t v_isShared_10029_; uint8_t v_isSharedCheck_10062_; 
v_a_10026_ = lean_ctor_get(v___x_10025_, 0);
v_isSharedCheck_10062_ = !lean_is_exclusive(v___x_10025_);
if (v_isSharedCheck_10062_ == 0)
{
v___x_10028_ = v___x_10025_;
v_isShared_10029_ = v_isSharedCheck_10062_;
goto v_resetjp_10027_;
}
else
{
lean_inc(v_a_10026_);
lean_dec(v___x_10025_);
v___x_10028_ = lean_box(0);
v_isShared_10029_ = v_isSharedCheck_10062_;
goto v_resetjp_10027_;
}
v_resetjp_10027_:
{
if (lean_obj_tag(v_a_10026_) == 1)
{
lean_object* v_val_10030_; lean_object* v___x_10032_; uint8_t v_isShared_10033_; uint8_t v_isSharedCheck_10057_; 
lean_del_object(v___x_10028_);
v_val_10030_ = lean_ctor_get(v_a_10026_, 0);
v_isSharedCheck_10057_ = !lean_is_exclusive(v_a_10026_);
if (v_isSharedCheck_10057_ == 0)
{
v___x_10032_ = v_a_10026_;
v_isShared_10033_ = v_isSharedCheck_10057_;
goto v_resetjp_10031_;
}
else
{
lean_inc(v_val_10030_);
lean_dec(v_a_10026_);
v___x_10032_ = lean_box(0);
v_isShared_10033_ = v_isSharedCheck_10057_;
goto v_resetjp_10031_;
}
v_resetjp_10031_:
{
lean_object* v_n_10034_; lean_object* v_value_10035_; lean_object* v___x_10036_; lean_object* v___x_10037_; 
v_n_10034_ = lean_ctor_get(v_val_10022_, 0);
lean_inc(v_n_10034_);
v_value_10035_ = lean_ctor_get(v_val_10022_, 1);
lean_inc(v_value_10035_);
lean_dec(v_val_10022_);
v___x_10036_ = l_BitVec_setWidth(v_n_10034_, v_val_10030_, v_value_10035_);
lean_dec(v_value_10035_);
lean_dec(v_n_10034_);
v___x_10037_ = l_BitVec_toExpr_x27___redArg(v_val_10030_, v___x_10036_, v_a_10005_, v_a_10006_, v_a_10007_, v_a_10008_, v_a_10009_);
if (lean_obj_tag(v___x_10037_) == 0)
{
lean_object* v_a_10038_; lean_object* v___x_10040_; uint8_t v_isShared_10041_; uint8_t v_isSharedCheck_10048_; 
v_a_10038_ = lean_ctor_get(v___x_10037_, 0);
v_isSharedCheck_10048_ = !lean_is_exclusive(v___x_10037_);
if (v_isSharedCheck_10048_ == 0)
{
v___x_10040_ = v___x_10037_;
v_isShared_10041_ = v_isSharedCheck_10048_;
goto v_resetjp_10039_;
}
else
{
lean_inc(v_a_10038_);
lean_dec(v___x_10037_);
v___x_10040_ = lean_box(0);
v_isShared_10041_ = v_isSharedCheck_10048_;
goto v_resetjp_10039_;
}
v_resetjp_10039_:
{
lean_object* v___x_10043_; 
if (v_isShared_10033_ == 0)
{
lean_ctor_set_tag(v___x_10032_, 0);
lean_ctor_set(v___x_10032_, 0, v_a_10038_);
v___x_10043_ = v___x_10032_;
goto v_reusejp_10042_;
}
else
{
lean_object* v_reuseFailAlloc_10047_; 
v_reuseFailAlloc_10047_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10047_, 0, v_a_10038_);
v___x_10043_ = v_reuseFailAlloc_10047_;
goto v_reusejp_10042_;
}
v_reusejp_10042_:
{
lean_object* v___x_10045_; 
if (v_isShared_10041_ == 0)
{
lean_ctor_set(v___x_10040_, 0, v___x_10043_);
v___x_10045_ = v___x_10040_;
goto v_reusejp_10044_;
}
else
{
lean_object* v_reuseFailAlloc_10046_; 
v_reuseFailAlloc_10046_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10046_, 0, v___x_10043_);
v___x_10045_ = v_reuseFailAlloc_10046_;
goto v_reusejp_10044_;
}
v_reusejp_10044_:
{
return v___x_10045_;
}
}
}
}
else
{
lean_object* v_a_10049_; lean_object* v___x_10051_; uint8_t v_isShared_10052_; uint8_t v_isSharedCheck_10056_; 
lean_del_object(v___x_10032_);
v_a_10049_ = lean_ctor_get(v___x_10037_, 0);
v_isSharedCheck_10056_ = !lean_is_exclusive(v___x_10037_);
if (v_isSharedCheck_10056_ == 0)
{
v___x_10051_ = v___x_10037_;
v_isShared_10052_ = v_isSharedCheck_10056_;
goto v_resetjp_10050_;
}
else
{
lean_inc(v_a_10049_);
lean_dec(v___x_10037_);
v___x_10051_ = lean_box(0);
v_isShared_10052_ = v_isSharedCheck_10056_;
goto v_resetjp_10050_;
}
v_resetjp_10050_:
{
lean_object* v___x_10054_; 
if (v_isShared_10052_ == 0)
{
v___x_10054_ = v___x_10051_;
goto v_reusejp_10053_;
}
else
{
lean_object* v_reuseFailAlloc_10055_; 
v_reuseFailAlloc_10055_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10055_, 0, v_a_10049_);
v___x_10054_ = v_reuseFailAlloc_10055_;
goto v_reusejp_10053_;
}
v_reusejp_10053_:
{
return v___x_10054_;
}
}
}
}
}
else
{
lean_object* v___x_10058_; lean_object* v___x_10060_; 
lean_dec(v_a_10026_);
lean_dec(v_val_10022_);
lean_dec(v_a_10009_);
lean_dec_ref(v_a_10008_);
lean_dec(v_a_10007_);
lean_dec_ref(v_a_10006_);
v___x_10058_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10029_ == 0)
{
lean_ctor_set(v___x_10028_, 0, v___x_10058_);
v___x_10060_ = v___x_10028_;
goto v_reusejp_10059_;
}
else
{
lean_object* v_reuseFailAlloc_10061_; 
v_reuseFailAlloc_10061_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10061_, 0, v___x_10058_);
v___x_10060_ = v_reuseFailAlloc_10061_;
goto v_reusejp_10059_;
}
v_reusejp_10059_:
{
return v___x_10060_;
}
}
}
}
else
{
lean_object* v_a_10063_; lean_object* v___x_10065_; uint8_t v_isShared_10066_; uint8_t v_isSharedCheck_10070_; 
lean_dec(v_val_10022_);
lean_dec(v_a_10009_);
lean_dec_ref(v_a_10008_);
lean_dec(v_a_10007_);
lean_dec_ref(v_a_10006_);
v_a_10063_ = lean_ctor_get(v___x_10025_, 0);
v_isSharedCheck_10070_ = !lean_is_exclusive(v___x_10025_);
if (v_isSharedCheck_10070_ == 0)
{
v___x_10065_ = v___x_10025_;
v_isShared_10066_ = v_isSharedCheck_10070_;
goto v_resetjp_10064_;
}
else
{
lean_inc(v_a_10063_);
lean_dec(v___x_10025_);
v___x_10065_ = lean_box(0);
v_isShared_10066_ = v_isSharedCheck_10070_;
goto v_resetjp_10064_;
}
v_resetjp_10064_:
{
lean_object* v___x_10068_; 
if (v_isShared_10066_ == 0)
{
v___x_10068_ = v___x_10065_;
goto v_reusejp_10067_;
}
else
{
lean_object* v_reuseFailAlloc_10069_; 
v_reuseFailAlloc_10069_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10069_, 0, v_a_10063_);
v___x_10068_ = v_reuseFailAlloc_10069_;
goto v_reusejp_10067_;
}
v_reusejp_10067_:
{
return v___x_10068_;
}
}
}
}
else
{
lean_object* v___x_10071_; lean_object* v___x_10073_; 
lean_dec(v_a_10018_);
lean_dec(v_a_10009_);
lean_dec_ref(v_a_10008_);
lean_dec(v_a_10007_);
lean_dec_ref(v_a_10006_);
v___x_10071_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10021_ == 0)
{
lean_ctor_set(v___x_10020_, 0, v___x_10071_);
v___x_10073_ = v___x_10020_;
goto v_reusejp_10072_;
}
else
{
lean_object* v_reuseFailAlloc_10074_; 
v_reuseFailAlloc_10074_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10074_, 0, v___x_10071_);
v___x_10073_ = v_reuseFailAlloc_10074_;
goto v_reusejp_10072_;
}
v_reusejp_10072_:
{
return v___x_10073_;
}
}
}
}
else
{
lean_object* v_a_10076_; lean_object* v___x_10078_; uint8_t v_isShared_10079_; uint8_t v_isSharedCheck_10083_; 
lean_dec(v_a_10009_);
lean_dec_ref(v_a_10008_);
lean_dec(v_a_10007_);
lean_dec_ref(v_a_10006_);
v_a_10076_ = lean_ctor_get(v___x_10017_, 0);
v_isSharedCheck_10083_ = !lean_is_exclusive(v___x_10017_);
if (v_isSharedCheck_10083_ == 0)
{
v___x_10078_ = v___x_10017_;
v_isShared_10079_ = v_isSharedCheck_10083_;
goto v_resetjp_10077_;
}
else
{
lean_inc(v_a_10076_);
lean_dec(v___x_10017_);
v___x_10078_ = lean_box(0);
v_isShared_10079_ = v_isSharedCheck_10083_;
goto v_resetjp_10077_;
}
v_resetjp_10077_:
{
lean_object* v___x_10081_; 
if (v_isShared_10079_ == 0)
{
v___x_10081_ = v___x_10078_;
goto v_reusejp_10080_;
}
else
{
lean_object* v_reuseFailAlloc_10082_; 
v_reuseFailAlloc_10082_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10082_, 0, v_a_10076_);
v___x_10081_ = v_reuseFailAlloc_10082_;
goto v_reusejp_10080_;
}
v_reusejp_10080_:
{
return v___x_10081_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___redArg___boxed(lean_object* v_e_10084_, lean_object* v_a_10085_, lean_object* v_a_10086_, lean_object* v_a_10087_, lean_object* v_a_10088_, lean_object* v_a_10089_, lean_object* v_a_10090_){
_start:
{
lean_object* v_res_10091_; 
v_res_10091_ = l_BitVec_reduceZeroExtend___redArg(v_e_10084_, v_a_10085_, v_a_10086_, v_a_10087_, v_a_10088_, v_a_10089_);
lean_dec_ref(v_a_10085_);
lean_dec_ref(v_e_10084_);
return v_res_10091_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend(lean_object* v_e_10092_, lean_object* v_a_10093_, lean_object* v_a_10094_, lean_object* v_a_10095_, lean_object* v_a_10096_, lean_object* v_a_10097_, lean_object* v_a_10098_, lean_object* v_a_10099_){
_start:
{
lean_object* v___x_10101_; 
v___x_10101_ = l_BitVec_reduceZeroExtend___redArg(v_e_10092_, v_a_10094_, v_a_10096_, v_a_10097_, v_a_10098_, v_a_10099_);
return v___x_10101_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___boxed(lean_object* v_e_10102_, lean_object* v_a_10103_, lean_object* v_a_10104_, lean_object* v_a_10105_, lean_object* v_a_10106_, lean_object* v_a_10107_, lean_object* v_a_10108_, lean_object* v_a_10109_, lean_object* v_a_10110_){
_start:
{
lean_object* v_res_10111_; 
v_res_10111_ = l_BitVec_reduceZeroExtend(v_e_10102_, v_a_10103_, v_a_10104_, v_a_10105_, v_a_10106_, v_a_10107_, v_a_10108_, v_a_10109_);
lean_dec(v_a_10105_);
lean_dec_ref(v_a_10104_);
lean_dec(v_a_10103_);
lean_dec_ref(v_e_10102_);
return v_res_10111_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_10117_; lean_object* v___x_10118_; lean_object* v___x_10119_; lean_object* v___x_10120_; 
v___x_10117_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14_));
v___x_10118_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_));
v___x_10119_ = lean_alloc_closure((void*)(l_BitVec_reduceZeroExtend___boxed), 9, 0);
v___x_10120_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_10117_, v___x_10118_, v___x_10119_);
return v___x_10120_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14____boxed(lean_object* v_a_10121_){
_start:
{
lean_object* v_res_10122_; 
v_res_10122_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14_();
return v_res_10122_;
}
}
static lean_object* _init_l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_10123_; lean_object* v___x_10124_; 
v___x_10123_ = lean_alloc_closure((void*)(l_BitVec_reduceZeroExtend___boxed), 9, 0);
v___x_10124_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_10124_, 0, v___x_10123_);
return v___x_10124_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_10126_; uint8_t v___x_10127_; lean_object* v___x_10128_; lean_object* v___x_10129_; 
v___x_10126_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14_));
v___x_10127_ = 1;
v___x_10128_ = lean_obj_once(&l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_, &l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16__once, _init_l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_);
v___x_10129_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_10126_, v___x_10127_, v___x_10128_);
return v___x_10129_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16____boxed(lean_object* v_a_10130_){
_start:
{
lean_object* v_res_10131_; 
v_res_10131_ = l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_();
return v_res_10131_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_10133_; uint8_t v___x_10134_; lean_object* v___x_10135_; lean_object* v___x_10136_; 
v___x_10133_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14_));
v___x_10134_ = 1;
v___x_10135_ = lean_obj_once(&l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_, &l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16__once, _init_l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_);
v___x_10136_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_10133_, v___x_10134_, v___x_10135_);
return v___x_10136_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_18____boxed(lean_object* v_a_10137_){
_start:
{
lean_object* v_res_10138_; 
v_res_10138_ = l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_18_();
return v_res_10138_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___redArg(lean_object* v_e_10143_, lean_object* v_a_10144_, lean_object* v_a_10145_, lean_object* v_a_10146_, lean_object* v_a_10147_, lean_object* v_a_10148_){
_start:
{
lean_object* v___x_10150_; lean_object* v___x_10151_; uint8_t v___x_10152_; 
v___x_10150_ = ((lean_object*)(l_BitVec_reduceSignExtend___redArg___closed__1));
v___x_10151_ = lean_unsigned_to_nat(3u);
v___x_10152_ = l_Lean_Expr_isAppOfArity(v_e_10143_, v___x_10150_, v___x_10151_);
if (v___x_10152_ == 0)
{
lean_object* v___x_10153_; lean_object* v___x_10154_; 
lean_dec(v_a_10148_);
lean_dec_ref(v_a_10147_);
lean_dec(v_a_10146_);
lean_dec_ref(v_a_10145_);
v___x_10153_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
v___x_10154_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_10154_, 0, v___x_10153_);
return v___x_10154_;
}
else
{
lean_object* v___x_10155_; lean_object* v___x_10156_; 
v___x_10155_ = l_Lean_Expr_appArg_x21(v_e_10143_);
lean_inc(v_a_10148_);
lean_inc_ref(v_a_10147_);
lean_inc(v_a_10146_);
lean_inc_ref(v_a_10145_);
v___x_10156_ = l_BitVec_fromExpr_x3f___redArg(v___x_10155_, v_a_10145_, v_a_10146_, v_a_10147_, v_a_10148_);
if (lean_obj_tag(v___x_10156_) == 0)
{
lean_object* v_a_10157_; lean_object* v___x_10159_; uint8_t v_isShared_10160_; uint8_t v_isSharedCheck_10214_; 
v_a_10157_ = lean_ctor_get(v___x_10156_, 0);
v_isSharedCheck_10214_ = !lean_is_exclusive(v___x_10156_);
if (v_isSharedCheck_10214_ == 0)
{
v___x_10159_ = v___x_10156_;
v_isShared_10160_ = v_isSharedCheck_10214_;
goto v_resetjp_10158_;
}
else
{
lean_inc(v_a_10157_);
lean_dec(v___x_10156_);
v___x_10159_ = lean_box(0);
v_isShared_10160_ = v_isSharedCheck_10214_;
goto v_resetjp_10158_;
}
v_resetjp_10158_:
{
if (lean_obj_tag(v_a_10157_) == 1)
{
lean_object* v_val_10161_; lean_object* v___x_10162_; lean_object* v___x_10163_; lean_object* v___x_10164_; 
lean_del_object(v___x_10159_);
v_val_10161_ = lean_ctor_get(v_a_10157_, 0);
lean_inc(v_val_10161_);
lean_dec_ref(v_a_10157_);
v___x_10162_ = l_Lean_Expr_appFn_x21(v_e_10143_);
v___x_10163_ = l_Lean_Expr_appArg_x21(v___x_10162_);
lean_dec_ref(v___x_10162_);
lean_inc(v_a_10148_);
lean_inc_ref(v_a_10147_);
lean_inc(v_a_10146_);
lean_inc_ref(v_a_10145_);
v___x_10164_ = l_Lean_Meta_getNatValue_x3f(v___x_10163_, v_a_10145_, v_a_10146_, v_a_10147_, v_a_10148_);
lean_dec_ref(v___x_10163_);
if (lean_obj_tag(v___x_10164_) == 0)
{
lean_object* v_a_10165_; lean_object* v___x_10167_; uint8_t v_isShared_10168_; uint8_t v_isSharedCheck_10201_; 
v_a_10165_ = lean_ctor_get(v___x_10164_, 0);
v_isSharedCheck_10201_ = !lean_is_exclusive(v___x_10164_);
if (v_isSharedCheck_10201_ == 0)
{
v___x_10167_ = v___x_10164_;
v_isShared_10168_ = v_isSharedCheck_10201_;
goto v_resetjp_10166_;
}
else
{
lean_inc(v_a_10165_);
lean_dec(v___x_10164_);
v___x_10167_ = lean_box(0);
v_isShared_10168_ = v_isSharedCheck_10201_;
goto v_resetjp_10166_;
}
v_resetjp_10166_:
{
if (lean_obj_tag(v_a_10165_) == 1)
{
lean_object* v_val_10169_; lean_object* v___x_10171_; uint8_t v_isShared_10172_; uint8_t v_isSharedCheck_10196_; 
lean_del_object(v___x_10167_);
v_val_10169_ = lean_ctor_get(v_a_10165_, 0);
v_isSharedCheck_10196_ = !lean_is_exclusive(v_a_10165_);
if (v_isSharedCheck_10196_ == 0)
{
v___x_10171_ = v_a_10165_;
v_isShared_10172_ = v_isSharedCheck_10196_;
goto v_resetjp_10170_;
}
else
{
lean_inc(v_val_10169_);
lean_dec(v_a_10165_);
v___x_10171_ = lean_box(0);
v_isShared_10172_ = v_isSharedCheck_10196_;
goto v_resetjp_10170_;
}
v_resetjp_10170_:
{
lean_object* v_n_10173_; lean_object* v_value_10174_; lean_object* v___x_10175_; lean_object* v___x_10176_; 
v_n_10173_ = lean_ctor_get(v_val_10161_, 0);
lean_inc(v_n_10173_);
v_value_10174_ = lean_ctor_get(v_val_10161_, 1);
lean_inc(v_value_10174_);
lean_dec(v_val_10161_);
v___x_10175_ = l_BitVec_signExtend(v_n_10173_, v_val_10169_, v_value_10174_);
lean_dec(v_n_10173_);
v___x_10176_ = l_BitVec_toExpr_x27___redArg(v_val_10169_, v___x_10175_, v_a_10144_, v_a_10145_, v_a_10146_, v_a_10147_, v_a_10148_);
if (lean_obj_tag(v___x_10176_) == 0)
{
lean_object* v_a_10177_; lean_object* v___x_10179_; uint8_t v_isShared_10180_; uint8_t v_isSharedCheck_10187_; 
v_a_10177_ = lean_ctor_get(v___x_10176_, 0);
v_isSharedCheck_10187_ = !lean_is_exclusive(v___x_10176_);
if (v_isSharedCheck_10187_ == 0)
{
v___x_10179_ = v___x_10176_;
v_isShared_10180_ = v_isSharedCheck_10187_;
goto v_resetjp_10178_;
}
else
{
lean_inc(v_a_10177_);
lean_dec(v___x_10176_);
v___x_10179_ = lean_box(0);
v_isShared_10180_ = v_isSharedCheck_10187_;
goto v_resetjp_10178_;
}
v_resetjp_10178_:
{
lean_object* v___x_10182_; 
if (v_isShared_10172_ == 0)
{
lean_ctor_set_tag(v___x_10171_, 0);
lean_ctor_set(v___x_10171_, 0, v_a_10177_);
v___x_10182_ = v___x_10171_;
goto v_reusejp_10181_;
}
else
{
lean_object* v_reuseFailAlloc_10186_; 
v_reuseFailAlloc_10186_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10186_, 0, v_a_10177_);
v___x_10182_ = v_reuseFailAlloc_10186_;
goto v_reusejp_10181_;
}
v_reusejp_10181_:
{
lean_object* v___x_10184_; 
if (v_isShared_10180_ == 0)
{
lean_ctor_set(v___x_10179_, 0, v___x_10182_);
v___x_10184_ = v___x_10179_;
goto v_reusejp_10183_;
}
else
{
lean_object* v_reuseFailAlloc_10185_; 
v_reuseFailAlloc_10185_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10185_, 0, v___x_10182_);
v___x_10184_ = v_reuseFailAlloc_10185_;
goto v_reusejp_10183_;
}
v_reusejp_10183_:
{
return v___x_10184_;
}
}
}
}
else
{
lean_object* v_a_10188_; lean_object* v___x_10190_; uint8_t v_isShared_10191_; uint8_t v_isSharedCheck_10195_; 
lean_del_object(v___x_10171_);
v_a_10188_ = lean_ctor_get(v___x_10176_, 0);
v_isSharedCheck_10195_ = !lean_is_exclusive(v___x_10176_);
if (v_isSharedCheck_10195_ == 0)
{
v___x_10190_ = v___x_10176_;
v_isShared_10191_ = v_isSharedCheck_10195_;
goto v_resetjp_10189_;
}
else
{
lean_inc(v_a_10188_);
lean_dec(v___x_10176_);
v___x_10190_ = lean_box(0);
v_isShared_10191_ = v_isSharedCheck_10195_;
goto v_resetjp_10189_;
}
v_resetjp_10189_:
{
lean_object* v___x_10193_; 
if (v_isShared_10191_ == 0)
{
v___x_10193_ = v___x_10190_;
goto v_reusejp_10192_;
}
else
{
lean_object* v_reuseFailAlloc_10194_; 
v_reuseFailAlloc_10194_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10194_, 0, v_a_10188_);
v___x_10193_ = v_reuseFailAlloc_10194_;
goto v_reusejp_10192_;
}
v_reusejp_10192_:
{
return v___x_10193_;
}
}
}
}
}
else
{
lean_object* v___x_10197_; lean_object* v___x_10199_; 
lean_dec(v_a_10165_);
lean_dec(v_val_10161_);
lean_dec(v_a_10148_);
lean_dec_ref(v_a_10147_);
lean_dec(v_a_10146_);
lean_dec_ref(v_a_10145_);
v___x_10197_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10168_ == 0)
{
lean_ctor_set(v___x_10167_, 0, v___x_10197_);
v___x_10199_ = v___x_10167_;
goto v_reusejp_10198_;
}
else
{
lean_object* v_reuseFailAlloc_10200_; 
v_reuseFailAlloc_10200_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10200_, 0, v___x_10197_);
v___x_10199_ = v_reuseFailAlloc_10200_;
goto v_reusejp_10198_;
}
v_reusejp_10198_:
{
return v___x_10199_;
}
}
}
}
else
{
lean_object* v_a_10202_; lean_object* v___x_10204_; uint8_t v_isShared_10205_; uint8_t v_isSharedCheck_10209_; 
lean_dec(v_val_10161_);
lean_dec(v_a_10148_);
lean_dec_ref(v_a_10147_);
lean_dec(v_a_10146_);
lean_dec_ref(v_a_10145_);
v_a_10202_ = lean_ctor_get(v___x_10164_, 0);
v_isSharedCheck_10209_ = !lean_is_exclusive(v___x_10164_);
if (v_isSharedCheck_10209_ == 0)
{
v___x_10204_ = v___x_10164_;
v_isShared_10205_ = v_isSharedCheck_10209_;
goto v_resetjp_10203_;
}
else
{
lean_inc(v_a_10202_);
lean_dec(v___x_10164_);
v___x_10204_ = lean_box(0);
v_isShared_10205_ = v_isSharedCheck_10209_;
goto v_resetjp_10203_;
}
v_resetjp_10203_:
{
lean_object* v___x_10207_; 
if (v_isShared_10205_ == 0)
{
v___x_10207_ = v___x_10204_;
goto v_reusejp_10206_;
}
else
{
lean_object* v_reuseFailAlloc_10208_; 
v_reuseFailAlloc_10208_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10208_, 0, v_a_10202_);
v___x_10207_ = v_reuseFailAlloc_10208_;
goto v_reusejp_10206_;
}
v_reusejp_10206_:
{
return v___x_10207_;
}
}
}
}
else
{
lean_object* v___x_10210_; lean_object* v___x_10212_; 
lean_dec(v_a_10157_);
lean_dec(v_a_10148_);
lean_dec_ref(v_a_10147_);
lean_dec(v_a_10146_);
lean_dec_ref(v_a_10145_);
v___x_10210_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10160_ == 0)
{
lean_ctor_set(v___x_10159_, 0, v___x_10210_);
v___x_10212_ = v___x_10159_;
goto v_reusejp_10211_;
}
else
{
lean_object* v_reuseFailAlloc_10213_; 
v_reuseFailAlloc_10213_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10213_, 0, v___x_10210_);
v___x_10212_ = v_reuseFailAlloc_10213_;
goto v_reusejp_10211_;
}
v_reusejp_10211_:
{
return v___x_10212_;
}
}
}
}
else
{
lean_object* v_a_10215_; lean_object* v___x_10217_; uint8_t v_isShared_10218_; uint8_t v_isSharedCheck_10222_; 
lean_dec(v_a_10148_);
lean_dec_ref(v_a_10147_);
lean_dec(v_a_10146_);
lean_dec_ref(v_a_10145_);
v_a_10215_ = lean_ctor_get(v___x_10156_, 0);
v_isSharedCheck_10222_ = !lean_is_exclusive(v___x_10156_);
if (v_isSharedCheck_10222_ == 0)
{
v___x_10217_ = v___x_10156_;
v_isShared_10218_ = v_isSharedCheck_10222_;
goto v_resetjp_10216_;
}
else
{
lean_inc(v_a_10215_);
lean_dec(v___x_10156_);
v___x_10217_ = lean_box(0);
v_isShared_10218_ = v_isSharedCheck_10222_;
goto v_resetjp_10216_;
}
v_resetjp_10216_:
{
lean_object* v___x_10220_; 
if (v_isShared_10218_ == 0)
{
v___x_10220_ = v___x_10217_;
goto v_reusejp_10219_;
}
else
{
lean_object* v_reuseFailAlloc_10221_; 
v_reuseFailAlloc_10221_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10221_, 0, v_a_10215_);
v___x_10220_ = v_reuseFailAlloc_10221_;
goto v_reusejp_10219_;
}
v_reusejp_10219_:
{
return v___x_10220_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___redArg___boxed(lean_object* v_e_10223_, lean_object* v_a_10224_, lean_object* v_a_10225_, lean_object* v_a_10226_, lean_object* v_a_10227_, lean_object* v_a_10228_, lean_object* v_a_10229_){
_start:
{
lean_object* v_res_10230_; 
v_res_10230_ = l_BitVec_reduceSignExtend___redArg(v_e_10223_, v_a_10224_, v_a_10225_, v_a_10226_, v_a_10227_, v_a_10228_);
lean_dec_ref(v_a_10224_);
lean_dec_ref(v_e_10223_);
return v_res_10230_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend(lean_object* v_e_10231_, lean_object* v_a_10232_, lean_object* v_a_10233_, lean_object* v_a_10234_, lean_object* v_a_10235_, lean_object* v_a_10236_, lean_object* v_a_10237_, lean_object* v_a_10238_){
_start:
{
lean_object* v___x_10240_; 
v___x_10240_ = l_BitVec_reduceSignExtend___redArg(v_e_10231_, v_a_10233_, v_a_10235_, v_a_10236_, v_a_10237_, v_a_10238_);
return v___x_10240_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___boxed(lean_object* v_e_10241_, lean_object* v_a_10242_, lean_object* v_a_10243_, lean_object* v_a_10244_, lean_object* v_a_10245_, lean_object* v_a_10246_, lean_object* v_a_10247_, lean_object* v_a_10248_, lean_object* v_a_10249_){
_start:
{
lean_object* v_res_10250_; 
v_res_10250_ = l_BitVec_reduceSignExtend(v_e_10241_, v_a_10242_, v_a_10243_, v_a_10244_, v_a_10245_, v_a_10246_, v_a_10247_, v_a_10248_);
lean_dec(v_a_10244_);
lean_dec_ref(v_a_10243_);
lean_dec(v_a_10242_);
lean_dec_ref(v_e_10241_);
return v_res_10250_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_(){
_start:
{
lean_object* v___x_10267_; lean_object* v___x_10268_; lean_object* v___x_10269_; lean_object* v___x_10270_; 
v___x_10267_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_));
v___x_10268_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_));
v___x_10269_ = lean_alloc_closure((void*)(l_BitVec_reduceSignExtend___boxed), 9, 0);
v___x_10270_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_10267_, v___x_10268_, v___x_10269_);
return v___x_10270_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14____boxed(lean_object* v_a_10271_){
_start:
{
lean_object* v_res_10272_; 
v_res_10272_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_();
return v_res_10272_;
}
}
static lean_object* _init_l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_(void){
_start:
{
lean_object* v___x_10273_; lean_object* v___x_10274_; 
v___x_10273_ = lean_alloc_closure((void*)(l_BitVec_reduceSignExtend___boxed), 9, 0);
v___x_10274_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_10274_, 0, v___x_10273_);
return v___x_10274_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_(){
_start:
{
lean_object* v___x_10276_; uint8_t v___x_10277_; lean_object* v___x_10278_; lean_object* v___x_10279_; 
v___x_10276_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_));
v___x_10277_ = 1;
v___x_10278_ = lean_obj_once(&l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_, &l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16__once, _init_l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_);
v___x_10279_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_10276_, v___x_10277_, v___x_10278_);
return v___x_10279_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16____boxed(lean_object* v_a_10280_){
_start:
{
lean_object* v_res_10281_; 
v_res_10281_ = l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_();
return v_res_10281_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_18_(){
_start:
{
lean_object* v___x_10283_; uint8_t v___x_10284_; lean_object* v___x_10285_; lean_object* v___x_10286_; 
v___x_10283_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_));
v___x_10284_ = 1;
v___x_10285_ = lean_obj_once(&l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_, &l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16__once, _init_l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_);
v___x_10286_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_10283_, v___x_10284_, v___x_10285_);
return v___x_10286_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_18____boxed(lean_object* v_a_10287_){
_start:
{
lean_object* v_res_10288_; 
v_res_10288_ = l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_18_();
return v_res_10288_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___redArg(lean_object* v_e_10293_, lean_object* v_a_10294_, lean_object* v_a_10295_, lean_object* v_a_10296_, lean_object* v_a_10297_, lean_object* v_a_10298_){
_start:
{
lean_object* v___x_10300_; 
v___x_10300_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_10293_, v_a_10296_);
if (lean_obj_tag(v___x_10300_) == 0)
{
lean_object* v_a_10301_; lean_object* v___x_10303_; uint8_t v_isShared_10304_; uint8_t v_isSharedCheck_10360_; 
v_a_10301_ = lean_ctor_get(v___x_10300_, 0);
v_isSharedCheck_10360_ = !lean_is_exclusive(v___x_10300_);
if (v_isSharedCheck_10360_ == 0)
{
v___x_10303_ = v___x_10300_;
v_isShared_10304_ = v_isSharedCheck_10360_;
goto v_resetjp_10302_;
}
else
{
lean_inc(v_a_10301_);
lean_dec(v___x_10300_);
v___x_10303_ = lean_box(0);
v_isShared_10304_ = v_isSharedCheck_10360_;
goto v_resetjp_10302_;
}
v_resetjp_10302_:
{
lean_object* v___x_10310_; uint8_t v___x_10311_; 
v___x_10310_ = l_Lean_Expr_cleanupAnnotations(v_a_10301_);
v___x_10311_ = l_Lean_Expr_isApp(v___x_10310_);
if (v___x_10311_ == 0)
{
lean_dec_ref(v___x_10310_);
lean_dec(v_a_10298_);
lean_dec_ref(v_a_10297_);
lean_dec(v_a_10296_);
lean_dec_ref(v_a_10295_);
goto v___jp_10305_;
}
else
{
lean_object* v_arg_10312_; lean_object* v___x_10313_; lean_object* v___x_10314_; uint8_t v___x_10315_; 
v_arg_10312_ = lean_ctor_get(v___x_10310_, 1);
lean_inc_ref(v_arg_10312_);
v___x_10313_ = l_Lean_Expr_appFnCleanup___redArg(v___x_10310_);
v___x_10314_ = ((lean_object*)(l_BitVec_reduceAllOnes___redArg___closed__1));
v___x_10315_ = l_Lean_Expr_isConstOf(v___x_10313_, v___x_10314_);
lean_dec_ref(v___x_10313_);
if (v___x_10315_ == 0)
{
lean_dec_ref(v_arg_10312_);
lean_dec(v_a_10298_);
lean_dec_ref(v_a_10297_);
lean_dec(v_a_10296_);
lean_dec_ref(v_a_10295_);
goto v___jp_10305_;
}
else
{
lean_object* v___x_10316_; 
lean_del_object(v___x_10303_);
lean_inc(v_a_10298_);
lean_inc_ref(v_a_10297_);
lean_inc(v_a_10296_);
lean_inc_ref(v_a_10295_);
v___x_10316_ = l_Lean_Meta_getNatValue_x3f(v_arg_10312_, v_a_10295_, v_a_10296_, v_a_10297_, v_a_10298_);
lean_dec_ref(v_arg_10312_);
if (lean_obj_tag(v___x_10316_) == 0)
{
lean_object* v_a_10317_; lean_object* v___x_10319_; uint8_t v_isShared_10320_; uint8_t v_isSharedCheck_10351_; 
v_a_10317_ = lean_ctor_get(v___x_10316_, 0);
v_isSharedCheck_10351_ = !lean_is_exclusive(v___x_10316_);
if (v_isSharedCheck_10351_ == 0)
{
v___x_10319_ = v___x_10316_;
v_isShared_10320_ = v_isSharedCheck_10351_;
goto v_resetjp_10318_;
}
else
{
lean_inc(v_a_10317_);
lean_dec(v___x_10316_);
v___x_10319_ = lean_box(0);
v_isShared_10320_ = v_isSharedCheck_10351_;
goto v_resetjp_10318_;
}
v_resetjp_10318_:
{
if (lean_obj_tag(v_a_10317_) == 1)
{
lean_object* v_val_10321_; lean_object* v___x_10323_; uint8_t v_isShared_10324_; uint8_t v_isSharedCheck_10346_; 
lean_del_object(v___x_10319_);
v_val_10321_ = lean_ctor_get(v_a_10317_, 0);
v_isSharedCheck_10346_ = !lean_is_exclusive(v_a_10317_);
if (v_isSharedCheck_10346_ == 0)
{
v___x_10323_ = v_a_10317_;
v_isShared_10324_ = v_isSharedCheck_10346_;
goto v_resetjp_10322_;
}
else
{
lean_inc(v_val_10321_);
lean_dec(v_a_10317_);
v___x_10323_ = lean_box(0);
v_isShared_10324_ = v_isSharedCheck_10346_;
goto v_resetjp_10322_;
}
v_resetjp_10322_:
{
lean_object* v___x_10325_; lean_object* v___x_10326_; 
v___x_10325_ = l_BitVec_allOnes(v_val_10321_);
v___x_10326_ = l_BitVec_toExpr_x27___redArg(v_val_10321_, v___x_10325_, v_a_10294_, v_a_10295_, v_a_10296_, v_a_10297_, v_a_10298_);
if (lean_obj_tag(v___x_10326_) == 0)
{
lean_object* v_a_10327_; lean_object* v___x_10329_; uint8_t v_isShared_10330_; uint8_t v_isSharedCheck_10337_; 
v_a_10327_ = lean_ctor_get(v___x_10326_, 0);
v_isSharedCheck_10337_ = !lean_is_exclusive(v___x_10326_);
if (v_isSharedCheck_10337_ == 0)
{
v___x_10329_ = v___x_10326_;
v_isShared_10330_ = v_isSharedCheck_10337_;
goto v_resetjp_10328_;
}
else
{
lean_inc(v_a_10327_);
lean_dec(v___x_10326_);
v___x_10329_ = lean_box(0);
v_isShared_10330_ = v_isSharedCheck_10337_;
goto v_resetjp_10328_;
}
v_resetjp_10328_:
{
lean_object* v___x_10332_; 
if (v_isShared_10324_ == 0)
{
lean_ctor_set_tag(v___x_10323_, 0);
lean_ctor_set(v___x_10323_, 0, v_a_10327_);
v___x_10332_ = v___x_10323_;
goto v_reusejp_10331_;
}
else
{
lean_object* v_reuseFailAlloc_10336_; 
v_reuseFailAlloc_10336_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10336_, 0, v_a_10327_);
v___x_10332_ = v_reuseFailAlloc_10336_;
goto v_reusejp_10331_;
}
v_reusejp_10331_:
{
lean_object* v___x_10334_; 
if (v_isShared_10330_ == 0)
{
lean_ctor_set(v___x_10329_, 0, v___x_10332_);
v___x_10334_ = v___x_10329_;
goto v_reusejp_10333_;
}
else
{
lean_object* v_reuseFailAlloc_10335_; 
v_reuseFailAlloc_10335_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10335_, 0, v___x_10332_);
v___x_10334_ = v_reuseFailAlloc_10335_;
goto v_reusejp_10333_;
}
v_reusejp_10333_:
{
return v___x_10334_;
}
}
}
}
else
{
lean_object* v_a_10338_; lean_object* v___x_10340_; uint8_t v_isShared_10341_; uint8_t v_isSharedCheck_10345_; 
lean_del_object(v___x_10323_);
v_a_10338_ = lean_ctor_get(v___x_10326_, 0);
v_isSharedCheck_10345_ = !lean_is_exclusive(v___x_10326_);
if (v_isSharedCheck_10345_ == 0)
{
v___x_10340_ = v___x_10326_;
v_isShared_10341_ = v_isSharedCheck_10345_;
goto v_resetjp_10339_;
}
else
{
lean_inc(v_a_10338_);
lean_dec(v___x_10326_);
v___x_10340_ = lean_box(0);
v_isShared_10341_ = v_isSharedCheck_10345_;
goto v_resetjp_10339_;
}
v_resetjp_10339_:
{
lean_object* v___x_10343_; 
if (v_isShared_10341_ == 0)
{
v___x_10343_ = v___x_10340_;
goto v_reusejp_10342_;
}
else
{
lean_object* v_reuseFailAlloc_10344_; 
v_reuseFailAlloc_10344_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10344_, 0, v_a_10338_);
v___x_10343_ = v_reuseFailAlloc_10344_;
goto v_reusejp_10342_;
}
v_reusejp_10342_:
{
return v___x_10343_;
}
}
}
}
}
else
{
lean_object* v___x_10347_; lean_object* v___x_10349_; 
lean_dec(v_a_10317_);
lean_dec(v_a_10298_);
lean_dec_ref(v_a_10297_);
lean_dec(v_a_10296_);
lean_dec_ref(v_a_10295_);
v___x_10347_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10320_ == 0)
{
lean_ctor_set(v___x_10319_, 0, v___x_10347_);
v___x_10349_ = v___x_10319_;
goto v_reusejp_10348_;
}
else
{
lean_object* v_reuseFailAlloc_10350_; 
v_reuseFailAlloc_10350_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10350_, 0, v___x_10347_);
v___x_10349_ = v_reuseFailAlloc_10350_;
goto v_reusejp_10348_;
}
v_reusejp_10348_:
{
return v___x_10349_;
}
}
}
}
else
{
lean_object* v_a_10352_; lean_object* v___x_10354_; uint8_t v_isShared_10355_; uint8_t v_isSharedCheck_10359_; 
lean_dec(v_a_10298_);
lean_dec_ref(v_a_10297_);
lean_dec(v_a_10296_);
lean_dec_ref(v_a_10295_);
v_a_10352_ = lean_ctor_get(v___x_10316_, 0);
v_isSharedCheck_10359_ = !lean_is_exclusive(v___x_10316_);
if (v_isSharedCheck_10359_ == 0)
{
v___x_10354_ = v___x_10316_;
v_isShared_10355_ = v_isSharedCheck_10359_;
goto v_resetjp_10353_;
}
else
{
lean_inc(v_a_10352_);
lean_dec(v___x_10316_);
v___x_10354_ = lean_box(0);
v_isShared_10355_ = v_isSharedCheck_10359_;
goto v_resetjp_10353_;
}
v_resetjp_10353_:
{
lean_object* v___x_10357_; 
if (v_isShared_10355_ == 0)
{
v___x_10357_ = v___x_10354_;
goto v_reusejp_10356_;
}
else
{
lean_object* v_reuseFailAlloc_10358_; 
v_reuseFailAlloc_10358_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10358_, 0, v_a_10352_);
v___x_10357_ = v_reuseFailAlloc_10358_;
goto v_reusejp_10356_;
}
v_reusejp_10356_:
{
return v___x_10357_;
}
}
}
}
}
v___jp_10305_:
{
lean_object* v___x_10306_; lean_object* v___x_10308_; 
v___x_10306_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10304_ == 0)
{
lean_ctor_set(v___x_10303_, 0, v___x_10306_);
v___x_10308_ = v___x_10303_;
goto v_reusejp_10307_;
}
else
{
lean_object* v_reuseFailAlloc_10309_; 
v_reuseFailAlloc_10309_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10309_, 0, v___x_10306_);
v___x_10308_ = v_reuseFailAlloc_10309_;
goto v_reusejp_10307_;
}
v_reusejp_10307_:
{
return v___x_10308_;
}
}
}
}
else
{
lean_object* v_a_10361_; lean_object* v___x_10363_; uint8_t v_isShared_10364_; uint8_t v_isSharedCheck_10368_; 
lean_dec(v_a_10298_);
lean_dec_ref(v_a_10297_);
lean_dec(v_a_10296_);
lean_dec_ref(v_a_10295_);
v_a_10361_ = lean_ctor_get(v___x_10300_, 0);
v_isSharedCheck_10368_ = !lean_is_exclusive(v___x_10300_);
if (v_isSharedCheck_10368_ == 0)
{
v___x_10363_ = v___x_10300_;
v_isShared_10364_ = v_isSharedCheck_10368_;
goto v_resetjp_10362_;
}
else
{
lean_inc(v_a_10361_);
lean_dec(v___x_10300_);
v___x_10363_ = lean_box(0);
v_isShared_10364_ = v_isSharedCheck_10368_;
goto v_resetjp_10362_;
}
v_resetjp_10362_:
{
lean_object* v___x_10366_; 
if (v_isShared_10364_ == 0)
{
v___x_10366_ = v___x_10363_;
goto v_reusejp_10365_;
}
else
{
lean_object* v_reuseFailAlloc_10367_; 
v_reuseFailAlloc_10367_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10367_, 0, v_a_10361_);
v___x_10366_ = v_reuseFailAlloc_10367_;
goto v_reusejp_10365_;
}
v_reusejp_10365_:
{
return v___x_10366_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___redArg___boxed(lean_object* v_e_10369_, lean_object* v_a_10370_, lean_object* v_a_10371_, lean_object* v_a_10372_, lean_object* v_a_10373_, lean_object* v_a_10374_, lean_object* v_a_10375_){
_start:
{
lean_object* v_res_10376_; 
v_res_10376_ = l_BitVec_reduceAllOnes___redArg(v_e_10369_, v_a_10370_, v_a_10371_, v_a_10372_, v_a_10373_, v_a_10374_);
lean_dec_ref(v_a_10370_);
return v_res_10376_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes(lean_object* v_e_10377_, lean_object* v_a_10378_, lean_object* v_a_10379_, lean_object* v_a_10380_, lean_object* v_a_10381_, lean_object* v_a_10382_, lean_object* v_a_10383_, lean_object* v_a_10384_){
_start:
{
lean_object* v___x_10386_; 
v___x_10386_ = l_BitVec_reduceAllOnes___redArg(v_e_10377_, v_a_10379_, v_a_10381_, v_a_10382_, v_a_10383_, v_a_10384_);
return v___x_10386_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___boxed(lean_object* v_e_10387_, lean_object* v_a_10388_, lean_object* v_a_10389_, lean_object* v_a_10390_, lean_object* v_a_10391_, lean_object* v_a_10392_, lean_object* v_a_10393_, lean_object* v_a_10394_, lean_object* v_a_10395_){
_start:
{
lean_object* v_res_10396_; 
v_res_10396_ = l_BitVec_reduceAllOnes(v_e_10387_, v_a_10388_, v_a_10389_, v_a_10390_, v_a_10391_, v_a_10392_, v_a_10393_, v_a_10394_);
lean_dec(v_a_10390_);
lean_dec_ref(v_a_10389_);
lean_dec(v_a_10388_);
return v_res_10396_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_(){
_start:
{
lean_object* v___x_10411_; lean_object* v___x_10412_; lean_object* v___x_10413_; lean_object* v___x_10414_; 
v___x_10411_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_));
v___x_10412_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_));
v___x_10413_ = lean_alloc_closure((void*)(l_BitVec_reduceAllOnes___boxed), 9, 0);
v___x_10414_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_10411_, v___x_10412_, v___x_10413_);
return v___x_10414_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13____boxed(lean_object* v_a_10415_){
_start:
{
lean_object* v_res_10416_; 
v_res_10416_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_();
return v_res_10416_;
}
}
static lean_object* _init_l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_(void){
_start:
{
lean_object* v___x_10417_; lean_object* v___x_10418_; 
v___x_10417_ = lean_alloc_closure((void*)(l_BitVec_reduceAllOnes___boxed), 9, 0);
v___x_10418_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_10418_, 0, v___x_10417_);
return v___x_10418_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_(){
_start:
{
lean_object* v___x_10420_; uint8_t v___x_10421_; lean_object* v___x_10422_; lean_object* v___x_10423_; 
v___x_10420_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_));
v___x_10421_ = 1;
v___x_10422_ = lean_obj_once(&l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_, &l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15__once, _init_l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_);
v___x_10423_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_10420_, v___x_10421_, v___x_10422_);
return v___x_10423_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15____boxed(lean_object* v_a_10424_){
_start:
{
lean_object* v_res_10425_; 
v_res_10425_ = l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_();
return v_res_10425_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_17_(){
_start:
{
lean_object* v___x_10427_; uint8_t v___x_10428_; lean_object* v___x_10429_; lean_object* v___x_10430_; 
v___x_10427_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_));
v___x_10428_ = 1;
v___x_10429_ = lean_obj_once(&l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_, &l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15__once, _init_l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_);
v___x_10430_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_10427_, v___x_10428_, v___x_10429_);
return v___x_10430_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_17____boxed(lean_object* v_a_10431_){
_start:
{
lean_object* v_res_10432_; 
v_res_10432_ = l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_17_();
return v_res_10432_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___redArg(lean_object* v_e_10437_, lean_object* v_a_10438_, lean_object* v_a_10439_, lean_object* v_a_10440_, lean_object* v_a_10441_, lean_object* v_a_10442_){
_start:
{
lean_object* v___x_10444_; 
v___x_10444_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_10437_, v_a_10440_);
if (lean_obj_tag(v___x_10444_) == 0)
{
lean_object* v_a_10445_; lean_object* v___x_10447_; uint8_t v_isShared_10448_; uint8_t v_isSharedCheck_10527_; 
v_a_10445_ = lean_ctor_get(v___x_10444_, 0);
v_isSharedCheck_10527_ = !lean_is_exclusive(v___x_10444_);
if (v_isSharedCheck_10527_ == 0)
{
v___x_10447_ = v___x_10444_;
v_isShared_10448_ = v_isSharedCheck_10527_;
goto v_resetjp_10446_;
}
else
{
lean_inc(v_a_10445_);
lean_dec(v___x_10444_);
v___x_10447_ = lean_box(0);
v_isShared_10448_ = v_isSharedCheck_10527_;
goto v_resetjp_10446_;
}
v_resetjp_10446_:
{
lean_object* v___x_10454_; uint8_t v___x_10455_; 
v___x_10454_ = l_Lean_Expr_cleanupAnnotations(v_a_10445_);
v___x_10455_ = l_Lean_Expr_isApp(v___x_10454_);
if (v___x_10455_ == 0)
{
lean_dec_ref(v___x_10454_);
lean_dec(v_a_10442_);
lean_dec_ref(v_a_10441_);
lean_dec(v_a_10440_);
lean_dec_ref(v_a_10439_);
goto v___jp_10449_;
}
else
{
lean_object* v_arg_10456_; lean_object* v___x_10457_; uint8_t v___x_10458_; 
v_arg_10456_ = lean_ctor_get(v___x_10454_, 1);
lean_inc_ref(v_arg_10456_);
v___x_10457_ = l_Lean_Expr_appFnCleanup___redArg(v___x_10454_);
v___x_10458_ = l_Lean_Expr_isApp(v___x_10457_);
if (v___x_10458_ == 0)
{
lean_dec_ref(v___x_10457_);
lean_dec_ref(v_arg_10456_);
lean_dec(v_a_10442_);
lean_dec_ref(v_a_10441_);
lean_dec(v_a_10440_);
lean_dec_ref(v_a_10439_);
goto v___jp_10449_;
}
else
{
lean_object* v_arg_10459_; lean_object* v___x_10460_; lean_object* v___x_10461_; uint8_t v___x_10462_; 
v_arg_10459_ = lean_ctor_get(v___x_10457_, 1);
lean_inc_ref(v_arg_10459_);
v___x_10460_ = l_Lean_Expr_appFnCleanup___redArg(v___x_10457_);
v___x_10461_ = ((lean_object*)(l_BitVec_reduceBitVecOfFin___redArg___closed__1));
v___x_10462_ = l_Lean_Expr_isConstOf(v___x_10460_, v___x_10461_);
lean_dec_ref(v___x_10460_);
if (v___x_10462_ == 0)
{
lean_dec_ref(v_arg_10459_);
lean_dec_ref(v_arg_10456_);
lean_dec(v_a_10442_);
lean_dec_ref(v_a_10441_);
lean_dec(v_a_10440_);
lean_dec_ref(v_a_10439_);
goto v___jp_10449_;
}
else
{
lean_object* v___x_10463_; 
lean_del_object(v___x_10447_);
lean_inc_ref(v_a_10441_);
v___x_10463_ = l_Lean_Meta_evalNat(v_arg_10459_, v_a_10439_, v_a_10440_, v_a_10441_, v_a_10442_);
if (lean_obj_tag(v___x_10463_) == 0)
{
lean_object* v_a_10464_; lean_object* v___x_10466_; uint8_t v_isShared_10467_; uint8_t v_isSharedCheck_10518_; 
v_a_10464_ = lean_ctor_get(v___x_10463_, 0);
v_isSharedCheck_10518_ = !lean_is_exclusive(v___x_10463_);
if (v_isSharedCheck_10518_ == 0)
{
v___x_10466_ = v___x_10463_;
v_isShared_10467_ = v_isSharedCheck_10518_;
goto v_resetjp_10465_;
}
else
{
lean_inc(v_a_10464_);
lean_dec(v___x_10463_);
v___x_10466_ = lean_box(0);
v_isShared_10467_ = v_isSharedCheck_10518_;
goto v_resetjp_10465_;
}
v_resetjp_10465_:
{
if (lean_obj_tag(v_a_10464_) == 1)
{
lean_object* v_val_10468_; lean_object* v___x_10469_; 
lean_del_object(v___x_10466_);
v_val_10468_ = lean_ctor_get(v_a_10464_, 0);
lean_inc(v_val_10468_);
lean_dec_ref(v_a_10464_);
lean_inc(v_a_10442_);
lean_inc_ref(v_a_10441_);
lean_inc(v_a_10440_);
lean_inc_ref(v_a_10439_);
v___x_10469_ = l_Lean_Meta_getFinValue_x3f(v_arg_10456_, v_a_10439_, v_a_10440_, v_a_10441_, v_a_10442_);
if (lean_obj_tag(v___x_10469_) == 0)
{
lean_object* v_a_10470_; lean_object* v___x_10472_; uint8_t v_isShared_10473_; uint8_t v_isSharedCheck_10505_; 
v_a_10470_ = lean_ctor_get(v___x_10469_, 0);
v_isSharedCheck_10505_ = !lean_is_exclusive(v___x_10469_);
if (v_isSharedCheck_10505_ == 0)
{
v___x_10472_ = v___x_10469_;
v_isShared_10473_ = v_isSharedCheck_10505_;
goto v_resetjp_10471_;
}
else
{
lean_inc(v_a_10470_);
lean_dec(v___x_10469_);
v___x_10472_ = lean_box(0);
v_isShared_10473_ = v_isSharedCheck_10505_;
goto v_resetjp_10471_;
}
v_resetjp_10471_:
{
if (lean_obj_tag(v_a_10470_) == 1)
{
lean_object* v_val_10474_; lean_object* v___x_10476_; uint8_t v_isShared_10477_; uint8_t v_isSharedCheck_10500_; 
lean_del_object(v___x_10472_);
v_val_10474_ = lean_ctor_get(v_a_10470_, 0);
v_isSharedCheck_10500_ = !lean_is_exclusive(v_a_10470_);
if (v_isSharedCheck_10500_ == 0)
{
v___x_10476_ = v_a_10470_;
v_isShared_10477_ = v_isSharedCheck_10500_;
goto v_resetjp_10475_;
}
else
{
lean_inc(v_val_10474_);
lean_dec(v_a_10470_);
v___x_10476_ = lean_box(0);
v_isShared_10477_ = v_isSharedCheck_10500_;
goto v_resetjp_10475_;
}
v_resetjp_10475_:
{
lean_object* v_snd_10478_; lean_object* v___x_10479_; lean_object* v___x_10480_; 
v_snd_10478_ = lean_ctor_get(v_val_10474_, 1);
lean_inc(v_snd_10478_);
lean_dec(v_val_10474_);
v___x_10479_ = l_BitVec_ofNat(v_val_10468_, v_snd_10478_);
lean_dec(v_snd_10478_);
v___x_10480_ = l_BitVec_toExpr_x27___redArg(v_val_10468_, v___x_10479_, v_a_10438_, v_a_10439_, v_a_10440_, v_a_10441_, v_a_10442_);
if (lean_obj_tag(v___x_10480_) == 0)
{
lean_object* v_a_10481_; lean_object* v___x_10483_; uint8_t v_isShared_10484_; uint8_t v_isSharedCheck_10491_; 
v_a_10481_ = lean_ctor_get(v___x_10480_, 0);
v_isSharedCheck_10491_ = !lean_is_exclusive(v___x_10480_);
if (v_isSharedCheck_10491_ == 0)
{
v___x_10483_ = v___x_10480_;
v_isShared_10484_ = v_isSharedCheck_10491_;
goto v_resetjp_10482_;
}
else
{
lean_inc(v_a_10481_);
lean_dec(v___x_10480_);
v___x_10483_ = lean_box(0);
v_isShared_10484_ = v_isSharedCheck_10491_;
goto v_resetjp_10482_;
}
v_resetjp_10482_:
{
lean_object* v___x_10486_; 
if (v_isShared_10477_ == 0)
{
lean_ctor_set_tag(v___x_10476_, 0);
lean_ctor_set(v___x_10476_, 0, v_a_10481_);
v___x_10486_ = v___x_10476_;
goto v_reusejp_10485_;
}
else
{
lean_object* v_reuseFailAlloc_10490_; 
v_reuseFailAlloc_10490_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10490_, 0, v_a_10481_);
v___x_10486_ = v_reuseFailAlloc_10490_;
goto v_reusejp_10485_;
}
v_reusejp_10485_:
{
lean_object* v___x_10488_; 
if (v_isShared_10484_ == 0)
{
lean_ctor_set(v___x_10483_, 0, v___x_10486_);
v___x_10488_ = v___x_10483_;
goto v_reusejp_10487_;
}
else
{
lean_object* v_reuseFailAlloc_10489_; 
v_reuseFailAlloc_10489_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10489_, 0, v___x_10486_);
v___x_10488_ = v_reuseFailAlloc_10489_;
goto v_reusejp_10487_;
}
v_reusejp_10487_:
{
return v___x_10488_;
}
}
}
}
else
{
lean_object* v_a_10492_; lean_object* v___x_10494_; uint8_t v_isShared_10495_; uint8_t v_isSharedCheck_10499_; 
lean_del_object(v___x_10476_);
v_a_10492_ = lean_ctor_get(v___x_10480_, 0);
v_isSharedCheck_10499_ = !lean_is_exclusive(v___x_10480_);
if (v_isSharedCheck_10499_ == 0)
{
v___x_10494_ = v___x_10480_;
v_isShared_10495_ = v_isSharedCheck_10499_;
goto v_resetjp_10493_;
}
else
{
lean_inc(v_a_10492_);
lean_dec(v___x_10480_);
v___x_10494_ = lean_box(0);
v_isShared_10495_ = v_isSharedCheck_10499_;
goto v_resetjp_10493_;
}
v_resetjp_10493_:
{
lean_object* v___x_10497_; 
if (v_isShared_10495_ == 0)
{
v___x_10497_ = v___x_10494_;
goto v_reusejp_10496_;
}
else
{
lean_object* v_reuseFailAlloc_10498_; 
v_reuseFailAlloc_10498_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10498_, 0, v_a_10492_);
v___x_10497_ = v_reuseFailAlloc_10498_;
goto v_reusejp_10496_;
}
v_reusejp_10496_:
{
return v___x_10497_;
}
}
}
}
}
else
{
lean_object* v___x_10501_; lean_object* v___x_10503_; 
lean_dec(v_a_10470_);
lean_dec(v_val_10468_);
lean_dec(v_a_10442_);
lean_dec_ref(v_a_10441_);
lean_dec(v_a_10440_);
lean_dec_ref(v_a_10439_);
v___x_10501_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10473_ == 0)
{
lean_ctor_set(v___x_10472_, 0, v___x_10501_);
v___x_10503_ = v___x_10472_;
goto v_reusejp_10502_;
}
else
{
lean_object* v_reuseFailAlloc_10504_; 
v_reuseFailAlloc_10504_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10504_, 0, v___x_10501_);
v___x_10503_ = v_reuseFailAlloc_10504_;
goto v_reusejp_10502_;
}
v_reusejp_10502_:
{
return v___x_10503_;
}
}
}
}
else
{
lean_object* v_a_10506_; lean_object* v___x_10508_; uint8_t v_isShared_10509_; uint8_t v_isSharedCheck_10513_; 
lean_dec(v_val_10468_);
lean_dec(v_a_10442_);
lean_dec_ref(v_a_10441_);
lean_dec(v_a_10440_);
lean_dec_ref(v_a_10439_);
v_a_10506_ = lean_ctor_get(v___x_10469_, 0);
v_isSharedCheck_10513_ = !lean_is_exclusive(v___x_10469_);
if (v_isSharedCheck_10513_ == 0)
{
v___x_10508_ = v___x_10469_;
v_isShared_10509_ = v_isSharedCheck_10513_;
goto v_resetjp_10507_;
}
else
{
lean_inc(v_a_10506_);
lean_dec(v___x_10469_);
v___x_10508_ = lean_box(0);
v_isShared_10509_ = v_isSharedCheck_10513_;
goto v_resetjp_10507_;
}
v_resetjp_10507_:
{
lean_object* v___x_10511_; 
if (v_isShared_10509_ == 0)
{
v___x_10511_ = v___x_10508_;
goto v_reusejp_10510_;
}
else
{
lean_object* v_reuseFailAlloc_10512_; 
v_reuseFailAlloc_10512_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10512_, 0, v_a_10506_);
v___x_10511_ = v_reuseFailAlloc_10512_;
goto v_reusejp_10510_;
}
v_reusejp_10510_:
{
return v___x_10511_;
}
}
}
}
else
{
lean_object* v___x_10514_; lean_object* v___x_10516_; 
lean_dec(v_a_10464_);
lean_dec_ref(v_arg_10456_);
lean_dec(v_a_10442_);
lean_dec_ref(v_a_10441_);
lean_dec(v_a_10440_);
lean_dec_ref(v_a_10439_);
v___x_10514_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10467_ == 0)
{
lean_ctor_set(v___x_10466_, 0, v___x_10514_);
v___x_10516_ = v___x_10466_;
goto v_reusejp_10515_;
}
else
{
lean_object* v_reuseFailAlloc_10517_; 
v_reuseFailAlloc_10517_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10517_, 0, v___x_10514_);
v___x_10516_ = v_reuseFailAlloc_10517_;
goto v_reusejp_10515_;
}
v_reusejp_10515_:
{
return v___x_10516_;
}
}
}
}
else
{
lean_object* v_a_10519_; lean_object* v___x_10521_; uint8_t v_isShared_10522_; uint8_t v_isSharedCheck_10526_; 
lean_dec_ref(v_arg_10456_);
lean_dec(v_a_10442_);
lean_dec_ref(v_a_10441_);
lean_dec(v_a_10440_);
lean_dec_ref(v_a_10439_);
v_a_10519_ = lean_ctor_get(v___x_10463_, 0);
v_isSharedCheck_10526_ = !lean_is_exclusive(v___x_10463_);
if (v_isSharedCheck_10526_ == 0)
{
v___x_10521_ = v___x_10463_;
v_isShared_10522_ = v_isSharedCheck_10526_;
goto v_resetjp_10520_;
}
else
{
lean_inc(v_a_10519_);
lean_dec(v___x_10463_);
v___x_10521_ = lean_box(0);
v_isShared_10522_ = v_isSharedCheck_10526_;
goto v_resetjp_10520_;
}
v_resetjp_10520_:
{
lean_object* v___x_10524_; 
if (v_isShared_10522_ == 0)
{
v___x_10524_ = v___x_10521_;
goto v_reusejp_10523_;
}
else
{
lean_object* v_reuseFailAlloc_10525_; 
v_reuseFailAlloc_10525_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10525_, 0, v_a_10519_);
v___x_10524_ = v_reuseFailAlloc_10525_;
goto v_reusejp_10523_;
}
v_reusejp_10523_:
{
return v___x_10524_;
}
}
}
}
}
}
v___jp_10449_:
{
lean_object* v___x_10450_; lean_object* v___x_10452_; 
v___x_10450_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10448_ == 0)
{
lean_ctor_set(v___x_10447_, 0, v___x_10450_);
v___x_10452_ = v___x_10447_;
goto v_reusejp_10451_;
}
else
{
lean_object* v_reuseFailAlloc_10453_; 
v_reuseFailAlloc_10453_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10453_, 0, v___x_10450_);
v___x_10452_ = v_reuseFailAlloc_10453_;
goto v_reusejp_10451_;
}
v_reusejp_10451_:
{
return v___x_10452_;
}
}
}
}
else
{
lean_object* v_a_10528_; lean_object* v___x_10530_; uint8_t v_isShared_10531_; uint8_t v_isSharedCheck_10535_; 
lean_dec(v_a_10442_);
lean_dec_ref(v_a_10441_);
lean_dec(v_a_10440_);
lean_dec_ref(v_a_10439_);
v_a_10528_ = lean_ctor_get(v___x_10444_, 0);
v_isSharedCheck_10535_ = !lean_is_exclusive(v___x_10444_);
if (v_isSharedCheck_10535_ == 0)
{
v___x_10530_ = v___x_10444_;
v_isShared_10531_ = v_isSharedCheck_10535_;
goto v_resetjp_10529_;
}
else
{
lean_inc(v_a_10528_);
lean_dec(v___x_10444_);
v___x_10530_ = lean_box(0);
v_isShared_10531_ = v_isSharedCheck_10535_;
goto v_resetjp_10529_;
}
v_resetjp_10529_:
{
lean_object* v___x_10533_; 
if (v_isShared_10531_ == 0)
{
v___x_10533_ = v___x_10530_;
goto v_reusejp_10532_;
}
else
{
lean_object* v_reuseFailAlloc_10534_; 
v_reuseFailAlloc_10534_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10534_, 0, v_a_10528_);
v___x_10533_ = v_reuseFailAlloc_10534_;
goto v_reusejp_10532_;
}
v_reusejp_10532_:
{
return v___x_10533_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___redArg___boxed(lean_object* v_e_10536_, lean_object* v_a_10537_, lean_object* v_a_10538_, lean_object* v_a_10539_, lean_object* v_a_10540_, lean_object* v_a_10541_, lean_object* v_a_10542_){
_start:
{
lean_object* v_res_10543_; 
v_res_10543_ = l_BitVec_reduceBitVecOfFin___redArg(v_e_10536_, v_a_10537_, v_a_10538_, v_a_10539_, v_a_10540_, v_a_10541_);
lean_dec_ref(v_a_10537_);
return v_res_10543_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin(lean_object* v_e_10544_, lean_object* v_a_10545_, lean_object* v_a_10546_, lean_object* v_a_10547_, lean_object* v_a_10548_, lean_object* v_a_10549_, lean_object* v_a_10550_, lean_object* v_a_10551_){
_start:
{
lean_object* v___x_10553_; 
v___x_10553_ = l_BitVec_reduceBitVecOfFin___redArg(v_e_10544_, v_a_10546_, v_a_10548_, v_a_10549_, v_a_10550_, v_a_10551_);
return v___x_10553_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___boxed(lean_object* v_e_10554_, lean_object* v_a_10555_, lean_object* v_a_10556_, lean_object* v_a_10557_, lean_object* v_a_10558_, lean_object* v_a_10559_, lean_object* v_a_10560_, lean_object* v_a_10561_, lean_object* v_a_10562_){
_start:
{
lean_object* v_res_10563_; 
v_res_10563_ = l_BitVec_reduceBitVecOfFin(v_e_10554_, v_a_10555_, v_a_10556_, v_a_10557_, v_a_10558_, v_a_10559_, v_a_10560_, v_a_10561_);
lean_dec(v_a_10557_);
lean_dec_ref(v_a_10556_);
lean_dec(v_a_10555_);
return v_res_10563_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_(){
_start:
{
lean_object* v___x_10579_; lean_object* v___x_10580_; lean_object* v___x_10581_; lean_object* v___x_10582_; 
v___x_10579_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_));
v___x_10580_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_));
v___x_10581_ = lean_alloc_closure((void*)(l_BitVec_reduceBitVecOfFin___boxed), 9, 0);
v___x_10582_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_10579_, v___x_10580_, v___x_10581_);
return v___x_10582_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13____boxed(lean_object* v_a_10583_){
_start:
{
lean_object* v_res_10584_; 
v_res_10584_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_();
return v_res_10584_;
}
}
static lean_object* _init_l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_(void){
_start:
{
lean_object* v___x_10585_; lean_object* v___x_10586_; 
v___x_10585_ = lean_alloc_closure((void*)(l_BitVec_reduceBitVecOfFin___boxed), 9, 0);
v___x_10586_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_10586_, 0, v___x_10585_);
return v___x_10586_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_(){
_start:
{
lean_object* v___x_10588_; uint8_t v___x_10589_; lean_object* v___x_10590_; lean_object* v___x_10591_; 
v___x_10588_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_));
v___x_10589_ = 1;
v___x_10590_ = lean_obj_once(&l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_, &l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15__once, _init_l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_);
v___x_10591_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_10588_, v___x_10589_, v___x_10590_);
return v___x_10591_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15____boxed(lean_object* v_a_10592_){
_start:
{
lean_object* v_res_10593_; 
v_res_10593_ = l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_();
return v_res_10593_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_17_(){
_start:
{
lean_object* v___x_10595_; uint8_t v___x_10596_; lean_object* v___x_10597_; lean_object* v___x_10598_; 
v___x_10595_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_));
v___x_10596_ = 1;
v___x_10597_ = lean_obj_once(&l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_, &l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15__once, _init_l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_);
v___x_10598_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_10595_, v___x_10596_, v___x_10597_);
return v___x_10598_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_17____boxed(lean_object* v_a_10599_){
_start:
{
lean_object* v_res_10600_; 
v_res_10600_ = l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_17_();
return v_res_10600_;
}
}
static lean_object* _init_l_BitVec_reduceBitVecToFin___redArg___closed__4(void){
_start:
{
lean_object* v___x_10609_; lean_object* v___x_10610_; lean_object* v___x_10611_; 
v___x_10609_ = lean_obj_once(&l_BitVec_reduceToInt___redArg___closed__4, &l_BitVec_reduceToInt___redArg___closed__4_once, _init_l_BitVec_reduceToInt___redArg___closed__4);
v___x_10610_ = ((lean_object*)(l_BitVec_reduceBitVecToFin___redArg___closed__3));
v___x_10611_ = l_Lean_Expr_const___override(v___x_10610_, v___x_10609_);
return v___x_10611_;
}
}
static lean_object* _init_l_BitVec_reduceBitVecToFin___redArg___closed__7(void){
_start:
{
lean_object* v___x_10615_; lean_object* v___x_10616_; lean_object* v___x_10617_; 
v___x_10615_ = lean_box(0);
v___x_10616_ = ((lean_object*)(l_BitVec_reduceBitVecToFin___redArg___closed__6));
v___x_10617_ = l_Lean_mkConst(v___x_10616_, v___x_10615_);
return v___x_10617_;
}
}
static lean_object* _init_l_BitVec_reduceBitVecToFin___redArg___closed__10(void){
_start:
{
lean_object* v___x_10622_; lean_object* v___x_10623_; lean_object* v___x_10624_; 
v___x_10622_ = lean_box(0);
v___x_10623_ = ((lean_object*)(l_BitVec_reduceBitVecToFin___redArg___closed__9));
v___x_10624_ = l_Lean_Expr_const___override(v___x_10623_, v___x_10622_);
return v___x_10624_;
}
}
static lean_object* _init_l_BitVec_reduceBitVecToFin___redArg___closed__14(void){
_start:
{
lean_object* v___x_10630_; lean_object* v___x_10631_; lean_object* v___x_10632_; 
v___x_10630_ = lean_box(0);
v___x_10631_ = ((lean_object*)(l_BitVec_reduceBitVecToFin___redArg___closed__13));
v___x_10632_ = l_Lean_Expr_const___override(v___x_10631_, v___x_10630_);
return v___x_10632_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___redArg(lean_object* v_e_10633_, lean_object* v_a_10634_, lean_object* v_a_10635_, lean_object* v_a_10636_, lean_object* v_a_10637_){
_start:
{
lean_object* v___x_10639_; 
v___x_10639_ = l_Lean_Meta_instantiateMVarsIfMVarApp___redArg(v_e_10633_, v_a_10635_);
if (lean_obj_tag(v___x_10639_) == 0)
{
lean_object* v_a_10640_; lean_object* v___x_10642_; uint8_t v_isShared_10643_; uint8_t v_isSharedCheck_10703_; 
v_a_10640_ = lean_ctor_get(v___x_10639_, 0);
v_isSharedCheck_10703_ = !lean_is_exclusive(v___x_10639_);
if (v_isSharedCheck_10703_ == 0)
{
v___x_10642_ = v___x_10639_;
v_isShared_10643_ = v_isSharedCheck_10703_;
goto v_resetjp_10641_;
}
else
{
lean_inc(v_a_10640_);
lean_dec(v___x_10639_);
v___x_10642_ = lean_box(0);
v_isShared_10643_ = v_isSharedCheck_10703_;
goto v_resetjp_10641_;
}
v_resetjp_10641_:
{
lean_object* v___x_10649_; uint8_t v___x_10650_; 
v___x_10649_ = l_Lean_Expr_cleanupAnnotations(v_a_10640_);
v___x_10650_ = l_Lean_Expr_isApp(v___x_10649_);
if (v___x_10650_ == 0)
{
lean_dec_ref(v___x_10649_);
lean_dec(v_a_10637_);
lean_dec_ref(v_a_10636_);
lean_dec(v_a_10635_);
lean_dec_ref(v_a_10634_);
goto v___jp_10644_;
}
else
{
lean_object* v_arg_10651_; lean_object* v___x_10652_; uint8_t v___x_10653_; 
v_arg_10651_ = lean_ctor_get(v___x_10649_, 1);
lean_inc_ref(v_arg_10651_);
v___x_10652_ = l_Lean_Expr_appFnCleanup___redArg(v___x_10649_);
v___x_10653_ = l_Lean_Expr_isApp(v___x_10652_);
if (v___x_10653_ == 0)
{
lean_dec_ref(v___x_10652_);
lean_dec_ref(v_arg_10651_);
lean_dec(v_a_10637_);
lean_dec_ref(v_a_10636_);
lean_dec(v_a_10635_);
lean_dec_ref(v_a_10634_);
goto v___jp_10644_;
}
else
{
lean_object* v___x_10654_; lean_object* v___x_10655_; uint8_t v___x_10656_; 
v___x_10654_ = l_Lean_Expr_appFnCleanup___redArg(v___x_10652_);
v___x_10655_ = ((lean_object*)(l_BitVec_reduceBitVecToFin___redArg___closed__1));
v___x_10656_ = l_Lean_Expr_isConstOf(v___x_10654_, v___x_10655_);
lean_dec_ref(v___x_10654_);
if (v___x_10656_ == 0)
{
lean_dec_ref(v_arg_10651_);
lean_dec(v_a_10637_);
lean_dec_ref(v_a_10636_);
lean_dec(v_a_10635_);
lean_dec_ref(v_a_10634_);
goto v___jp_10644_;
}
else
{
lean_object* v___x_10657_; 
lean_del_object(v___x_10642_);
v___x_10657_ = l_Lean_Meta_getBitVecValue_x3f(v_arg_10651_, v_a_10634_, v_a_10635_, v_a_10636_, v_a_10637_);
if (lean_obj_tag(v___x_10657_) == 0)
{
lean_object* v_a_10658_; lean_object* v___x_10660_; uint8_t v_isShared_10661_; uint8_t v_isSharedCheck_10694_; 
v_a_10658_ = lean_ctor_get(v___x_10657_, 0);
v_isSharedCheck_10694_ = !lean_is_exclusive(v___x_10657_);
if (v_isSharedCheck_10694_ == 0)
{
v___x_10660_ = v___x_10657_;
v_isShared_10661_ = v_isSharedCheck_10694_;
goto v_resetjp_10659_;
}
else
{
lean_inc(v_a_10658_);
lean_dec(v___x_10657_);
v___x_10660_ = lean_box(0);
v_isShared_10661_ = v_isSharedCheck_10694_;
goto v_resetjp_10659_;
}
v_resetjp_10659_:
{
if (lean_obj_tag(v_a_10658_) == 1)
{
lean_object* v_val_10662_; lean_object* v___x_10664_; uint8_t v_isShared_10665_; uint8_t v_isSharedCheck_10689_; 
v_val_10662_ = lean_ctor_get(v_a_10658_, 0);
v_isSharedCheck_10689_ = !lean_is_exclusive(v_a_10658_);
if (v_isSharedCheck_10689_ == 0)
{
v___x_10664_ = v_a_10658_;
v_isShared_10665_ = v_isSharedCheck_10689_;
goto v_resetjp_10663_;
}
else
{
lean_inc(v_val_10662_);
lean_dec(v_a_10658_);
v___x_10664_ = lean_box(0);
v_isShared_10665_ = v_isSharedCheck_10689_;
goto v_resetjp_10663_;
}
v_resetjp_10663_:
{
lean_object* v_fst_10666_; lean_object* v_snd_10667_; lean_object* v___x_10668_; lean_object* v___x_10669_; lean_object* v_r_10670_; lean_object* v___x_10671_; lean_object* v___x_10672_; lean_object* v___x_10673_; lean_object* v___x_10674_; lean_object* v___x_10675_; lean_object* v___x_10676_; lean_object* v___x_10677_; lean_object* v___x_10678_; lean_object* v___x_10679_; lean_object* v___x_10680_; lean_object* v___x_10681_; lean_object* v___x_10682_; lean_object* v___x_10684_; 
v_fst_10666_ = lean_ctor_get(v_val_10662_, 0);
lean_inc(v_fst_10666_);
v_snd_10667_ = lean_ctor_get(v_val_10662_, 1);
lean_inc(v_snd_10667_);
lean_dec(v_val_10662_);
v___x_10668_ = lean_unsigned_to_nat(2u);
v___x_10669_ = lean_nat_pow(v___x_10668_, v_fst_10666_);
lean_dec(v_fst_10666_);
v_r_10670_ = l_Lean_mkRawNatLit(v_snd_10667_);
v___x_10671_ = lean_obj_once(&l_BitVec_reduceBitVecToFin___redArg___closed__4, &l_BitVec_reduceBitVecToFin___redArg___closed__4_once, _init_l_BitVec_reduceBitVecToFin___redArg___closed__4);
v___x_10672_ = lean_obj_once(&l_BitVec_reduceBitVecToFin___redArg___closed__7, &l_BitVec_reduceBitVecToFin___redArg___closed__7_once, _init_l_BitVec_reduceBitVecToFin___redArg___closed__7);
lean_inc(v___x_10669_);
v___x_10673_ = l_Lean_mkNatLit(v___x_10669_);
lean_inc_ref(v___x_10673_);
v___x_10674_ = l_Lean_Expr_app___override(v___x_10672_, v___x_10673_);
v___x_10675_ = lean_obj_once(&l_BitVec_reduceBitVecToFin___redArg___closed__10, &l_BitVec_reduceBitVecToFin___redArg___closed__10_once, _init_l_BitVec_reduceBitVecToFin___redArg___closed__10);
v___x_10676_ = lean_obj_once(&l_BitVec_reduceBitVecToFin___redArg___closed__14, &l_BitVec_reduceBitVecToFin___redArg___closed__14_once, _init_l_BitVec_reduceBitVecToFin___redArg___closed__14);
v___x_10677_ = lean_unsigned_to_nat(1u);
v___x_10678_ = lean_nat_sub(v___x_10669_, v___x_10677_);
lean_dec(v___x_10669_);
v___x_10679_ = l_Lean_mkNatLit(v___x_10678_);
v___x_10680_ = l_Lean_Expr_app___override(v___x_10676_, v___x_10679_);
lean_inc_ref(v_r_10670_);
v___x_10681_ = l_Lean_mkApp3(v___x_10675_, v___x_10673_, v___x_10680_, v_r_10670_);
v___x_10682_ = l_Lean_mkApp3(v___x_10671_, v___x_10674_, v_r_10670_, v___x_10681_);
if (v_isShared_10665_ == 0)
{
lean_ctor_set_tag(v___x_10664_, 0);
lean_ctor_set(v___x_10664_, 0, v___x_10682_);
v___x_10684_ = v___x_10664_;
goto v_reusejp_10683_;
}
else
{
lean_object* v_reuseFailAlloc_10688_; 
v_reuseFailAlloc_10688_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10688_, 0, v___x_10682_);
v___x_10684_ = v_reuseFailAlloc_10688_;
goto v_reusejp_10683_;
}
v_reusejp_10683_:
{
lean_object* v___x_10686_; 
if (v_isShared_10661_ == 0)
{
lean_ctor_set(v___x_10660_, 0, v___x_10684_);
v___x_10686_ = v___x_10660_;
goto v_reusejp_10685_;
}
else
{
lean_object* v_reuseFailAlloc_10687_; 
v_reuseFailAlloc_10687_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10687_, 0, v___x_10684_);
v___x_10686_ = v_reuseFailAlloc_10687_;
goto v_reusejp_10685_;
}
v_reusejp_10685_:
{
return v___x_10686_;
}
}
}
}
else
{
lean_object* v___x_10690_; lean_object* v___x_10692_; 
lean_dec(v_a_10658_);
v___x_10690_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10661_ == 0)
{
lean_ctor_set(v___x_10660_, 0, v___x_10690_);
v___x_10692_ = v___x_10660_;
goto v_reusejp_10691_;
}
else
{
lean_object* v_reuseFailAlloc_10693_; 
v_reuseFailAlloc_10693_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10693_, 0, v___x_10690_);
v___x_10692_ = v_reuseFailAlloc_10693_;
goto v_reusejp_10691_;
}
v_reusejp_10691_:
{
return v___x_10692_;
}
}
}
}
else
{
lean_object* v_a_10695_; lean_object* v___x_10697_; uint8_t v_isShared_10698_; uint8_t v_isSharedCheck_10702_; 
v_a_10695_ = lean_ctor_get(v___x_10657_, 0);
v_isSharedCheck_10702_ = !lean_is_exclusive(v___x_10657_);
if (v_isSharedCheck_10702_ == 0)
{
v___x_10697_ = v___x_10657_;
v_isShared_10698_ = v_isSharedCheck_10702_;
goto v_resetjp_10696_;
}
else
{
lean_inc(v_a_10695_);
lean_dec(v___x_10657_);
v___x_10697_ = lean_box(0);
v_isShared_10698_ = v_isSharedCheck_10702_;
goto v_resetjp_10696_;
}
v_resetjp_10696_:
{
lean_object* v___x_10700_; 
if (v_isShared_10698_ == 0)
{
v___x_10700_ = v___x_10697_;
goto v_reusejp_10699_;
}
else
{
lean_object* v_reuseFailAlloc_10701_; 
v_reuseFailAlloc_10701_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10701_, 0, v_a_10695_);
v___x_10700_ = v_reuseFailAlloc_10701_;
goto v_reusejp_10699_;
}
v_reusejp_10699_:
{
return v___x_10700_;
}
}
}
}
}
}
v___jp_10644_:
{
lean_object* v___x_10645_; lean_object* v___x_10647_; 
v___x_10645_ = ((lean_object*)(l_BitVec_reduceUnary___redArg___closed__0));
if (v_isShared_10643_ == 0)
{
lean_ctor_set(v___x_10642_, 0, v___x_10645_);
v___x_10647_ = v___x_10642_;
goto v_reusejp_10646_;
}
else
{
lean_object* v_reuseFailAlloc_10648_; 
v_reuseFailAlloc_10648_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10648_, 0, v___x_10645_);
v___x_10647_ = v_reuseFailAlloc_10648_;
goto v_reusejp_10646_;
}
v_reusejp_10646_:
{
return v___x_10647_;
}
}
}
}
else
{
lean_object* v_a_10704_; lean_object* v___x_10706_; uint8_t v_isShared_10707_; uint8_t v_isSharedCheck_10711_; 
lean_dec(v_a_10637_);
lean_dec_ref(v_a_10636_);
lean_dec(v_a_10635_);
lean_dec_ref(v_a_10634_);
v_a_10704_ = lean_ctor_get(v___x_10639_, 0);
v_isSharedCheck_10711_ = !lean_is_exclusive(v___x_10639_);
if (v_isSharedCheck_10711_ == 0)
{
v___x_10706_ = v___x_10639_;
v_isShared_10707_ = v_isSharedCheck_10711_;
goto v_resetjp_10705_;
}
else
{
lean_inc(v_a_10704_);
lean_dec(v___x_10639_);
v___x_10706_ = lean_box(0);
v_isShared_10707_ = v_isSharedCheck_10711_;
goto v_resetjp_10705_;
}
v_resetjp_10705_:
{
lean_object* v___x_10709_; 
if (v_isShared_10707_ == 0)
{
v___x_10709_ = v___x_10706_;
goto v_reusejp_10708_;
}
else
{
lean_object* v_reuseFailAlloc_10710_; 
v_reuseFailAlloc_10710_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10710_, 0, v_a_10704_);
v___x_10709_ = v_reuseFailAlloc_10710_;
goto v_reusejp_10708_;
}
v_reusejp_10708_:
{
return v___x_10709_;
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___redArg___boxed(lean_object* v_e_10712_, lean_object* v_a_10713_, lean_object* v_a_10714_, lean_object* v_a_10715_, lean_object* v_a_10716_, lean_object* v_a_10717_){
_start:
{
lean_object* v_res_10718_; 
v_res_10718_ = l_BitVec_reduceBitVecToFin___redArg(v_e_10712_, v_a_10713_, v_a_10714_, v_a_10715_, v_a_10716_);
return v_res_10718_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin(lean_object* v_e_10719_, lean_object* v_a_10720_, lean_object* v_a_10721_, lean_object* v_a_10722_, lean_object* v_a_10723_, lean_object* v_a_10724_, lean_object* v_a_10725_, lean_object* v_a_10726_){
_start:
{
lean_object* v___x_10728_; 
v___x_10728_ = l_BitVec_reduceBitVecToFin___redArg(v_e_10719_, v_a_10723_, v_a_10724_, v_a_10725_, v_a_10726_);
return v___x_10728_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___boxed(lean_object* v_e_10729_, lean_object* v_a_10730_, lean_object* v_a_10731_, lean_object* v_a_10732_, lean_object* v_a_10733_, lean_object* v_a_10734_, lean_object* v_a_10735_, lean_object* v_a_10736_, lean_object* v_a_10737_){
_start:
{
lean_object* v_res_10738_; 
v_res_10738_ = l_BitVec_reduceBitVecToFin(v_e_10729_, v_a_10730_, v_a_10731_, v_a_10732_, v_a_10733_, v_a_10734_, v_a_10735_, v_a_10736_);
lean_dec(v_a_10732_);
lean_dec_ref(v_a_10731_);
lean_dec(v_a_10730_);
return v_res_10738_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_(){
_start:
{
lean_object* v___x_10753_; lean_object* v___x_10754_; lean_object* v___x_10755_; lean_object* v___x_10756_; 
v___x_10753_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_));
v___x_10754_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_));
v___x_10755_ = lean_alloc_closure((void*)(l_BitVec_reduceBitVecToFin___boxed), 9, 0);
v___x_10756_ = l_Lean_Meta_Simp_registerBuiltinDSimproc(v___x_10753_, v___x_10754_, v___x_10755_);
return v___x_10756_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13____boxed(lean_object* v_a_10757_){
_start:
{
lean_object* v_res_10758_; 
v_res_10758_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_();
return v_res_10758_;
}
}
static lean_object* _init_l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_(void){
_start:
{
lean_object* v___x_10759_; lean_object* v___x_10760_; 
v___x_10759_ = lean_alloc_closure((void*)(l_BitVec_reduceBitVecToFin___boxed), 9, 0);
v___x_10760_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v___x_10760_, 0, v___x_10759_);
return v___x_10760_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_(){
_start:
{
lean_object* v___x_10762_; uint8_t v___x_10763_; lean_object* v___x_10764_; lean_object* v___x_10765_; 
v___x_10762_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_));
v___x_10763_ = 1;
v___x_10764_ = lean_obj_once(&l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_, &l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15__once, _init_l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_);
v___x_10765_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_10762_, v___x_10763_, v___x_10764_);
return v___x_10765_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15____boxed(lean_object* v_a_10766_){
_start:
{
lean_object* v_res_10767_; 
v_res_10767_ = l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_();
return v_res_10767_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_17_(){
_start:
{
lean_object* v___x_10769_; uint8_t v___x_10770_; lean_object* v___x_10771_; lean_object* v___x_10772_; 
v___x_10769_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_));
v___x_10770_ = 1;
v___x_10771_ = lean_obj_once(&l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_, &l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15__once, _init_l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_);
v___x_10772_ = l_Lean_Meta_Simp_addSEvalprocBuiltinAttr(v___x_10769_, v___x_10770_, v___x_10771_);
return v___x_10772_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_17____boxed(lean_object* v_a_10773_){
_start:
{
lean_object* v_res_10774_; 
v_res_10774_ = l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_17_();
return v_res_10774_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftShift___redArg(lean_object* v_declName_10775_, lean_object* v_thmName_10776_, lean_object* v_e_10777_, lean_object* v_a_10778_, lean_object* v_a_10779_, lean_object* v_a_10780_, lean_object* v_a_10781_){
_start:
{
lean_object* v___x_10783_; uint8_t v___x_10784_; 
v___x_10783_ = lean_unsigned_to_nat(6u);
v___x_10784_ = l_Lean_Expr_isAppOfArity(v_e_10777_, v_declName_10775_, v___x_10783_);
if (v___x_10784_ == 0)
{
lean_object* v___x_10785_; lean_object* v___x_10786_; 
lean_dec(v_a_10781_);
lean_dec_ref(v_a_10780_);
lean_dec(v_a_10779_);
lean_dec_ref(v_a_10778_);
lean_dec(v_thmName_10776_);
lean_dec(v_declName_10775_);
v___x_10785_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_10786_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_10786_, 0, v___x_10785_);
return v___x_10786_;
}
else
{
lean_object* v___x_10787_; lean_object* v___x_10788_; 
v___x_10787_ = l_Lean_Expr_appArg_x21(v_e_10777_);
lean_inc(v_a_10781_);
lean_inc_ref(v_a_10780_);
lean_inc(v_a_10779_);
lean_inc_ref(v_a_10778_);
v___x_10788_ = l_Lean_Meta_getNatValue_x3f(v___x_10787_, v_a_10778_, v_a_10779_, v_a_10780_, v_a_10781_);
if (lean_obj_tag(v___x_10788_) == 0)
{
lean_object* v_a_10789_; lean_object* v___x_10791_; uint8_t v_isShared_10792_; uint8_t v_isSharedCheck_10890_; 
v_a_10789_ = lean_ctor_get(v___x_10788_, 0);
v_isSharedCheck_10890_ = !lean_is_exclusive(v___x_10788_);
if (v_isSharedCheck_10890_ == 0)
{
v___x_10791_ = v___x_10788_;
v_isShared_10792_ = v_isSharedCheck_10890_;
goto v_resetjp_10790_;
}
else
{
lean_inc(v_a_10789_);
lean_dec(v___x_10788_);
v___x_10791_ = lean_box(0);
v_isShared_10792_ = v_isSharedCheck_10890_;
goto v_resetjp_10790_;
}
v_resetjp_10790_:
{
if (lean_obj_tag(v_a_10789_) == 1)
{
lean_object* v_val_10793_; lean_object* v___x_10795_; uint8_t v_isShared_10796_; uint8_t v_isSharedCheck_10885_; 
v_val_10793_ = lean_ctor_get(v_a_10789_, 0);
v_isSharedCheck_10885_ = !lean_is_exclusive(v_a_10789_);
if (v_isSharedCheck_10885_ == 0)
{
v___x_10795_ = v_a_10789_;
v_isShared_10796_ = v_isSharedCheck_10885_;
goto v_resetjp_10794_;
}
else
{
lean_inc(v_val_10793_);
lean_dec(v_a_10789_);
v___x_10795_ = lean_box(0);
v_isShared_10796_ = v_isSharedCheck_10885_;
goto v_resetjp_10794_;
}
v_resetjp_10794_:
{
lean_object* v___x_10797_; lean_object* v_aux_10798_; uint8_t v___x_10799_; 
v___x_10797_ = l_Lean_Expr_appFn_x21(v_e_10777_);
v_aux_10798_ = l_Lean_Expr_appArg_x21(v___x_10797_);
lean_dec_ref(v___x_10797_);
v___x_10799_ = l_Lean_Expr_isAppOfArity(v_aux_10798_, v_declName_10775_, v___x_10783_);
if (v___x_10799_ == 0)
{
lean_object* v___x_10800_; lean_object* v___x_10802_; 
lean_dec_ref(v_aux_10798_);
lean_del_object(v___x_10795_);
lean_dec(v_val_10793_);
lean_dec_ref(v___x_10787_);
lean_dec(v_a_10781_);
lean_dec_ref(v_a_10780_);
lean_dec(v_a_10779_);
lean_dec_ref(v_a_10778_);
lean_dec(v_thmName_10776_);
lean_dec(v_declName_10775_);
v___x_10800_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_10792_ == 0)
{
lean_ctor_set(v___x_10791_, 0, v___x_10800_);
v___x_10802_ = v___x_10791_;
goto v_reusejp_10801_;
}
else
{
lean_object* v_reuseFailAlloc_10803_; 
v_reuseFailAlloc_10803_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10803_, 0, v___x_10800_);
v___x_10802_ = v_reuseFailAlloc_10803_;
goto v_reusejp_10801_;
}
v_reusejp_10801_:
{
return v___x_10802_;
}
}
else
{
lean_object* v___x_10804_; lean_object* v___x_10805_; 
lean_del_object(v___x_10791_);
v___x_10804_ = l_Lean_Expr_appArg_x21(v_aux_10798_);
lean_inc(v_a_10781_);
lean_inc_ref(v_a_10780_);
lean_inc(v_a_10779_);
lean_inc_ref(v_a_10778_);
v___x_10805_ = l_Lean_Meta_getNatValue_x3f(v___x_10804_, v_a_10778_, v_a_10779_, v_a_10780_, v_a_10781_);
if (lean_obj_tag(v___x_10805_) == 0)
{
lean_object* v_a_10806_; lean_object* v___x_10808_; uint8_t v_isShared_10809_; uint8_t v_isSharedCheck_10876_; 
v_a_10806_ = lean_ctor_get(v___x_10805_, 0);
v_isSharedCheck_10876_ = !lean_is_exclusive(v___x_10805_);
if (v_isSharedCheck_10876_ == 0)
{
v___x_10808_ = v___x_10805_;
v_isShared_10809_ = v_isSharedCheck_10876_;
goto v_resetjp_10807_;
}
else
{
lean_inc(v_a_10806_);
lean_dec(v___x_10805_);
v___x_10808_ = lean_box(0);
v_isShared_10809_ = v_isSharedCheck_10876_;
goto v_resetjp_10807_;
}
v_resetjp_10807_:
{
if (lean_obj_tag(v_a_10806_) == 1)
{
lean_object* v_val_10810_; lean_object* v___x_10812_; uint8_t v_isShared_10813_; uint8_t v_isSharedCheck_10871_; 
lean_del_object(v___x_10808_);
v_val_10810_ = lean_ctor_get(v_a_10806_, 0);
v_isSharedCheck_10871_ = !lean_is_exclusive(v_a_10806_);
if (v_isSharedCheck_10871_ == 0)
{
v___x_10812_ = v_a_10806_;
v_isShared_10813_ = v_isSharedCheck_10871_;
goto v_resetjp_10811_;
}
else
{
lean_inc(v_val_10810_);
lean_dec(v_a_10806_);
v___x_10812_ = lean_box(0);
v_isShared_10813_ = v_isSharedCheck_10871_;
goto v_resetjp_10811_;
}
v_resetjp_10811_:
{
lean_object* v___x_10814_; lean_object* v___x_10815_; lean_object* v___x_10816_; lean_object* v___x_10817_; lean_object* v___x_10818_; lean_object* v___x_10819_; lean_object* v___x_10820_; lean_object* v___x_10821_; lean_object* v___x_10822_; 
v___x_10814_ = l_Lean_Expr_appFn_x21(v_aux_10798_);
lean_dec_ref(v_aux_10798_);
v___x_10815_ = l_Lean_Expr_appArg_x21(v___x_10814_);
lean_dec_ref(v___x_10814_);
v___x_10816_ = lean_nat_add(v_val_10793_, v_val_10810_);
lean_dec(v_val_10810_);
lean_dec(v_val_10793_);
v___x_10817_ = l_Lean_mkNatLit(v___x_10816_);
v___x_10818_ = lean_unsigned_to_nat(2u);
v___x_10819_ = lean_mk_empty_array_with_capacity(v___x_10818_);
lean_inc_ref(v___x_10815_);
v___x_10820_ = lean_array_push(v___x_10819_, v___x_10815_);
v___x_10821_ = lean_array_push(v___x_10820_, v___x_10817_);
lean_inc(v_a_10781_);
lean_inc_ref(v_a_10780_);
lean_inc(v_a_10779_);
lean_inc_ref(v_a_10778_);
v___x_10822_ = l_Lean_Meta_mkAppM(v_declName_10775_, v___x_10821_, v_a_10778_, v_a_10779_, v_a_10780_, v_a_10781_);
if (lean_obj_tag(v___x_10822_) == 0)
{
lean_object* v_a_10823_; lean_object* v___x_10824_; lean_object* v___x_10825_; lean_object* v___x_10826_; lean_object* v___x_10827_; lean_object* v___x_10828_; lean_object* v___x_10829_; 
v_a_10823_ = lean_ctor_get(v___x_10822_, 0);
lean_inc(v_a_10823_);
lean_dec_ref(v___x_10822_);
v___x_10824_ = lean_unsigned_to_nat(3u);
v___x_10825_ = lean_mk_empty_array_with_capacity(v___x_10824_);
v___x_10826_ = lean_array_push(v___x_10825_, v___x_10815_);
v___x_10827_ = lean_array_push(v___x_10826_, v___x_10804_);
v___x_10828_ = lean_array_push(v___x_10827_, v___x_10787_);
lean_inc(v_a_10781_);
lean_inc_ref(v_a_10780_);
lean_inc(v_a_10779_);
lean_inc_ref(v_a_10778_);
v___x_10829_ = l_Lean_Meta_mkAppM(v_thmName_10776_, v___x_10828_, v_a_10778_, v_a_10779_, v_a_10780_, v_a_10781_);
if (lean_obj_tag(v___x_10829_) == 0)
{
lean_object* v_a_10830_; lean_object* v___x_10831_; 
v_a_10830_ = lean_ctor_get(v___x_10829_, 0);
lean_inc(v_a_10830_);
lean_dec_ref(v___x_10829_);
v___x_10831_ = l_Lean_Meta_mkEqSymm(v_a_10830_, v_a_10778_, v_a_10779_, v_a_10780_, v_a_10781_);
if (lean_obj_tag(v___x_10831_) == 0)
{
lean_object* v_a_10832_; lean_object* v___x_10834_; uint8_t v_isShared_10835_; uint8_t v_isSharedCheck_10846_; 
v_a_10832_ = lean_ctor_get(v___x_10831_, 0);
v_isSharedCheck_10846_ = !lean_is_exclusive(v___x_10831_);
if (v_isSharedCheck_10846_ == 0)
{
v___x_10834_ = v___x_10831_;
v_isShared_10835_ = v_isSharedCheck_10846_;
goto v_resetjp_10833_;
}
else
{
lean_inc(v_a_10832_);
lean_dec(v___x_10831_);
v___x_10834_ = lean_box(0);
v_isShared_10835_ = v_isSharedCheck_10846_;
goto v_resetjp_10833_;
}
v_resetjp_10833_:
{
lean_object* v___x_10837_; 
if (v_isShared_10813_ == 0)
{
lean_ctor_set(v___x_10812_, 0, v_a_10832_);
v___x_10837_ = v___x_10812_;
goto v_reusejp_10836_;
}
else
{
lean_object* v_reuseFailAlloc_10845_; 
v_reuseFailAlloc_10845_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10845_, 0, v_a_10832_);
v___x_10837_ = v_reuseFailAlloc_10845_;
goto v_reusejp_10836_;
}
v_reusejp_10836_:
{
lean_object* v___x_10838_; lean_object* v___x_10840_; 
v___x_10838_ = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(v___x_10838_, 0, v_a_10823_);
lean_ctor_set(v___x_10838_, 1, v___x_10837_);
lean_ctor_set_uint8(v___x_10838_, sizeof(void*)*2, v___x_10799_);
if (v_isShared_10796_ == 0)
{
lean_ctor_set(v___x_10795_, 0, v___x_10838_);
v___x_10840_ = v___x_10795_;
goto v_reusejp_10839_;
}
else
{
lean_object* v_reuseFailAlloc_10844_; 
v_reuseFailAlloc_10844_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10844_, 0, v___x_10838_);
v___x_10840_ = v_reuseFailAlloc_10844_;
goto v_reusejp_10839_;
}
v_reusejp_10839_:
{
lean_object* v___x_10842_; 
if (v_isShared_10835_ == 0)
{
lean_ctor_set(v___x_10834_, 0, v___x_10840_);
v___x_10842_ = v___x_10834_;
goto v_reusejp_10841_;
}
else
{
lean_object* v_reuseFailAlloc_10843_; 
v_reuseFailAlloc_10843_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10843_, 0, v___x_10840_);
v___x_10842_ = v_reuseFailAlloc_10843_;
goto v_reusejp_10841_;
}
v_reusejp_10841_:
{
return v___x_10842_;
}
}
}
}
}
else
{
lean_object* v_a_10847_; lean_object* v___x_10849_; uint8_t v_isShared_10850_; uint8_t v_isSharedCheck_10854_; 
lean_dec(v_a_10823_);
lean_del_object(v___x_10812_);
lean_del_object(v___x_10795_);
v_a_10847_ = lean_ctor_get(v___x_10831_, 0);
v_isSharedCheck_10854_ = !lean_is_exclusive(v___x_10831_);
if (v_isSharedCheck_10854_ == 0)
{
v___x_10849_ = v___x_10831_;
v_isShared_10850_ = v_isSharedCheck_10854_;
goto v_resetjp_10848_;
}
else
{
lean_inc(v_a_10847_);
lean_dec(v___x_10831_);
v___x_10849_ = lean_box(0);
v_isShared_10850_ = v_isSharedCheck_10854_;
goto v_resetjp_10848_;
}
v_resetjp_10848_:
{
lean_object* v___x_10852_; 
if (v_isShared_10850_ == 0)
{
v___x_10852_ = v___x_10849_;
goto v_reusejp_10851_;
}
else
{
lean_object* v_reuseFailAlloc_10853_; 
v_reuseFailAlloc_10853_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10853_, 0, v_a_10847_);
v___x_10852_ = v_reuseFailAlloc_10853_;
goto v_reusejp_10851_;
}
v_reusejp_10851_:
{
return v___x_10852_;
}
}
}
}
else
{
lean_object* v_a_10855_; lean_object* v___x_10857_; uint8_t v_isShared_10858_; uint8_t v_isSharedCheck_10862_; 
lean_dec(v_a_10823_);
lean_del_object(v___x_10812_);
lean_del_object(v___x_10795_);
lean_dec(v_a_10781_);
lean_dec_ref(v_a_10780_);
lean_dec(v_a_10779_);
lean_dec_ref(v_a_10778_);
v_a_10855_ = lean_ctor_get(v___x_10829_, 0);
v_isSharedCheck_10862_ = !lean_is_exclusive(v___x_10829_);
if (v_isSharedCheck_10862_ == 0)
{
v___x_10857_ = v___x_10829_;
v_isShared_10858_ = v_isSharedCheck_10862_;
goto v_resetjp_10856_;
}
else
{
lean_inc(v_a_10855_);
lean_dec(v___x_10829_);
v___x_10857_ = lean_box(0);
v_isShared_10858_ = v_isSharedCheck_10862_;
goto v_resetjp_10856_;
}
v_resetjp_10856_:
{
lean_object* v___x_10860_; 
if (v_isShared_10858_ == 0)
{
v___x_10860_ = v___x_10857_;
goto v_reusejp_10859_;
}
else
{
lean_object* v_reuseFailAlloc_10861_; 
v_reuseFailAlloc_10861_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10861_, 0, v_a_10855_);
v___x_10860_ = v_reuseFailAlloc_10861_;
goto v_reusejp_10859_;
}
v_reusejp_10859_:
{
return v___x_10860_;
}
}
}
}
else
{
lean_object* v_a_10863_; lean_object* v___x_10865_; uint8_t v_isShared_10866_; uint8_t v_isSharedCheck_10870_; 
lean_dec_ref(v___x_10815_);
lean_del_object(v___x_10812_);
lean_dec_ref(v___x_10804_);
lean_del_object(v___x_10795_);
lean_dec_ref(v___x_10787_);
lean_dec(v_a_10781_);
lean_dec_ref(v_a_10780_);
lean_dec(v_a_10779_);
lean_dec_ref(v_a_10778_);
lean_dec(v_thmName_10776_);
v_a_10863_ = lean_ctor_get(v___x_10822_, 0);
v_isSharedCheck_10870_ = !lean_is_exclusive(v___x_10822_);
if (v_isSharedCheck_10870_ == 0)
{
v___x_10865_ = v___x_10822_;
v_isShared_10866_ = v_isSharedCheck_10870_;
goto v_resetjp_10864_;
}
else
{
lean_inc(v_a_10863_);
lean_dec(v___x_10822_);
v___x_10865_ = lean_box(0);
v_isShared_10866_ = v_isSharedCheck_10870_;
goto v_resetjp_10864_;
}
v_resetjp_10864_:
{
lean_object* v___x_10868_; 
if (v_isShared_10866_ == 0)
{
v___x_10868_ = v___x_10865_;
goto v_reusejp_10867_;
}
else
{
lean_object* v_reuseFailAlloc_10869_; 
v_reuseFailAlloc_10869_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10869_, 0, v_a_10863_);
v___x_10868_ = v_reuseFailAlloc_10869_;
goto v_reusejp_10867_;
}
v_reusejp_10867_:
{
return v___x_10868_;
}
}
}
}
}
else
{
lean_object* v___x_10872_; lean_object* v___x_10874_; 
lean_dec(v_a_10806_);
lean_dec_ref(v___x_10804_);
lean_dec_ref(v_aux_10798_);
lean_del_object(v___x_10795_);
lean_dec(v_val_10793_);
lean_dec_ref(v___x_10787_);
lean_dec(v_a_10781_);
lean_dec_ref(v_a_10780_);
lean_dec(v_a_10779_);
lean_dec_ref(v_a_10778_);
lean_dec(v_thmName_10776_);
lean_dec(v_declName_10775_);
v___x_10872_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_10809_ == 0)
{
lean_ctor_set(v___x_10808_, 0, v___x_10872_);
v___x_10874_ = v___x_10808_;
goto v_reusejp_10873_;
}
else
{
lean_object* v_reuseFailAlloc_10875_; 
v_reuseFailAlloc_10875_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10875_, 0, v___x_10872_);
v___x_10874_ = v_reuseFailAlloc_10875_;
goto v_reusejp_10873_;
}
v_reusejp_10873_:
{
return v___x_10874_;
}
}
}
}
else
{
lean_object* v_a_10877_; lean_object* v___x_10879_; uint8_t v_isShared_10880_; uint8_t v_isSharedCheck_10884_; 
lean_dec_ref(v___x_10804_);
lean_dec_ref(v_aux_10798_);
lean_del_object(v___x_10795_);
lean_dec(v_val_10793_);
lean_dec_ref(v___x_10787_);
lean_dec(v_a_10781_);
lean_dec_ref(v_a_10780_);
lean_dec(v_a_10779_);
lean_dec_ref(v_a_10778_);
lean_dec(v_thmName_10776_);
lean_dec(v_declName_10775_);
v_a_10877_ = lean_ctor_get(v___x_10805_, 0);
v_isSharedCheck_10884_ = !lean_is_exclusive(v___x_10805_);
if (v_isSharedCheck_10884_ == 0)
{
v___x_10879_ = v___x_10805_;
v_isShared_10880_ = v_isSharedCheck_10884_;
goto v_resetjp_10878_;
}
else
{
lean_inc(v_a_10877_);
lean_dec(v___x_10805_);
v___x_10879_ = lean_box(0);
v_isShared_10880_ = v_isSharedCheck_10884_;
goto v_resetjp_10878_;
}
v_resetjp_10878_:
{
lean_object* v___x_10882_; 
if (v_isShared_10880_ == 0)
{
v___x_10882_ = v___x_10879_;
goto v_reusejp_10881_;
}
else
{
lean_object* v_reuseFailAlloc_10883_; 
v_reuseFailAlloc_10883_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10883_, 0, v_a_10877_);
v___x_10882_ = v_reuseFailAlloc_10883_;
goto v_reusejp_10881_;
}
v_reusejp_10881_:
{
return v___x_10882_;
}
}
}
}
}
}
else
{
lean_object* v___x_10886_; lean_object* v___x_10888_; 
lean_dec(v_a_10789_);
lean_dec_ref(v___x_10787_);
lean_dec(v_a_10781_);
lean_dec_ref(v_a_10780_);
lean_dec(v_a_10779_);
lean_dec_ref(v_a_10778_);
lean_dec(v_thmName_10776_);
lean_dec(v_declName_10775_);
v___x_10886_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_10792_ == 0)
{
lean_ctor_set(v___x_10791_, 0, v___x_10886_);
v___x_10888_ = v___x_10791_;
goto v_reusejp_10887_;
}
else
{
lean_object* v_reuseFailAlloc_10889_; 
v_reuseFailAlloc_10889_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10889_, 0, v___x_10886_);
v___x_10888_ = v_reuseFailAlloc_10889_;
goto v_reusejp_10887_;
}
v_reusejp_10887_:
{
return v___x_10888_;
}
}
}
}
else
{
lean_object* v_a_10891_; lean_object* v___x_10893_; uint8_t v_isShared_10894_; uint8_t v_isSharedCheck_10898_; 
lean_dec_ref(v___x_10787_);
lean_dec(v_a_10781_);
lean_dec_ref(v_a_10780_);
lean_dec(v_a_10779_);
lean_dec_ref(v_a_10778_);
lean_dec(v_thmName_10776_);
lean_dec(v_declName_10775_);
v_a_10891_ = lean_ctor_get(v___x_10788_, 0);
v_isSharedCheck_10898_ = !lean_is_exclusive(v___x_10788_);
if (v_isSharedCheck_10898_ == 0)
{
v___x_10893_ = v___x_10788_;
v_isShared_10894_ = v_isSharedCheck_10898_;
goto v_resetjp_10892_;
}
else
{
lean_inc(v_a_10891_);
lean_dec(v___x_10788_);
v___x_10893_ = lean_box(0);
v_isShared_10894_ = v_isSharedCheck_10898_;
goto v_resetjp_10892_;
}
v_resetjp_10892_:
{
lean_object* v___x_10896_; 
if (v_isShared_10894_ == 0)
{
v___x_10896_ = v___x_10893_;
goto v_reusejp_10895_;
}
else
{
lean_object* v_reuseFailAlloc_10897_; 
v_reuseFailAlloc_10897_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10897_, 0, v_a_10891_);
v___x_10896_ = v_reuseFailAlloc_10897_;
goto v_reusejp_10895_;
}
v_reusejp_10895_:
{
return v___x_10896_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftShift___redArg___boxed(lean_object* v_declName_10899_, lean_object* v_thmName_10900_, lean_object* v_e_10901_, lean_object* v_a_10902_, lean_object* v_a_10903_, lean_object* v_a_10904_, lean_object* v_a_10905_, lean_object* v_a_10906_){
_start:
{
lean_object* v_res_10907_; 
v_res_10907_ = l_BitVec_reduceShiftShift___redArg(v_declName_10899_, v_thmName_10900_, v_e_10901_, v_a_10902_, v_a_10903_, v_a_10904_, v_a_10905_);
lean_dec_ref(v_e_10901_);
return v_res_10907_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftShift(lean_object* v_declName_10908_, lean_object* v_thmName_10909_, lean_object* v_e_10910_, lean_object* v_a_10911_, lean_object* v_a_10912_, lean_object* v_a_10913_, lean_object* v_a_10914_, lean_object* v_a_10915_, lean_object* v_a_10916_, lean_object* v_a_10917_){
_start:
{
lean_object* v___x_10919_; uint8_t v___x_10920_; 
v___x_10919_ = lean_unsigned_to_nat(6u);
v___x_10920_ = l_Lean_Expr_isAppOfArity(v_e_10910_, v_declName_10908_, v___x_10919_);
if (v___x_10920_ == 0)
{
lean_object* v___x_10921_; lean_object* v___x_10922_; 
lean_dec(v_a_10917_);
lean_dec_ref(v_a_10916_);
lean_dec(v_a_10915_);
lean_dec_ref(v_a_10914_);
lean_dec(v_thmName_10909_);
lean_dec(v_declName_10908_);
v___x_10921_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_10922_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_10922_, 0, v___x_10921_);
return v___x_10922_;
}
else
{
lean_object* v___x_10923_; lean_object* v___x_10924_; 
v___x_10923_ = l_Lean_Expr_appArg_x21(v_e_10910_);
lean_inc(v_a_10917_);
lean_inc_ref(v_a_10916_);
lean_inc(v_a_10915_);
lean_inc_ref(v_a_10914_);
v___x_10924_ = l_Lean_Meta_getNatValue_x3f(v___x_10923_, v_a_10914_, v_a_10915_, v_a_10916_, v_a_10917_);
if (lean_obj_tag(v___x_10924_) == 0)
{
lean_object* v_a_10925_; lean_object* v___x_10927_; uint8_t v_isShared_10928_; uint8_t v_isSharedCheck_11026_; 
v_a_10925_ = lean_ctor_get(v___x_10924_, 0);
v_isSharedCheck_11026_ = !lean_is_exclusive(v___x_10924_);
if (v_isSharedCheck_11026_ == 0)
{
v___x_10927_ = v___x_10924_;
v_isShared_10928_ = v_isSharedCheck_11026_;
goto v_resetjp_10926_;
}
else
{
lean_inc(v_a_10925_);
lean_dec(v___x_10924_);
v___x_10927_ = lean_box(0);
v_isShared_10928_ = v_isSharedCheck_11026_;
goto v_resetjp_10926_;
}
v_resetjp_10926_:
{
if (lean_obj_tag(v_a_10925_) == 1)
{
lean_object* v_val_10929_; lean_object* v___x_10931_; uint8_t v_isShared_10932_; uint8_t v_isSharedCheck_11021_; 
v_val_10929_ = lean_ctor_get(v_a_10925_, 0);
v_isSharedCheck_11021_ = !lean_is_exclusive(v_a_10925_);
if (v_isSharedCheck_11021_ == 0)
{
v___x_10931_ = v_a_10925_;
v_isShared_10932_ = v_isSharedCheck_11021_;
goto v_resetjp_10930_;
}
else
{
lean_inc(v_val_10929_);
lean_dec(v_a_10925_);
v___x_10931_ = lean_box(0);
v_isShared_10932_ = v_isSharedCheck_11021_;
goto v_resetjp_10930_;
}
v_resetjp_10930_:
{
lean_object* v___x_10933_; lean_object* v_aux_10934_; uint8_t v___x_10935_; 
v___x_10933_ = l_Lean_Expr_appFn_x21(v_e_10910_);
v_aux_10934_ = l_Lean_Expr_appArg_x21(v___x_10933_);
lean_dec_ref(v___x_10933_);
v___x_10935_ = l_Lean_Expr_isAppOfArity(v_aux_10934_, v_declName_10908_, v___x_10919_);
if (v___x_10935_ == 0)
{
lean_object* v___x_10936_; lean_object* v___x_10938_; 
lean_dec_ref(v_aux_10934_);
lean_del_object(v___x_10931_);
lean_dec(v_val_10929_);
lean_dec_ref(v___x_10923_);
lean_dec(v_a_10917_);
lean_dec_ref(v_a_10916_);
lean_dec(v_a_10915_);
lean_dec_ref(v_a_10914_);
lean_dec(v_thmName_10909_);
lean_dec(v_declName_10908_);
v___x_10936_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_10928_ == 0)
{
lean_ctor_set(v___x_10927_, 0, v___x_10936_);
v___x_10938_ = v___x_10927_;
goto v_reusejp_10937_;
}
else
{
lean_object* v_reuseFailAlloc_10939_; 
v_reuseFailAlloc_10939_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10939_, 0, v___x_10936_);
v___x_10938_ = v_reuseFailAlloc_10939_;
goto v_reusejp_10937_;
}
v_reusejp_10937_:
{
return v___x_10938_;
}
}
else
{
lean_object* v___x_10940_; lean_object* v___x_10941_; 
lean_del_object(v___x_10927_);
v___x_10940_ = l_Lean_Expr_appArg_x21(v_aux_10934_);
lean_inc(v_a_10917_);
lean_inc_ref(v_a_10916_);
lean_inc(v_a_10915_);
lean_inc_ref(v_a_10914_);
v___x_10941_ = l_Lean_Meta_getNatValue_x3f(v___x_10940_, v_a_10914_, v_a_10915_, v_a_10916_, v_a_10917_);
if (lean_obj_tag(v___x_10941_) == 0)
{
lean_object* v_a_10942_; lean_object* v___x_10944_; uint8_t v_isShared_10945_; uint8_t v_isSharedCheck_11012_; 
v_a_10942_ = lean_ctor_get(v___x_10941_, 0);
v_isSharedCheck_11012_ = !lean_is_exclusive(v___x_10941_);
if (v_isSharedCheck_11012_ == 0)
{
v___x_10944_ = v___x_10941_;
v_isShared_10945_ = v_isSharedCheck_11012_;
goto v_resetjp_10943_;
}
else
{
lean_inc(v_a_10942_);
lean_dec(v___x_10941_);
v___x_10944_ = lean_box(0);
v_isShared_10945_ = v_isSharedCheck_11012_;
goto v_resetjp_10943_;
}
v_resetjp_10943_:
{
if (lean_obj_tag(v_a_10942_) == 1)
{
lean_object* v_val_10946_; lean_object* v___x_10948_; uint8_t v_isShared_10949_; uint8_t v_isSharedCheck_11007_; 
lean_del_object(v___x_10944_);
v_val_10946_ = lean_ctor_get(v_a_10942_, 0);
v_isSharedCheck_11007_ = !lean_is_exclusive(v_a_10942_);
if (v_isSharedCheck_11007_ == 0)
{
v___x_10948_ = v_a_10942_;
v_isShared_10949_ = v_isSharedCheck_11007_;
goto v_resetjp_10947_;
}
else
{
lean_inc(v_val_10946_);
lean_dec(v_a_10942_);
v___x_10948_ = lean_box(0);
v_isShared_10949_ = v_isSharedCheck_11007_;
goto v_resetjp_10947_;
}
v_resetjp_10947_:
{
lean_object* v___x_10950_; lean_object* v___x_10951_; lean_object* v___x_10952_; lean_object* v___x_10953_; lean_object* v___x_10954_; lean_object* v___x_10955_; lean_object* v___x_10956_; lean_object* v___x_10957_; lean_object* v___x_10958_; 
v___x_10950_ = l_Lean_Expr_appFn_x21(v_aux_10934_);
lean_dec_ref(v_aux_10934_);
v___x_10951_ = l_Lean_Expr_appArg_x21(v___x_10950_);
lean_dec_ref(v___x_10950_);
v___x_10952_ = lean_nat_add(v_val_10929_, v_val_10946_);
lean_dec(v_val_10946_);
lean_dec(v_val_10929_);
v___x_10953_ = l_Lean_mkNatLit(v___x_10952_);
v___x_10954_ = lean_unsigned_to_nat(2u);
v___x_10955_ = lean_mk_empty_array_with_capacity(v___x_10954_);
lean_inc_ref(v___x_10951_);
v___x_10956_ = lean_array_push(v___x_10955_, v___x_10951_);
v___x_10957_ = lean_array_push(v___x_10956_, v___x_10953_);
lean_inc(v_a_10917_);
lean_inc_ref(v_a_10916_);
lean_inc(v_a_10915_);
lean_inc_ref(v_a_10914_);
v___x_10958_ = l_Lean_Meta_mkAppM(v_declName_10908_, v___x_10957_, v_a_10914_, v_a_10915_, v_a_10916_, v_a_10917_);
if (lean_obj_tag(v___x_10958_) == 0)
{
lean_object* v_a_10959_; lean_object* v___x_10960_; lean_object* v___x_10961_; lean_object* v___x_10962_; lean_object* v___x_10963_; lean_object* v___x_10964_; lean_object* v___x_10965_; 
v_a_10959_ = lean_ctor_get(v___x_10958_, 0);
lean_inc(v_a_10959_);
lean_dec_ref(v___x_10958_);
v___x_10960_ = lean_unsigned_to_nat(3u);
v___x_10961_ = lean_mk_empty_array_with_capacity(v___x_10960_);
v___x_10962_ = lean_array_push(v___x_10961_, v___x_10951_);
v___x_10963_ = lean_array_push(v___x_10962_, v___x_10940_);
v___x_10964_ = lean_array_push(v___x_10963_, v___x_10923_);
lean_inc(v_a_10917_);
lean_inc_ref(v_a_10916_);
lean_inc(v_a_10915_);
lean_inc_ref(v_a_10914_);
v___x_10965_ = l_Lean_Meta_mkAppM(v_thmName_10909_, v___x_10964_, v_a_10914_, v_a_10915_, v_a_10916_, v_a_10917_);
if (lean_obj_tag(v___x_10965_) == 0)
{
lean_object* v_a_10966_; lean_object* v___x_10967_; 
v_a_10966_ = lean_ctor_get(v___x_10965_, 0);
lean_inc(v_a_10966_);
lean_dec_ref(v___x_10965_);
v___x_10967_ = l_Lean_Meta_mkEqSymm(v_a_10966_, v_a_10914_, v_a_10915_, v_a_10916_, v_a_10917_);
if (lean_obj_tag(v___x_10967_) == 0)
{
lean_object* v_a_10968_; lean_object* v___x_10970_; uint8_t v_isShared_10971_; uint8_t v_isSharedCheck_10982_; 
v_a_10968_ = lean_ctor_get(v___x_10967_, 0);
v_isSharedCheck_10982_ = !lean_is_exclusive(v___x_10967_);
if (v_isSharedCheck_10982_ == 0)
{
v___x_10970_ = v___x_10967_;
v_isShared_10971_ = v_isSharedCheck_10982_;
goto v_resetjp_10969_;
}
else
{
lean_inc(v_a_10968_);
lean_dec(v___x_10967_);
v___x_10970_ = lean_box(0);
v_isShared_10971_ = v_isSharedCheck_10982_;
goto v_resetjp_10969_;
}
v_resetjp_10969_:
{
lean_object* v___x_10973_; 
if (v_isShared_10949_ == 0)
{
lean_ctor_set(v___x_10948_, 0, v_a_10968_);
v___x_10973_ = v___x_10948_;
goto v_reusejp_10972_;
}
else
{
lean_object* v_reuseFailAlloc_10981_; 
v_reuseFailAlloc_10981_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10981_, 0, v_a_10968_);
v___x_10973_ = v_reuseFailAlloc_10981_;
goto v_reusejp_10972_;
}
v_reusejp_10972_:
{
lean_object* v___x_10974_; lean_object* v___x_10976_; 
v___x_10974_ = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(v___x_10974_, 0, v_a_10959_);
lean_ctor_set(v___x_10974_, 1, v___x_10973_);
lean_ctor_set_uint8(v___x_10974_, sizeof(void*)*2, v___x_10935_);
if (v_isShared_10932_ == 0)
{
lean_ctor_set(v___x_10931_, 0, v___x_10974_);
v___x_10976_ = v___x_10931_;
goto v_reusejp_10975_;
}
else
{
lean_object* v_reuseFailAlloc_10980_; 
v_reuseFailAlloc_10980_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10980_, 0, v___x_10974_);
v___x_10976_ = v_reuseFailAlloc_10980_;
goto v_reusejp_10975_;
}
v_reusejp_10975_:
{
lean_object* v___x_10978_; 
if (v_isShared_10971_ == 0)
{
lean_ctor_set(v___x_10970_, 0, v___x_10976_);
v___x_10978_ = v___x_10970_;
goto v_reusejp_10977_;
}
else
{
lean_object* v_reuseFailAlloc_10979_; 
v_reuseFailAlloc_10979_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10979_, 0, v___x_10976_);
v___x_10978_ = v_reuseFailAlloc_10979_;
goto v_reusejp_10977_;
}
v_reusejp_10977_:
{
return v___x_10978_;
}
}
}
}
}
else
{
lean_object* v_a_10983_; lean_object* v___x_10985_; uint8_t v_isShared_10986_; uint8_t v_isSharedCheck_10990_; 
lean_dec(v_a_10959_);
lean_del_object(v___x_10948_);
lean_del_object(v___x_10931_);
v_a_10983_ = lean_ctor_get(v___x_10967_, 0);
v_isSharedCheck_10990_ = !lean_is_exclusive(v___x_10967_);
if (v_isSharedCheck_10990_ == 0)
{
v___x_10985_ = v___x_10967_;
v_isShared_10986_ = v_isSharedCheck_10990_;
goto v_resetjp_10984_;
}
else
{
lean_inc(v_a_10983_);
lean_dec(v___x_10967_);
v___x_10985_ = lean_box(0);
v_isShared_10986_ = v_isSharedCheck_10990_;
goto v_resetjp_10984_;
}
v_resetjp_10984_:
{
lean_object* v___x_10988_; 
if (v_isShared_10986_ == 0)
{
v___x_10988_ = v___x_10985_;
goto v_reusejp_10987_;
}
else
{
lean_object* v_reuseFailAlloc_10989_; 
v_reuseFailAlloc_10989_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10989_, 0, v_a_10983_);
v___x_10988_ = v_reuseFailAlloc_10989_;
goto v_reusejp_10987_;
}
v_reusejp_10987_:
{
return v___x_10988_;
}
}
}
}
else
{
lean_object* v_a_10991_; lean_object* v___x_10993_; uint8_t v_isShared_10994_; uint8_t v_isSharedCheck_10998_; 
lean_dec(v_a_10959_);
lean_del_object(v___x_10948_);
lean_del_object(v___x_10931_);
lean_dec(v_a_10917_);
lean_dec_ref(v_a_10916_);
lean_dec(v_a_10915_);
lean_dec_ref(v_a_10914_);
v_a_10991_ = lean_ctor_get(v___x_10965_, 0);
v_isSharedCheck_10998_ = !lean_is_exclusive(v___x_10965_);
if (v_isSharedCheck_10998_ == 0)
{
v___x_10993_ = v___x_10965_;
v_isShared_10994_ = v_isSharedCheck_10998_;
goto v_resetjp_10992_;
}
else
{
lean_inc(v_a_10991_);
lean_dec(v___x_10965_);
v___x_10993_ = lean_box(0);
v_isShared_10994_ = v_isSharedCheck_10998_;
goto v_resetjp_10992_;
}
v_resetjp_10992_:
{
lean_object* v___x_10996_; 
if (v_isShared_10994_ == 0)
{
v___x_10996_ = v___x_10993_;
goto v_reusejp_10995_;
}
else
{
lean_object* v_reuseFailAlloc_10997_; 
v_reuseFailAlloc_10997_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_10997_, 0, v_a_10991_);
v___x_10996_ = v_reuseFailAlloc_10997_;
goto v_reusejp_10995_;
}
v_reusejp_10995_:
{
return v___x_10996_;
}
}
}
}
else
{
lean_object* v_a_10999_; lean_object* v___x_11001_; uint8_t v_isShared_11002_; uint8_t v_isSharedCheck_11006_; 
lean_dec_ref(v___x_10951_);
lean_del_object(v___x_10948_);
lean_dec_ref(v___x_10940_);
lean_del_object(v___x_10931_);
lean_dec_ref(v___x_10923_);
lean_dec(v_a_10917_);
lean_dec_ref(v_a_10916_);
lean_dec(v_a_10915_);
lean_dec_ref(v_a_10914_);
lean_dec(v_thmName_10909_);
v_a_10999_ = lean_ctor_get(v___x_10958_, 0);
v_isSharedCheck_11006_ = !lean_is_exclusive(v___x_10958_);
if (v_isSharedCheck_11006_ == 0)
{
v___x_11001_ = v___x_10958_;
v_isShared_11002_ = v_isSharedCheck_11006_;
goto v_resetjp_11000_;
}
else
{
lean_inc(v_a_10999_);
lean_dec(v___x_10958_);
v___x_11001_ = lean_box(0);
v_isShared_11002_ = v_isSharedCheck_11006_;
goto v_resetjp_11000_;
}
v_resetjp_11000_:
{
lean_object* v___x_11004_; 
if (v_isShared_11002_ == 0)
{
v___x_11004_ = v___x_11001_;
goto v_reusejp_11003_;
}
else
{
lean_object* v_reuseFailAlloc_11005_; 
v_reuseFailAlloc_11005_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11005_, 0, v_a_10999_);
v___x_11004_ = v_reuseFailAlloc_11005_;
goto v_reusejp_11003_;
}
v_reusejp_11003_:
{
return v___x_11004_;
}
}
}
}
}
else
{
lean_object* v___x_11008_; lean_object* v___x_11010_; 
lean_dec(v_a_10942_);
lean_dec_ref(v___x_10940_);
lean_dec_ref(v_aux_10934_);
lean_del_object(v___x_10931_);
lean_dec(v_val_10929_);
lean_dec_ref(v___x_10923_);
lean_dec(v_a_10917_);
lean_dec_ref(v_a_10916_);
lean_dec(v_a_10915_);
lean_dec_ref(v_a_10914_);
lean_dec(v_thmName_10909_);
lean_dec(v_declName_10908_);
v___x_11008_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_10945_ == 0)
{
lean_ctor_set(v___x_10944_, 0, v___x_11008_);
v___x_11010_ = v___x_10944_;
goto v_reusejp_11009_;
}
else
{
lean_object* v_reuseFailAlloc_11011_; 
v_reuseFailAlloc_11011_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11011_, 0, v___x_11008_);
v___x_11010_ = v_reuseFailAlloc_11011_;
goto v_reusejp_11009_;
}
v_reusejp_11009_:
{
return v___x_11010_;
}
}
}
}
else
{
lean_object* v_a_11013_; lean_object* v___x_11015_; uint8_t v_isShared_11016_; uint8_t v_isSharedCheck_11020_; 
lean_dec_ref(v___x_10940_);
lean_dec_ref(v_aux_10934_);
lean_del_object(v___x_10931_);
lean_dec(v_val_10929_);
lean_dec_ref(v___x_10923_);
lean_dec(v_a_10917_);
lean_dec_ref(v_a_10916_);
lean_dec(v_a_10915_);
lean_dec_ref(v_a_10914_);
lean_dec(v_thmName_10909_);
lean_dec(v_declName_10908_);
v_a_11013_ = lean_ctor_get(v___x_10941_, 0);
v_isSharedCheck_11020_ = !lean_is_exclusive(v___x_10941_);
if (v_isSharedCheck_11020_ == 0)
{
v___x_11015_ = v___x_10941_;
v_isShared_11016_ = v_isSharedCheck_11020_;
goto v_resetjp_11014_;
}
else
{
lean_inc(v_a_11013_);
lean_dec(v___x_10941_);
v___x_11015_ = lean_box(0);
v_isShared_11016_ = v_isSharedCheck_11020_;
goto v_resetjp_11014_;
}
v_resetjp_11014_:
{
lean_object* v___x_11018_; 
if (v_isShared_11016_ == 0)
{
v___x_11018_ = v___x_11015_;
goto v_reusejp_11017_;
}
else
{
lean_object* v_reuseFailAlloc_11019_; 
v_reuseFailAlloc_11019_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11019_, 0, v_a_11013_);
v___x_11018_ = v_reuseFailAlloc_11019_;
goto v_reusejp_11017_;
}
v_reusejp_11017_:
{
return v___x_11018_;
}
}
}
}
}
}
else
{
lean_object* v___x_11022_; lean_object* v___x_11024_; 
lean_dec(v_a_10925_);
lean_dec_ref(v___x_10923_);
lean_dec(v_a_10917_);
lean_dec_ref(v_a_10916_);
lean_dec(v_a_10915_);
lean_dec_ref(v_a_10914_);
lean_dec(v_thmName_10909_);
lean_dec(v_declName_10908_);
v___x_11022_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_10928_ == 0)
{
lean_ctor_set(v___x_10927_, 0, v___x_11022_);
v___x_11024_ = v___x_10927_;
goto v_reusejp_11023_;
}
else
{
lean_object* v_reuseFailAlloc_11025_; 
v_reuseFailAlloc_11025_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11025_, 0, v___x_11022_);
v___x_11024_ = v_reuseFailAlloc_11025_;
goto v_reusejp_11023_;
}
v_reusejp_11023_:
{
return v___x_11024_;
}
}
}
}
else
{
lean_object* v_a_11027_; lean_object* v___x_11029_; uint8_t v_isShared_11030_; uint8_t v_isSharedCheck_11034_; 
lean_dec_ref(v___x_10923_);
lean_dec(v_a_10917_);
lean_dec_ref(v_a_10916_);
lean_dec(v_a_10915_);
lean_dec_ref(v_a_10914_);
lean_dec(v_thmName_10909_);
lean_dec(v_declName_10908_);
v_a_11027_ = lean_ctor_get(v___x_10924_, 0);
v_isSharedCheck_11034_ = !lean_is_exclusive(v___x_10924_);
if (v_isSharedCheck_11034_ == 0)
{
v___x_11029_ = v___x_10924_;
v_isShared_11030_ = v_isSharedCheck_11034_;
goto v_resetjp_11028_;
}
else
{
lean_inc(v_a_11027_);
lean_dec(v___x_10924_);
v___x_11029_ = lean_box(0);
v_isShared_11030_ = v_isSharedCheck_11034_;
goto v_resetjp_11028_;
}
v_resetjp_11028_:
{
lean_object* v___x_11032_; 
if (v_isShared_11030_ == 0)
{
v___x_11032_ = v___x_11029_;
goto v_reusejp_11031_;
}
else
{
lean_object* v_reuseFailAlloc_11033_; 
v_reuseFailAlloc_11033_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11033_, 0, v_a_11027_);
v___x_11032_ = v_reuseFailAlloc_11033_;
goto v_reusejp_11031_;
}
v_reusejp_11031_:
{
return v___x_11032_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftShift___boxed(lean_object* v_declName_11035_, lean_object* v_thmName_11036_, lean_object* v_e_11037_, lean_object* v_a_11038_, lean_object* v_a_11039_, lean_object* v_a_11040_, lean_object* v_a_11041_, lean_object* v_a_11042_, lean_object* v_a_11043_, lean_object* v_a_11044_, lean_object* v_a_11045_){
_start:
{
lean_object* v_res_11046_; 
v_res_11046_ = l_BitVec_reduceShiftShift(v_declName_11035_, v_thmName_11036_, v_e_11037_, v_a_11038_, v_a_11039_, v_a_11040_, v_a_11041_, v_a_11042_, v_a_11043_, v_a_11044_);
lean_dec(v_a_11040_);
lean_dec_ref(v_a_11039_);
lean_dec(v_a_11038_);
lean_dec_ref(v_e_11037_);
return v_res_11046_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___redArg(lean_object* v_e_11051_, lean_object* v_a_11052_, lean_object* v_a_11053_, lean_object* v_a_11054_, lean_object* v_a_11055_){
_start:
{
lean_object* v___x_11057_; lean_object* v___x_11058_; uint8_t v___x_11059_; 
v___x_11057_ = ((lean_object*)(l_BitVec_reduceHShiftLeft___redArg___closed__2));
v___x_11058_ = lean_unsigned_to_nat(6u);
v___x_11059_ = l_Lean_Expr_isAppOfArity(v_e_11051_, v___x_11057_, v___x_11058_);
if (v___x_11059_ == 0)
{
lean_object* v___x_11060_; lean_object* v___x_11061_; 
lean_dec(v_a_11055_);
lean_dec_ref(v_a_11054_);
lean_dec(v_a_11053_);
lean_dec_ref(v_a_11052_);
v___x_11060_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_11061_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_11061_, 0, v___x_11060_);
return v___x_11061_;
}
else
{
lean_object* v___x_11062_; lean_object* v___x_11063_; 
v___x_11062_ = l_Lean_Expr_appArg_x21(v_e_11051_);
lean_inc(v_a_11055_);
lean_inc_ref(v_a_11054_);
lean_inc(v_a_11053_);
lean_inc_ref(v_a_11052_);
v___x_11063_ = l_Lean_Meta_getNatValue_x3f(v___x_11062_, v_a_11052_, v_a_11053_, v_a_11054_, v_a_11055_);
if (lean_obj_tag(v___x_11063_) == 0)
{
lean_object* v_a_11064_; lean_object* v___x_11066_; uint8_t v_isShared_11067_; uint8_t v_isSharedCheck_11166_; 
v_a_11064_ = lean_ctor_get(v___x_11063_, 0);
v_isSharedCheck_11166_ = !lean_is_exclusive(v___x_11063_);
if (v_isSharedCheck_11166_ == 0)
{
v___x_11066_ = v___x_11063_;
v_isShared_11067_ = v_isSharedCheck_11166_;
goto v_resetjp_11065_;
}
else
{
lean_inc(v_a_11064_);
lean_dec(v___x_11063_);
v___x_11066_ = lean_box(0);
v_isShared_11067_ = v_isSharedCheck_11166_;
goto v_resetjp_11065_;
}
v_resetjp_11065_:
{
if (lean_obj_tag(v_a_11064_) == 1)
{
lean_object* v_val_11068_; lean_object* v___x_11070_; uint8_t v_isShared_11071_; uint8_t v_isSharedCheck_11161_; 
v_val_11068_ = lean_ctor_get(v_a_11064_, 0);
v_isSharedCheck_11161_ = !lean_is_exclusive(v_a_11064_);
if (v_isSharedCheck_11161_ == 0)
{
v___x_11070_ = v_a_11064_;
v_isShared_11071_ = v_isSharedCheck_11161_;
goto v_resetjp_11069_;
}
else
{
lean_inc(v_val_11068_);
lean_dec(v_a_11064_);
v___x_11070_ = lean_box(0);
v_isShared_11071_ = v_isSharedCheck_11161_;
goto v_resetjp_11069_;
}
v_resetjp_11069_:
{
lean_object* v___x_11072_; lean_object* v_aux_11073_; uint8_t v___x_11074_; 
v___x_11072_ = l_Lean_Expr_appFn_x21(v_e_11051_);
v_aux_11073_ = l_Lean_Expr_appArg_x21(v___x_11072_);
lean_dec_ref(v___x_11072_);
v___x_11074_ = l_Lean_Expr_isAppOfArity(v_aux_11073_, v___x_11057_, v___x_11058_);
if (v___x_11074_ == 0)
{
lean_object* v___x_11075_; lean_object* v___x_11077_; 
lean_dec_ref(v_aux_11073_);
lean_del_object(v___x_11070_);
lean_dec(v_val_11068_);
lean_dec_ref(v___x_11062_);
lean_dec(v_a_11055_);
lean_dec_ref(v_a_11054_);
lean_dec(v_a_11053_);
lean_dec_ref(v_a_11052_);
v___x_11075_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_11067_ == 0)
{
lean_ctor_set(v___x_11066_, 0, v___x_11075_);
v___x_11077_ = v___x_11066_;
goto v_reusejp_11076_;
}
else
{
lean_object* v_reuseFailAlloc_11078_; 
v_reuseFailAlloc_11078_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11078_, 0, v___x_11075_);
v___x_11077_ = v_reuseFailAlloc_11078_;
goto v_reusejp_11076_;
}
v_reusejp_11076_:
{
return v___x_11077_;
}
}
else
{
lean_object* v___x_11079_; lean_object* v___x_11080_; 
lean_del_object(v___x_11066_);
v___x_11079_ = l_Lean_Expr_appArg_x21(v_aux_11073_);
lean_inc(v_a_11055_);
lean_inc_ref(v_a_11054_);
lean_inc(v_a_11053_);
lean_inc_ref(v_a_11052_);
v___x_11080_ = l_Lean_Meta_getNatValue_x3f(v___x_11079_, v_a_11052_, v_a_11053_, v_a_11054_, v_a_11055_);
if (lean_obj_tag(v___x_11080_) == 0)
{
lean_object* v_a_11081_; lean_object* v___x_11083_; uint8_t v_isShared_11084_; uint8_t v_isSharedCheck_11152_; 
v_a_11081_ = lean_ctor_get(v___x_11080_, 0);
v_isSharedCheck_11152_ = !lean_is_exclusive(v___x_11080_);
if (v_isSharedCheck_11152_ == 0)
{
v___x_11083_ = v___x_11080_;
v_isShared_11084_ = v_isSharedCheck_11152_;
goto v_resetjp_11082_;
}
else
{
lean_inc(v_a_11081_);
lean_dec(v___x_11080_);
v___x_11083_ = lean_box(0);
v_isShared_11084_ = v_isSharedCheck_11152_;
goto v_resetjp_11082_;
}
v_resetjp_11082_:
{
if (lean_obj_tag(v_a_11081_) == 1)
{
lean_object* v_val_11085_; lean_object* v___x_11087_; uint8_t v_isShared_11088_; uint8_t v_isSharedCheck_11147_; 
lean_del_object(v___x_11083_);
v_val_11085_ = lean_ctor_get(v_a_11081_, 0);
v_isSharedCheck_11147_ = !lean_is_exclusive(v_a_11081_);
if (v_isSharedCheck_11147_ == 0)
{
v___x_11087_ = v_a_11081_;
v_isShared_11088_ = v_isSharedCheck_11147_;
goto v_resetjp_11086_;
}
else
{
lean_inc(v_val_11085_);
lean_dec(v_a_11081_);
v___x_11087_ = lean_box(0);
v_isShared_11088_ = v_isSharedCheck_11147_;
goto v_resetjp_11086_;
}
v_resetjp_11086_:
{
lean_object* v___x_11089_; lean_object* v___x_11090_; lean_object* v___x_11091_; lean_object* v___x_11092_; lean_object* v___x_11093_; lean_object* v___x_11094_; lean_object* v___x_11095_; lean_object* v___x_11096_; lean_object* v___x_11097_; 
v___x_11089_ = l_Lean_Expr_appFn_x21(v_aux_11073_);
lean_dec_ref(v_aux_11073_);
v___x_11090_ = l_Lean_Expr_appArg_x21(v___x_11089_);
lean_dec_ref(v___x_11089_);
v___x_11091_ = lean_nat_add(v_val_11068_, v_val_11085_);
lean_dec(v_val_11085_);
lean_dec(v_val_11068_);
v___x_11092_ = l_Lean_mkNatLit(v___x_11091_);
v___x_11093_ = lean_unsigned_to_nat(2u);
v___x_11094_ = lean_mk_empty_array_with_capacity(v___x_11093_);
lean_inc_ref(v___x_11090_);
v___x_11095_ = lean_array_push(v___x_11094_, v___x_11090_);
v___x_11096_ = lean_array_push(v___x_11095_, v___x_11092_);
lean_inc(v_a_11055_);
lean_inc_ref(v_a_11054_);
lean_inc(v_a_11053_);
lean_inc_ref(v_a_11052_);
v___x_11097_ = l_Lean_Meta_mkAppM(v___x_11057_, v___x_11096_, v_a_11052_, v_a_11053_, v_a_11054_, v_a_11055_);
if (lean_obj_tag(v___x_11097_) == 0)
{
lean_object* v_a_11098_; lean_object* v___x_11099_; lean_object* v___x_11100_; lean_object* v___x_11101_; lean_object* v___x_11102_; lean_object* v___x_11103_; lean_object* v___x_11104_; lean_object* v___x_11105_; 
v_a_11098_ = lean_ctor_get(v___x_11097_, 0);
lean_inc(v_a_11098_);
lean_dec_ref(v___x_11097_);
v___x_11099_ = ((lean_object*)(l_BitVec_reduceShiftLeftShiftLeft___redArg___closed__1));
v___x_11100_ = lean_unsigned_to_nat(3u);
v___x_11101_ = lean_mk_empty_array_with_capacity(v___x_11100_);
v___x_11102_ = lean_array_push(v___x_11101_, v___x_11090_);
v___x_11103_ = lean_array_push(v___x_11102_, v___x_11079_);
v___x_11104_ = lean_array_push(v___x_11103_, v___x_11062_);
lean_inc(v_a_11055_);
lean_inc_ref(v_a_11054_);
lean_inc(v_a_11053_);
lean_inc_ref(v_a_11052_);
v___x_11105_ = l_Lean_Meta_mkAppM(v___x_11099_, v___x_11104_, v_a_11052_, v_a_11053_, v_a_11054_, v_a_11055_);
if (lean_obj_tag(v___x_11105_) == 0)
{
lean_object* v_a_11106_; lean_object* v___x_11107_; 
v_a_11106_ = lean_ctor_get(v___x_11105_, 0);
lean_inc(v_a_11106_);
lean_dec_ref(v___x_11105_);
v___x_11107_ = l_Lean_Meta_mkEqSymm(v_a_11106_, v_a_11052_, v_a_11053_, v_a_11054_, v_a_11055_);
if (lean_obj_tag(v___x_11107_) == 0)
{
lean_object* v_a_11108_; lean_object* v___x_11110_; uint8_t v_isShared_11111_; uint8_t v_isSharedCheck_11122_; 
v_a_11108_ = lean_ctor_get(v___x_11107_, 0);
v_isSharedCheck_11122_ = !lean_is_exclusive(v___x_11107_);
if (v_isSharedCheck_11122_ == 0)
{
v___x_11110_ = v___x_11107_;
v_isShared_11111_ = v_isSharedCheck_11122_;
goto v_resetjp_11109_;
}
else
{
lean_inc(v_a_11108_);
lean_dec(v___x_11107_);
v___x_11110_ = lean_box(0);
v_isShared_11111_ = v_isSharedCheck_11122_;
goto v_resetjp_11109_;
}
v_resetjp_11109_:
{
lean_object* v___x_11113_; 
if (v_isShared_11088_ == 0)
{
lean_ctor_set(v___x_11087_, 0, v_a_11108_);
v___x_11113_ = v___x_11087_;
goto v_reusejp_11112_;
}
else
{
lean_object* v_reuseFailAlloc_11121_; 
v_reuseFailAlloc_11121_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11121_, 0, v_a_11108_);
v___x_11113_ = v_reuseFailAlloc_11121_;
goto v_reusejp_11112_;
}
v_reusejp_11112_:
{
lean_object* v___x_11114_; lean_object* v___x_11116_; 
v___x_11114_ = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(v___x_11114_, 0, v_a_11098_);
lean_ctor_set(v___x_11114_, 1, v___x_11113_);
lean_ctor_set_uint8(v___x_11114_, sizeof(void*)*2, v___x_11074_);
if (v_isShared_11071_ == 0)
{
lean_ctor_set(v___x_11070_, 0, v___x_11114_);
v___x_11116_ = v___x_11070_;
goto v_reusejp_11115_;
}
else
{
lean_object* v_reuseFailAlloc_11120_; 
v_reuseFailAlloc_11120_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11120_, 0, v___x_11114_);
v___x_11116_ = v_reuseFailAlloc_11120_;
goto v_reusejp_11115_;
}
v_reusejp_11115_:
{
lean_object* v___x_11118_; 
if (v_isShared_11111_ == 0)
{
lean_ctor_set(v___x_11110_, 0, v___x_11116_);
v___x_11118_ = v___x_11110_;
goto v_reusejp_11117_;
}
else
{
lean_object* v_reuseFailAlloc_11119_; 
v_reuseFailAlloc_11119_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11119_, 0, v___x_11116_);
v___x_11118_ = v_reuseFailAlloc_11119_;
goto v_reusejp_11117_;
}
v_reusejp_11117_:
{
return v___x_11118_;
}
}
}
}
}
else
{
lean_object* v_a_11123_; lean_object* v___x_11125_; uint8_t v_isShared_11126_; uint8_t v_isSharedCheck_11130_; 
lean_dec(v_a_11098_);
lean_del_object(v___x_11087_);
lean_del_object(v___x_11070_);
v_a_11123_ = lean_ctor_get(v___x_11107_, 0);
v_isSharedCheck_11130_ = !lean_is_exclusive(v___x_11107_);
if (v_isSharedCheck_11130_ == 0)
{
v___x_11125_ = v___x_11107_;
v_isShared_11126_ = v_isSharedCheck_11130_;
goto v_resetjp_11124_;
}
else
{
lean_inc(v_a_11123_);
lean_dec(v___x_11107_);
v___x_11125_ = lean_box(0);
v_isShared_11126_ = v_isSharedCheck_11130_;
goto v_resetjp_11124_;
}
v_resetjp_11124_:
{
lean_object* v___x_11128_; 
if (v_isShared_11126_ == 0)
{
v___x_11128_ = v___x_11125_;
goto v_reusejp_11127_;
}
else
{
lean_object* v_reuseFailAlloc_11129_; 
v_reuseFailAlloc_11129_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11129_, 0, v_a_11123_);
v___x_11128_ = v_reuseFailAlloc_11129_;
goto v_reusejp_11127_;
}
v_reusejp_11127_:
{
return v___x_11128_;
}
}
}
}
else
{
lean_object* v_a_11131_; lean_object* v___x_11133_; uint8_t v_isShared_11134_; uint8_t v_isSharedCheck_11138_; 
lean_dec(v_a_11098_);
lean_del_object(v___x_11087_);
lean_del_object(v___x_11070_);
lean_dec(v_a_11055_);
lean_dec_ref(v_a_11054_);
lean_dec(v_a_11053_);
lean_dec_ref(v_a_11052_);
v_a_11131_ = lean_ctor_get(v___x_11105_, 0);
v_isSharedCheck_11138_ = !lean_is_exclusive(v___x_11105_);
if (v_isSharedCheck_11138_ == 0)
{
v___x_11133_ = v___x_11105_;
v_isShared_11134_ = v_isSharedCheck_11138_;
goto v_resetjp_11132_;
}
else
{
lean_inc(v_a_11131_);
lean_dec(v___x_11105_);
v___x_11133_ = lean_box(0);
v_isShared_11134_ = v_isSharedCheck_11138_;
goto v_resetjp_11132_;
}
v_resetjp_11132_:
{
lean_object* v___x_11136_; 
if (v_isShared_11134_ == 0)
{
v___x_11136_ = v___x_11133_;
goto v_reusejp_11135_;
}
else
{
lean_object* v_reuseFailAlloc_11137_; 
v_reuseFailAlloc_11137_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11137_, 0, v_a_11131_);
v___x_11136_ = v_reuseFailAlloc_11137_;
goto v_reusejp_11135_;
}
v_reusejp_11135_:
{
return v___x_11136_;
}
}
}
}
else
{
lean_object* v_a_11139_; lean_object* v___x_11141_; uint8_t v_isShared_11142_; uint8_t v_isSharedCheck_11146_; 
lean_dec_ref(v___x_11090_);
lean_del_object(v___x_11087_);
lean_dec_ref(v___x_11079_);
lean_del_object(v___x_11070_);
lean_dec_ref(v___x_11062_);
lean_dec(v_a_11055_);
lean_dec_ref(v_a_11054_);
lean_dec(v_a_11053_);
lean_dec_ref(v_a_11052_);
v_a_11139_ = lean_ctor_get(v___x_11097_, 0);
v_isSharedCheck_11146_ = !lean_is_exclusive(v___x_11097_);
if (v_isSharedCheck_11146_ == 0)
{
v___x_11141_ = v___x_11097_;
v_isShared_11142_ = v_isSharedCheck_11146_;
goto v_resetjp_11140_;
}
else
{
lean_inc(v_a_11139_);
lean_dec(v___x_11097_);
v___x_11141_ = lean_box(0);
v_isShared_11142_ = v_isSharedCheck_11146_;
goto v_resetjp_11140_;
}
v_resetjp_11140_:
{
lean_object* v___x_11144_; 
if (v_isShared_11142_ == 0)
{
v___x_11144_ = v___x_11141_;
goto v_reusejp_11143_;
}
else
{
lean_object* v_reuseFailAlloc_11145_; 
v_reuseFailAlloc_11145_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11145_, 0, v_a_11139_);
v___x_11144_ = v_reuseFailAlloc_11145_;
goto v_reusejp_11143_;
}
v_reusejp_11143_:
{
return v___x_11144_;
}
}
}
}
}
else
{
lean_object* v___x_11148_; lean_object* v___x_11150_; 
lean_dec(v_a_11081_);
lean_dec_ref(v___x_11079_);
lean_dec_ref(v_aux_11073_);
lean_del_object(v___x_11070_);
lean_dec(v_val_11068_);
lean_dec_ref(v___x_11062_);
lean_dec(v_a_11055_);
lean_dec_ref(v_a_11054_);
lean_dec(v_a_11053_);
lean_dec_ref(v_a_11052_);
v___x_11148_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_11084_ == 0)
{
lean_ctor_set(v___x_11083_, 0, v___x_11148_);
v___x_11150_ = v___x_11083_;
goto v_reusejp_11149_;
}
else
{
lean_object* v_reuseFailAlloc_11151_; 
v_reuseFailAlloc_11151_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11151_, 0, v___x_11148_);
v___x_11150_ = v_reuseFailAlloc_11151_;
goto v_reusejp_11149_;
}
v_reusejp_11149_:
{
return v___x_11150_;
}
}
}
}
else
{
lean_object* v_a_11153_; lean_object* v___x_11155_; uint8_t v_isShared_11156_; uint8_t v_isSharedCheck_11160_; 
lean_dec_ref(v___x_11079_);
lean_dec_ref(v_aux_11073_);
lean_del_object(v___x_11070_);
lean_dec(v_val_11068_);
lean_dec_ref(v___x_11062_);
lean_dec(v_a_11055_);
lean_dec_ref(v_a_11054_);
lean_dec(v_a_11053_);
lean_dec_ref(v_a_11052_);
v_a_11153_ = lean_ctor_get(v___x_11080_, 0);
v_isSharedCheck_11160_ = !lean_is_exclusive(v___x_11080_);
if (v_isSharedCheck_11160_ == 0)
{
v___x_11155_ = v___x_11080_;
v_isShared_11156_ = v_isSharedCheck_11160_;
goto v_resetjp_11154_;
}
else
{
lean_inc(v_a_11153_);
lean_dec(v___x_11080_);
v___x_11155_ = lean_box(0);
v_isShared_11156_ = v_isSharedCheck_11160_;
goto v_resetjp_11154_;
}
v_resetjp_11154_:
{
lean_object* v___x_11158_; 
if (v_isShared_11156_ == 0)
{
v___x_11158_ = v___x_11155_;
goto v_reusejp_11157_;
}
else
{
lean_object* v_reuseFailAlloc_11159_; 
v_reuseFailAlloc_11159_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11159_, 0, v_a_11153_);
v___x_11158_ = v_reuseFailAlloc_11159_;
goto v_reusejp_11157_;
}
v_reusejp_11157_:
{
return v___x_11158_;
}
}
}
}
}
}
else
{
lean_object* v___x_11162_; lean_object* v___x_11164_; 
lean_dec(v_a_11064_);
lean_dec_ref(v___x_11062_);
lean_dec(v_a_11055_);
lean_dec_ref(v_a_11054_);
lean_dec(v_a_11053_);
lean_dec_ref(v_a_11052_);
v___x_11162_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_11067_ == 0)
{
lean_ctor_set(v___x_11066_, 0, v___x_11162_);
v___x_11164_ = v___x_11066_;
goto v_reusejp_11163_;
}
else
{
lean_object* v_reuseFailAlloc_11165_; 
v_reuseFailAlloc_11165_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11165_, 0, v___x_11162_);
v___x_11164_ = v_reuseFailAlloc_11165_;
goto v_reusejp_11163_;
}
v_reusejp_11163_:
{
return v___x_11164_;
}
}
}
}
else
{
lean_object* v_a_11167_; lean_object* v___x_11169_; uint8_t v_isShared_11170_; uint8_t v_isSharedCheck_11174_; 
lean_dec_ref(v___x_11062_);
lean_dec(v_a_11055_);
lean_dec_ref(v_a_11054_);
lean_dec(v_a_11053_);
lean_dec_ref(v_a_11052_);
v_a_11167_ = lean_ctor_get(v___x_11063_, 0);
v_isSharedCheck_11174_ = !lean_is_exclusive(v___x_11063_);
if (v_isSharedCheck_11174_ == 0)
{
v___x_11169_ = v___x_11063_;
v_isShared_11170_ = v_isSharedCheck_11174_;
goto v_resetjp_11168_;
}
else
{
lean_inc(v_a_11167_);
lean_dec(v___x_11063_);
v___x_11169_ = lean_box(0);
v_isShared_11170_ = v_isSharedCheck_11174_;
goto v_resetjp_11168_;
}
v_resetjp_11168_:
{
lean_object* v___x_11172_; 
if (v_isShared_11170_ == 0)
{
v___x_11172_ = v___x_11169_;
goto v_reusejp_11171_;
}
else
{
lean_object* v_reuseFailAlloc_11173_; 
v_reuseFailAlloc_11173_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11173_, 0, v_a_11167_);
v___x_11172_ = v_reuseFailAlloc_11173_;
goto v_reusejp_11171_;
}
v_reusejp_11171_:
{
return v___x_11172_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___redArg___boxed(lean_object* v_e_11175_, lean_object* v_a_11176_, lean_object* v_a_11177_, lean_object* v_a_11178_, lean_object* v_a_11179_, lean_object* v_a_11180_){
_start:
{
lean_object* v_res_11181_; 
v_res_11181_ = l_BitVec_reduceShiftLeftShiftLeft___redArg(v_e_11175_, v_a_11176_, v_a_11177_, v_a_11178_, v_a_11179_);
lean_dec_ref(v_e_11175_);
return v_res_11181_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft(lean_object* v_e_11182_, lean_object* v_a_11183_, lean_object* v_a_11184_, lean_object* v_a_11185_, lean_object* v_a_11186_, lean_object* v_a_11187_, lean_object* v_a_11188_, lean_object* v_a_11189_){
_start:
{
lean_object* v___x_11191_; 
v___x_11191_ = l_BitVec_reduceShiftLeftShiftLeft___redArg(v_e_11182_, v_a_11186_, v_a_11187_, v_a_11188_, v_a_11189_);
return v___x_11191_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___boxed(lean_object* v_e_11192_, lean_object* v_a_11193_, lean_object* v_a_11194_, lean_object* v_a_11195_, lean_object* v_a_11196_, lean_object* v_a_11197_, lean_object* v_a_11198_, lean_object* v_a_11199_, lean_object* v_a_11200_){
_start:
{
lean_object* v_res_11201_; 
v_res_11201_ = l_BitVec_reduceShiftLeftShiftLeft(v_e_11192_, v_a_11193_, v_a_11194_, v_a_11195_, v_a_11196_, v_a_11197_, v_a_11198_, v_a_11199_);
lean_dec(v_a_11195_);
lean_dec_ref(v_a_11194_);
lean_dec(v_a_11193_);
lean_dec_ref(v_e_11192_);
return v_res_11201_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_(void){
_start:
{
lean_object* v___x_11206_; lean_object* v___x_11207_; lean_object* v___x_11208_; lean_object* v___x_11209_; lean_object* v___x_11210_; lean_object* v___x_11211_; lean_object* v___x_11212_; lean_object* v___x_11213_; lean_object* v___x_11214_; lean_object* v___x_11215_; lean_object* v___x_11216_; lean_object* v___x_11217_; lean_object* v___x_11218_; lean_object* v___x_11219_; lean_object* v___x_11220_; lean_object* v___x_11221_; lean_object* v___x_11222_; lean_object* v___x_11223_; lean_object* v___x_11224_; lean_object* v___x_11225_; lean_object* v___x_11226_; 
v___x_11206_ = lean_box(0);
v___x_11207_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_11208_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_));
v___x_11209_ = lean_unsigned_to_nat(16u);
v___x_11210_ = lean_mk_empty_array_with_capacity(v___x_11209_);
v___x_11211_ = lean_array_push(v___x_11210_, v___x_11208_);
v___x_11212_ = lean_array_push(v___x_11211_, v___x_11207_);
v___x_11213_ = lean_array_push(v___x_11212_, v___x_11206_);
v___x_11214_ = lean_array_push(v___x_11213_, v___x_11206_);
v___x_11215_ = lean_array_push(v___x_11214_, v___x_11207_);
v___x_11216_ = lean_array_push(v___x_11215_, v___x_11206_);
v___x_11217_ = lean_array_push(v___x_11216_, v___x_11206_);
v___x_11218_ = lean_array_push(v___x_11217_, v___x_11208_);
v___x_11219_ = lean_array_push(v___x_11218_, v___x_11206_);
v___x_11220_ = lean_array_push(v___x_11219_, v___x_11206_);
v___x_11221_ = lean_array_push(v___x_11220_, v___x_11207_);
v___x_11222_ = lean_array_push(v___x_11221_, v___x_11206_);
v___x_11223_ = lean_array_push(v___x_11222_, v___x_11206_);
v___x_11224_ = lean_array_push(v___x_11223_, v___x_11206_);
v___x_11225_ = lean_array_push(v___x_11224_, v___x_11206_);
v___x_11226_ = lean_array_push(v___x_11225_, v___x_11206_);
return v___x_11226_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_(){
_start:
{
lean_object* v___x_11228_; lean_object* v___x_11229_; lean_object* v___x_11230_; lean_object* v___x_11231_; 
v___x_11228_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_));
v___x_11229_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_);
v___x_11230_ = lean_alloc_closure((void*)(l_BitVec_reduceShiftLeftShiftLeft___boxed), 9, 0);
v___x_11231_ = l_Lean_Meta_Simp_registerBuiltinSimproc(v___x_11228_, v___x_11229_, v___x_11230_);
return v___x_11231_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28____boxed(lean_object* v_a_11232_){
_start:
{
lean_object* v_res_11233_; 
v_res_11233_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_();
return v_res_11233_;
}
}
static lean_object* _init_l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30_(void){
_start:
{
lean_object* v___x_11234_; lean_object* v___x_11235_; 
v___x_11234_ = lean_alloc_closure((void*)(l_BitVec_reduceShiftLeftShiftLeft___boxed), 9, 0);
v___x_11235_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_11235_, 0, v___x_11234_);
return v___x_11235_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30_(){
_start:
{
lean_object* v___x_11237_; uint8_t v___x_11238_; lean_object* v___x_11239_; lean_object* v___x_11240_; 
v___x_11237_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_));
v___x_11238_ = 1;
v___x_11239_ = lean_obj_once(&l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30_, &l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30__once, _init_l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30_);
v___x_11240_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_11237_, v___x_11238_, v___x_11239_);
return v___x_11240_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30____boxed(lean_object* v_a_11241_){
_start:
{
lean_object* v_res_11242_; 
v_res_11242_ = l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30_();
return v_res_11242_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___redArg(lean_object* v_e_11247_, lean_object* v_a_11248_, lean_object* v_a_11249_, lean_object* v_a_11250_, lean_object* v_a_11251_){
_start:
{
lean_object* v___x_11253_; lean_object* v___x_11254_; uint8_t v___x_11255_; 
v___x_11253_ = ((lean_object*)(l_BitVec_reduceHShiftRight___redArg___closed__2));
v___x_11254_ = lean_unsigned_to_nat(6u);
v___x_11255_ = l_Lean_Expr_isAppOfArity(v_e_11247_, v___x_11253_, v___x_11254_);
if (v___x_11255_ == 0)
{
lean_object* v___x_11256_; lean_object* v___x_11257_; 
lean_dec(v_a_11251_);
lean_dec_ref(v_a_11250_);
lean_dec(v_a_11249_);
lean_dec_ref(v_a_11248_);
v___x_11256_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
v___x_11257_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_11257_, 0, v___x_11256_);
return v___x_11257_;
}
else
{
lean_object* v___x_11258_; lean_object* v___x_11259_; 
v___x_11258_ = l_Lean_Expr_appArg_x21(v_e_11247_);
lean_inc(v_a_11251_);
lean_inc_ref(v_a_11250_);
lean_inc(v_a_11249_);
lean_inc_ref(v_a_11248_);
v___x_11259_ = l_Lean_Meta_getNatValue_x3f(v___x_11258_, v_a_11248_, v_a_11249_, v_a_11250_, v_a_11251_);
if (lean_obj_tag(v___x_11259_) == 0)
{
lean_object* v_a_11260_; lean_object* v___x_11262_; uint8_t v_isShared_11263_; uint8_t v_isSharedCheck_11362_; 
v_a_11260_ = lean_ctor_get(v___x_11259_, 0);
v_isSharedCheck_11362_ = !lean_is_exclusive(v___x_11259_);
if (v_isSharedCheck_11362_ == 0)
{
v___x_11262_ = v___x_11259_;
v_isShared_11263_ = v_isSharedCheck_11362_;
goto v_resetjp_11261_;
}
else
{
lean_inc(v_a_11260_);
lean_dec(v___x_11259_);
v___x_11262_ = lean_box(0);
v_isShared_11263_ = v_isSharedCheck_11362_;
goto v_resetjp_11261_;
}
v_resetjp_11261_:
{
if (lean_obj_tag(v_a_11260_) == 1)
{
lean_object* v_val_11264_; lean_object* v___x_11266_; uint8_t v_isShared_11267_; uint8_t v_isSharedCheck_11357_; 
v_val_11264_ = lean_ctor_get(v_a_11260_, 0);
v_isSharedCheck_11357_ = !lean_is_exclusive(v_a_11260_);
if (v_isSharedCheck_11357_ == 0)
{
v___x_11266_ = v_a_11260_;
v_isShared_11267_ = v_isSharedCheck_11357_;
goto v_resetjp_11265_;
}
else
{
lean_inc(v_val_11264_);
lean_dec(v_a_11260_);
v___x_11266_ = lean_box(0);
v_isShared_11267_ = v_isSharedCheck_11357_;
goto v_resetjp_11265_;
}
v_resetjp_11265_:
{
lean_object* v___x_11268_; lean_object* v_aux_11269_; uint8_t v___x_11270_; 
v___x_11268_ = l_Lean_Expr_appFn_x21(v_e_11247_);
v_aux_11269_ = l_Lean_Expr_appArg_x21(v___x_11268_);
lean_dec_ref(v___x_11268_);
v___x_11270_ = l_Lean_Expr_isAppOfArity(v_aux_11269_, v___x_11253_, v___x_11254_);
if (v___x_11270_ == 0)
{
lean_object* v___x_11271_; lean_object* v___x_11273_; 
lean_dec_ref(v_aux_11269_);
lean_del_object(v___x_11266_);
lean_dec(v_val_11264_);
lean_dec_ref(v___x_11258_);
lean_dec(v_a_11251_);
lean_dec_ref(v_a_11250_);
lean_dec(v_a_11249_);
lean_dec_ref(v_a_11248_);
v___x_11271_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_11263_ == 0)
{
lean_ctor_set(v___x_11262_, 0, v___x_11271_);
v___x_11273_ = v___x_11262_;
goto v_reusejp_11272_;
}
else
{
lean_object* v_reuseFailAlloc_11274_; 
v_reuseFailAlloc_11274_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11274_, 0, v___x_11271_);
v___x_11273_ = v_reuseFailAlloc_11274_;
goto v_reusejp_11272_;
}
v_reusejp_11272_:
{
return v___x_11273_;
}
}
else
{
lean_object* v___x_11275_; lean_object* v___x_11276_; 
lean_del_object(v___x_11262_);
v___x_11275_ = l_Lean_Expr_appArg_x21(v_aux_11269_);
lean_inc(v_a_11251_);
lean_inc_ref(v_a_11250_);
lean_inc(v_a_11249_);
lean_inc_ref(v_a_11248_);
v___x_11276_ = l_Lean_Meta_getNatValue_x3f(v___x_11275_, v_a_11248_, v_a_11249_, v_a_11250_, v_a_11251_);
if (lean_obj_tag(v___x_11276_) == 0)
{
lean_object* v_a_11277_; lean_object* v___x_11279_; uint8_t v_isShared_11280_; uint8_t v_isSharedCheck_11348_; 
v_a_11277_ = lean_ctor_get(v___x_11276_, 0);
v_isSharedCheck_11348_ = !lean_is_exclusive(v___x_11276_);
if (v_isSharedCheck_11348_ == 0)
{
v___x_11279_ = v___x_11276_;
v_isShared_11280_ = v_isSharedCheck_11348_;
goto v_resetjp_11278_;
}
else
{
lean_inc(v_a_11277_);
lean_dec(v___x_11276_);
v___x_11279_ = lean_box(0);
v_isShared_11280_ = v_isSharedCheck_11348_;
goto v_resetjp_11278_;
}
v_resetjp_11278_:
{
if (lean_obj_tag(v_a_11277_) == 1)
{
lean_object* v_val_11281_; lean_object* v___x_11283_; uint8_t v_isShared_11284_; uint8_t v_isSharedCheck_11343_; 
lean_del_object(v___x_11279_);
v_val_11281_ = lean_ctor_get(v_a_11277_, 0);
v_isSharedCheck_11343_ = !lean_is_exclusive(v_a_11277_);
if (v_isSharedCheck_11343_ == 0)
{
v___x_11283_ = v_a_11277_;
v_isShared_11284_ = v_isSharedCheck_11343_;
goto v_resetjp_11282_;
}
else
{
lean_inc(v_val_11281_);
lean_dec(v_a_11277_);
v___x_11283_ = lean_box(0);
v_isShared_11284_ = v_isSharedCheck_11343_;
goto v_resetjp_11282_;
}
v_resetjp_11282_:
{
lean_object* v___x_11285_; lean_object* v___x_11286_; lean_object* v___x_11287_; lean_object* v___x_11288_; lean_object* v___x_11289_; lean_object* v___x_11290_; lean_object* v___x_11291_; lean_object* v___x_11292_; lean_object* v___x_11293_; 
v___x_11285_ = l_Lean_Expr_appFn_x21(v_aux_11269_);
lean_dec_ref(v_aux_11269_);
v___x_11286_ = l_Lean_Expr_appArg_x21(v___x_11285_);
lean_dec_ref(v___x_11285_);
v___x_11287_ = lean_nat_add(v_val_11264_, v_val_11281_);
lean_dec(v_val_11281_);
lean_dec(v_val_11264_);
v___x_11288_ = l_Lean_mkNatLit(v___x_11287_);
v___x_11289_ = lean_unsigned_to_nat(2u);
v___x_11290_ = lean_mk_empty_array_with_capacity(v___x_11289_);
lean_inc_ref(v___x_11286_);
v___x_11291_ = lean_array_push(v___x_11290_, v___x_11286_);
v___x_11292_ = lean_array_push(v___x_11291_, v___x_11288_);
lean_inc(v_a_11251_);
lean_inc_ref(v_a_11250_);
lean_inc(v_a_11249_);
lean_inc_ref(v_a_11248_);
v___x_11293_ = l_Lean_Meta_mkAppM(v___x_11253_, v___x_11292_, v_a_11248_, v_a_11249_, v_a_11250_, v_a_11251_);
if (lean_obj_tag(v___x_11293_) == 0)
{
lean_object* v_a_11294_; lean_object* v___x_11295_; lean_object* v___x_11296_; lean_object* v___x_11297_; lean_object* v___x_11298_; lean_object* v___x_11299_; lean_object* v___x_11300_; lean_object* v___x_11301_; 
v_a_11294_ = lean_ctor_get(v___x_11293_, 0);
lean_inc(v_a_11294_);
lean_dec_ref(v___x_11293_);
v___x_11295_ = ((lean_object*)(l_BitVec_reduceShiftRightShiftRight___redArg___closed__1));
v___x_11296_ = lean_unsigned_to_nat(3u);
v___x_11297_ = lean_mk_empty_array_with_capacity(v___x_11296_);
v___x_11298_ = lean_array_push(v___x_11297_, v___x_11286_);
v___x_11299_ = lean_array_push(v___x_11298_, v___x_11275_);
v___x_11300_ = lean_array_push(v___x_11299_, v___x_11258_);
lean_inc(v_a_11251_);
lean_inc_ref(v_a_11250_);
lean_inc(v_a_11249_);
lean_inc_ref(v_a_11248_);
v___x_11301_ = l_Lean_Meta_mkAppM(v___x_11295_, v___x_11300_, v_a_11248_, v_a_11249_, v_a_11250_, v_a_11251_);
if (lean_obj_tag(v___x_11301_) == 0)
{
lean_object* v_a_11302_; lean_object* v___x_11303_; 
v_a_11302_ = lean_ctor_get(v___x_11301_, 0);
lean_inc(v_a_11302_);
lean_dec_ref(v___x_11301_);
v___x_11303_ = l_Lean_Meta_mkEqSymm(v_a_11302_, v_a_11248_, v_a_11249_, v_a_11250_, v_a_11251_);
if (lean_obj_tag(v___x_11303_) == 0)
{
lean_object* v_a_11304_; lean_object* v___x_11306_; uint8_t v_isShared_11307_; uint8_t v_isSharedCheck_11318_; 
v_a_11304_ = lean_ctor_get(v___x_11303_, 0);
v_isSharedCheck_11318_ = !lean_is_exclusive(v___x_11303_);
if (v_isSharedCheck_11318_ == 0)
{
v___x_11306_ = v___x_11303_;
v_isShared_11307_ = v_isSharedCheck_11318_;
goto v_resetjp_11305_;
}
else
{
lean_inc(v_a_11304_);
lean_dec(v___x_11303_);
v___x_11306_ = lean_box(0);
v_isShared_11307_ = v_isSharedCheck_11318_;
goto v_resetjp_11305_;
}
v_resetjp_11305_:
{
lean_object* v___x_11309_; 
if (v_isShared_11284_ == 0)
{
lean_ctor_set(v___x_11283_, 0, v_a_11304_);
v___x_11309_ = v___x_11283_;
goto v_reusejp_11308_;
}
else
{
lean_object* v_reuseFailAlloc_11317_; 
v_reuseFailAlloc_11317_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11317_, 0, v_a_11304_);
v___x_11309_ = v_reuseFailAlloc_11317_;
goto v_reusejp_11308_;
}
v_reusejp_11308_:
{
lean_object* v___x_11310_; lean_object* v___x_11312_; 
v___x_11310_ = lean_alloc_ctor(0, 2, 1);
lean_ctor_set(v___x_11310_, 0, v_a_11294_);
lean_ctor_set(v___x_11310_, 1, v___x_11309_);
lean_ctor_set_uint8(v___x_11310_, sizeof(void*)*2, v___x_11270_);
if (v_isShared_11267_ == 0)
{
lean_ctor_set(v___x_11266_, 0, v___x_11310_);
v___x_11312_ = v___x_11266_;
goto v_reusejp_11311_;
}
else
{
lean_object* v_reuseFailAlloc_11316_; 
v_reuseFailAlloc_11316_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11316_, 0, v___x_11310_);
v___x_11312_ = v_reuseFailAlloc_11316_;
goto v_reusejp_11311_;
}
v_reusejp_11311_:
{
lean_object* v___x_11314_; 
if (v_isShared_11307_ == 0)
{
lean_ctor_set(v___x_11306_, 0, v___x_11312_);
v___x_11314_ = v___x_11306_;
goto v_reusejp_11313_;
}
else
{
lean_object* v_reuseFailAlloc_11315_; 
v_reuseFailAlloc_11315_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11315_, 0, v___x_11312_);
v___x_11314_ = v_reuseFailAlloc_11315_;
goto v_reusejp_11313_;
}
v_reusejp_11313_:
{
return v___x_11314_;
}
}
}
}
}
else
{
lean_object* v_a_11319_; lean_object* v___x_11321_; uint8_t v_isShared_11322_; uint8_t v_isSharedCheck_11326_; 
lean_dec(v_a_11294_);
lean_del_object(v___x_11283_);
lean_del_object(v___x_11266_);
v_a_11319_ = lean_ctor_get(v___x_11303_, 0);
v_isSharedCheck_11326_ = !lean_is_exclusive(v___x_11303_);
if (v_isSharedCheck_11326_ == 0)
{
v___x_11321_ = v___x_11303_;
v_isShared_11322_ = v_isSharedCheck_11326_;
goto v_resetjp_11320_;
}
else
{
lean_inc(v_a_11319_);
lean_dec(v___x_11303_);
v___x_11321_ = lean_box(0);
v_isShared_11322_ = v_isSharedCheck_11326_;
goto v_resetjp_11320_;
}
v_resetjp_11320_:
{
lean_object* v___x_11324_; 
if (v_isShared_11322_ == 0)
{
v___x_11324_ = v___x_11321_;
goto v_reusejp_11323_;
}
else
{
lean_object* v_reuseFailAlloc_11325_; 
v_reuseFailAlloc_11325_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11325_, 0, v_a_11319_);
v___x_11324_ = v_reuseFailAlloc_11325_;
goto v_reusejp_11323_;
}
v_reusejp_11323_:
{
return v___x_11324_;
}
}
}
}
else
{
lean_object* v_a_11327_; lean_object* v___x_11329_; uint8_t v_isShared_11330_; uint8_t v_isSharedCheck_11334_; 
lean_dec(v_a_11294_);
lean_del_object(v___x_11283_);
lean_del_object(v___x_11266_);
lean_dec(v_a_11251_);
lean_dec_ref(v_a_11250_);
lean_dec(v_a_11249_);
lean_dec_ref(v_a_11248_);
v_a_11327_ = lean_ctor_get(v___x_11301_, 0);
v_isSharedCheck_11334_ = !lean_is_exclusive(v___x_11301_);
if (v_isSharedCheck_11334_ == 0)
{
v___x_11329_ = v___x_11301_;
v_isShared_11330_ = v_isSharedCheck_11334_;
goto v_resetjp_11328_;
}
else
{
lean_inc(v_a_11327_);
lean_dec(v___x_11301_);
v___x_11329_ = lean_box(0);
v_isShared_11330_ = v_isSharedCheck_11334_;
goto v_resetjp_11328_;
}
v_resetjp_11328_:
{
lean_object* v___x_11332_; 
if (v_isShared_11330_ == 0)
{
v___x_11332_ = v___x_11329_;
goto v_reusejp_11331_;
}
else
{
lean_object* v_reuseFailAlloc_11333_; 
v_reuseFailAlloc_11333_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11333_, 0, v_a_11327_);
v___x_11332_ = v_reuseFailAlloc_11333_;
goto v_reusejp_11331_;
}
v_reusejp_11331_:
{
return v___x_11332_;
}
}
}
}
else
{
lean_object* v_a_11335_; lean_object* v___x_11337_; uint8_t v_isShared_11338_; uint8_t v_isSharedCheck_11342_; 
lean_dec_ref(v___x_11286_);
lean_del_object(v___x_11283_);
lean_dec_ref(v___x_11275_);
lean_del_object(v___x_11266_);
lean_dec_ref(v___x_11258_);
lean_dec(v_a_11251_);
lean_dec_ref(v_a_11250_);
lean_dec(v_a_11249_);
lean_dec_ref(v_a_11248_);
v_a_11335_ = lean_ctor_get(v___x_11293_, 0);
v_isSharedCheck_11342_ = !lean_is_exclusive(v___x_11293_);
if (v_isSharedCheck_11342_ == 0)
{
v___x_11337_ = v___x_11293_;
v_isShared_11338_ = v_isSharedCheck_11342_;
goto v_resetjp_11336_;
}
else
{
lean_inc(v_a_11335_);
lean_dec(v___x_11293_);
v___x_11337_ = lean_box(0);
v_isShared_11338_ = v_isSharedCheck_11342_;
goto v_resetjp_11336_;
}
v_resetjp_11336_:
{
lean_object* v___x_11340_; 
if (v_isShared_11338_ == 0)
{
v___x_11340_ = v___x_11337_;
goto v_reusejp_11339_;
}
else
{
lean_object* v_reuseFailAlloc_11341_; 
v_reuseFailAlloc_11341_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11341_, 0, v_a_11335_);
v___x_11340_ = v_reuseFailAlloc_11341_;
goto v_reusejp_11339_;
}
v_reusejp_11339_:
{
return v___x_11340_;
}
}
}
}
}
else
{
lean_object* v___x_11344_; lean_object* v___x_11346_; 
lean_dec(v_a_11277_);
lean_dec_ref(v___x_11275_);
lean_dec_ref(v_aux_11269_);
lean_del_object(v___x_11266_);
lean_dec(v_val_11264_);
lean_dec_ref(v___x_11258_);
lean_dec(v_a_11251_);
lean_dec_ref(v_a_11250_);
lean_dec(v_a_11249_);
lean_dec_ref(v_a_11248_);
v___x_11344_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_11280_ == 0)
{
lean_ctor_set(v___x_11279_, 0, v___x_11344_);
v___x_11346_ = v___x_11279_;
goto v_reusejp_11345_;
}
else
{
lean_object* v_reuseFailAlloc_11347_; 
v_reuseFailAlloc_11347_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11347_, 0, v___x_11344_);
v___x_11346_ = v_reuseFailAlloc_11347_;
goto v_reusejp_11345_;
}
v_reusejp_11345_:
{
return v___x_11346_;
}
}
}
}
else
{
lean_object* v_a_11349_; lean_object* v___x_11351_; uint8_t v_isShared_11352_; uint8_t v_isSharedCheck_11356_; 
lean_dec_ref(v___x_11275_);
lean_dec_ref(v_aux_11269_);
lean_del_object(v___x_11266_);
lean_dec(v_val_11264_);
lean_dec_ref(v___x_11258_);
lean_dec(v_a_11251_);
lean_dec_ref(v_a_11250_);
lean_dec(v_a_11249_);
lean_dec_ref(v_a_11248_);
v_a_11349_ = lean_ctor_get(v___x_11276_, 0);
v_isSharedCheck_11356_ = !lean_is_exclusive(v___x_11276_);
if (v_isSharedCheck_11356_ == 0)
{
v___x_11351_ = v___x_11276_;
v_isShared_11352_ = v_isSharedCheck_11356_;
goto v_resetjp_11350_;
}
else
{
lean_inc(v_a_11349_);
lean_dec(v___x_11276_);
v___x_11351_ = lean_box(0);
v_isShared_11352_ = v_isSharedCheck_11356_;
goto v_resetjp_11350_;
}
v_resetjp_11350_:
{
lean_object* v___x_11354_; 
if (v_isShared_11352_ == 0)
{
v___x_11354_ = v___x_11351_;
goto v_reusejp_11353_;
}
else
{
lean_object* v_reuseFailAlloc_11355_; 
v_reuseFailAlloc_11355_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11355_, 0, v_a_11349_);
v___x_11354_ = v_reuseFailAlloc_11355_;
goto v_reusejp_11353_;
}
v_reusejp_11353_:
{
return v___x_11354_;
}
}
}
}
}
}
else
{
lean_object* v___x_11358_; lean_object* v___x_11360_; 
lean_dec(v_a_11260_);
lean_dec_ref(v___x_11258_);
lean_dec(v_a_11251_);
lean_dec_ref(v_a_11250_);
lean_dec(v_a_11249_);
lean_dec_ref(v_a_11248_);
v___x_11358_ = ((lean_object*)(l_BitVec_reduceBinPred___redArg___closed__0));
if (v_isShared_11263_ == 0)
{
lean_ctor_set(v___x_11262_, 0, v___x_11358_);
v___x_11360_ = v___x_11262_;
goto v_reusejp_11359_;
}
else
{
lean_object* v_reuseFailAlloc_11361_; 
v_reuseFailAlloc_11361_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11361_, 0, v___x_11358_);
v___x_11360_ = v_reuseFailAlloc_11361_;
goto v_reusejp_11359_;
}
v_reusejp_11359_:
{
return v___x_11360_;
}
}
}
}
else
{
lean_object* v_a_11363_; lean_object* v___x_11365_; uint8_t v_isShared_11366_; uint8_t v_isSharedCheck_11370_; 
lean_dec_ref(v___x_11258_);
lean_dec(v_a_11251_);
lean_dec_ref(v_a_11250_);
lean_dec(v_a_11249_);
lean_dec_ref(v_a_11248_);
v_a_11363_ = lean_ctor_get(v___x_11259_, 0);
v_isSharedCheck_11370_ = !lean_is_exclusive(v___x_11259_);
if (v_isSharedCheck_11370_ == 0)
{
v___x_11365_ = v___x_11259_;
v_isShared_11366_ = v_isSharedCheck_11370_;
goto v_resetjp_11364_;
}
else
{
lean_inc(v_a_11363_);
lean_dec(v___x_11259_);
v___x_11365_ = lean_box(0);
v_isShared_11366_ = v_isSharedCheck_11370_;
goto v_resetjp_11364_;
}
v_resetjp_11364_:
{
lean_object* v___x_11368_; 
if (v_isShared_11366_ == 0)
{
v___x_11368_ = v___x_11365_;
goto v_reusejp_11367_;
}
else
{
lean_object* v_reuseFailAlloc_11369_; 
v_reuseFailAlloc_11369_ = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(v_reuseFailAlloc_11369_, 0, v_a_11363_);
v___x_11368_ = v_reuseFailAlloc_11369_;
goto v_reusejp_11367_;
}
v_reusejp_11367_:
{
return v___x_11368_;
}
}
}
}
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___redArg___boxed(lean_object* v_e_11371_, lean_object* v_a_11372_, lean_object* v_a_11373_, lean_object* v_a_11374_, lean_object* v_a_11375_, lean_object* v_a_11376_){
_start:
{
lean_object* v_res_11377_; 
v_res_11377_ = l_BitVec_reduceShiftRightShiftRight___redArg(v_e_11371_, v_a_11372_, v_a_11373_, v_a_11374_, v_a_11375_);
lean_dec_ref(v_e_11371_);
return v_res_11377_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight(lean_object* v_e_11378_, lean_object* v_a_11379_, lean_object* v_a_11380_, lean_object* v_a_11381_, lean_object* v_a_11382_, lean_object* v_a_11383_, lean_object* v_a_11384_, lean_object* v_a_11385_){
_start:
{
lean_object* v___x_11387_; 
v___x_11387_ = l_BitVec_reduceShiftRightShiftRight___redArg(v_e_11378_, v_a_11382_, v_a_11383_, v_a_11384_, v_a_11385_);
return v___x_11387_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___boxed(lean_object* v_e_11388_, lean_object* v_a_11389_, lean_object* v_a_11390_, lean_object* v_a_11391_, lean_object* v_a_11392_, lean_object* v_a_11393_, lean_object* v_a_11394_, lean_object* v_a_11395_, lean_object* v_a_11396_){
_start:
{
lean_object* v_res_11397_; 
v_res_11397_ = l_BitVec_reduceShiftRightShiftRight(v_e_11388_, v_a_11389_, v_a_11390_, v_a_11391_, v_a_11392_, v_a_11393_, v_a_11394_, v_a_11395_);
lean_dec(v_a_11391_);
lean_dec_ref(v_a_11390_);
lean_dec(v_a_11389_);
lean_dec_ref(v_e_11388_);
return v_res_11397_;
}
}
static lean_object* _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_(void){
_start:
{
lean_object* v___x_11402_; lean_object* v___x_11403_; lean_object* v___x_11404_; lean_object* v___x_11405_; lean_object* v___x_11406_; lean_object* v___x_11407_; lean_object* v___x_11408_; lean_object* v___x_11409_; lean_object* v___x_11410_; lean_object* v___x_11411_; lean_object* v___x_11412_; lean_object* v___x_11413_; lean_object* v___x_11414_; lean_object* v___x_11415_; lean_object* v___x_11416_; lean_object* v___x_11417_; lean_object* v___x_11418_; lean_object* v___x_11419_; lean_object* v___x_11420_; lean_object* v___x_11421_; lean_object* v___x_11422_; 
v___x_11402_ = lean_box(0);
v___x_11403_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48___closed__3_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_));
v___x_11404_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_));
v___x_11405_ = lean_unsigned_to_nat(16u);
v___x_11406_ = lean_mk_empty_array_with_capacity(v___x_11405_);
v___x_11407_ = lean_array_push(v___x_11406_, v___x_11404_);
v___x_11408_ = lean_array_push(v___x_11407_, v___x_11403_);
v___x_11409_ = lean_array_push(v___x_11408_, v___x_11402_);
v___x_11410_ = lean_array_push(v___x_11409_, v___x_11402_);
v___x_11411_ = lean_array_push(v___x_11410_, v___x_11403_);
v___x_11412_ = lean_array_push(v___x_11411_, v___x_11402_);
v___x_11413_ = lean_array_push(v___x_11412_, v___x_11402_);
v___x_11414_ = lean_array_push(v___x_11413_, v___x_11404_);
v___x_11415_ = lean_array_push(v___x_11414_, v___x_11402_);
v___x_11416_ = lean_array_push(v___x_11415_, v___x_11402_);
v___x_11417_ = lean_array_push(v___x_11416_, v___x_11403_);
v___x_11418_ = lean_array_push(v___x_11417_, v___x_11402_);
v___x_11419_ = lean_array_push(v___x_11418_, v___x_11402_);
v___x_11420_ = lean_array_push(v___x_11419_, v___x_11402_);
v___x_11421_ = lean_array_push(v___x_11420_, v___x_11402_);
v___x_11422_ = lean_array_push(v___x_11421_, v___x_11402_);
return v___x_11422_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_(){
_start:
{
lean_object* v___x_11424_; lean_object* v___x_11425_; lean_object* v___x_11426_; lean_object* v___x_11427_; 
v___x_11424_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_));
v___x_11425_ = lean_obj_once(&l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_, &l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28__once, _init_l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__2_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_);
v___x_11426_ = lean_alloc_closure((void*)(l_BitVec_reduceShiftRightShiftRight___boxed), 9, 0);
v___x_11427_ = l_Lean_Meta_Simp_registerBuiltinSimproc(v___x_11424_, v___x_11425_, v___x_11426_);
return v___x_11427_;
}
}
LEAN_EXPORT lean_object* l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28____boxed(lean_object* v_a_11428_){
_start:
{
lean_object* v_res_11429_; 
v_res_11429_ = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_();
return v_res_11429_;
}
}
static lean_object* _init_l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30_(void){
_start:
{
lean_object* v___x_11430_; lean_object* v___x_11431_; 
v___x_11430_ = lean_alloc_closure((void*)(l_BitVec_reduceShiftRightShiftRight___boxed), 9, 0);
v___x_11431_ = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(v___x_11431_, 0, v___x_11430_);
return v___x_11431_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30_(){
_start:
{
lean_object* v___x_11433_; uint8_t v___x_11434_; lean_object* v___x_11435_; lean_object* v___x_11436_; 
v___x_11433_ = ((lean_object*)(l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356___closed__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_));
v___x_11434_ = 1;
v___x_11435_ = lean_obj_once(&l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30_, &l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30__once, _init_l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1___closed__0_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30_);
v___x_11436_ = l_Lean_Meta_Simp_addSimprocBuiltinAttr(v___x_11433_, v___x_11434_, v___x_11435_);
return v___x_11436_;
}
}
LEAN_EXPORT lean_object* l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30____boxed(lean_object* v_a_11437_){
_start:
{
lean_object* v_res_11438_; 
v_res_11438_ = l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30_();
return v_res_11438_;
}
}
lean_object* runtime_initialize_Lean_Meta_Tactic_Simp_BuiltinSimprocs_Int(uint8_t builtin);
lean_object* runtime_initialize_Init_Data_BitVec_Lemmas(uint8_t builtin);
static bool _G_runtime_initialized = false;
LEAN_EXPORT lean_object* runtime_initialize_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec(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_Simp_BuiltinSimprocs_Int(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = runtime_initialize_Init_Data_BitVec_Lemmas(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNeg_declare__48_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_19_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceNeg___regBuiltin_BitVec_reduceNeg_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3363777397____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNot_declare__53_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_19_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceNot___regBuiltin_BitVec_reduceNot_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_801351438____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAbs_declare__58_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_13_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_15_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAbs___regBuiltin_BitVec_reduceAbs_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1689428948____hygCtx___hyg_17_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAnd_declare__63_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAnd___regBuiltin_BitVec_reduceAnd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1101098136____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOr_declare__68_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceOr___regBuiltin_BitVec_reduceOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1307421482____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceXOr_declare__73_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceXOr___regBuiltin_BitVec_reduceXOr_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_370586403____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAdd_declare__78_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAdd___regBuiltin_BitVec_reduceAdd_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_73578345____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMul_declare__83_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceMul___regBuiltin_BitVec_reduceMul_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_998258654____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSub_declare__88_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSub___regBuiltin_BitVec_reduceSub_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3577026531____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceDiv_declare__93_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceDiv___regBuiltin_BitVec_reduceDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_258729848____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceMod_declare__98_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceMod___regBuiltin_BitVec_reduceMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_740068429____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUMod_declare__103_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceUMod___regBuiltin_BitVec_reduceUMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1461777902____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUDiv_declare__108_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceUDiv___regBuiltin_BitVec_reduceUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1588936991____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTUDiv_declare__113_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSMTUDiv___regBuiltin_BitVec_reduceSMTUDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1684227602____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMod_declare__118_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSMod___regBuiltin_BitVec_reduceSMod_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2532024774____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSRem_declare__123_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSRem___regBuiltin_BitVec_reduceSRem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3580555747____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSDiv_declare__128_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSDiv___regBuiltin_BitVec_reduceSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3627617051____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSMTSDiv_declare__133_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSMTSDiv___regBuiltin_BitVec_reduceSMTSDiv_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396261550____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetLsb_declare__138_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGetLsb___regBuiltin_BitVec_reduceGetLsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2304061715____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetMsb_declare__143_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGetMsb___regBuiltin_BitVec_reduceGetMsb_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4252493603____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceClz_declare__148_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_13_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_15_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceClz___regBuiltin_BitVec_reduceClz_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2257329400____hygCtx___hyg_17_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCpop_declare__153_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_13_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_15_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceCpop___regBuiltin_BitVec_reduceCpop_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3817999935____hygCtx___hyg_17_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGetElem_declare__158_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_26_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGetElem___regBuiltin_BitVec_reduceGetElem_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3722409294____hygCtx___hyg_28_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeft_declare__163_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceShiftLeft___regBuiltin_BitVec_reduceShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1981601135____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceUShiftRight_declare__168_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceUShiftRight___regBuiltin_BitVec_reduceUShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4180082573____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSShiftRight_declare__173_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSShiftRight___regBuiltin_BitVec_reduceSShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1805299867____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_declare__178_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceHShiftLeft___regBuiltin_BitVec_reduceHShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1321491985____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftLeft_x27_declare__183_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_26_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceHShiftLeft_x27___regBuiltin_BitVec_reduceHShiftLeft_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4245661560____hygCtx___hyg_28_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_declare__188_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceHShiftRight___regBuiltin_BitVec_reduceHShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4258033445____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceHShiftRight_x27_declare__193_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_26_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceHShiftRight_x27___regBuiltin_BitVec_reduceHShiftRight_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2544647842____hygCtx___hyg_28_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateLeft_declare__198_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceRotateLeft___regBuiltin_BitVec_reduceRotateLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1986106746____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceRotateRight_declare__203_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceRotateRight___regBuiltin_BitVec_reduceRotateRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3861451550____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAppend_declare__208_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_20_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_22_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAppend___regBuiltin_BitVec_reduceAppend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_279275497____hygCtx___hyg_24_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceCast_declare__213_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceCast___regBuiltin_BitVec_reduceCast_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_75992307____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToNat_declare__218_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_13_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_15_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceToNat___regBuiltin_BitVec_reduceToNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_521297777____hygCtx___hyg_17_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceToInt_declare__223_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_13_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_15_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceToInt___regBuiltin_BitVec_reduceToInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1937768240____hygCtx___hyg_17_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfInt_declare__228_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceOfInt___regBuiltin_BitVec_reduceOfInt_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1112481862____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceOfNat_declare__233_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceOfNat___regBuiltin_BitVec_reduceOfNat_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_586122684____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceEq_declare__238_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceEq___regBuiltin_BitVec_reduceEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3744847092____hygCtx___hyg_25_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceNe_declare__243_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceNe___regBuiltin_BitVec_reduceNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2237023881____hygCtx___hyg_25_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBEq_declare__248_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceBEq___regBuiltin_BitVec_reduceBEq_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_396183198____hygCtx___hyg_25_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBNe_declare__253_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceBNe___regBuiltin_BitVec_reduceBNe_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2783382448____hygCtx___hyg_25_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLT_declare__258_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceLT___regBuiltin_BitVec_reduceLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_402749205____hygCtx___hyg_25_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceLE_declare__263_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceLE___regBuiltin_BitVec_reduceLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3280568033____hygCtx___hyg_25_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGT_declare__268_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGT___regBuiltin_BitVec_reduceGT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_58073159____hygCtx___hyg_25_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceGE_declare__273_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_21_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_23_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceGE___regBuiltin_BitVec_reduceGE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_776923109____hygCtx___hyg_25_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULT_declare__278_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceULT___regBuiltin_BitVec_reduceULT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_544561141____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceULE_declare__283_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceULE___regBuiltin_BitVec_reduceULE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2455180700____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLT_declare__288_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSLT___regBuiltin_BitVec_reduceSLT_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1265938610____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSLE_declare__293_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSLE___regBuiltin_BitVec_reduceSLE_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_2045894262____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_x27_declare__298_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSetWidth_x27___regBuiltin_BitVec_reduceSetWidth_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1997871808____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__303_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceShiftLeftZeroExtend___regBuiltin_BitVec_reduceShiftLeftZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1858783730____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceExtractLsb_x27_declare__308_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_15_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_17_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceExtractLsb_x27___regBuiltin_BitVec_reduceExtractLsb_x27_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3865625001____hygCtx___hyg_19_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceReplicate_declare__313_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceReplicate___regBuiltin_BitVec_reduceReplicate_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4032148324____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSetWidth_declare__318_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSetWidth___regBuiltin_BitVec_reduceSetWidth_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4241023990____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceZeroExtend_declare__323_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceZeroExtend___regBuiltin_BitVec_reduceZeroExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1728223393____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceSignExtend_declare__328_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_14_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_16_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceSignExtend___regBuiltin_BitVec_reduceSignExtend_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_489440779____hygCtx___hyg_18_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceAllOnes_declare__333_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_13_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_15_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceAllOnes___regBuiltin_BitVec_reduceAllOnes_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_214689512____hygCtx___hyg_17_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecOfFin_declare__338_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_13_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_15_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceBitVecOfFin___regBuiltin_BitVec_reduceBitVecOfFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_4171913895____hygCtx___hyg_17_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceBitVecToFin_declare__343_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_13_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_15_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceBitVecToFin___regBuiltin_BitVec_reduceBitVecToFin_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_1649344073____hygCtx___hyg_17_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__351_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_28_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceShiftLeftShiftLeft___regBuiltin_BitVec_reduceShiftLeftShiftLeft_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3572836825____hygCtx___hyg_30_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l___private_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_0____regBuiltin_BitVec_reduceShiftRightShiftRight_declare__356_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_28_();
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = l_BitVec_reduceShiftRightShiftRight___regBuiltin_BitVec_reduceShiftRightShiftRight_declare__1_00___x40_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec_3009506562____hygCtx___hyg_30_();
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_Simp_BuiltinSimprocs_BitVec(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_Simp_BuiltinSimprocs_Int(uint8_t builtin);
lean_object* initialize_Init_Data_BitVec_Lemmas(uint8_t builtin);
static bool _G_initialized = false;
LEAN_EXPORT lean_object* initialize_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec(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_Simp_BuiltinSimprocs_Int(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = initialize_Init_Data_BitVec_Lemmas(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = runtime_initialize_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = meta_initialize_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec(builtin);
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
return initialize_Lean_Meta_Tactic_Simp_BuiltinSimprocs_BitVec(builtin);
}
#ifdef __cplusplus
}
#endif
