// Lean compiler output
// Module: Init.Data.UInt.Basic
// Imports: Init.Data.UInt.BasicAux Init.Data.BitVec.Basic
#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_EXPORT lean_object* l_UInt64_modn___boxed(lean_object*, lean_object*);
uint8_t lean_uint8_sub(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_UInt32_ofNatCore___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instComplementUInt32;
LEAN_EXPORT lean_object* l_USize_toUInt16___boxed(lean_object*);
LEAN_EXPORT lean_object* l_USize_mul___boxed(lean_object*, lean_object*);
lean_object* lean_uint16_to_nat(uint16_t);
LEAN_EXPORT uint8_t l_UInt8_ofNatCore(lean_object*, lean_object*);
uint32_t lean_bool_to_uint32(uint8_t);
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt16_modn___spec__1(lean_object*);
LEAN_EXPORT lean_object* l_instPowUInt32Nat;
LEAN_EXPORT lean_object* l_instHModUSizeNat;
uint8_t lean_uint8_dec_lt(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_instModUInt16;
LEAN_EXPORT lean_object* l_Bool_toUInt16___boxed(lean_object*);
static lean_object* l_instNegUInt16___closed__1;
LEAN_EXPORT lean_object* l_UInt64_mk(lean_object*);
LEAN_EXPORT lean_object* l_USize_lor___boxed(lean_object*, lean_object*);
size_t lean_usize_shift_right(size_t, size_t);
LEAN_EXPORT lean_object* l_instMulUInt64;
LEAN_EXPORT lean_object* l_UInt64_toUSize___boxed(lean_object*);
lean_object* lean_uint32_to_nat(uint32_t);
uint8_t lean_uint8_lor(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt64_modn___spec__1(lean_object*);
LEAN_EXPORT lean_object* l_UInt8_sub___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt64_shiftRight___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt32_add___boxed(lean_object*, lean_object*);
static lean_object* l_instDivUInt64___closed__1;
uint32_t lean_uint32_mod(uint32_t, uint32_t);
LEAN_EXPORT lean_object* l_instShiftRightUInt64;
uint64_t lean_uint64_mod(uint64_t, uint64_t);
static lean_object* l_instNegUSize___closed__1;
LEAN_EXPORT lean_object* l_UInt16_lor___boxed(lean_object*, lean_object*);
LEAN_EXPORT uint16_t l_UInt16_pow(uint16_t, lean_object*);
LEAN_EXPORT lean_object* l_instModUInt32;
LEAN_EXPORT uint16_t l_UInt16_ofInt(lean_object*);
static lean_object* l_instShiftLeftUSize___closed__1;
uint8_t lean_usize_dec_le(size_t, size_t);
uint16_t lean_uint16_mod(uint16_t, uint16_t);
LEAN_EXPORT lean_object* l_instAddUInt64;
LEAN_EXPORT lean_object* l_instModUInt8;
LEAN_EXPORT uint64_t l_UInt64_ofInt(lean_object*);
LEAN_EXPORT lean_object* l_UInt16_xor___boxed(lean_object*, lean_object*);
uint64_t lean_uint64_of_nat(lean_object*);
LEAN_EXPORT size_t l_instMaxUSize(size_t, size_t);
uint8_t lean_uint16_dec_lt(uint16_t, uint16_t);
LEAN_EXPORT lean_object* l_Bool_toUInt8___boxed(lean_object*);
static lean_object* l_instHModUSizeNat___closed__1;
uint16_t lean_uint16_of_nat_mk(lean_object*);
LEAN_EXPORT lean_object* l_UInt8_decLe___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instMulUInt16;
size_t lean_uint64_to_usize(uint64_t);
uint64_t lean_uint64_lor(uint64_t, uint64_t);
LEAN_EXPORT lean_object* l_instMaxUInt64___boxed(lean_object*, lean_object*);
static lean_object* l_instShiftLeftUInt64___closed__1;
uint8_t lean_usize_to_uint8(size_t);
static lean_object* l_instHModUInt64Nat___closed__1;
LEAN_EXPORT lean_object* l_instAddUInt16;
static lean_object* l_instPowUInt32Nat___closed__1;
uint32_t lean_uint32_complement(uint32_t);
LEAN_EXPORT lean_object* l_UInt32_lor___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_USize_modn___boxed(lean_object*, lean_object*);
size_t lean_usize_mul(size_t, size_t);
LEAN_EXPORT lean_object* l_UInt32_div___boxed(lean_object*, lean_object*);
static lean_object* l_instAddUInt8___closed__1;
uint32_t lean_uint32_shift_right(uint32_t, uint32_t);
uint8_t lean_uint64_dec_lt(uint64_t, uint64_t);
static lean_object* l_instDivUSize___closed__1;
LEAN_EXPORT lean_object* l_USize_div___boxed(lean_object*, lean_object*);
static lean_object* l_instShiftRightUInt8___closed__1;
LEAN_EXPORT lean_object* l_UInt64_decLt___boxed(lean_object*, lean_object*);
size_t lean_uint8_to_usize(uint8_t);
lean_object* lean_int_emod(lean_object*, lean_object*);
static lean_object* l_instNegUInt64___closed__1;
LEAN_EXPORT uint16_t l_instMaxUInt16(uint16_t, uint16_t);
LEAN_EXPORT uint32_t l_UInt32_ofInt(lean_object*);
LEAN_EXPORT lean_object* l_UInt16_neg___boxed(lean_object*);
uint16_t lean_uint16_complement(uint16_t);
LEAN_EXPORT lean_object* l_USize_neg___boxed(lean_object*);
LEAN_EXPORT lean_object* l_instOrOpUSize;
LEAN_EXPORT lean_object* l_UInt8_lor___boxed(lean_object*, lean_object*);
uint8_t lean_uint8_land(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_UInt64_mul___boxed(lean_object*, lean_object*);
uint16_t lean_uint16_of_nat(lean_object*);
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt32_modn___spec__1___boxed(lean_object*);
static lean_object* l_instModUInt8___closed__1;
uint8_t lean_uint8_add(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_UInt64_div___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instComplementUSize;
LEAN_EXPORT lean_object* l_instLTUInt64;
LEAN_EXPORT lean_object* l_instShiftRightUInt8;
LEAN_EXPORT lean_object* l_USize_mk(lean_object*);
LEAN_EXPORT lean_object* l_UInt32_ofInt___boxed(lean_object*);
LEAN_EXPORT lean_object* l_USize_shiftRight___boxed(lean_object*, lean_object*);
LEAN_EXPORT uint16_t l_UInt16_ofNatCore(lean_object*, lean_object*);
LEAN_EXPORT size_t l_USize_ofNatCore(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instComplementUInt8;
LEAN_EXPORT lean_object* l_instShiftLeftUInt16;
size_t lean_usize_complement(size_t);
LEAN_EXPORT lean_object* l_UInt8_add___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_USize_ofFin(lean_object*);
LEAN_EXPORT lean_object* l_instLEUInt16;
LEAN_EXPORT lean_object* l_UInt16_add___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt8_mk(lean_object*);
LEAN_EXPORT lean_object* l_UInt8_modn___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instMaxUInt8___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instAndOpUSize;
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt8_modn___spec__1(lean_object*);
static lean_object* l_instAddUInt64___closed__1;
uint16_t lean_usize_to_uint16(size_t);
uint64_t lean_uint64_land(uint64_t, uint64_t);
static lean_object* l_instShiftRightUInt16___closed__1;
LEAN_EXPORT lean_object* l_UInt64_ofNatCore___boxed(lean_object*, lean_object*);
uint64_t lean_uint64_of_nat_mk(lean_object*);
LEAN_EXPORT lean_object* l_UInt64_add___boxed(lean_object*, lean_object*);
uint8_t lean_uint8_shift_left(uint8_t, uint8_t);
static lean_object* l_instComplementUInt16___closed__1;
LEAN_EXPORT lean_object* l_UInt64_complement___boxed(lean_object*);
LEAN_EXPORT lean_object* l_instModUSize;
LEAN_EXPORT lean_object* l_UInt64_lor___boxed(lean_object*, lean_object*);
static lean_object* l_instOrOpUInt16___closed__1;
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt64_modn___spec__1___boxed(lean_object*);
static lean_object* l_instShiftRightUInt64___closed__1;
LEAN_EXPORT lean_object* l_instOrOpUInt8;
LEAN_EXPORT size_t l_instMinUSize(size_t, size_t);
LEAN_EXPORT lean_object* l_instPowUInt8Nat;
size_t lean_usize_of_nat(lean_object*);
static lean_object* l_instMulUSize___closed__1;
size_t lean_usize_neg(size_t);
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt8_modn___spec__1___boxed(lean_object*);
LEAN_EXPORT lean_object* l_UInt8_ofNatCore___boxed(lean_object*, lean_object*);
uint32_t lean_uint32_mul(uint32_t, uint32_t);
LEAN_EXPORT lean_object* l_USize_modn(size_t, lean_object*);
size_t lean_usize_lor(size_t, size_t);
static lean_object* l_instAndOpUInt32___closed__1;
LEAN_EXPORT lean_object* l_instDivUSize;
LEAN_EXPORT lean_object* l_UInt32_neg___boxed(lean_object*);
LEAN_EXPORT lean_object* l_Bool_toUInt64___boxed(lean_object*);
LEAN_EXPORT lean_object* l_UInt16_mk(lean_object*);
static lean_object* l_instShiftRightUInt32___closed__1;
LEAN_EXPORT lean_object* l_instMulUInt32;
LEAN_EXPORT lean_object* l_UInt32_complement___boxed(lean_object*);
uint64_t lean_uint64_shift_right(uint64_t, uint64_t);
LEAN_EXPORT lean_object* l_USize_complement___boxed(lean_object*);
LEAN_EXPORT uint64_t l_UInt64_ofNatCore(lean_object*, lean_object*);
uint64_t lean_usize_to_uint64(size_t);
lean_object* lean_nat_to_int(lean_object*);
LEAN_EXPORT lean_object* l_UInt32_toUSize___boxed(lean_object*);
uint64_t lean_uint64_complement(uint64_t);
LEAN_EXPORT lean_object* l_instDivUInt64;
uint32_t lean_uint32_of_nat(lean_object*);
uint16_t lean_uint16_xor(uint16_t, uint16_t);
LEAN_EXPORT lean_object* l_instLTUInt8;
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt32_modn___spec__1(lean_object*);
uint32_t lean_uint32_of_nat(lean_object*);
LEAN_EXPORT lean_object* l_UInt16_mul___boxed(lean_object*, lean_object*);
static lean_object* l_instNegUInt32___closed__1;
lean_object* l_Int_pow(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt64_shiftLeft___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt8_decLt___boxed(lean_object*, lean_object*);
LEAN_EXPORT size_t l_USize_ofInt(lean_object*);
static lean_object* l_instOrOpUInt32___closed__1;
LEAN_EXPORT lean_object* l_instSubUInt32;
uint8_t lean_uint8_mod(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_instMaxUSize___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instAddUInt32;
uint32_t lean_uint32_div(uint32_t, uint32_t);
lean_object* l_BitVec_ofNat(lean_object*, lean_object*);
static lean_object* l_instXorUSize___closed__1;
LEAN_EXPORT uint8_t l_instMinUInt8(uint8_t, uint8_t);
uint16_t lean_uint16_div(uint16_t, uint16_t);
static lean_object* l_instAndOpUInt64___closed__1;
LEAN_EXPORT uint8_t l_UInt8_ofInt(lean_object*);
static lean_object* l_instMulUInt64___closed__1;
LEAN_EXPORT lean_object* l_instMinUInt16___boxed(lean_object*, lean_object*);
uint16_t lean_uint16_shift_right(uint16_t, uint16_t);
static lean_object* l_instHModUInt16Nat___closed__1;
LEAN_EXPORT lean_object* l_UInt32_pow___boxed(lean_object*, lean_object*);
lean_object* lean_uint8_to_nat(uint8_t);
uint64_t lean_uint64_add(uint64_t, uint64_t);
LEAN_EXPORT lean_object* l_instSubUInt8;
uint64_t lean_uint64_of_nat(lean_object*);
LEAN_EXPORT lean_object* l_instAddUInt8;
LEAN_EXPORT lean_object* l_instMulUSize;
LEAN_EXPORT lean_object* l_instNegUInt32;
static lean_object* l_instNegUInt8___closed__1;
LEAN_EXPORT lean_object* l_UInt32_mk(lean_object*);
LEAN_EXPORT lean_object* l_UInt8_land___boxed(lean_object*, lean_object*);
uint64_t lean_uint64_div(uint64_t, uint64_t);
static lean_object* l_instShiftRightUSize___closed__1;
LEAN_EXPORT lean_object* l_instMinUInt8___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_USize_xor___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt8_ofFin(lean_object*);
LEAN_EXPORT lean_object* l_UInt8_mod___boxed(lean_object*, lean_object*);
extern lean_object* l_System_Platform_numBits;
LEAN_EXPORT lean_object* l_instHModUInt16Nat;
size_t lean_uint16_to_usize(uint16_t);
lean_object* lean_usize_to_nat(size_t);
static lean_object* l_instAddUInt32___closed__1;
uint8_t lean_uint8_mul(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_Nat_cast___at_USize_modn___spec__1___boxed(lean_object*);
LEAN_EXPORT lean_object* l_instShiftRightUInt16;
uint16_t lean_uint16_of_nat(lean_object*);
size_t lean_uint32_to_usize(uint32_t);
uint16_t lean_bool_to_uint16(uint8_t);
static lean_object* l_instXorUInt32___closed__1;
static lean_object* l_UInt64_ofInt___closed__1;
LEAN_EXPORT lean_object* l_instShiftLeftUInt32;
static lean_object* l_instXorUInt64___closed__1;
uint64_t lean_uint64_mul(uint64_t, uint64_t);
LEAN_EXPORT lean_object* l_instXorUInt32;
LEAN_EXPORT lean_object* l_instNegUInt16;
uint32_t lean_uint32_xor(uint32_t, uint32_t);
uint32_t lean_uint32_of_nat_mk(lean_object*);
LEAN_EXPORT lean_object* l_UInt16_shiftLeft___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_USize_mod___boxed(lean_object*, lean_object*);
uint8_t lean_uint8_div(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_USize_toUInt64___boxed(lean_object*);
LEAN_EXPORT lean_object* l_instMaxUInt16___boxed(lean_object*, lean_object*);
uint16_t lean_uint16_sub(uint16_t, uint16_t);
uint32_t lean_usize_to_uint32(size_t);
size_t lean_usize_mod(size_t, size_t);
uint16_t lean_uint16_land(uint16_t, uint16_t);
static lean_object* l_instComplementUInt32___closed__1;
LEAN_EXPORT uint64_t l_UInt64_pow(uint64_t, lean_object*);
static lean_object* l_instSubUInt32___closed__1;
uint64_t lean_uint64_sub(uint64_t, uint64_t);
LEAN_EXPORT lean_object* l_UInt16_sub___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt16_land___boxed(lean_object*, lean_object*);
static lean_object* l_instSubUInt8___closed__1;
LEAN_EXPORT lean_object* l_Nat_cast___at_USize_modn___spec__1(lean_object*);
LEAN_EXPORT lean_object* l_instOrOpUInt32;
uint8_t lean_uint8_complement(uint8_t);
LEAN_EXPORT lean_object* l_UInt64_mod___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt32_ofFin(lean_object*);
static lean_object* l_instOrOpUInt8___closed__1;
LEAN_EXPORT lean_object* l_instSubUInt64;
LEAN_EXPORT lean_object* l_UInt8_xor___boxed(lean_object*, lean_object*);
size_t lean_usize_of_nat_mk(lean_object*);
LEAN_EXPORT lean_object* l_instOrOpUInt16;
LEAN_EXPORT lean_object* l_UInt32_modn(uint32_t, lean_object*);
size_t lean_usize_of_nat(lean_object*);
size_t lean_bool_to_usize(uint8_t);
static lean_object* l_instPowUSizeNat___closed__1;
static lean_object* l_instComplementUInt64___closed__1;
size_t lean_usize_of_nat(lean_object*);
static lean_object* l_instHModUInt8Nat___closed__1;
LEAN_EXPORT lean_object* l_instModUInt64;
LEAN_EXPORT lean_object* l_instNegUInt8;
static lean_object* l_instShiftLeftUInt32___closed__1;
static lean_object* l_instMulUInt32___closed__1;
LEAN_EXPORT lean_object* l_instNegUSize;
uint32_t lean_uint32_sub(uint32_t, uint32_t);
static lean_object* l_instModUInt16___closed__1;
LEAN_EXPORT lean_object* l_instShiftRightUSize;
LEAN_EXPORT lean_object* l_UInt8_pow___boxed(lean_object*, lean_object*);
uint16_t lean_uint16_lor(uint16_t, uint16_t);
LEAN_EXPORT lean_object* l_instDivUInt16;
static lean_object* l_instDivUInt32___closed__1;
LEAN_EXPORT uint64_t l_instMaxUInt64(uint64_t, uint64_t);
LEAN_EXPORT lean_object* l_UInt16_decLt___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_USize_land___boxed(lean_object*, lean_object*);
static lean_object* l_UInt32_ofInt___closed__1;
LEAN_EXPORT lean_object* l_instPowUInt16Nat;
LEAN_EXPORT lean_object* l_USize_ofInt___boxed(lean_object*);
uint8_t lean_nat_dec_eq(lean_object*, lean_object*);
uint16_t lean_uint16_add(uint16_t, uint16_t);
LEAN_EXPORT lean_object* l_instOrOpUInt64;
static lean_object* l_instAndOpUInt16___closed__1;
uint8_t lean_uint8_neg(uint8_t);
static lean_object* l_instMulUInt8___closed__1;
lean_object* lean_nat_mod(lean_object*, lean_object*);
uint8_t lean_bool_to_uint8(uint8_t);
LEAN_EXPORT lean_object* l_UInt16_div___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instMulUInt8;
LEAN_EXPORT lean_object* l_instShiftLeftUInt64;
LEAN_EXPORT lean_object* l_UInt16_shiftRight___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt32_xor___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt64_neg___boxed(lean_object*);
LEAN_EXPORT lean_object* l_UInt32_mod___boxed(lean_object*, lean_object*);
LEAN_EXPORT uint8_t l_UInt8_pow(uint8_t, lean_object*);
uint8_t lean_uint8_xor(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_instPowUInt64Nat;
LEAN_EXPORT lean_object* l_Bool_toUInt32___boxed(lean_object*);
static lean_object* l_instComplementUInt8___closed__1;
static lean_object* l_instComplementUSize___closed__1;
LEAN_EXPORT lean_object* l_instHModUInt8Nat;
LEAN_EXPORT lean_object* l_instHModUInt64Nat;
uint8_t lean_uint16_dec_le(uint16_t, uint16_t);
LEAN_EXPORT lean_object* l_UInt8_shiftLeft___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instXorUInt8;
LEAN_EXPORT lean_object* l_instComplementUInt64;
LEAN_EXPORT lean_object* l_UInt8_modn(uint8_t, lean_object*);
static lean_object* l_instAddUInt16___closed__1;
LEAN_EXPORT lean_object* l_UInt8_ofInt___boxed(lean_object*);
LEAN_EXPORT lean_object* l_instLTUInt16;
LEAN_EXPORT lean_object* l_UInt8_shiftRight___boxed(lean_object*, lean_object*);
LEAN_EXPORT uint64_t l_instMinUInt64(uint64_t, uint64_t);
static lean_object* l_instHModUInt32Nat___closed__1;
uint64_t lean_uint64_xor(uint64_t, uint64_t);
lean_object* l_Int_toNat(lean_object*);
uint32_t lean_uint32_lor(uint32_t, uint32_t);
LEAN_EXPORT lean_object* l_instAndOpUInt32;
LEAN_EXPORT lean_object* l_instXorUInt64;
uint64_t lean_uint64_neg(uint64_t);
uint32_t lean_uint32_shift_left(uint32_t, uint32_t);
LEAN_EXPORT lean_object* l_UInt8_toUSize___boxed(lean_object*);
lean_object* lean_nat_sub(lean_object*, lean_object*);
LEAN_EXPORT uint32_t l_UInt32_ofNatCore(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt64_ofFin(lean_object*);
uint8_t lean_uint64_dec_le(uint64_t, uint64_t);
LEAN_EXPORT lean_object* l_USize_ofNatCore___boxed(lean_object*, lean_object*);
uint8_t lean_uint8_dec_le(uint8_t, uint8_t);
uint64_t lean_uint64_shift_left(uint64_t, uint64_t);
static lean_object* l_instShiftLeftUInt8___closed__1;
static lean_object* l_instPowUInt8Nat___closed__1;
uint8_t lean_uint8_shift_right(uint8_t, uint8_t);
LEAN_EXPORT lean_object* l_USize_toUInt8___boxed(lean_object*);
LEAN_EXPORT lean_object* l_USize_shiftLeft___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instMinUSize___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instMinUInt64___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt64_ofInt___boxed(lean_object*);
uint8_t lean_uint8_of_nat(lean_object*);
LEAN_EXPORT lean_object* l_instXorUSize;
LEAN_EXPORT lean_object* l_instShiftRightUInt32;
LEAN_EXPORT lean_object* l_UInt32_mul___boxed(lean_object*, lean_object*);
static lean_object* l_instAndOpUInt8___closed__1;
static lean_object* l_instXorUInt8___closed__1;
static lean_object* l_USize_ofInt___closed__1;
LEAN_EXPORT lean_object* l_instSubUInt16;
LEAN_EXPORT uint16_t l_instMinUInt16(uint16_t, uint16_t);
LEAN_EXPORT lean_object* l_UInt16_pow___boxed(lean_object*, lean_object*);
static lean_object* l_UInt16_ofInt___closed__1;
LEAN_EXPORT lean_object* l_instPowUSizeNat;
LEAN_EXPORT lean_object* l_UInt64_xor___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt16_toUSize___boxed(lean_object*);
static lean_object* l_instPowUInt16Nat___closed__1;
LEAN_EXPORT lean_object* l_UInt16_modn(uint16_t, lean_object*);
LEAN_EXPORT lean_object* l_UInt16_ofInt___boxed(lean_object*);
LEAN_EXPORT lean_object* l_UInt8_neg___boxed(lean_object*);
uint64_t lean_bool_to_uint64(uint8_t);
LEAN_EXPORT lean_object* l_UInt32_land___boxed(lean_object*, lean_object*);
uint32_t lean_uint32_land(uint32_t, uint32_t);
LEAN_EXPORT lean_object* l_UInt8_complement___boxed(lean_object*);
LEAN_EXPORT lean_object* l_UInt8_div___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instHModUInt32Nat;
uint8_t lean_uint8_of_nat_mk(lean_object*);
static lean_object* l_instModUInt32___closed__1;
uint16_t lean_uint16_neg(uint16_t);
size_t lean_usize_xor(size_t, size_t);
static lean_object* l_instOrOpUInt64___closed__1;
LEAN_EXPORT lean_object* l_instLEUInt64;
static lean_object* l_UInt8_ofInt___closed__2;
LEAN_EXPORT lean_object* l_instAndOpUInt16;
LEAN_EXPORT lean_object* l_UInt32_sub___boxed(lean_object*, lean_object*);
size_t lean_usize_shift_left(size_t, size_t);
LEAN_EXPORT uint32_t l_UInt32_pow(uint32_t, lean_object*);
LEAN_EXPORT lean_object* l_UInt16_mod___boxed(lean_object*, lean_object*);
static lean_object* l_instMulUInt16___closed__1;
uint32_t lean_uint32_add(uint32_t, uint32_t);
LEAN_EXPORT lean_object* l_UInt16_modn___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt16_modn___spec__1___boxed(lean_object*);
static lean_object* l_instDivUInt16___closed__1;
LEAN_EXPORT lean_object* l_Bool_toUSize___boxed(lean_object*);
LEAN_EXPORT lean_object* l_instAndOpUInt8;
static lean_object* l_instSubUInt16___closed__1;
static lean_object* l_instPowUInt64Nat___closed__1;
static lean_object* l_instOrOpUSize___closed__1;
LEAN_EXPORT lean_object* l_UInt64_modn(uint64_t, lean_object*);
static lean_object* l_instModUInt64___closed__1;
LEAN_EXPORT lean_object* l_USize_toUInt32___boxed(lean_object*);
LEAN_EXPORT lean_object* l_UInt32_shiftRight___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt64_decLe___boxed(lean_object*, lean_object*);
static lean_object* l_instAndOpUSize___closed__1;
LEAN_EXPORT lean_object* l_instLEUInt8;
LEAN_EXPORT lean_object* l_instShiftLeftUInt8;
uint16_t lean_uint16_mul(uint16_t, uint16_t);
LEAN_EXPORT lean_object* l_instDivUInt8;
LEAN_EXPORT lean_object* l_UInt64_pow___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt16_decLe___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt16_ofFin(lean_object*);
LEAN_EXPORT lean_object* l_USize_ofNat32___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt32_modn___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt16_complement___boxed(lean_object*);
LEAN_EXPORT lean_object* l_instDivUInt32;
uint16_t lean_uint16_shift_left(uint16_t, uint16_t);
LEAN_EXPORT lean_object* l_UInt64_sub___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instAndOpUInt64;
LEAN_EXPORT lean_object* l_instNegUInt64;
lean_object* lean_uint64_to_nat(uint64_t);
static lean_object* l_instXorUInt16___closed__1;
LEAN_EXPORT lean_object* l_UInt64_land___boxed(lean_object*, lean_object*);
uint8_t lean_uint8_of_nat(lean_object*);
static lean_object* l_UInt8_ofInt___closed__1;
static lean_object* l_instModUSize___closed__1;
LEAN_EXPORT lean_object* l_USize_pow___boxed(lean_object*, lean_object*);
static lean_object* l_instSubUInt64___closed__1;
LEAN_EXPORT lean_object* l_UInt16_ofNatCore___boxed(lean_object*, lean_object*);
uint32_t lean_uint32_neg(uint32_t);
LEAN_EXPORT uint8_t l_instMaxUInt8(uint8_t, uint8_t);
size_t lean_usize_land(size_t, size_t);
static lean_object* l_instDivUInt8___closed__1;
LEAN_EXPORT lean_object* l_UInt32_shiftLeft___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_instComplementUInt16;
static lean_object* l_instShiftLeftUInt16___closed__1;
LEAN_EXPORT lean_object* l_instXorUInt16;
size_t lean_usize_div(size_t, size_t);
LEAN_EXPORT lean_object* l_instShiftLeftUSize;
LEAN_EXPORT size_t l_USize_pow(size_t, lean_object*);
LEAN_EXPORT lean_object* l_UInt8_mul___boxed(lean_object*, lean_object*);
LEAN_EXPORT lean_object* l_UInt8_ofFin(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3; 
x_2 = lean_uint8_of_nat_mk(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt8_mk(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3; 
x_2 = lean_uint8_of_nat_mk(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
LEAN_EXPORT uint8_t l_UInt8_ofNatCore(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; 
x_3 = lean_uint8_of_nat(x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt8_ofNatCore___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; lean_object* x_4; 
x_3 = l_UInt8_ofNatCore(x_1, x_2);
lean_dec(x_1);
x_4 = lean_box(x_3);
return x_4;
}
}
static lean_object* _init_l_UInt8_ofInt___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; 
x_1 = lean_unsigned_to_nat(2u);
x_2 = lean_nat_to_int(x_1);
return x_2;
}
}
static lean_object* _init_l_UInt8_ofInt___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; 
x_1 = l_UInt8_ofInt___closed__1;
x_2 = lean_unsigned_to_nat(8u);
x_3 = l_Int_pow(x_1, x_2);
return x_3;
}
}
LEAN_EXPORT uint8_t l_UInt8_ofInt(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; uint8_t x_5; 
x_2 = l_UInt8_ofInt___closed__2;
x_3 = lean_int_emod(x_1, x_2);
x_4 = l_Int_toNat(x_3);
lean_dec(x_3);
x_5 = lean_uint8_of_nat(x_4);
lean_dec(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_UInt8_ofInt___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3; 
x_2 = l_UInt8_ofInt(x_1);
lean_dec(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt8_add___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_add(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt8_sub___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_sub(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt8_mul___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_mul(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt8_div___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_div(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT uint8_t l_UInt8_pow(uint8_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; uint8_t x_4; 
x_3 = lean_unsigned_to_nat(0u);
x_4 = lean_nat_dec_eq(x_2, x_3);
if (x_4 == 0)
{
lean_object* x_5; lean_object* x_6; uint8_t x_7; uint8_t x_8; 
x_5 = lean_unsigned_to_nat(1u);
x_6 = lean_nat_sub(x_2, x_5);
x_7 = l_UInt8_pow(x_1, x_6);
lean_dec(x_6);
x_8 = lean_uint8_mul(x_7, x_1);
return x_8;
}
else
{
uint8_t x_9; 
x_9 = 1;
return x_9;
}
}
}
LEAN_EXPORT lean_object* l_UInt8_pow___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; lean_object* x_5; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = l_UInt8_pow(x_3, x_2);
lean_dec(x_2);
x_5 = lean_box(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_UInt8_mod___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_mod(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt8_modn___spec__1(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; 
x_2 = lean_unsigned_to_nat(8u);
x_3 = l_BitVec_ofNat(x_2, x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt8_modn(uint8_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_object* x_8; 
x_3 = lean_uint8_to_nat(x_1);
x_4 = lean_nat_mod(x_3, x_2);
lean_dec(x_3);
x_5 = lean_unsigned_to_nat(8u);
x_6 = l_BitVec_ofNat(x_5, x_4);
lean_dec(x_4);
x_7 = lean_uint8_of_nat_mk(x_6);
x_8 = lean_box(x_7);
return x_8;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt8_modn___spec__1___boxed(lean_object* x_1) {
_start:
{
lean_object* x_2; 
x_2 = l_Nat_cast___at_UInt8_modn___spec__1(x_1);
lean_dec(x_1);
return x_2;
}
}
LEAN_EXPORT lean_object* l_UInt8_modn___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; lean_object* x_4; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = l_UInt8_modn(x_3, x_2);
lean_dec(x_2);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt8_land___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_land(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt8_lor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_lor(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt8_xor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_xor(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt8_shiftLeft___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_shift_left(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt8_shiftRight___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_shift_right(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
static lean_object* _init_l_instAddUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_add___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instAddUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instAddUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instSubUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_sub___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instSubUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instSubUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instMulUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_mul___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instMulUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instMulUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instPowUInt8Nat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_pow___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instPowUInt8Nat() {
_start:
{
lean_object* x_1; 
x_1 = l_instPowUInt8Nat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instModUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_mod___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instModUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instModUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instHModUInt8Nat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_modn___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instHModUInt8Nat() {
_start:
{
lean_object* x_1; 
x_1 = l_instHModUInt8Nat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instDivUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_div___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instDivUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instDivUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instLTUInt8() {
_start:
{
lean_object* x_1; 
x_1 = lean_box(0);
return x_1;
}
}
static lean_object* _init_l_instLEUInt8() {
_start:
{
lean_object* x_1; 
x_1 = lean_box(0);
return x_1;
}
}
LEAN_EXPORT lean_object* l_UInt8_complement___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; uint8_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_uint8_complement(x_2);
x_4 = lean_box(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt8_neg___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; uint8_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_uint8_neg(x_2);
x_4 = lean_box(x_3);
return x_4;
}
}
static lean_object* _init_l_instComplementUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_complement___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instComplementUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instComplementUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instNegUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_neg___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instNegUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instNegUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instAndOpUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_land___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instAndOpUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instAndOpUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instOrOpUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_lor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instOrOpUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instOrOpUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instXorUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_xor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instXorUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instXorUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_shiftLeft___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftLeftUInt8___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftRightUInt8___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt8_shiftRight___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftRightUInt8() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftRightUInt8___closed__1;
return x_1;
}
}
LEAN_EXPORT lean_object* l_Bool_toUInt8___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; uint8_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_bool_to_uint8(x_2);
x_4 = lean_box(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt8_decLt___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_dec_lt(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt8_decLe___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint8_dec_le(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT uint8_t l_instMaxUInt8(uint8_t x_1, uint8_t x_2) {
_start:
{
uint8_t x_3; 
x_3 = lean_uint8_dec_le(x_1, x_2);
if (x_3 == 0)
{
return x_1;
}
else
{
return x_2;
}
}
}
LEAN_EXPORT lean_object* l_instMaxUInt8___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = l_instMaxUInt8(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT uint8_t l_instMinUInt8(uint8_t x_1, uint8_t x_2) {
_start:
{
uint8_t x_3; 
x_3 = lean_uint8_dec_le(x_1, x_2);
if (x_3 == 0)
{
return x_2;
}
else
{
return x_1;
}
}
}
LEAN_EXPORT lean_object* l_instMinUInt8___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint8_t x_3; uint8_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = l_instMinUInt8(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt16_ofFin(lean_object* x_1) {
_start:
{
uint16_t x_2; lean_object* x_3; 
x_2 = lean_uint16_of_nat_mk(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt16_mk(lean_object* x_1) {
_start:
{
uint16_t x_2; lean_object* x_3; 
x_2 = lean_uint16_of_nat_mk(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
LEAN_EXPORT uint16_t l_UInt16_ofNatCore(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; 
x_3 = lean_uint16_of_nat(x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt16_ofNatCore___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; lean_object* x_4; 
x_3 = l_UInt16_ofNatCore(x_1, x_2);
lean_dec(x_1);
x_4 = lean_box(x_3);
return x_4;
}
}
static lean_object* _init_l_UInt16_ofInt___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; 
x_1 = l_UInt8_ofInt___closed__1;
x_2 = lean_unsigned_to_nat(16u);
x_3 = l_Int_pow(x_1, x_2);
return x_3;
}
}
LEAN_EXPORT uint16_t l_UInt16_ofInt(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; uint16_t x_5; 
x_2 = l_UInt16_ofInt___closed__1;
x_3 = lean_int_emod(x_1, x_2);
x_4 = l_Int_toNat(x_3);
lean_dec(x_3);
x_5 = lean_uint16_of_nat(x_4);
lean_dec(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_UInt16_ofInt___boxed(lean_object* x_1) {
_start:
{
uint16_t x_2; lean_object* x_3; 
x_2 = l_UInt16_ofInt(x_1);
lean_dec(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt16_add___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_add(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt16_sub___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_sub(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt16_mul___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_mul(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt16_div___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_div(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT uint16_t l_UInt16_pow(uint16_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; uint8_t x_4; 
x_3 = lean_unsigned_to_nat(0u);
x_4 = lean_nat_dec_eq(x_2, x_3);
if (x_4 == 0)
{
lean_object* x_5; lean_object* x_6; uint16_t x_7; uint16_t x_8; 
x_5 = lean_unsigned_to_nat(1u);
x_6 = lean_nat_sub(x_2, x_5);
x_7 = l_UInt16_pow(x_1, x_6);
lean_dec(x_6);
x_8 = lean_uint16_mul(x_7, x_1);
return x_8;
}
else
{
uint16_t x_9; 
x_9 = 1;
return x_9;
}
}
}
LEAN_EXPORT lean_object* l_UInt16_pow___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; lean_object* x_5; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = l_UInt16_pow(x_3, x_2);
lean_dec(x_2);
x_5 = lean_box(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_UInt16_mod___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_mod(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt16_modn___spec__1(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; 
x_2 = lean_unsigned_to_nat(16u);
x_3 = l_BitVec_ofNat(x_2, x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt16_modn(uint16_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint16_t x_7; lean_object* x_8; 
x_3 = lean_uint16_to_nat(x_1);
x_4 = lean_nat_mod(x_3, x_2);
lean_dec(x_3);
x_5 = lean_unsigned_to_nat(16u);
x_6 = l_BitVec_ofNat(x_5, x_4);
lean_dec(x_4);
x_7 = lean_uint16_of_nat_mk(x_6);
x_8 = lean_box(x_7);
return x_8;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt16_modn___spec__1___boxed(lean_object* x_1) {
_start:
{
lean_object* x_2; 
x_2 = l_Nat_cast___at_UInt16_modn___spec__1(x_1);
lean_dec(x_1);
return x_2;
}
}
LEAN_EXPORT lean_object* l_UInt16_modn___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; lean_object* x_4; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = l_UInt16_modn(x_3, x_2);
lean_dec(x_2);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt16_land___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_land(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt16_lor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_lor(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt16_xor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_xor(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt16_shiftLeft___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_shift_left(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt16_shiftRight___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_shift_right(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
static lean_object* _init_l_instAddUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_add___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instAddUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instAddUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instSubUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_sub___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instSubUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instSubUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instMulUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_mul___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instMulUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instMulUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instPowUInt16Nat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_pow___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instPowUInt16Nat() {
_start:
{
lean_object* x_1; 
x_1 = l_instPowUInt16Nat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instModUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_mod___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instModUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instModUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instHModUInt16Nat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_modn___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instHModUInt16Nat() {
_start:
{
lean_object* x_1; 
x_1 = l_instHModUInt16Nat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instDivUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_div___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instDivUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instDivUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instLTUInt16() {
_start:
{
lean_object* x_1; 
x_1 = lean_box(0);
return x_1;
}
}
static lean_object* _init_l_instLEUInt16() {
_start:
{
lean_object* x_1; 
x_1 = lean_box(0);
return x_1;
}
}
LEAN_EXPORT lean_object* l_UInt16_complement___boxed(lean_object* x_1) {
_start:
{
uint16_t x_2; uint16_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_uint16_complement(x_2);
x_4 = lean_box(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt16_neg___boxed(lean_object* x_1) {
_start:
{
uint16_t x_2; uint16_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_uint16_neg(x_2);
x_4 = lean_box(x_3);
return x_4;
}
}
static lean_object* _init_l_instComplementUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_complement___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instComplementUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instComplementUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instNegUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_neg___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instNegUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instNegUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instAndOpUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_land___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instAndOpUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instAndOpUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instOrOpUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_lor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instOrOpUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instOrOpUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instXorUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_xor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instXorUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instXorUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_shiftLeft___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftLeftUInt16___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftRightUInt16___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt16_shiftRight___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftRightUInt16() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftRightUInt16___closed__1;
return x_1;
}
}
LEAN_EXPORT lean_object* l_Bool_toUInt16___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; uint16_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_bool_to_uint16(x_2);
x_4 = lean_box(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt16_decLt___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_dec_lt(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt16_decLe___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = lean_uint16_dec_le(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT uint16_t l_instMaxUInt16(uint16_t x_1, uint16_t x_2) {
_start:
{
uint8_t x_3; 
x_3 = lean_uint16_dec_le(x_1, x_2);
if (x_3 == 0)
{
return x_1;
}
else
{
return x_2;
}
}
}
LEAN_EXPORT lean_object* l_instMaxUInt16___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = l_instMaxUInt16(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT uint16_t l_instMinUInt16(uint16_t x_1, uint16_t x_2) {
_start:
{
uint8_t x_3; 
x_3 = lean_uint16_dec_le(x_1, x_2);
if (x_3 == 0)
{
return x_2;
}
else
{
return x_1;
}
}
}
LEAN_EXPORT lean_object* l_instMinUInt16___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint16_t x_3; uint16_t x_4; uint16_t x_5; lean_object* x_6; 
x_3 = lean_unbox(x_1);
lean_dec(x_1);
x_4 = lean_unbox(x_2);
lean_dec(x_2);
x_5 = l_instMinUInt16(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt32_ofFin(lean_object* x_1) {
_start:
{
uint32_t x_2; lean_object* x_3; 
x_2 = lean_uint32_of_nat_mk(x_1);
x_3 = lean_box_uint32(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt32_mk(lean_object* x_1) {
_start:
{
uint32_t x_2; lean_object* x_3; 
x_2 = lean_uint32_of_nat_mk(x_1);
x_3 = lean_box_uint32(x_2);
return x_3;
}
}
LEAN_EXPORT uint32_t l_UInt32_ofNatCore(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; 
x_3 = lean_uint32_of_nat(x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt32_ofNatCore___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; lean_object* x_4; 
x_3 = l_UInt32_ofNatCore(x_1, x_2);
lean_dec(x_1);
x_4 = lean_box_uint32(x_3);
return x_4;
}
}
static lean_object* _init_l_UInt32_ofInt___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; 
x_1 = l_UInt8_ofInt___closed__1;
x_2 = lean_unsigned_to_nat(32u);
x_3 = l_Int_pow(x_1, x_2);
return x_3;
}
}
LEAN_EXPORT uint32_t l_UInt32_ofInt(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; uint32_t x_5; 
x_2 = l_UInt32_ofInt___closed__1;
x_3 = lean_int_emod(x_1, x_2);
x_4 = l_Int_toNat(x_3);
lean_dec(x_3);
x_5 = lean_uint32_of_nat(x_4);
lean_dec(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_UInt32_ofInt___boxed(lean_object* x_1) {
_start:
{
uint32_t x_2; lean_object* x_3; 
x_2 = l_UInt32_ofInt(x_1);
lean_dec(x_1);
x_3 = lean_box_uint32(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt32_add___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_add(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt32_sub___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_sub(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt32_mul___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_mul(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt32_div___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_div(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
LEAN_EXPORT uint32_t l_UInt32_pow(uint32_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; uint8_t x_4; 
x_3 = lean_unsigned_to_nat(0u);
x_4 = lean_nat_dec_eq(x_2, x_3);
if (x_4 == 0)
{
lean_object* x_5; lean_object* x_6; uint32_t x_7; uint32_t x_8; 
x_5 = lean_unsigned_to_nat(1u);
x_6 = lean_nat_sub(x_2, x_5);
x_7 = l_UInt32_pow(x_1, x_6);
lean_dec(x_6);
x_8 = lean_uint32_mul(x_7, x_1);
return x_8;
}
else
{
uint32_t x_9; 
x_9 = 1;
return x_9;
}
}
}
LEAN_EXPORT lean_object* l_UInt32_pow___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; lean_object* x_5; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = l_UInt32_pow(x_3, x_2);
lean_dec(x_2);
x_5 = lean_box_uint32(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_UInt32_mod___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_mod(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt32_modn___spec__1(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; 
x_2 = lean_unsigned_to_nat(32u);
x_3 = l_BitVec_ofNat(x_2, x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt32_modn(uint32_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint32_t x_7; lean_object* x_8; 
x_3 = lean_uint32_to_nat(x_1);
x_4 = lean_nat_mod(x_3, x_2);
lean_dec(x_3);
x_5 = lean_unsigned_to_nat(32u);
x_6 = l_BitVec_ofNat(x_5, x_4);
lean_dec(x_4);
x_7 = lean_uint32_of_nat_mk(x_6);
x_8 = lean_box_uint32(x_7);
return x_8;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt32_modn___spec__1___boxed(lean_object* x_1) {
_start:
{
lean_object* x_2; 
x_2 = l_Nat_cast___at_UInt32_modn___spec__1(x_1);
lean_dec(x_1);
return x_2;
}
}
LEAN_EXPORT lean_object* l_UInt32_modn___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; lean_object* x_4; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = l_UInt32_modn(x_3, x_2);
lean_dec(x_2);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt32_land___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_land(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt32_lor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_lor(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt32_xor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_xor(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt32_shiftLeft___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_shift_left(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt32_shiftRight___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint32_t x_3; uint32_t x_4; uint32_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint32(x_2);
lean_dec(x_2);
x_5 = lean_uint32_shift_right(x_3, x_4);
x_6 = lean_box_uint32(x_5);
return x_6;
}
}
static lean_object* _init_l_instAddUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_add___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instAddUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instAddUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instSubUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_sub___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instSubUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instSubUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instMulUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_mul___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instMulUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instMulUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instPowUInt32Nat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_pow___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instPowUInt32Nat() {
_start:
{
lean_object* x_1; 
x_1 = l_instPowUInt32Nat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instModUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_mod___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instModUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instModUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instHModUInt32Nat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_modn___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instHModUInt32Nat() {
_start:
{
lean_object* x_1; 
x_1 = l_instHModUInt32Nat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instDivUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_div___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instDivUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instDivUInt32___closed__1;
return x_1;
}
}
LEAN_EXPORT lean_object* l_UInt32_complement___boxed(lean_object* x_1) {
_start:
{
uint32_t x_2; uint32_t x_3; lean_object* x_4; 
x_2 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_3 = lean_uint32_complement(x_2);
x_4 = lean_box_uint32(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt32_neg___boxed(lean_object* x_1) {
_start:
{
uint32_t x_2; uint32_t x_3; lean_object* x_4; 
x_2 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_3 = lean_uint32_neg(x_2);
x_4 = lean_box_uint32(x_3);
return x_4;
}
}
static lean_object* _init_l_instComplementUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_complement___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instComplementUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instComplementUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instNegUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_neg___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instNegUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instNegUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instAndOpUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_land___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instAndOpUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instAndOpUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instOrOpUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_lor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instOrOpUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instOrOpUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instXorUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_xor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instXorUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instXorUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_shiftLeft___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftLeftUInt32___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftRightUInt32___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt32_shiftRight___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftRightUInt32() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftRightUInt32___closed__1;
return x_1;
}
}
LEAN_EXPORT lean_object* l_Bool_toUInt32___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; uint32_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_bool_to_uint32(x_2);
x_4 = lean_box_uint32(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt64_ofFin(lean_object* x_1) {
_start:
{
uint64_t x_2; lean_object* x_3; 
x_2 = lean_uint64_of_nat_mk(x_1);
x_3 = lean_box_uint64(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt64_mk(lean_object* x_1) {
_start:
{
uint64_t x_2; lean_object* x_3; 
x_2 = lean_uint64_of_nat_mk(x_1);
x_3 = lean_box_uint64(x_2);
return x_3;
}
}
LEAN_EXPORT uint64_t l_UInt64_ofNatCore(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; 
x_3 = lean_uint64_of_nat(x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt64_ofNatCore___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; lean_object* x_4; 
x_3 = l_UInt64_ofNatCore(x_1, x_2);
lean_dec(x_1);
x_4 = lean_box_uint64(x_3);
return x_4;
}
}
static lean_object* _init_l_UInt64_ofInt___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; 
x_1 = l_UInt8_ofInt___closed__1;
x_2 = lean_unsigned_to_nat(64u);
x_3 = l_Int_pow(x_1, x_2);
return x_3;
}
}
LEAN_EXPORT uint64_t l_UInt64_ofInt(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; uint64_t x_5; 
x_2 = l_UInt64_ofInt___closed__1;
x_3 = lean_int_emod(x_1, x_2);
x_4 = l_Int_toNat(x_3);
lean_dec(x_3);
x_5 = lean_uint64_of_nat(x_4);
lean_dec(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_UInt64_ofInt___boxed(lean_object* x_1) {
_start:
{
uint64_t x_2; lean_object* x_3; 
x_2 = l_UInt64_ofInt(x_1);
lean_dec(x_1);
x_3 = lean_box_uint64(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt64_add___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_add(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt64_sub___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_sub(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt64_mul___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_mul(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt64_div___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_div(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT uint64_t l_UInt64_pow(uint64_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; uint8_t x_4; 
x_3 = lean_unsigned_to_nat(0u);
x_4 = lean_nat_dec_eq(x_2, x_3);
if (x_4 == 0)
{
lean_object* x_5; lean_object* x_6; uint64_t x_7; uint64_t x_8; 
x_5 = lean_unsigned_to_nat(1u);
x_6 = lean_nat_sub(x_2, x_5);
x_7 = l_UInt64_pow(x_1, x_6);
lean_dec(x_6);
x_8 = lean_uint64_mul(x_7, x_1);
return x_8;
}
else
{
uint64_t x_9; 
x_9 = 1;
return x_9;
}
}
}
LEAN_EXPORT lean_object* l_UInt64_pow___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; lean_object* x_5; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = l_UInt64_pow(x_3, x_2);
lean_dec(x_2);
x_5 = lean_box_uint64(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_UInt64_mod___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_mod(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt64_modn___spec__1(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; 
x_2 = lean_unsigned_to_nat(64u);
x_3 = l_BitVec_ofNat(x_2, x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_UInt64_modn(uint64_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint64_t x_7; lean_object* x_8; 
x_3 = lean_uint64_to_nat(x_1);
x_4 = lean_nat_mod(x_3, x_2);
lean_dec(x_3);
x_5 = lean_unsigned_to_nat(64u);
x_6 = l_BitVec_ofNat(x_5, x_4);
lean_dec(x_4);
x_7 = lean_uint64_of_nat_mk(x_6);
x_8 = lean_box_uint64(x_7);
return x_8;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_UInt64_modn___spec__1___boxed(lean_object* x_1) {
_start:
{
lean_object* x_2; 
x_2 = l_Nat_cast___at_UInt64_modn___spec__1(x_1);
lean_dec(x_1);
return x_2;
}
}
LEAN_EXPORT lean_object* l_UInt64_modn___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; lean_object* x_4; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = l_UInt64_modn(x_3, x_2);
lean_dec(x_2);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt64_land___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_land(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt64_lor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_lor(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt64_xor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_xor(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt64_shiftLeft___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_shift_left(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt64_shiftRight___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_shift_right(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
static lean_object* _init_l_instAddUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_add___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instAddUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instAddUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instSubUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_sub___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instSubUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instSubUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instMulUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_mul___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instMulUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instMulUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instPowUInt64Nat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_pow___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instPowUInt64Nat() {
_start:
{
lean_object* x_1; 
x_1 = l_instPowUInt64Nat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instModUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_mod___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instModUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instModUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instHModUInt64Nat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_modn___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instHModUInt64Nat() {
_start:
{
lean_object* x_1; 
x_1 = l_instHModUInt64Nat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instDivUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_div___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instDivUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instDivUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instLTUInt64() {
_start:
{
lean_object* x_1; 
x_1 = lean_box(0);
return x_1;
}
}
static lean_object* _init_l_instLEUInt64() {
_start:
{
lean_object* x_1; 
x_1 = lean_box(0);
return x_1;
}
}
LEAN_EXPORT lean_object* l_UInt64_complement___boxed(lean_object* x_1) {
_start:
{
uint64_t x_2; uint64_t x_3; lean_object* x_4; 
x_2 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_3 = lean_uint64_complement(x_2);
x_4 = lean_box_uint64(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt64_neg___boxed(lean_object* x_1) {
_start:
{
uint64_t x_2; uint64_t x_3; lean_object* x_4; 
x_2 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_3 = lean_uint64_neg(x_2);
x_4 = lean_box_uint64(x_3);
return x_4;
}
}
static lean_object* _init_l_instComplementUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_complement___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instComplementUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instComplementUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instNegUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_neg___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instNegUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instNegUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instAndOpUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_land___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instAndOpUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instAndOpUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instOrOpUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_lor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instOrOpUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instOrOpUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instXorUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_xor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instXorUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instXorUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_shiftLeft___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftLeftUInt64___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftRightUInt64___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_UInt64_shiftRight___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftRightUInt64() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftRightUInt64___closed__1;
return x_1;
}
}
LEAN_EXPORT lean_object* l_Bool_toUInt64___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; uint64_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_bool_to_uint64(x_2);
x_4 = lean_box_uint64(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt64_decLt___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_dec_lt(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_UInt64_decLe___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint8_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = lean_uint64_dec_le(x_3, x_4);
x_6 = lean_box(x_5);
return x_6;
}
}
LEAN_EXPORT uint64_t l_instMaxUInt64(uint64_t x_1, uint64_t x_2) {
_start:
{
uint8_t x_3; 
x_3 = lean_uint64_dec_le(x_1, x_2);
if (x_3 == 0)
{
return x_1;
}
else
{
return x_2;
}
}
}
LEAN_EXPORT lean_object* l_instMaxUInt64___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = l_instMaxUInt64(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT uint64_t l_instMinUInt64(uint64_t x_1, uint64_t x_2) {
_start:
{
uint8_t x_3; 
x_3 = lean_uint64_dec_le(x_1, x_2);
if (x_3 == 0)
{
return x_2;
}
else
{
return x_1;
}
}
}
LEAN_EXPORT lean_object* l_instMinUInt64___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
uint64_t x_3; uint64_t x_4; uint64_t x_5; lean_object* x_6; 
x_3 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_4 = lean_unbox_uint64(x_2);
lean_dec(x_2);
x_5 = l_instMinUInt64(x_3, x_4);
x_6 = lean_box_uint64(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_USize_ofFin(lean_object* x_1) {
_start:
{
size_t x_2; lean_object* x_3; 
x_2 = lean_usize_of_nat_mk(x_1);
x_3 = lean_box_usize(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_USize_mk(lean_object* x_1) {
_start:
{
size_t x_2; lean_object* x_3; 
x_2 = lean_usize_of_nat_mk(x_1);
x_3 = lean_box_usize(x_2);
return x_3;
}
}
LEAN_EXPORT size_t l_USize_ofNatCore(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; 
x_3 = lean_usize_of_nat(x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_USize_ofNatCore___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; lean_object* x_4; 
x_3 = l_USize_ofNatCore(x_1, x_2);
lean_dec(x_1);
x_4 = lean_box_usize(x_3);
return x_4;
}
}
static lean_object* _init_l_USize_ofInt___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; 
x_1 = l_UInt8_ofInt___closed__1;
x_2 = l_System_Platform_numBits;
x_3 = l_Int_pow(x_1, x_2);
return x_3;
}
}
LEAN_EXPORT size_t l_USize_ofInt(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; size_t x_5; 
x_2 = l_USize_ofInt___closed__1;
x_3 = lean_int_emod(x_1, x_2);
x_4 = l_Int_toNat(x_3);
lean_dec(x_3);
x_5 = lean_usize_of_nat(x_4);
lean_dec(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_USize_ofInt___boxed(lean_object* x_1) {
_start:
{
size_t x_2; lean_object* x_3; 
x_2 = l_USize_ofInt(x_1);
lean_dec(x_1);
x_3 = lean_box_usize(x_2);
return x_3;
}
}
LEAN_EXPORT lean_object* l_USize_mul___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = lean_usize_mul(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_USize_div___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = lean_usize_div(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
LEAN_EXPORT size_t l_USize_pow(size_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; uint8_t x_4; 
x_3 = lean_unsigned_to_nat(0u);
x_4 = lean_nat_dec_eq(x_2, x_3);
if (x_4 == 0)
{
lean_object* x_5; lean_object* x_6; size_t x_7; size_t x_8; 
x_5 = lean_unsigned_to_nat(1u);
x_6 = lean_nat_sub(x_2, x_5);
x_7 = l_USize_pow(x_1, x_6);
lean_dec(x_6);
x_8 = lean_usize_mul(x_7, x_1);
return x_8;
}
else
{
size_t x_9; 
x_9 = 1;
return x_9;
}
}
}
LEAN_EXPORT lean_object* l_USize_pow___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; lean_object* x_5; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = l_USize_pow(x_3, x_2);
lean_dec(x_2);
x_5 = lean_box_usize(x_4);
return x_5;
}
}
LEAN_EXPORT lean_object* l_USize_mod___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = lean_usize_mod(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_USize_modn___spec__1(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; 
x_2 = l_System_Platform_numBits;
x_3 = l_BitVec_ofNat(x_2, x_1);
return x_3;
}
}
LEAN_EXPORT lean_object* l_USize_modn(size_t x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; size_t x_7; lean_object* x_8; 
x_3 = lean_usize_to_nat(x_1);
x_4 = lean_nat_mod(x_3, x_2);
lean_dec(x_3);
x_5 = l_System_Platform_numBits;
x_6 = l_BitVec_ofNat(x_5, x_4);
lean_dec(x_4);
x_7 = lean_usize_of_nat_mk(x_6);
x_8 = lean_box_usize(x_7);
return x_8;
}
}
LEAN_EXPORT lean_object* l_Nat_cast___at_USize_modn___spec__1___boxed(lean_object* x_1) {
_start:
{
lean_object* x_2; 
x_2 = l_Nat_cast___at_USize_modn___spec__1(x_1);
lean_dec(x_1);
return x_2;
}
}
LEAN_EXPORT lean_object* l_USize_modn___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; lean_object* x_4; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = l_USize_modn(x_3, x_2);
lean_dec(x_2);
return x_4;
}
}
LEAN_EXPORT lean_object* l_USize_land___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = lean_usize_land(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_USize_lor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = lean_usize_lor(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_USize_xor___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = lean_usize_xor(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_USize_shiftLeft___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = lean_usize_shift_left(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_USize_shiftRight___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = lean_usize_shift_right(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
LEAN_EXPORT lean_object* l_USize_ofNat32___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; lean_object* x_4; 
x_3 = lean_usize_of_nat(x_1);
lean_dec(x_1);
x_4 = lean_box_usize(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt8_toUSize___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; size_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_uint8_to_usize(x_2);
x_4 = lean_box_usize(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_USize_toUInt8___boxed(lean_object* x_1) {
_start:
{
size_t x_2; uint8_t x_3; lean_object* x_4; 
x_2 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_3 = lean_usize_to_uint8(x_2);
x_4 = lean_box(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt16_toUSize___boxed(lean_object* x_1) {
_start:
{
uint16_t x_2; size_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_uint16_to_usize(x_2);
x_4 = lean_box_usize(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_USize_toUInt16___boxed(lean_object* x_1) {
_start:
{
size_t x_2; uint16_t x_3; lean_object* x_4; 
x_2 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_3 = lean_usize_to_uint16(x_2);
x_4 = lean_box(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt32_toUSize___boxed(lean_object* x_1) {
_start:
{
uint32_t x_2; size_t x_3; lean_object* x_4; 
x_2 = lean_unbox_uint32(x_1);
lean_dec(x_1);
x_3 = lean_uint32_to_usize(x_2);
x_4 = lean_box_usize(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_USize_toUInt32___boxed(lean_object* x_1) {
_start:
{
size_t x_2; uint32_t x_3; lean_object* x_4; 
x_2 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_3 = lean_usize_to_uint32(x_2);
x_4 = lean_box_uint32(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_UInt64_toUSize___boxed(lean_object* x_1) {
_start:
{
uint64_t x_2; size_t x_3; lean_object* x_4; 
x_2 = lean_unbox_uint64(x_1);
lean_dec(x_1);
x_3 = lean_uint64_to_usize(x_2);
x_4 = lean_box_usize(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_USize_toUInt64___boxed(lean_object* x_1) {
_start:
{
size_t x_2; uint64_t x_3; lean_object* x_4; 
x_2 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_3 = lean_usize_to_uint64(x_2);
x_4 = lean_box_uint64(x_3);
return x_4;
}
}
static lean_object* _init_l_instMulUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_mul___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instMulUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instMulUSize___closed__1;
return x_1;
}
}
static lean_object* _init_l_instPowUSizeNat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_pow___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instPowUSizeNat() {
_start:
{
lean_object* x_1; 
x_1 = l_instPowUSizeNat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instModUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_mod___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instModUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instModUSize___closed__1;
return x_1;
}
}
static lean_object* _init_l_instHModUSizeNat___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_modn___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instHModUSizeNat() {
_start:
{
lean_object* x_1; 
x_1 = l_instHModUSizeNat___closed__1;
return x_1;
}
}
static lean_object* _init_l_instDivUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_div___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instDivUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instDivUSize___closed__1;
return x_1;
}
}
LEAN_EXPORT lean_object* l_USize_complement___boxed(lean_object* x_1) {
_start:
{
size_t x_2; size_t x_3; lean_object* x_4; 
x_2 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_3 = lean_usize_complement(x_2);
x_4 = lean_box_usize(x_3);
return x_4;
}
}
LEAN_EXPORT lean_object* l_USize_neg___boxed(lean_object* x_1) {
_start:
{
size_t x_2; size_t x_3; lean_object* x_4; 
x_2 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_3 = lean_usize_neg(x_2);
x_4 = lean_box_usize(x_3);
return x_4;
}
}
static lean_object* _init_l_instComplementUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_complement___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instComplementUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instComplementUSize___closed__1;
return x_1;
}
}
static lean_object* _init_l_instNegUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_neg___boxed), 1, 0);
return x_1;
}
}
static lean_object* _init_l_instNegUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instNegUSize___closed__1;
return x_1;
}
}
static lean_object* _init_l_instAndOpUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_land___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instAndOpUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instAndOpUSize___closed__1;
return x_1;
}
}
static lean_object* _init_l_instOrOpUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_lor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instOrOpUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instOrOpUSize___closed__1;
return x_1;
}
}
static lean_object* _init_l_instXorUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_xor___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instXorUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instXorUSize___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_shiftLeft___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftLeftUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftLeftUSize___closed__1;
return x_1;
}
}
static lean_object* _init_l_instShiftRightUSize___closed__1() {
_start:
{
lean_object* x_1; 
x_1 = lean_alloc_closure((void*)(l_USize_shiftRight___boxed), 2, 0);
return x_1;
}
}
static lean_object* _init_l_instShiftRightUSize() {
_start:
{
lean_object* x_1; 
x_1 = l_instShiftRightUSize___closed__1;
return x_1;
}
}
LEAN_EXPORT lean_object* l_Bool_toUSize___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; size_t x_3; lean_object* x_4; 
x_2 = lean_unbox(x_1);
lean_dec(x_1);
x_3 = lean_bool_to_usize(x_2);
x_4 = lean_box_usize(x_3);
return x_4;
}
}
LEAN_EXPORT size_t l_instMaxUSize(size_t x_1, size_t x_2) {
_start:
{
uint8_t x_3; 
x_3 = lean_usize_dec_le(x_1, x_2);
if (x_3 == 0)
{
return x_1;
}
else
{
return x_2;
}
}
}
LEAN_EXPORT lean_object* l_instMaxUSize___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = l_instMaxUSize(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
LEAN_EXPORT size_t l_instMinUSize(size_t x_1, size_t x_2) {
_start:
{
uint8_t x_3; 
x_3 = lean_usize_dec_le(x_1, x_2);
if (x_3 == 0)
{
return x_2;
}
else
{
return x_1;
}
}
}
LEAN_EXPORT lean_object* l_instMinUSize___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
size_t x_3; size_t x_4; size_t x_5; lean_object* x_6; 
x_3 = lean_unbox_usize(x_1);
lean_dec(x_1);
x_4 = lean_unbox_usize(x_2);
lean_dec(x_2);
x_5 = l_instMinUSize(x_3, x_4);
x_6 = lean_box_usize(x_5);
return x_6;
}
}
lean_object* initialize_Init_Data_UInt_BasicAux(uint8_t builtin, lean_object*);
lean_object* initialize_Init_Data_BitVec_Basic(uint8_t builtin, lean_object*);
static bool _G_initialized = false;
LEAN_EXPORT lean_object* initialize_Init_Data_UInt_Basic(uint8_t builtin, lean_object* w) {
lean_object * res;
if (_G_initialized) return lean_io_result_mk_ok(lean_box(0));
_G_initialized = true;
res = initialize_Init_Data_UInt_BasicAux(builtin, lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = initialize_Init_Data_BitVec_Basic(builtin, lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l_UInt8_ofInt___closed__1 = _init_l_UInt8_ofInt___closed__1();
lean_mark_persistent(l_UInt8_ofInt___closed__1);
l_UInt8_ofInt___closed__2 = _init_l_UInt8_ofInt___closed__2();
lean_mark_persistent(l_UInt8_ofInt___closed__2);
l_instAddUInt8___closed__1 = _init_l_instAddUInt8___closed__1();
lean_mark_persistent(l_instAddUInt8___closed__1);
l_instAddUInt8 = _init_l_instAddUInt8();
lean_mark_persistent(l_instAddUInt8);
l_instSubUInt8___closed__1 = _init_l_instSubUInt8___closed__1();
lean_mark_persistent(l_instSubUInt8___closed__1);
l_instSubUInt8 = _init_l_instSubUInt8();
lean_mark_persistent(l_instSubUInt8);
l_instMulUInt8___closed__1 = _init_l_instMulUInt8___closed__1();
lean_mark_persistent(l_instMulUInt8___closed__1);
l_instMulUInt8 = _init_l_instMulUInt8();
lean_mark_persistent(l_instMulUInt8);
l_instPowUInt8Nat___closed__1 = _init_l_instPowUInt8Nat___closed__1();
lean_mark_persistent(l_instPowUInt8Nat___closed__1);
l_instPowUInt8Nat = _init_l_instPowUInt8Nat();
lean_mark_persistent(l_instPowUInt8Nat);
l_instModUInt8___closed__1 = _init_l_instModUInt8___closed__1();
lean_mark_persistent(l_instModUInt8___closed__1);
l_instModUInt8 = _init_l_instModUInt8();
lean_mark_persistent(l_instModUInt8);
l_instHModUInt8Nat___closed__1 = _init_l_instHModUInt8Nat___closed__1();
lean_mark_persistent(l_instHModUInt8Nat___closed__1);
l_instHModUInt8Nat = _init_l_instHModUInt8Nat();
lean_mark_persistent(l_instHModUInt8Nat);
l_instDivUInt8___closed__1 = _init_l_instDivUInt8___closed__1();
lean_mark_persistent(l_instDivUInt8___closed__1);
l_instDivUInt8 = _init_l_instDivUInt8();
lean_mark_persistent(l_instDivUInt8);
l_instLTUInt8 = _init_l_instLTUInt8();
lean_mark_persistent(l_instLTUInt8);
l_instLEUInt8 = _init_l_instLEUInt8();
lean_mark_persistent(l_instLEUInt8);
l_instComplementUInt8___closed__1 = _init_l_instComplementUInt8___closed__1();
lean_mark_persistent(l_instComplementUInt8___closed__1);
l_instComplementUInt8 = _init_l_instComplementUInt8();
lean_mark_persistent(l_instComplementUInt8);
l_instNegUInt8___closed__1 = _init_l_instNegUInt8___closed__1();
lean_mark_persistent(l_instNegUInt8___closed__1);
l_instNegUInt8 = _init_l_instNegUInt8();
lean_mark_persistent(l_instNegUInt8);
l_instAndOpUInt8___closed__1 = _init_l_instAndOpUInt8___closed__1();
lean_mark_persistent(l_instAndOpUInt8___closed__1);
l_instAndOpUInt8 = _init_l_instAndOpUInt8();
lean_mark_persistent(l_instAndOpUInt8);
l_instOrOpUInt8___closed__1 = _init_l_instOrOpUInt8___closed__1();
lean_mark_persistent(l_instOrOpUInt8___closed__1);
l_instOrOpUInt8 = _init_l_instOrOpUInt8();
lean_mark_persistent(l_instOrOpUInt8);
l_instXorUInt8___closed__1 = _init_l_instXorUInt8___closed__1();
lean_mark_persistent(l_instXorUInt8___closed__1);
l_instXorUInt8 = _init_l_instXorUInt8();
lean_mark_persistent(l_instXorUInt8);
l_instShiftLeftUInt8___closed__1 = _init_l_instShiftLeftUInt8___closed__1();
lean_mark_persistent(l_instShiftLeftUInt8___closed__1);
l_instShiftLeftUInt8 = _init_l_instShiftLeftUInt8();
lean_mark_persistent(l_instShiftLeftUInt8);
l_instShiftRightUInt8___closed__1 = _init_l_instShiftRightUInt8___closed__1();
lean_mark_persistent(l_instShiftRightUInt8___closed__1);
l_instShiftRightUInt8 = _init_l_instShiftRightUInt8();
lean_mark_persistent(l_instShiftRightUInt8);
l_UInt16_ofInt___closed__1 = _init_l_UInt16_ofInt___closed__1();
lean_mark_persistent(l_UInt16_ofInt___closed__1);
l_instAddUInt16___closed__1 = _init_l_instAddUInt16___closed__1();
lean_mark_persistent(l_instAddUInt16___closed__1);
l_instAddUInt16 = _init_l_instAddUInt16();
lean_mark_persistent(l_instAddUInt16);
l_instSubUInt16___closed__1 = _init_l_instSubUInt16___closed__1();
lean_mark_persistent(l_instSubUInt16___closed__1);
l_instSubUInt16 = _init_l_instSubUInt16();
lean_mark_persistent(l_instSubUInt16);
l_instMulUInt16___closed__1 = _init_l_instMulUInt16___closed__1();
lean_mark_persistent(l_instMulUInt16___closed__1);
l_instMulUInt16 = _init_l_instMulUInt16();
lean_mark_persistent(l_instMulUInt16);
l_instPowUInt16Nat___closed__1 = _init_l_instPowUInt16Nat___closed__1();
lean_mark_persistent(l_instPowUInt16Nat___closed__1);
l_instPowUInt16Nat = _init_l_instPowUInt16Nat();
lean_mark_persistent(l_instPowUInt16Nat);
l_instModUInt16___closed__1 = _init_l_instModUInt16___closed__1();
lean_mark_persistent(l_instModUInt16___closed__1);
l_instModUInt16 = _init_l_instModUInt16();
lean_mark_persistent(l_instModUInt16);
l_instHModUInt16Nat___closed__1 = _init_l_instHModUInt16Nat___closed__1();
lean_mark_persistent(l_instHModUInt16Nat___closed__1);
l_instHModUInt16Nat = _init_l_instHModUInt16Nat();
lean_mark_persistent(l_instHModUInt16Nat);
l_instDivUInt16___closed__1 = _init_l_instDivUInt16___closed__1();
lean_mark_persistent(l_instDivUInt16___closed__1);
l_instDivUInt16 = _init_l_instDivUInt16();
lean_mark_persistent(l_instDivUInt16);
l_instLTUInt16 = _init_l_instLTUInt16();
lean_mark_persistent(l_instLTUInt16);
l_instLEUInt16 = _init_l_instLEUInt16();
lean_mark_persistent(l_instLEUInt16);
l_instComplementUInt16___closed__1 = _init_l_instComplementUInt16___closed__1();
lean_mark_persistent(l_instComplementUInt16___closed__1);
l_instComplementUInt16 = _init_l_instComplementUInt16();
lean_mark_persistent(l_instComplementUInt16);
l_instNegUInt16___closed__1 = _init_l_instNegUInt16___closed__1();
lean_mark_persistent(l_instNegUInt16___closed__1);
l_instNegUInt16 = _init_l_instNegUInt16();
lean_mark_persistent(l_instNegUInt16);
l_instAndOpUInt16___closed__1 = _init_l_instAndOpUInt16___closed__1();
lean_mark_persistent(l_instAndOpUInt16___closed__1);
l_instAndOpUInt16 = _init_l_instAndOpUInt16();
lean_mark_persistent(l_instAndOpUInt16);
l_instOrOpUInt16___closed__1 = _init_l_instOrOpUInt16___closed__1();
lean_mark_persistent(l_instOrOpUInt16___closed__1);
l_instOrOpUInt16 = _init_l_instOrOpUInt16();
lean_mark_persistent(l_instOrOpUInt16);
l_instXorUInt16___closed__1 = _init_l_instXorUInt16___closed__1();
lean_mark_persistent(l_instXorUInt16___closed__1);
l_instXorUInt16 = _init_l_instXorUInt16();
lean_mark_persistent(l_instXorUInt16);
l_instShiftLeftUInt16___closed__1 = _init_l_instShiftLeftUInt16___closed__1();
lean_mark_persistent(l_instShiftLeftUInt16___closed__1);
l_instShiftLeftUInt16 = _init_l_instShiftLeftUInt16();
lean_mark_persistent(l_instShiftLeftUInt16);
l_instShiftRightUInt16___closed__1 = _init_l_instShiftRightUInt16___closed__1();
lean_mark_persistent(l_instShiftRightUInt16___closed__1);
l_instShiftRightUInt16 = _init_l_instShiftRightUInt16();
lean_mark_persistent(l_instShiftRightUInt16);
l_UInt32_ofInt___closed__1 = _init_l_UInt32_ofInt___closed__1();
lean_mark_persistent(l_UInt32_ofInt___closed__1);
l_instAddUInt32___closed__1 = _init_l_instAddUInt32___closed__1();
lean_mark_persistent(l_instAddUInt32___closed__1);
l_instAddUInt32 = _init_l_instAddUInt32();
lean_mark_persistent(l_instAddUInt32);
l_instSubUInt32___closed__1 = _init_l_instSubUInt32___closed__1();
lean_mark_persistent(l_instSubUInt32___closed__1);
l_instSubUInt32 = _init_l_instSubUInt32();
lean_mark_persistent(l_instSubUInt32);
l_instMulUInt32___closed__1 = _init_l_instMulUInt32___closed__1();
lean_mark_persistent(l_instMulUInt32___closed__1);
l_instMulUInt32 = _init_l_instMulUInt32();
lean_mark_persistent(l_instMulUInt32);
l_instPowUInt32Nat___closed__1 = _init_l_instPowUInt32Nat___closed__1();
lean_mark_persistent(l_instPowUInt32Nat___closed__1);
l_instPowUInt32Nat = _init_l_instPowUInt32Nat();
lean_mark_persistent(l_instPowUInt32Nat);
l_instModUInt32___closed__1 = _init_l_instModUInt32___closed__1();
lean_mark_persistent(l_instModUInt32___closed__1);
l_instModUInt32 = _init_l_instModUInt32();
lean_mark_persistent(l_instModUInt32);
l_instHModUInt32Nat___closed__1 = _init_l_instHModUInt32Nat___closed__1();
lean_mark_persistent(l_instHModUInt32Nat___closed__1);
l_instHModUInt32Nat = _init_l_instHModUInt32Nat();
lean_mark_persistent(l_instHModUInt32Nat);
l_instDivUInt32___closed__1 = _init_l_instDivUInt32___closed__1();
lean_mark_persistent(l_instDivUInt32___closed__1);
l_instDivUInt32 = _init_l_instDivUInt32();
lean_mark_persistent(l_instDivUInt32);
l_instComplementUInt32___closed__1 = _init_l_instComplementUInt32___closed__1();
lean_mark_persistent(l_instComplementUInt32___closed__1);
l_instComplementUInt32 = _init_l_instComplementUInt32();
lean_mark_persistent(l_instComplementUInt32);
l_instNegUInt32___closed__1 = _init_l_instNegUInt32___closed__1();
lean_mark_persistent(l_instNegUInt32___closed__1);
l_instNegUInt32 = _init_l_instNegUInt32();
lean_mark_persistent(l_instNegUInt32);
l_instAndOpUInt32___closed__1 = _init_l_instAndOpUInt32___closed__1();
lean_mark_persistent(l_instAndOpUInt32___closed__1);
l_instAndOpUInt32 = _init_l_instAndOpUInt32();
lean_mark_persistent(l_instAndOpUInt32);
l_instOrOpUInt32___closed__1 = _init_l_instOrOpUInt32___closed__1();
lean_mark_persistent(l_instOrOpUInt32___closed__1);
l_instOrOpUInt32 = _init_l_instOrOpUInt32();
lean_mark_persistent(l_instOrOpUInt32);
l_instXorUInt32___closed__1 = _init_l_instXorUInt32___closed__1();
lean_mark_persistent(l_instXorUInt32___closed__1);
l_instXorUInt32 = _init_l_instXorUInt32();
lean_mark_persistent(l_instXorUInt32);
l_instShiftLeftUInt32___closed__1 = _init_l_instShiftLeftUInt32___closed__1();
lean_mark_persistent(l_instShiftLeftUInt32___closed__1);
l_instShiftLeftUInt32 = _init_l_instShiftLeftUInt32();
lean_mark_persistent(l_instShiftLeftUInt32);
l_instShiftRightUInt32___closed__1 = _init_l_instShiftRightUInt32___closed__1();
lean_mark_persistent(l_instShiftRightUInt32___closed__1);
l_instShiftRightUInt32 = _init_l_instShiftRightUInt32();
lean_mark_persistent(l_instShiftRightUInt32);
l_UInt64_ofInt___closed__1 = _init_l_UInt64_ofInt___closed__1();
lean_mark_persistent(l_UInt64_ofInt___closed__1);
l_instAddUInt64___closed__1 = _init_l_instAddUInt64___closed__1();
lean_mark_persistent(l_instAddUInt64___closed__1);
l_instAddUInt64 = _init_l_instAddUInt64();
lean_mark_persistent(l_instAddUInt64);
l_instSubUInt64___closed__1 = _init_l_instSubUInt64___closed__1();
lean_mark_persistent(l_instSubUInt64___closed__1);
l_instSubUInt64 = _init_l_instSubUInt64();
lean_mark_persistent(l_instSubUInt64);
l_instMulUInt64___closed__1 = _init_l_instMulUInt64___closed__1();
lean_mark_persistent(l_instMulUInt64___closed__1);
l_instMulUInt64 = _init_l_instMulUInt64();
lean_mark_persistent(l_instMulUInt64);
l_instPowUInt64Nat___closed__1 = _init_l_instPowUInt64Nat___closed__1();
lean_mark_persistent(l_instPowUInt64Nat___closed__1);
l_instPowUInt64Nat = _init_l_instPowUInt64Nat();
lean_mark_persistent(l_instPowUInt64Nat);
l_instModUInt64___closed__1 = _init_l_instModUInt64___closed__1();
lean_mark_persistent(l_instModUInt64___closed__1);
l_instModUInt64 = _init_l_instModUInt64();
lean_mark_persistent(l_instModUInt64);
l_instHModUInt64Nat___closed__1 = _init_l_instHModUInt64Nat___closed__1();
lean_mark_persistent(l_instHModUInt64Nat___closed__1);
l_instHModUInt64Nat = _init_l_instHModUInt64Nat();
lean_mark_persistent(l_instHModUInt64Nat);
l_instDivUInt64___closed__1 = _init_l_instDivUInt64___closed__1();
lean_mark_persistent(l_instDivUInt64___closed__1);
l_instDivUInt64 = _init_l_instDivUInt64();
lean_mark_persistent(l_instDivUInt64);
l_instLTUInt64 = _init_l_instLTUInt64();
lean_mark_persistent(l_instLTUInt64);
l_instLEUInt64 = _init_l_instLEUInt64();
lean_mark_persistent(l_instLEUInt64);
l_instComplementUInt64___closed__1 = _init_l_instComplementUInt64___closed__1();
lean_mark_persistent(l_instComplementUInt64___closed__1);
l_instComplementUInt64 = _init_l_instComplementUInt64();
lean_mark_persistent(l_instComplementUInt64);
l_instNegUInt64___closed__1 = _init_l_instNegUInt64___closed__1();
lean_mark_persistent(l_instNegUInt64___closed__1);
l_instNegUInt64 = _init_l_instNegUInt64();
lean_mark_persistent(l_instNegUInt64);
l_instAndOpUInt64___closed__1 = _init_l_instAndOpUInt64___closed__1();
lean_mark_persistent(l_instAndOpUInt64___closed__1);
l_instAndOpUInt64 = _init_l_instAndOpUInt64();
lean_mark_persistent(l_instAndOpUInt64);
l_instOrOpUInt64___closed__1 = _init_l_instOrOpUInt64___closed__1();
lean_mark_persistent(l_instOrOpUInt64___closed__1);
l_instOrOpUInt64 = _init_l_instOrOpUInt64();
lean_mark_persistent(l_instOrOpUInt64);
l_instXorUInt64___closed__1 = _init_l_instXorUInt64___closed__1();
lean_mark_persistent(l_instXorUInt64___closed__1);
l_instXorUInt64 = _init_l_instXorUInt64();
lean_mark_persistent(l_instXorUInt64);
l_instShiftLeftUInt64___closed__1 = _init_l_instShiftLeftUInt64___closed__1();
lean_mark_persistent(l_instShiftLeftUInt64___closed__1);
l_instShiftLeftUInt64 = _init_l_instShiftLeftUInt64();
lean_mark_persistent(l_instShiftLeftUInt64);
l_instShiftRightUInt64___closed__1 = _init_l_instShiftRightUInt64___closed__1();
lean_mark_persistent(l_instShiftRightUInt64___closed__1);
l_instShiftRightUInt64 = _init_l_instShiftRightUInt64();
lean_mark_persistent(l_instShiftRightUInt64);
l_USize_ofInt___closed__1 = _init_l_USize_ofInt___closed__1();
lean_mark_persistent(l_USize_ofInt___closed__1);
l_instMulUSize___closed__1 = _init_l_instMulUSize___closed__1();
lean_mark_persistent(l_instMulUSize___closed__1);
l_instMulUSize = _init_l_instMulUSize();
lean_mark_persistent(l_instMulUSize);
l_instPowUSizeNat___closed__1 = _init_l_instPowUSizeNat___closed__1();
lean_mark_persistent(l_instPowUSizeNat___closed__1);
l_instPowUSizeNat = _init_l_instPowUSizeNat();
lean_mark_persistent(l_instPowUSizeNat);
l_instModUSize___closed__1 = _init_l_instModUSize___closed__1();
lean_mark_persistent(l_instModUSize___closed__1);
l_instModUSize = _init_l_instModUSize();
lean_mark_persistent(l_instModUSize);
l_instHModUSizeNat___closed__1 = _init_l_instHModUSizeNat___closed__1();
lean_mark_persistent(l_instHModUSizeNat___closed__1);
l_instHModUSizeNat = _init_l_instHModUSizeNat();
lean_mark_persistent(l_instHModUSizeNat);
l_instDivUSize___closed__1 = _init_l_instDivUSize___closed__1();
lean_mark_persistent(l_instDivUSize___closed__1);
l_instDivUSize = _init_l_instDivUSize();
lean_mark_persistent(l_instDivUSize);
l_instComplementUSize___closed__1 = _init_l_instComplementUSize___closed__1();
lean_mark_persistent(l_instComplementUSize___closed__1);
l_instComplementUSize = _init_l_instComplementUSize();
lean_mark_persistent(l_instComplementUSize);
l_instNegUSize___closed__1 = _init_l_instNegUSize___closed__1();
lean_mark_persistent(l_instNegUSize___closed__1);
l_instNegUSize = _init_l_instNegUSize();
lean_mark_persistent(l_instNegUSize);
l_instAndOpUSize___closed__1 = _init_l_instAndOpUSize___closed__1();
lean_mark_persistent(l_instAndOpUSize___closed__1);
l_instAndOpUSize = _init_l_instAndOpUSize();
lean_mark_persistent(l_instAndOpUSize);
l_instOrOpUSize___closed__1 = _init_l_instOrOpUSize___closed__1();
lean_mark_persistent(l_instOrOpUSize___closed__1);
l_instOrOpUSize = _init_l_instOrOpUSize();
lean_mark_persistent(l_instOrOpUSize);
l_instXorUSize___closed__1 = _init_l_instXorUSize___closed__1();
lean_mark_persistent(l_instXorUSize___closed__1);
l_instXorUSize = _init_l_instXorUSize();
lean_mark_persistent(l_instXorUSize);
l_instShiftLeftUSize___closed__1 = _init_l_instShiftLeftUSize___closed__1();
lean_mark_persistent(l_instShiftLeftUSize___closed__1);
l_instShiftLeftUSize = _init_l_instShiftLeftUSize();
lean_mark_persistent(l_instShiftLeftUSize);
l_instShiftRightUSize___closed__1 = _init_l_instShiftRightUSize___closed__1();
lean_mark_persistent(l_instShiftRightUSize___closed__1);
l_instShiftRightUSize = _init_l_instShiftRightUSize();
lean_mark_persistent(l_instShiftRightUSize);
return lean_io_result_mk_ok(lean_box(0));
}
#ifdef __cplusplus
}
#endif
