// Lean compiler output // Module: init.core // Imports: #include "runtime/object.h" #include "runtime/apply.h" typedef lean::object obj; typedef lean::usize usize; typedef lean::uint8 uint8; typedef lean::uint16 uint16; typedef lean::uint32 uint32; typedef lean::uint64 uint64; #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 obj* l_xor; obj* l_cast___rarg(obj*); uint8 l_bor___main(uint8, uint8); obj* l_unit_star; uint8 l_forall__prop__decidable___rarg(uint8, obj*); obj* l_bor___boxed(obj*, obj*); obj* l_or_intro__left; obj* l_or_by__cases___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_or_by__cases(obj*, obj*); obj* l_nonempty__of__inhabited; obj* l_psigma_has__sizeof(obj*, obj*); obj* l_quotient_mk(obj*, obj*); uint8 l_prod__has__decidable__lt___rarg(obj*, obj*, obj*, obj*, obj*, obj*); uint8 l_band___main(uint8, uint8); uint8 l_sum_decidable__eq___rarg(obj*, obj*, obj*, obj*); uint8 l_xor_decidable___rarg(uint8, uint8); uint8 l_ite_decidable___rarg(uint8, uint8, uint8); uint8 l_true_decidable; obj* l_inline___rarg(obj*); obj* l_setoid__has__equiv(obj*, obj*); obj* l_or_decidable(obj*, obj*); obj* l_fun_inhabited___rarg(obj*, obj*); obj* l_gt; obj* l___private_init_core_26__fun__to__extfun___rarg(obj*); obj* l_bool_inhabited___boxed; obj* l_superset; obj* l_task_pure___boxed(obj*, obj*); obj* l_bxor___boxed(obj*, obj*); obj* l_nat_sizeof___main(obj*); obj* l_typed__expr___rarg(obj*); obj* l_bool_sizeof___boxed(obj*); obj* l_decidable_to__bool___rarg___boxed(obj*); obj* l_total; uint8 l_decidable__of__decidable__of__eq___rarg(uint8, obj*); obj* l_std_priority_max; obj* l_quot_rec___rarg(obj*, obj*, obj*); obj* l_or_intro__right; obj* l_ne; namespace lean { obj* nat_add(obj*, obj*); } obj* l_thunk_pure___boxed(obj*, obj*); obj* l_prod_has__lt(obj*, obj*, obj*, obj*); obj* l_eq_ndrec__on(obj*, obj*, obj*, obj*, obj*); obj* l_inline(obj*); obj* l_quotient_decidable__eq___rarg___lambda__1___boxed(obj*, obj*, obj*); obj* l_exists_intro; obj* l_subtype_decidable__eq(obj*, obj*); obj* l_decidable__of__decidable__of__eq(obj*, obj*); obj* l_bit1___rarg(obj*, obj*, obj*); obj* l_quotient_lift__on_u_2082(obj*, obj*, obj*, obj*, obj*); obj* l_quotient_rec__on__subsingleton_u_2082(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_cond___main___rarg___boxed(obj*, obj*, obj*); obj* l_infer__instance__as(obj*); obj* l_decidable__pred; obj* l___private_init_core_27__extfun__app(obj*, obj*); obj* l_flip___rarg(obj*, obj*, obj*); obj* l_sigma_has__sizeof(obj*, obj*); obj* l_id__delta___rarg(obj*); obj* l_bool_has__sizeof; obj* l_thunk_get___boxed(obj*, obj*); obj* l_prod_map(obj*, obj*, obj*, obj*); obj* l_subtype_sizeof___main___rarg(obj*, obj*, obj*); obj* l_prod__has__decidable__lt(obj*, obj*, obj*, obj*); obj* l_bxor___main___boxed(obj*, obj*); obj* l_exists__prop__decidable(obj*, obj*); obj* l_sum_has__sizeof(obj*, obj*); uint8 l_false_decidable; obj* l_decidable_by__cases___rarg(uint8, obj*, obj*); uint8 l_iff_decidable___rarg(uint8, uint8); obj* l_right__cancelative; obj* l_quotient_rec__on(obj*, obj*, obj*); obj* l_sigma_sizeof___main___rarg(obj*, obj*, obj*); obj* l_list_has__sizeof___rarg(obj*); obj* l___private_init_core_25__extfun; obj* l_bor___main___boxed(obj*, obj*); obj* l_reflexive; uint8 l_punit_decidable__eq(obj*, obj*); obj* l_prod_sizeof___main___rarg(obj*, obj*, obj*); uint8 l_decidable__of__decidable__of__iff___rarg(uint8, obj*); obj* l_opt__param; obj* l_singleton___rarg(obj*, obj*, obj*); obj* l_id__delta(obj*); obj* l_bool_sizeof___main(uint8); obj* l_ite___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_ite_decidable(obj*, obj*, obj*); obj* l_is__dec__eq; obj* l_or_symm; obj* l_decidable_rec__on__false___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_sum_sizeof___main(obj*, obj*); obj* l_prod_decidable__eq___rarg___boxed(obj*, obj*, obj*, obj*); uint8 l_bxor___main(uint8, uint8); obj* l_nat_add___boxed(obj*, obj*); obj* l_of__as__true; obj* l_quotient_decidable__eq___rarg(obj*, obj*, obj*, obj*); obj* l_sigma_sizeof___main___at_sigma_has__sizeof___spec__2___rarg(obj*, obj*, obj*); obj* l_quotient_lift__on_u_2082___rarg(obj*, obj*, obj*, obj*); obj* l_psum_has__sizeof(obj*, obj*); obj* l_quotient_lift___rarg(obj*, obj*, obj*); obj* l_punit_sizeof(obj*); obj* l_unit; obj* l_sum_sizeof(obj*, obj*); obj* l_decidable_rec__on__true___rarg(uint8, obj*, obj*, obj*, obj*); obj* l_subsingleton_helim; obj* l_subsingleton__prop; obj* l_ite_decidable___rarg___boxed(obj*, obj*, obj*); obj* l_left__distributive; obj* l_default_sizeof___main(obj*, obj*); obj* l_eq_mp(obj*, obj*, obj*); obj* l_and_elim__right; obj* l_std_priority_default; obj* l_quot_rec(obj*, obj*, obj*); obj* l_decidable_rec__on__false(obj*); uint8 l_exists__prop__decidable___rarg(uint8, obj*); obj* l_prod_sizeof___main(obj*, obj*); obj* l_arbitrary___rarg(obj*); obj* l_typed__expr(obj*); obj* l_band___boxed(obj*, obj*); obj* l_pi_inhabited___rarg(obj*, obj*); obj* l_not_decidable(obj*); obj* l_dite(obj*); obj* l_subtype_exists__of__subtype; obj* l_quot_rec__on(obj*, obj*, obj*); obj* l_dite_decidable(obj*, obj*, obj*); obj* l_decidable__of__decidable__of__eq___rarg___boxed(obj*, obj*); obj* l_and_decidable___rarg___boxed(obj*, obj*); obj* l_prod_map___rarg(obj*, obj*, obj*); obj* l_dite___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_psigma_sizeof___at_psigma_has__sizeof___spec__1(obj*, obj*); obj* l_prod_map___main___rarg(obj*, obj*, obj*); obj* l_subtype_decidable__eq___rarg___boxed(obj*, obj*, obj*); obj* l_as__false; obj* l_sum_sizeof___rarg(obj*, obj*, obj*); obj* l_subtype_exists__of__subtype___main; obj* l___private_init_core_19__rel; obj* l_task_bind___boxed(obj*, obj*, obj*, obj*); obj* l_psum_sizeof(obj*, obj*); obj* l_quot_rec__on__subsingleton(obj*, obj*, obj*, obj*); obj* l_infer__instance___rarg(obj*); obj* l_right__inverse; obj* l_decidable__rel; obj* l_nat_prio; obj* l_subtype_inhabited(obj*, obj*); obj* l_quotient_rec___rarg(obj*, obj*, obj*); obj* l_empty__relation; obj* l_list_has__sizeof(obj*); obj* l_eq_ndrec(obj*, obj*, obj*); obj* l_left__cancelative; obj* l_pi_inhabited(obj*, obj*); obj* l_option_has__sizeof(obj*); uint8 l_bnot___main(uint8); obj* l_decidable__eq__of__bool__pred___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_infer__instance(obj*); obj* l_psigma_sizeof___main___at_psigma_has__sizeof___spec__2(obj*, obj*); obj* l_mk__equivalence; obj* l_inv__image; obj* l_default___rarg(obj*); obj* l_decidable_by__cases(obj*, obj*); obj* l_quotient_mk___rarg(obj*); obj* l_quot_lift__on(obj*, obj*, obj*); obj* l_bit1(obj*); uint8 l_not_decidable___rarg(uint8); obj* l_punit_has__sizeof; obj* l_band___main___boxed(obj*, obj*); obj* l_psigma_sizeof___main___at_psigma_has__sizeof___spec__2___rarg(obj*, obj*, obj*); uint8 l_prod_decidable__eq___rarg(obj*, obj*, obj*, obj*); obj* l_implies_decidable___rarg___boxed(obj*, obj*); obj* l_dite_decidable___rarg(uint8, obj*, obj*); obj* l_nonempty_elim; obj* l_sum_inhabited__left(obj*, obj*); obj* l_true_decidable___boxed; obj* l_transitive; obj* l_quot_hrec__on___rarg(obj*, obj*, obj*); obj* l_quotient_sound; obj* l_option_has__sizeof___rarg(obj*); obj* l_list_sizeof(obj*); obj* l_right__identity; obj* l_std_prec_arrow; uint8 l_decidable__eq__of__bool__pred___rarg(obj*, obj*, obj*, obj*, obj*); obj* l_bit0___rarg(obj*, obj*); obj* l_psum_sizeof___main___rarg(obj*, obj*, obj*); obj* l_bit0(obj*); obj* l_id(obj*); obj* l_equivalence; obj* l_list_sizeof___main___rarg(obj*, obj*); obj* l_subtype_inhabited___rarg(obj*, obj*); obj* l_as__true; obj* l_eq_mpr(obj*, obj*, obj*); obj* l_sum_inhabited__right___rarg(obj*); obj* l_psigma_sizeof___rarg(obj*, obj*, obj*); obj* l_prod_inhabited___rarg(obj*, obj*); obj* l_combinator_I___rarg(obj*); obj* l_eq_ndrec___rarg(obj*, obj*, obj*); obj* l_bnot___boxed(obj*); obj* l_sigma_sizeof___at_sigma_has__sizeof___spec__1(obj*, obj*); obj* l_anti__symmetric; obj* l_quot_indep(obj*, obj*, obj*); obj* l_default_sizeof(obj*, obj*); obj* l_ite___rarg(uint8, obj*, obj*, obj*); obj* l___private_init_core_24__fun__setoid(obj*, obj*); obj* l_cast(obj*, obj*, obj*); obj* l_type__eq__of__heq; uint8 l_bool_inhabited; obj* l_and_elim__left; obj* l_decidable_rec__on__true___rarg___boxed(obj*, obj*, obj*, obj*, obj*); obj* l_id___rarg(obj*); obj* l_option_sizeof___main___rarg(obj*, obj*); obj* l_quotient_rec__on__subsingleton___rarg(obj*, obj*); obj* l_right__commutative; obj* l_combinator_K___rarg(obj*, obj*); obj* l_quot_indep___rarg(obj*, obj*); obj* l_implies_decidable(obj*, obj*); obj* l_ne_decidable___rarg___boxed(obj*, obj*, obj*); obj* l_id__rhs___rarg(obj*); uint8 l_bool_decidable__eq(uint8, uint8); obj* l_bool_sizeof___main___boxed(obj*); obj* l_psigma_has__sizeof___rarg(obj*, obj*); obj* l_pi_subsingleton; obj* l_default__has__sizeof___closed__1; obj* l_sigma_sizeof(obj*, obj*); obj* l_psum_sizeof___rarg(obj*, obj*, obj*); obj* l_xor_decidable___rarg___boxed(obj*, obj*); obj* l_psum_has__sizeof___rarg(obj*, obj*); obj* l_classical_by__cases; obj* l_bool_decidable__eq___boxed(obj*, obj*); obj* l_prod__has__decidable__lt___rarg___boxed(obj*, obj*, obj*, obj*, obj*, obj*); obj* l_quotient_lift_u_2082___rarg(obj*, obj*, obj*, obj*); obj* l_decidable__of__decidable__eq___rarg(obj*, obj*, obj*); obj* l_prod_has__sizeof___rarg(obj*, obj*); obj* l_decidable_rec__on__false___rarg(uint8, obj*, obj*, obj*, obj*); obj* l_out__param; obj* l_function_equiv; uint8 l_implies_decidable___rarg(uint8, uint8); obj* l_sum_decidable__eq___rarg___boxed(obj*, obj*, obj*, obj*); obj* l_quotient_rec__on__subsingleton_u_2082___at_quotient_decidable__eq___spec__1___rarg(obj*, obj*, obj*); obj* l_psigma_sizeof(obj*, obj*); obj* l_decidable__eq__of__bool__pred(obj*); obj* l_quotient_rec__on__subsingleton_u_2082___at_quotient_decidable__eq___spec__1(obj*, obj*); obj* l_xor_decidable(obj*, obj*); obj* l_option_sizeof(obj*); obj* l_combinator_S(obj*, obj*, obj*); obj* l_ge; obj* l_option_sizeof___main(obj*); obj* l_quot_rec__on___rarg(obj*, obj*, obj*); obj* l_dite___rarg(uint8, obj*, obj*, obj*); obj* l_quotient_rec__on__subsingleton_u_2082___rarg(obj*, obj*, obj*); obj* l_subtype_sizeof___main(obj*); obj* l_decidable__of__decidable__of__iff(obj*, obj*); obj* l_iff_decidable___rarg___boxed(obj*, obj*); obj* l_decidable__of__decidable__of__iff___rarg___boxed(obj*, obj*); obj* l_nat_has__sizeof; obj* l_id__rhs(obj*); obj* l_singleton(obj*, obj*); obj* l_punit_inhabited; obj* l_cond___rarg(uint8, obj*, obj*); obj* l_subsingleton_elim; obj* l_nat_sizeof(obj*); obj* l_infer__instance__as___rarg(obj*); obj* l_quotient; obj* l_heq_rfl; obj* l_prop_inhabited; obj* l_false_decidable___boxed; obj* l_quotient_hrec__on(obj*, obj*, obj*); obj* l_quot_lift__on___rarg(obj*, obj*, obj*); obj* l_default__has__sizeof(obj*); obj* l_decidable_by__cases___rarg___boxed(obj*, obj*, obj*); uint8 l_band(uint8, uint8); obj* l_flip(obj*, obj*, obj*); obj* l_nat_has__add; uint8 l_or_decidable___rarg(uint8, uint8); obj* l_nat_has__zero; obj* l_sum_inhabited__left___rarg(obj*); obj* l_quotient_rec(obj*, obj*, obj*); obj* l_right__distributive; obj* l_std_prec_max; uint8 l_decidable_to__bool___rarg(uint8); obj* l_psigma_sizeof___main___rarg(obj*, obj*, obj*); obj* l_is__dec__refl; obj* l_subtype_sizeof(obj*); obj* l_and__implies; obj* l_cond___main(obj*); obj* l_not; obj* l_sigma_has__sizeof___rarg(obj*, obj*); obj* l_quot_rec__on__subsingleton___rarg(obj*, obj*); obj* l_quotient_rec__on___rarg(obj*, obj*, obj*); obj* l_nat_inhabited; obj* l_prod_sizeof___rarg(obj*, obj*, obj*); obj* l_cond___rarg___boxed(obj*, obj*, obj*); obj* l_symmetric; obj* l_eqv__gen_setoid(obj*, obj*); obj* l_prod_map___main(obj*, obj*, obj*, obj*); obj* l_eq_mpr___rarg(obj*); obj* l_sigma_sizeof___rarg(obj*, obj*, obj*); obj* l_dite_decidable___rarg___boxed(obj*, obj*, obj*); obj* l_sum_inhabited__right(obj*, obj*); obj* l_or_decidable___rarg___boxed(obj*, obj*); obj* l_subtype_has__sizeof(obj*); obj* l_ne_decidable(obj*); uint8 l_ne_decidable___rarg(obj*, obj*, obj*); obj* l_quotient_rec__on__subsingleton(obj*, obj*, obj*, obj*); obj* l_not__not__em; obj* l_implies; obj* l_psigma_sizeof___main(obj*, obj*); obj* l_sigma_sizeof___main___at_sigma_has__sizeof___spec__2(obj*, obj*); uint8 l_bxor(uint8, uint8); obj* l_default(obj*); obj* l_decidable_subsingleton; obj* l_ssuperset; obj* l_associative; obj* l_or_by__cases___rarg(uint8, uint8, obj*, obj*, obj*, obj*); obj* l_prod_sizeof(obj*, obj*); obj* l_sum_sizeof___main___rarg(obj*, obj*, obj*); obj* l_eq_ndrec__on___rarg(obj*); obj* l_quotient_lift(obj*, obj*, obj*); obj* l_prod_has__sizeof(obj*, obj*); obj* l_sum_decidable__eq(obj*, obj*); obj* l_punit_sizeof___main(obj*); obj* l_subtype_has__sizeof___rarg(obj*, obj*); obj* l_nat_has__one; obj* l_trivial; obj* l_not__true__iff; obj* l_punit_decidable__eq___boxed(obj*, obj*); obj* l_quotient_decidable__eq(obj*); obj* l_forall__prop__decidable___rarg___boxed(obj*, obj*); obj* l_task_map___boxed(obj*, obj*, obj*, obj*); obj* l_quotient_hrec__on___rarg(obj*, obj*, obj*); obj* l_left__commutative; obj* l_not_decidable___rarg___boxed(obj*); obj* l_left__identity; obj* l_iff_decidable(obj*, obj*); obj* l_psigma_sizeof___at_psigma_has__sizeof___spec__1___rarg(obj*, obj*, obj*); obj* l_list_sizeof___rarg(obj*, obj*); uint8 l_bor(uint8, uint8); obj* l_subtype_sizeof___rarg(obj*, obj*, obj*); obj* l_task_get___boxed(obj*, obj*); obj* l_sigma_sizeof___at_sigma_has__sizeof___spec__1___rarg(obj*, obj*, obj*); obj* l_prod_decidable__eq(obj*, obj*); obj* l_punit_subsingleton; obj* l_decidable_rec__on__true(obj*); obj* l_and_decidable(obj*, obj*); obj* l_and_symm; obj* l_decidable_to__bool(obj*); obj* l_quotient_lift_u_2082(obj*, obj*, obj*, obj*, obj*); uint8 l_bnot(uint8); obj* l_std_prec_max__plus; obj* l_absurd(obj*, obj*, obj*, obj*); obj* l_eq_mp___rarg(obj*); obj* l___private_init_core_27__extfun__app___rarg(obj*, obj*); obj* l_quotient_lift__on___rarg(obj*, obj*, obj*); uint8 l_subtype_decidable__eq___rarg(obj*, obj*, obj*); obj* l_bnot___main___boxed(obj*); obj* l_arbitrary(obj*); obj* l_fun_inhabited(obj*, obj*); obj* l_false_elim___boxed(obj*, obj*); obj* l_exists__prop__decidable___rarg___boxed(obj*, obj*); obj* l_cond___main___rarg(uint8, obj*, obj*); obj* l_bool_sizeof(uint8); obj* l_combinator_S___rarg(obj*, obj*, obj*); obj* l_psum_sizeof___main(obj*, obj*); obj* l_decidable__of__decidable__eq(obj*); obj* l_cond(obj*); obj* l_thunk_map___boxed(obj*, obj*, obj*, obj*); obj* l_rfl; obj* l_true_inhabited; obj* l_subrelation; obj* l_commutative; obj* l_sum_has__sizeof___rarg(obj*, obj*); obj* l_ite(obj*); obj* l_prod_inhabited(obj*, obj*); uint8 l_quotient_decidable__eq___rarg___lambda__1(obj*, obj*, obj*); obj* l_list_sizeof___main(obj*); obj* l_quot_hrec__on(obj*, obj*, obj*); obj* l_sigma_sizeof___main(obj*, obj*); obj* l_forall__prop__decidable(obj*, obj*); uint8 l_and_decidable___rarg(uint8, uint8); obj* l_combinator_K(obj*, obj*); obj* l_quotient_lift__on(obj*, obj*, obj*); obj* l_thunk_bind___boxed(obj*, obj*, obj*, obj*); obj* l___private_init_core_26__fun__to__extfun(obj*, obj*); obj* l_irreflexive; obj* l_false_elim(obj*, uint8); obj* l_option_sizeof___rarg(obj*, obj*); obj* l_combinator_I(obj*); obj* l_id___rarg(obj* x_0) { _start: { return x_0; } } obj* l_id(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_id___rarg), 1, 0); return x_2; } } obj* l_inline___rarg(obj* x_0) { _start: { return x_0; } } obj* l_inline(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_inline___rarg), 1, 0); return x_2; } } obj* l_flip___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = lean::apply_2(x_0, x_2, x_1); return x_3; } } obj* l_flip(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_flip___rarg), 3, 0); return x_6; } } obj* l_id__delta___rarg(obj* x_0) { _start: { return x_0; } } obj* l_id__delta(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_id__delta___rarg), 1, 0); return x_2; } } obj* _init_l_opt__param() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_out__param() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_typed__expr___rarg(obj* x_0) { _start: { return x_0; } } obj* l_typed__expr(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_typed__expr___rarg), 1, 0); return x_2; } } obj* l_id__rhs___rarg(obj* x_0) { _start: { return x_0; } } obj* l_id__rhs(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_id__rhs___rarg), 1, 0); return x_2; } } obj* _init_l_unit() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_unit_star() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_thunk_pure___boxed(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::thunk_pure(x_1); return x_2; } } obj* l_thunk_get___boxed(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::thunk_get(x_1); return x_2; } } obj* l_thunk_map___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; x_4 = lean::thunk_map(x_2, x_3); return x_4; } } obj* l_thunk_bind___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; x_4 = lean::thunk_bind(x_2, x_3); return x_4; } } obj* l_task_pure___boxed(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::task_pure(x_1); return x_2; } } obj* l_task_get___boxed(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::task_get(x_1); return x_2; } } obj* l_task_map___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; x_4 = lean::task_map(x_2, x_3); return x_4; } } obj* l_task_bind___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; x_4 = lean::task_bind(x_2, x_3); return x_4; } } obj* _init_l_not() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_eq_ndrec___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { lean::dec(x_2); lean::dec(x_1); return x_0; } } obj* l_eq_ndrec(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_eq_ndrec___rarg), 3, 0); return x_6; } } obj* l_eq_ndrec__on___rarg(obj* x_0) { _start: { return x_0; } } obj* l_eq_ndrec__on(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_10; lean::dec(x_4); lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_10 = lean::alloc_closure(reinterpret_cast(l_eq_ndrec__on___rarg), 1, 0); return x_10; } } obj* _init_l_and_elim__left() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_and_elim__right() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_rfl() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_heq_rfl() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_or_intro__left() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_or_intro__right() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_decidable__pred() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_decidable__rel() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_decidable__of__decidable__eq___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = lean::apply_2(x_2, x_0, x_1); return x_3; } } obj* l_decidable__of__decidable__eq(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_decidable__of__decidable__eq___rarg), 3, 0); return x_2; } } obj* _init_l_ge() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_gt() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_superset() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_ssuperset() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_bit0___rarg(obj* x_0, obj* x_1) { _start: { obj* x_3; lean::inc(x_1); x_3 = lean::apply_2(x_0, x_1, x_1); return x_3; } } obj* l_bit0(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_bit0___rarg), 2, 0); return x_2; } } obj* l_bit1___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_5; obj* x_6; lean::inc(x_2); lean::inc(x_1); x_5 = lean::apply_2(x_1, x_2, x_2); x_6 = lean::apply_2(x_1, x_5, x_0); return x_6; } } obj* l_bit1(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_bit1___rarg), 3, 0); return x_2; } } obj* l_singleton___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = lean::apply_2(x_1, x_2, x_0); return x_3; } } obj* l_singleton(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_singleton___rarg), 3, 0); return x_4; } } obj* l_nat_add___boxed(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::nat_add(x_0, x_1); return x_2; } } obj* _init_l_nat_has__zero() { _start: { obj* x_0; x_0 = lean::mk_nat_obj(0u); return x_0; } } obj* _init_l_nat_has__one() { _start: { obj* x_0; x_0 = lean::mk_nat_obj(1u); return x_0; } } obj* _init_l_nat_has__add() { _start: { obj* x_0; x_0 = lean::alloc_closure(reinterpret_cast(l_nat_add___boxed), 2, 0); return x_0; } } obj* _init_l_std_priority_default() { _start: { obj* x_0; x_0 = lean::mk_nat_obj(1000u); return x_0; } } obj* _init_l_std_priority_max() { _start: { obj* x_0; x_0 = lean::mk_nat_obj(lean::mpz("4294967295")); return x_0; } } obj* _init_l_nat_prio() { _start: { obj* x_0; obj* x_1; obj* x_2; x_0 = l_std_priority_default; x_1 = lean::mk_nat_obj(100u); x_2 = lean::nat_add(x_0, x_1); return x_2; } } obj* _init_l_std_prec_max() { _start: { obj* x_0; x_0 = lean::mk_nat_obj(1024u); return x_0; } } obj* _init_l_std_prec_arrow() { _start: { obj* x_0; x_0 = lean::mk_nat_obj(25u); return x_0; } } obj* _init_l_std_prec_max__plus() { _start: { obj* x_0; obj* x_1; obj* x_2; x_0 = l_std_prec_max; x_1 = lean::mk_nat_obj(10u); x_2 = lean::nat_add(x_0, x_1); return x_2; } } obj* l_default_sizeof___main(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::mk_nat_obj(0u); return x_4; } } obj* l_default_sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::mk_nat_obj(0u); return x_4; } } obj* _init_l_default__has__sizeof___closed__1() { _start: { obj* x_0; x_0 = lean::alloc_closure(reinterpret_cast(l_default_sizeof), 2, 1); lean::closure_set(x_0, 0, lean::box(0)); return x_0; } } obj* l_default__has__sizeof(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = l_default__has__sizeof___closed__1; return x_2; } } obj* l_nat_sizeof___main(obj* x_0) { _start: { return x_0; } } obj* l_nat_sizeof(obj* x_0) { _start: { return x_0; } } obj* _init_l_nat_has__sizeof() { _start: { obj* x_0; x_0 = lean::alloc_closure(reinterpret_cast(l_nat_sizeof), 1, 0); return x_0; } } obj* l_prod_sizeof___main___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_5; obj* x_8; obj* x_9; obj* x_10; obj* x_12; obj* x_13; x_3 = lean::cnstr_get(x_2, 0); lean::inc(x_3); x_5 = lean::cnstr_get(x_2, 1); lean::inc(x_5); lean::dec(x_2); x_8 = lean::apply_1(x_0, x_3); x_9 = lean::mk_nat_obj(1u); x_10 = lean::nat_add(x_9, x_8); lean::dec(x_8); x_12 = lean::apply_1(x_1, x_5); x_13 = lean::nat_add(x_10, x_12); lean::dec(x_12); lean::dec(x_10); return x_13; } } obj* l_prod_sizeof___main(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_prod_sizeof___main___rarg), 3, 0); return x_4; } } obj* l_prod_sizeof___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = l_prod_sizeof___main___rarg(x_0, x_1, x_2); return x_3; } } obj* l_prod_sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_prod_sizeof___rarg), 3, 0); return x_4; } } obj* l_prod_has__sizeof___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::alloc_closure(reinterpret_cast(l_prod_sizeof___rarg), 3, 2); lean::closure_set(x_2, 0, x_0); lean::closure_set(x_2, 1, x_1); return x_2; } } obj* l_prod_has__sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_prod_has__sizeof___rarg), 2, 0); return x_4; } } obj* l_sum_sizeof___main___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { if (lean::obj_tag(x_2) == 0) { obj* x_4; obj* x_7; obj* x_8; obj* x_9; lean::dec(x_1); x_4 = lean::cnstr_get(x_2, 0); lean::inc(x_4); lean::dec(x_2); x_7 = lean::apply_1(x_0, x_4); x_8 = lean::mk_nat_obj(1u); x_9 = lean::nat_add(x_8, x_7); lean::dec(x_7); return x_9; } else { obj* x_12; obj* x_15; obj* x_16; obj* x_17; lean::dec(x_0); x_12 = lean::cnstr_get(x_2, 0); lean::inc(x_12); lean::dec(x_2); x_15 = lean::apply_1(x_1, x_12); x_16 = lean::mk_nat_obj(1u); x_17 = lean::nat_add(x_16, x_15); lean::dec(x_15); return x_17; } } } obj* l_sum_sizeof___main(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sum_sizeof___main___rarg), 3, 0); return x_4; } } obj* l_sum_sizeof___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = l_sum_sizeof___main___rarg(x_0, x_1, x_2); return x_3; } } obj* l_sum_sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sum_sizeof___rarg), 3, 0); return x_4; } } obj* l_sum_has__sizeof___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::alloc_closure(reinterpret_cast(l_sum_sizeof___rarg), 3, 2); lean::closure_set(x_2, 0, x_0); lean::closure_set(x_2, 1, x_1); return x_2; } } obj* l_sum_has__sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sum_has__sizeof___rarg), 2, 0); return x_4; } } obj* l_psum_sizeof___main___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { if (lean::obj_tag(x_2) == 0) { obj* x_4; obj* x_7; obj* x_8; obj* x_9; lean::dec(x_1); x_4 = lean::cnstr_get(x_2, 0); lean::inc(x_4); lean::dec(x_2); x_7 = lean::apply_1(x_0, x_4); x_8 = lean::mk_nat_obj(1u); x_9 = lean::nat_add(x_8, x_7); lean::dec(x_7); return x_9; } else { obj* x_12; obj* x_15; obj* x_16; obj* x_17; lean::dec(x_0); x_12 = lean::cnstr_get(x_2, 0); lean::inc(x_12); lean::dec(x_2); x_15 = lean::apply_1(x_1, x_12); x_16 = lean::mk_nat_obj(1u); x_17 = lean::nat_add(x_16, x_15); lean::dec(x_15); return x_17; } } } obj* l_psum_sizeof___main(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_psum_sizeof___main___rarg), 3, 0); return x_4; } } obj* l_psum_sizeof___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = l_psum_sizeof___main___rarg(x_0, x_1, x_2); return x_3; } } obj* l_psum_sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_psum_sizeof___rarg), 3, 0); return x_4; } } obj* l_psum_has__sizeof___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::alloc_closure(reinterpret_cast(l_psum_sizeof___rarg), 3, 2); lean::closure_set(x_2, 0, x_0); lean::closure_set(x_2, 1, x_1); return x_2; } } obj* l_psum_has__sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_psum_has__sizeof___rarg), 2, 0); return x_4; } } obj* l_sigma_sizeof___main___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_5; obj* x_9; obj* x_10; obj* x_11; obj* x_13; obj* x_14; x_3 = lean::cnstr_get(x_2, 0); lean::inc(x_3); x_5 = lean::cnstr_get(x_2, 1); lean::inc(x_5); lean::dec(x_2); lean::inc(x_3); x_9 = lean::apply_1(x_0, x_3); x_10 = lean::mk_nat_obj(1u); x_11 = lean::nat_add(x_10, x_9); lean::dec(x_9); x_13 = lean::apply_2(x_1, x_3, x_5); x_14 = lean::nat_add(x_11, x_13); lean::dec(x_13); lean::dec(x_11); return x_14; } } obj* l_sigma_sizeof___main(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sigma_sizeof___main___rarg), 3, 0); return x_4; } } obj* l_sigma_sizeof___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = l_sigma_sizeof___main___rarg(x_0, x_1, x_2); return x_3; } } obj* l_sigma_sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sigma_sizeof___rarg), 3, 0); return x_4; } } obj* l_sigma_sizeof___main___at_sigma_has__sizeof___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_5; obj* x_9; obj* x_10; obj* x_11; obj* x_13; obj* x_14; x_3 = lean::cnstr_get(x_2, 0); lean::inc(x_3); x_5 = lean::cnstr_get(x_2, 1); lean::inc(x_5); lean::dec(x_2); lean::inc(x_3); x_9 = lean::apply_1(x_0, x_3); x_10 = lean::mk_nat_obj(1u); x_11 = lean::nat_add(x_10, x_9); lean::dec(x_9); x_13 = lean::apply_2(x_1, x_3, x_5); x_14 = lean::nat_add(x_11, x_13); lean::dec(x_13); lean::dec(x_11); return x_14; } } obj* l_sigma_sizeof___main___at_sigma_has__sizeof___spec__2(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sigma_sizeof___main___at_sigma_has__sizeof___spec__2___rarg), 3, 0); return x_4; } } obj* l_sigma_sizeof___at_sigma_has__sizeof___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = l_sigma_sizeof___main___at_sigma_has__sizeof___spec__2___rarg(x_0, x_1, x_2); return x_3; } } obj* l_sigma_sizeof___at_sigma_has__sizeof___spec__1(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sigma_sizeof___at_sigma_has__sizeof___spec__1___rarg), 3, 0); return x_4; } } obj* l_sigma_has__sizeof___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::alloc_closure(reinterpret_cast(l_sigma_sizeof___at_sigma_has__sizeof___spec__1___rarg), 3, 2); lean::closure_set(x_2, 0, x_0); lean::closure_set(x_2, 1, x_1); return x_2; } } obj* l_sigma_has__sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sigma_has__sizeof___rarg), 2, 0); return x_4; } } obj* l_psigma_sizeof___main___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_5; obj* x_9; obj* x_10; obj* x_11; obj* x_13; obj* x_14; x_3 = lean::cnstr_get(x_2, 0); lean::inc(x_3); x_5 = lean::cnstr_get(x_2, 1); lean::inc(x_5); lean::dec(x_2); lean::inc(x_3); x_9 = lean::apply_1(x_0, x_3); x_10 = lean::mk_nat_obj(1u); x_11 = lean::nat_add(x_10, x_9); lean::dec(x_9); x_13 = lean::apply_2(x_1, x_3, x_5); x_14 = lean::nat_add(x_11, x_13); lean::dec(x_13); lean::dec(x_11); return x_14; } } obj* l_psigma_sizeof___main(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_psigma_sizeof___main___rarg), 3, 0); return x_4; } } obj* l_psigma_sizeof___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = l_psigma_sizeof___main___rarg(x_0, x_1, x_2); return x_3; } } obj* l_psigma_sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_psigma_sizeof___rarg), 3, 0); return x_4; } } obj* l_psigma_sizeof___main___at_psigma_has__sizeof___spec__2___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_5; obj* x_9; obj* x_10; obj* x_11; obj* x_13; obj* x_14; x_3 = lean::cnstr_get(x_2, 0); lean::inc(x_3); x_5 = lean::cnstr_get(x_2, 1); lean::inc(x_5); lean::dec(x_2); lean::inc(x_3); x_9 = lean::apply_1(x_0, x_3); x_10 = lean::mk_nat_obj(1u); x_11 = lean::nat_add(x_10, x_9); lean::dec(x_9); x_13 = lean::apply_2(x_1, x_3, x_5); x_14 = lean::nat_add(x_11, x_13); lean::dec(x_13); lean::dec(x_11); return x_14; } } obj* l_psigma_sizeof___main___at_psigma_has__sizeof___spec__2(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_psigma_sizeof___main___at_psigma_has__sizeof___spec__2___rarg), 3, 0); return x_4; } } obj* l_psigma_sizeof___at_psigma_has__sizeof___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = l_psigma_sizeof___main___at_psigma_has__sizeof___spec__2___rarg(x_0, x_1, x_2); return x_3; } } obj* l_psigma_sizeof___at_psigma_has__sizeof___spec__1(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_psigma_sizeof___at_psigma_has__sizeof___spec__1___rarg), 3, 0); return x_4; } } obj* l_psigma_has__sizeof___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::alloc_closure(reinterpret_cast(l_psigma_sizeof___at_psigma_has__sizeof___spec__1___rarg), 3, 2); lean::closure_set(x_2, 0, x_0); lean::closure_set(x_2, 1, x_1); return x_2; } } obj* l_psigma_has__sizeof(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_psigma_has__sizeof___rarg), 2, 0); return x_4; } } obj* l_punit_sizeof___main(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::mk_nat_obj(1u); return x_2; } } obj* l_punit_sizeof(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::mk_nat_obj(1u); return x_2; } } obj* _init_l_punit_has__sizeof() { _start: { obj* x_0; x_0 = lean::alloc_closure(reinterpret_cast(l_punit_sizeof), 1, 0); return x_0; } } obj* l_bool_sizeof___main(uint8 x_0) { _start: { obj* x_1; x_1 = lean::mk_nat_obj(1u); return x_1; } } obj* l_bool_sizeof___main___boxed(obj* x_0) { _start: { uint8 x_1; obj* x_2; x_1 = lean::unbox(x_0); x_2 = l_bool_sizeof___main(x_1); return x_2; } } obj* l_bool_sizeof(uint8 x_0) { _start: { obj* x_1; x_1 = lean::mk_nat_obj(1u); return x_1; } } obj* l_bool_sizeof___boxed(obj* x_0) { _start: { uint8 x_1; obj* x_2; x_1 = lean::unbox(x_0); x_2 = l_bool_sizeof(x_1); return x_2; } } obj* _init_l_bool_has__sizeof() { _start: { obj* x_0; x_0 = lean::alloc_closure(reinterpret_cast(l_bool_sizeof___boxed), 1, 0); return x_0; } } obj* l_option_sizeof___main___rarg(obj* x_0, obj* x_1) { _start: { if (lean::obj_tag(x_1) == 0) { obj* x_3; lean::dec(x_0); x_3 = lean::mk_nat_obj(1u); return x_3; } else { obj* x_4; obj* x_7; obj* x_8; obj* x_9; x_4 = lean::cnstr_get(x_1, 0); lean::inc(x_4); lean::dec(x_1); x_7 = lean::apply_1(x_0, x_4); x_8 = lean::mk_nat_obj(1u); x_9 = lean::nat_add(x_8, x_7); lean::dec(x_7); return x_9; } } } obj* l_option_sizeof___main(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_option_sizeof___main___rarg), 2, 0); return x_2; } } obj* l_option_sizeof___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = l_option_sizeof___main___rarg(x_0, x_1); return x_2; } } obj* l_option_sizeof(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_option_sizeof___rarg), 2, 0); return x_2; } } obj* l_option_has__sizeof___rarg(obj* x_0) { _start: { obj* x_1; x_1 = lean::alloc_closure(reinterpret_cast(l_option_sizeof___rarg), 2, 1); lean::closure_set(x_1, 0, x_0); return x_1; } } obj* l_option_has__sizeof(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_option_has__sizeof___rarg), 1, 0); return x_2; } } obj* l_list_sizeof___main___rarg(obj* x_0, obj* x_1) { _start: { if (lean::obj_tag(x_1) == 0) { obj* x_3; lean::dec(x_0); x_3 = lean::mk_nat_obj(1u); return x_3; } else { obj* x_4; obj* x_6; obj* x_10; obj* x_11; obj* x_12; obj* x_14; obj* x_15; x_4 = lean::cnstr_get(x_1, 0); lean::inc(x_4); x_6 = lean::cnstr_get(x_1, 1); lean::inc(x_6); lean::dec(x_1); lean::inc(x_0); x_10 = lean::apply_1(x_0, x_4); x_11 = lean::mk_nat_obj(1u); x_12 = lean::nat_add(x_11, x_10); lean::dec(x_10); x_14 = l_list_sizeof___main___rarg(x_0, x_6); x_15 = lean::nat_add(x_12, x_14); lean::dec(x_14); lean::dec(x_12); return x_15; } } } obj* l_list_sizeof___main(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_list_sizeof___main___rarg), 2, 0); return x_2; } } obj* l_list_sizeof___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = l_list_sizeof___main___rarg(x_0, x_1); return x_2; } } obj* l_list_sizeof(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_list_sizeof___rarg), 2, 0); return x_2; } } obj* l_list_has__sizeof___rarg(obj* x_0) { _start: { obj* x_1; x_1 = lean::alloc_closure(reinterpret_cast(l_list_sizeof___rarg), 2, 1); lean::closure_set(x_1, 0, x_0); return x_1; } } obj* l_list_has__sizeof(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_list_has__sizeof___rarg), 1, 0); return x_2; } } obj* l_subtype_sizeof___main___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_1); x_4 = lean::apply_1(x_0, x_2); return x_4; } } obj* l_subtype_sizeof___main(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_subtype_sizeof___main___rarg), 3, 0); return x_2; } } obj* l_subtype_sizeof___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_1); x_4 = lean::apply_1(x_0, x_2); return x_4; } } obj* l_subtype_sizeof(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_subtype_sizeof___rarg), 3, 0); return x_2; } } obj* l_subtype_has__sizeof___rarg(obj* x_0, obj* x_1) { _start: { obj* x_3; lean::dec(x_1); x_3 = lean::alloc_closure(reinterpret_cast(l_subtype_sizeof___rarg), 3, 2); lean::closure_set(x_3, 0, x_0); lean::closure_set(x_3, 1, lean::box(0)); return x_3; } } obj* l_subtype_has__sizeof(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_subtype_has__sizeof___rarg), 2, 0); return x_2; } } obj* l_combinator_I___rarg(obj* x_0) { _start: { return x_0; } } obj* l_combinator_I(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_combinator_I___rarg), 1, 0); return x_2; } } obj* l_combinator_K___rarg(obj* x_0, obj* x_1) { _start: { lean::dec(x_1); return x_0; } } obj* l_combinator_K(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_combinator_K___rarg), 2, 0); return x_4; } } obj* l_combinator_S___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; obj* x_5; lean::inc(x_2); x_4 = lean::apply_1(x_1, x_2); x_5 = lean::apply_2(x_0, x_2, x_4); return x_5; } } obj* l_combinator_S(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_combinator_S___rarg), 3, 0); return x_6; } } obj* l_infer__instance___rarg(obj* x_0) { _start: { return x_0; } } obj* l_infer__instance(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_infer__instance___rarg), 1, 0); return x_2; } } obj* l_infer__instance__as___rarg(obj* x_0) { _start: { return x_0; } } obj* l_infer__instance__as(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_infer__instance__as___rarg), 1, 0); return x_2; } } obj* l_cond___main___rarg(uint8 x_0, obj* x_1, obj* x_2) { _start: { if (x_0 == 0) { lean::dec(x_1); return x_2; } else { lean::dec(x_2); return x_1; } } } obj* l_cond___main(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_cond___main___rarg___boxed), 3, 0); return x_2; } } obj* l_cond___main___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; obj* x_4; x_3 = lean::unbox(x_0); x_4 = l_cond___main___rarg(x_3, x_1, x_2); return x_4; } } obj* l_cond___rarg(uint8 x_0, obj* x_1, obj* x_2) { _start: { if (x_0 == 0) { lean::dec(x_1); return x_2; } else { lean::dec(x_2); return x_1; } } } obj* l_cond(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_cond___rarg___boxed), 3, 0); return x_2; } } obj* l_cond___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; obj* x_4; x_3 = lean::unbox(x_0); x_4 = l_cond___rarg(x_3, x_1, x_2); return x_4; } } uint8 l_bor___main(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { return x_1; } else { return x_0; } } } obj* l_bor___main___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_bor___main(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_bor(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { return x_1; } else { return x_0; } } } obj* l_bor___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_bor(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_band___main(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { return x_0; } else { return x_1; } } } obj* l_band___main___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_band___main(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_band(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { return x_0; } else { return x_1; } } } obj* l_band___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_band(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_bnot___main(uint8 x_0) { _start: { if (x_0 == 0) { uint8 x_1; x_1 = 1; return x_1; } else { uint8 x_2; x_2 = 0; return x_2; } } } obj* l_bnot___main___boxed(obj* x_0) { _start: { uint8 x_1; uint8 x_2; obj* x_3; x_1 = lean::unbox(x_0); x_2 = l_bnot___main(x_1); x_3 = lean::box(x_2); return x_3; } } uint8 l_bnot(uint8 x_0) { _start: { if (x_0 == 0) { uint8 x_1; x_1 = 1; return x_1; } else { uint8 x_2; x_2 = 0; return x_2; } } } obj* l_bnot___boxed(obj* x_0) { _start: { uint8 x_1; uint8 x_2; obj* x_3; x_1 = lean::unbox(x_0); x_2 = l_bnot(x_1); x_3 = lean::box(x_2); return x_3; } } uint8 l_bxor___main(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { return x_1; } else { if (x_1 == 0) { return x_0; } else { uint8 x_2; x_2 = 0; return x_2; } } } } obj* l_bxor___main___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_bxor___main(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_bxor(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { return x_1; } else { if (x_1 == 0) { return x_0; } else { uint8 x_2; x_2 = 0; return x_2; } } } } obj* l_bxor___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_bxor(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } obj* _init_l_implies() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_trivial() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_false_elim(obj* x_0, uint8 x_1) { _start: { obj* x_3; lean::dec(x_0); lean_unreachable(); x_3 = lean::box(0); return x_3; } } obj* l_false_elim___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; obj* x_3; x_2 = lean::unbox(x_1); x_3 = l_false_elim(x_0, x_2); return x_3; } } obj* l_absurd(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_8; lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); lean_unreachable(); x_8 = lean::box(0); return x_8; } } obj* l_eq_mp___rarg(obj* x_0) { _start: { return x_0; } } obj* l_eq_mp(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_eq_mp___rarg), 1, 0); return x_6; } } obj* l_eq_mpr___rarg(obj* x_0) { _start: { return x_0; } } obj* l_eq_mpr(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_eq_mpr___rarg), 1, 0); return x_6; } } obj* l_cast___rarg(obj* x_0) { _start: { return x_0; } } obj* l_cast(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_cast___rarg), 1, 0); return x_6; } } obj* _init_l_ne() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_type__eq__of__heq() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_and_symm() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_not__not__em() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_or_symm() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_xor() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_not__true__iff() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_and__implies() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_exists_intro() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } uint8 l_decidable_to__bool___rarg(uint8 x_0) { _start: { if (x_0 == 0) { uint8 x_1; x_1 = 0; return x_1; } else { uint8 x_2; x_2 = 1; return x_2; } } } obj* l_decidable_to__bool(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_decidable_to__bool___rarg___boxed), 1, 0); return x_2; } } obj* l_decidable_to__bool___rarg___boxed(obj* x_0) { _start: { uint8 x_1; uint8 x_2; obj* x_3; x_1 = lean::unbox(x_0); x_2 = l_decidable_to__bool___rarg(x_1); x_3 = lean::box(x_2); return x_3; } } uint8 _init_l_true_decidable() { _start: { uint8 x_0; x_0 = 1; return x_0; } } obj* _init_l_true_decidable___boxed() { _start: { uint8 x_0; obj* x_1; x_0 = l_true_decidable; x_1 = lean::box(x_0); return x_1; } } uint8 _init_l_false_decidable() { _start: { uint8 x_0; x_0 = 0; return x_0; } } obj* _init_l_false_decidable___boxed() { _start: { uint8 x_0; obj* x_1; x_0 = l_false_decidable; x_1 = lean::box(x_0); return x_1; } } obj* l_dite___rarg(uint8 x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { lean::dec(x_1); if (x_0 == 0) { obj* x_6; lean::dec(x_2); x_6 = lean::apply_1(x_3, lean::box(0)); return x_6; } else { obj* x_8; lean::dec(x_3); x_8 = lean::apply_1(x_2, lean::box(0)); return x_8; } } } obj* l_dite(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_dite___rarg___boxed), 4, 0); return x_2; } } obj* l_dite___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { uint8 x_4; obj* x_5; x_4 = lean::unbox(x_0); x_5 = l_dite___rarg(x_4, x_1, x_2, x_3); return x_5; } } obj* l_ite___rarg(uint8 x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { lean::dec(x_1); if (x_0 == 0) { lean::dec(x_2); return x_3; } else { lean::dec(x_3); return x_2; } } } obj* l_ite(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_ite___rarg___boxed), 4, 0); return x_2; } } obj* l_ite___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { uint8 x_4; obj* x_5; x_4 = lean::unbox(x_0); x_5 = l_ite___rarg(x_4, x_1, x_2, x_3); return x_5; } } obj* l_decidable_rec__on__true___rarg(uint8 x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); return x_4; } } obj* l_decidable_rec__on__true(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_decidable_rec__on__true___rarg___boxed), 5, 0); return x_2; } } obj* l_decidable_rec__on__true___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { uint8 x_5; obj* x_6; x_5 = lean::unbox(x_0); x_6 = l_decidable_rec__on__true___rarg(x_5, x_1, x_2, x_3, x_4); return x_6; } } obj* l_decidable_rec__on__false___rarg(uint8 x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); return x_4; } } obj* l_decidable_rec__on__false(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_decidable_rec__on__false___rarg___boxed), 5, 0); return x_2; } } obj* l_decidable_rec__on__false___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { uint8 x_5; obj* x_6; x_5 = lean::unbox(x_0); x_6 = l_decidable_rec__on__false___rarg(x_5, x_1, x_2, x_3, x_4); return x_6; } } obj* l_decidable_by__cases___rarg(uint8 x_0, obj* x_1, obj* x_2) { _start: { if (x_0 == 0) { obj* x_4; lean::dec(x_1); x_4 = lean::apply_1(x_2, lean::box(0)); return x_4; } else { obj* x_6; lean::dec(x_2); x_6 = lean::apply_1(x_1, lean::box(0)); return x_6; } } } obj* l_decidable_by__cases(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_decidable_by__cases___rarg___boxed), 3, 0); return x_4; } } obj* l_decidable_by__cases___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; obj* x_4; x_3 = lean::unbox(x_0); x_4 = l_decidable_by__cases___rarg(x_3, x_1, x_2); return x_4; } } uint8 l_decidable__of__decidable__of__iff___rarg(uint8 x_0, obj* x_1) { _start: { lean::dec(x_1); if (x_0 == 0) { uint8 x_3; x_3 = 0; return x_3; } else { uint8 x_4; x_4 = 1; return x_4; } } } obj* l_decidable__of__decidable__of__iff(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_decidable__of__decidable__of__iff___rarg___boxed), 2, 0); return x_4; } } obj* l_decidable__of__decidable__of__iff___rarg___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; obj* x_4; x_2 = lean::unbox(x_0); x_3 = l_decidable__of__decidable__of__iff___rarg(x_2, x_1); x_4 = lean::box(x_3); return x_4; } } uint8 l_decidable__of__decidable__of__eq___rarg(uint8 x_0, obj* x_1) { _start: { lean::dec(x_1); if (x_0 == 0) { uint8 x_3; x_3 = 0; return x_3; } else { uint8 x_4; x_4 = 1; return x_4; } } } obj* l_decidable__of__decidable__of__eq(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_decidable__of__decidable__of__eq___rarg___boxed), 2, 0); return x_4; } } obj* l_decidable__of__decidable__of__eq___rarg___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; obj* x_4; x_2 = lean::unbox(x_0); x_3 = l_decidable__of__decidable__of__eq___rarg(x_2, x_1); x_4 = lean::box(x_3); return x_4; } } obj* l_or_by__cases___rarg(uint8 x_0, uint8 x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { lean::dec(x_3); lean::dec(x_2); if (x_0 == 0) { obj* x_9; lean::dec(x_4); x_9 = lean::apply_1(x_5, lean::box(0)); return x_9; } else { obj* x_11; lean::dec(x_5); x_11 = lean::apply_1(x_4, lean::box(0)); return x_11; } } } obj* l_or_by__cases(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_or_by__cases___rarg___boxed), 6, 0); return x_4; } } obj* l_or_by__cases___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { uint8 x_6; uint8 x_7; obj* x_8; x_6 = lean::unbox(x_0); x_7 = lean::unbox(x_1); x_8 = l_or_by__cases___rarg(x_6, x_7, x_2, x_3, x_4, x_5); return x_8; } } uint8 l_and_decidable___rarg(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { uint8 x_2; x_2 = 0; return x_2; } else { if (x_1 == 0) { uint8 x_3; x_3 = 0; return x_3; } else { uint8 x_4; x_4 = 1; return x_4; } } } } obj* l_and_decidable(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_and_decidable___rarg___boxed), 2, 0); return x_4; } } obj* l_and_decidable___rarg___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_and_decidable___rarg(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_or_decidable___rarg(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { if (x_1 == 0) { uint8 x_2; x_2 = 0; return x_2; } else { uint8 x_3; x_3 = 1; return x_3; } } else { uint8 x_4; x_4 = 1; return x_4; } } } obj* l_or_decidable(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_or_decidable___rarg___boxed), 2, 0); return x_4; } } obj* l_or_decidable___rarg___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_or_decidable___rarg(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_not_decidable___rarg(uint8 x_0) { _start: { if (x_0 == 0) { uint8 x_1; x_1 = 1; return x_1; } else { uint8 x_2; x_2 = 0; return x_2; } } } obj* l_not_decidable(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_not_decidable___rarg___boxed), 1, 0); return x_2; } } obj* l_not_decidable___rarg___boxed(obj* x_0) { _start: { uint8 x_1; uint8 x_2; obj* x_3; x_1 = lean::unbox(x_0); x_2 = l_not_decidable___rarg(x_1); x_3 = lean::box(x_2); return x_3; } } uint8 l_implies_decidable___rarg(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { uint8 x_2; x_2 = 1; return x_2; } else { if (x_1 == 0) { uint8 x_3; x_3 = 0; return x_3; } else { uint8 x_4; x_4 = 1; return x_4; } } } } obj* l_implies_decidable(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_implies_decidable___rarg___boxed), 2, 0); return x_4; } } obj* l_implies_decidable___rarg___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_implies_decidable___rarg(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_iff_decidable___rarg(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { if (x_1 == 0) { uint8 x_2; x_2 = 1; return x_2; } else { uint8 x_3; x_3 = 0; return x_3; } } else { if (x_1 == 0) { uint8 x_4; x_4 = 0; return x_4; } else { uint8 x_5; x_5 = 1; return x_5; } } } } obj* l_iff_decidable(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_iff_decidable___rarg___boxed), 2, 0); return x_4; } } obj* l_iff_decidable___rarg___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_iff_decidable___rarg(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_xor_decidable___rarg(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { if (x_1 == 0) { uint8 x_2; x_2 = 0; return x_2; } else { uint8 x_3; x_3 = 1; return x_3; } } else { if (x_1 == 0) { uint8 x_4; x_4 = 1; return x_4; } else { uint8 x_5; x_5 = 0; return x_5; } } } } obj* l_xor_decidable(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_xor_decidable___rarg___boxed), 2, 0); return x_4; } } obj* l_xor_decidable___rarg___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_xor_decidable___rarg(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_exists__prop__decidable___rarg(uint8 x_0, obj* x_1) { _start: { if (x_0 == 0) { uint8 x_3; lean::dec(x_1); x_3 = 0; return x_3; } else { obj* x_4; uint8 x_5; x_4 = lean::apply_1(x_1, lean::box(0)); x_5 = lean::unbox(x_4); if (x_5 == 0) { uint8 x_6; x_6 = 0; return x_6; } else { uint8 x_7; x_7 = 1; return x_7; } } } } obj* l_exists__prop__decidable(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_exists__prop__decidable___rarg___boxed), 2, 0); return x_4; } } obj* l_exists__prop__decidable___rarg___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; obj* x_4; x_2 = lean::unbox(x_0); x_3 = l_exists__prop__decidable___rarg(x_2, x_1); x_4 = lean::box(x_3); return x_4; } } uint8 l_forall__prop__decidable___rarg(uint8 x_0, obj* x_1) { _start: { if (x_0 == 0) { uint8 x_3; lean::dec(x_1); x_3 = 1; return x_3; } else { obj* x_4; uint8 x_5; x_4 = lean::apply_1(x_1, lean::box(0)); x_5 = lean::unbox(x_4); if (x_5 == 0) { uint8 x_6; x_6 = 0; return x_6; } else { uint8 x_7; x_7 = 1; return x_7; } } } } obj* l_forall__prop__decidable(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_forall__prop__decidable___rarg___boxed), 2, 0); return x_4; } } obj* l_forall__prop__decidable___rarg___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; obj* x_4; x_2 = lean::unbox(x_0); x_3 = l_forall__prop__decidable___rarg(x_2, x_1); x_4 = lean::box(x_3); return x_4; } } uint8 l_ne_decidable___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; uint8 x_4; x_3 = lean::apply_2(x_0, x_1, x_2); x_4 = lean::unbox(x_3); if (x_4 == 0) { uint8 x_5; x_5 = 1; return x_5; } else { uint8 x_6; x_6 = 0; return x_6; } } } obj* l_ne_decidable(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_ne_decidable___rarg___boxed), 3, 0); return x_2; } } obj* l_ne_decidable___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; obj* x_4; x_3 = l_ne_decidable___rarg(x_0, x_1, x_2); x_4 = lean::box(x_3); return x_4; } } obj* _init_l_is__dec__eq() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_is__dec__refl() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } uint8 l_bool_decidable__eq(uint8 x_0, uint8 x_1) { _start: { if (x_0 == 0) { if (x_1 == 0) { uint8 x_2; x_2 = 1; return x_2; } else { uint8 x_3; x_3 = 0; return x_3; } } else { if (x_1 == 0) { uint8 x_4; x_4 = 0; return x_4; } else { uint8 x_5; x_5 = 1; return x_5; } } } } obj* l_bool_decidable__eq___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; uint8 x_3; uint8 x_4; obj* x_5; x_2 = lean::unbox(x_0); x_3 = lean::unbox(x_1); x_4 = l_bool_decidable__eq(x_2, x_3); x_5 = lean::box(x_4); return x_5; } } uint8 l_decidable__eq__of__bool__pred___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_7; uint8 x_8; lean::dec(x_2); lean::dec(x_1); x_7 = lean::apply_2(x_0, x_3, x_4); x_8 = lean::unbox(x_7); if (x_8 == 0) { uint8 x_9; x_9 = 0; return x_9; } else { uint8 x_10; x_10 = 1; return x_10; } } } obj* l_decidable__eq__of__bool__pred(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_decidable__eq__of__bool__pred___rarg___boxed), 5, 0); return x_2; } } obj* l_decidable__eq__of__bool__pred___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { uint8 x_5; obj* x_6; x_5 = l_decidable__eq__of__bool__pred___rarg(x_0, x_1, x_2, x_3, x_4); x_6 = lean::box(x_5); return x_6; } } uint8 l_ite_decidable___rarg(uint8 x_0, uint8 x_1, uint8 x_2) { _start: { if (x_0 == 0) { return x_2; } else { return x_1; } } } obj* l_ite_decidable(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_ite_decidable___rarg___boxed), 3, 0); return x_6; } } obj* l_ite_decidable___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; uint8 x_4; uint8 x_5; uint8 x_6; obj* x_7; x_3 = lean::unbox(x_0); x_4 = lean::unbox(x_1); x_5 = lean::unbox(x_2); x_6 = l_ite_decidable___rarg(x_3, x_4, x_5); x_7 = lean::box(x_6); return x_7; } } obj* l_dite_decidable___rarg(uint8 x_0, obj* x_1, obj* x_2) { _start: { if (x_0 == 0) { obj* x_4; lean::dec(x_1); x_4 = lean::apply_1(x_2, lean::box(0)); return x_4; } else { obj* x_6; lean::dec(x_2); x_6 = lean::apply_1(x_1, lean::box(0)); return x_6; } } } obj* l_dite_decidable(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_dite_decidable___rarg___boxed), 3, 0); return x_6; } } obj* l_dite_decidable___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; obj* x_4; x_3 = lean::unbox(x_0); x_4 = l_dite_decidable___rarg(x_3, x_1, x_2); return x_4; } } obj* _init_l_as__true() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_as__false() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_of__as__true() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_default___rarg(obj* x_0) { _start: { return x_0; } } obj* l_default(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_default___rarg), 1, 0); return x_2; } } obj* l_arbitrary___rarg(obj* x_0) { _start: { return x_0; } } obj* l_arbitrary(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_arbitrary___rarg), 1, 0); return x_2; } } obj* _init_l_prop_inhabited() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_fun_inhabited___rarg(obj* x_0, obj* x_1) { _start: { lean::dec(x_1); return x_0; } } obj* l_fun_inhabited(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_fun_inhabited___rarg), 2, 0); return x_4; } } obj* l_pi_inhabited___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::apply_1(x_0, x_1); return x_2; } } obj* l_pi_inhabited(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_pi_inhabited___rarg), 2, 0); return x_4; } } uint8 _init_l_bool_inhabited() { _start: { uint8 x_0; x_0 = 0; return x_0; } } obj* _init_l_bool_inhabited___boxed() { _start: { uint8 x_0; obj* x_1; x_0 = l_bool_inhabited; x_1 = lean::box(x_0); return x_1; } } obj* _init_l_true_inhabited() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_nat_inhabited() { _start: { obj* x_0; x_0 = lean::mk_nat_obj(0u); return x_0; } } obj* _init_l_nonempty_elim() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_nonempty__of__inhabited() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_subsingleton_elim() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_subsingleton_helim() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_subsingleton__prop() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_decidable_subsingleton() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_reflexive() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_symmetric() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_transitive() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_equivalence() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_total() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_mk__equivalence() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_irreflexive() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_anti__symmetric() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_empty__relation() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_subrelation() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_inv__image() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_commutative() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_associative() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_left__identity() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_right__identity() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_right__inverse() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_left__cancelative() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_right__cancelative() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_left__distributive() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_right__distributive() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_right__commutative() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_left__commutative() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_subtype_exists__of__subtype___main() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_subtype_exists__of__subtype() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_subtype_inhabited___rarg(obj* x_0, obj* x_1) { _start: { lean::dec(x_1); return x_0; } } obj* l_subtype_inhabited(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_subtype_inhabited___rarg), 2, 0); return x_4; } } uint8 l_subtype_decidable__eq___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; uint8 x_4; x_3 = lean::apply_2(x_0, x_1, x_2); x_4 = lean::unbox(x_3); if (x_4 == 0) { uint8 x_5; x_5 = 0; return x_5; } else { uint8 x_6; x_6 = 1; return x_6; } } } obj* l_subtype_decidable__eq(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_subtype_decidable__eq___rarg___boxed), 3, 0); return x_4; } } obj* l_subtype_decidable__eq___rarg___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; obj* x_4; x_3 = l_subtype_decidable__eq___rarg(x_0, x_1, x_2); x_4 = lean::box(x_3); return x_4; } } obj* l_sum_inhabited__left___rarg(obj* x_0) { _start: { obj* x_1; x_1 = lean::alloc_cnstr(0, 1, 0); lean::cnstr_set(x_1, 0, x_0); return x_1; } } obj* l_sum_inhabited__left(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sum_inhabited__left___rarg), 1, 0); return x_4; } } obj* l_sum_inhabited__right___rarg(obj* x_0) { _start: { obj* x_1; x_1 = lean::alloc_cnstr(1, 1, 0); lean::cnstr_set(x_1, 0, x_0); return x_1; } } obj* l_sum_inhabited__right(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sum_inhabited__right___rarg), 1, 0); return x_4; } } uint8 l_sum_decidable__eq___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { if (lean::obj_tag(x_2) == 0) { obj* x_5; lean::dec(x_1); x_5 = lean::cnstr_get(x_2, 0); lean::inc(x_5); lean::dec(x_2); if (lean::obj_tag(x_3) == 0) { obj* x_8; obj* x_11; uint8 x_12; x_8 = lean::cnstr_get(x_3, 0); lean::inc(x_8); lean::dec(x_3); x_11 = lean::apply_2(x_0, x_5, x_8); x_12 = lean::unbox(x_11); if (x_12 == 0) { uint8 x_13; x_13 = 0; return x_13; } else { uint8 x_14; x_14 = 1; return x_14; } } else { uint8 x_18; lean::dec(x_5); lean::dec(x_3); lean::dec(x_0); x_18 = 0; return x_18; } } else { obj* x_20; lean::dec(x_0); x_20 = lean::cnstr_get(x_2, 0); lean::inc(x_20); lean::dec(x_2); if (lean::obj_tag(x_3) == 0) { uint8 x_26; lean::dec(x_1); lean::dec(x_3); lean::dec(x_20); x_26 = 0; return x_26; } else { obj* x_27; obj* x_30; uint8 x_31; x_27 = lean::cnstr_get(x_3, 0); lean::inc(x_27); lean::dec(x_3); x_30 = lean::apply_2(x_1, x_20, x_27); x_31 = lean::unbox(x_30); if (x_31 == 0) { uint8 x_32; x_32 = 0; return x_32; } else { uint8 x_33; x_33 = 1; return x_33; } } } } } obj* l_sum_decidable__eq(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_sum_decidable__eq___rarg___boxed), 4, 0); return x_4; } } obj* l_sum_decidable__eq___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { uint8 x_4; obj* x_5; x_4 = l_sum_decidable__eq___rarg(x_0, x_1, x_2, x_3); x_5 = lean::box(x_4); return x_5; } } obj* l_prod_inhabited___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_2, 0, x_0); lean::cnstr_set(x_2, 1, x_1); return x_2; } } obj* l_prod_inhabited(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_prod_inhabited___rarg), 2, 0); return x_4; } } uint8 l_prod_decidable__eq___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_4; obj* x_6; obj* x_9; obj* x_11; obj* x_14; uint8 x_15; x_4 = lean::cnstr_get(x_2, 0); lean::inc(x_4); x_6 = lean::cnstr_get(x_2, 1); lean::inc(x_6); lean::dec(x_2); x_9 = lean::cnstr_get(x_3, 0); lean::inc(x_9); x_11 = lean::cnstr_get(x_3, 1); lean::inc(x_11); lean::dec(x_3); x_14 = lean::apply_2(x_0, x_4, x_9); x_15 = lean::unbox(x_14); if (x_15 == 0) { uint8 x_19; lean::dec(x_6); lean::dec(x_11); lean::dec(x_1); x_19 = 0; return x_19; } else { obj* x_20; uint8 x_21; x_20 = lean::apply_2(x_1, x_6, x_11); x_21 = lean::unbox(x_20); if (x_21 == 0) { uint8 x_22; x_22 = 0; return x_22; } else { uint8 x_23; x_23 = 1; return x_23; } } } } obj* l_prod_decidable__eq(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_prod_decidable__eq___rarg___boxed), 4, 0); return x_4; } } obj* l_prod_decidable__eq___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { uint8 x_4; obj* x_5; x_4 = l_prod_decidable__eq___rarg(x_0, x_1, x_2, x_3); x_5 = lean::box(x_4); return x_5; } } obj* l_prod_has__lt(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_8; lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_8 = lean::box(0); return x_8; } } uint8 l_prod__has__decidable__lt___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { obj* x_7; obj* x_9; obj* x_13; uint8 x_14; lean::dec(x_1); x_7 = lean::cnstr_get(x_4, 0); lean::inc(x_7); x_9 = lean::cnstr_get(x_5, 0); lean::inc(x_9); lean::inc(x_9); lean::inc(x_7); x_13 = lean::apply_2(x_2, x_7, x_9); x_14 = lean::unbox(x_13); if (x_14 == 0) { obj* x_15; uint8 x_16; x_15 = lean::apply_2(x_0, x_7, x_9); x_16 = lean::unbox(x_15); if (x_16 == 0) { uint8 x_20; lean::dec(x_5); lean::dec(x_4); lean::dec(x_3); x_20 = 0; return x_20; } else { obj* x_21; obj* x_24; obj* x_27; uint8 x_28; x_21 = lean::cnstr_get(x_4, 1); lean::inc(x_21); lean::dec(x_4); x_24 = lean::cnstr_get(x_5, 1); lean::inc(x_24); lean::dec(x_5); x_27 = lean::apply_2(x_3, x_21, x_24); x_28 = lean::unbox(x_27); if (x_28 == 0) { uint8 x_29; x_29 = 0; return x_29; } else { uint8 x_30; x_30 = 1; return x_30; } } } else { uint8 x_37; lean::dec(x_5); lean::dec(x_9); lean::dec(x_4); lean::dec(x_7); lean::dec(x_3); lean::dec(x_0); x_37 = 1; return x_37; } } } obj* l_prod__has__decidable__lt(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_8; lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_8 = lean::alloc_closure(reinterpret_cast(l_prod__has__decidable__lt___rarg___boxed), 6, 0); return x_8; } } obj* l_prod__has__decidable__lt___rarg___boxed(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { uint8 x_6; obj* x_7; x_6 = l_prod__has__decidable__lt___rarg(x_0, x_1, x_2, x_3, x_4, x_5); x_7 = lean::box(x_6); return x_7; } } obj* l_prod_map___main___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; obj* x_5; obj* x_7; obj* x_8; obj* x_9; obj* x_10; x_3 = lean::cnstr_get(x_2, 0); x_5 = lean::cnstr_get(x_2, 1); if (lean::is_exclusive(x_2)) { lean::cnstr_set(x_2, 0, lean::box(0)); lean::cnstr_set(x_2, 1, lean::box(0)); x_7 = x_2; } else { lean::inc(x_3); lean::inc(x_5); lean::dec(x_2); x_7 = lean::box(0); } x_8 = lean::apply_1(x_0, x_3); x_9 = lean::apply_1(x_1, x_5); if (lean::is_scalar(x_7)) { x_10 = lean::alloc_cnstr(0, 2, 0); } else { x_10 = x_7; } lean::cnstr_set(x_10, 0, x_8); lean::cnstr_set(x_10, 1, x_9); return x_10; } } obj* l_prod_map___main(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_8; lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_8 = lean::alloc_closure(reinterpret_cast(l_prod_map___main___rarg), 3, 0); return x_8; } } obj* l_prod_map___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = l_prod_map___main___rarg(x_0, x_1, x_2); return x_3; } } obj* l_prod_map(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_8; lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_8 = lean::alloc_closure(reinterpret_cast(l_prod_map___rarg), 3, 0); return x_8; } } obj* _init_l_punit_subsingleton() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_punit_inhabited() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } uint8 l_punit_decidable__eq(obj* x_0, obj* x_1) { _start: { uint8 x_4; lean::dec(x_1); lean::dec(x_0); x_4 = 1; return x_4; } } obj* l_punit_decidable__eq___boxed(obj* x_0, obj* x_1) { _start: { uint8 x_2; obj* x_3; x_2 = l_punit_decidable__eq(x_0, x_1); x_3 = lean::box(x_2); return x_3; } } obj* l_setoid__has__equiv(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::box(0); return x_4; } } obj* l_quot_lift__on___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_2); x_4 = lean::apply_1(x_1, x_0); return x_4; } } obj* l_quot_lift__on(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quot_lift__on___rarg), 3, 0); return x_6; } } obj* l_quot_indep___rarg(obj* x_0, obj* x_1) { _start: { obj* x_3; obj* x_4; lean::inc(x_1); x_3 = lean::apply_1(x_0, x_1); x_4 = lean::alloc_cnstr(0, 2, 0); lean::cnstr_set(x_4, 0, x_1); lean::cnstr_set(x_4, 1, x_3); return x_4; } } obj* l_quot_indep(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quot_indep___rarg), 2, 0); return x_6; } } obj* l_quot_rec___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_1); x_4 = lean::apply_1(x_0, x_2); return x_4; } } obj* l_quot_rec(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quot_rec___rarg), 3, 0); return x_6; } } obj* l_quot_rec__on___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_2); x_4 = lean::apply_1(x_1, x_0); return x_4; } } obj* l_quot_rec__on(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quot_rec__on___rarg), 3, 0); return x_6; } } obj* l_quot_rec__on__subsingleton___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::apply_1(x_1, x_0); return x_2; } } obj* l_quot_rec__on__subsingleton(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_8; lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_8 = lean::alloc_closure(reinterpret_cast(l_quot_rec__on__subsingleton___rarg), 2, 0); return x_8; } } obj* l_quot_hrec__on___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_2); x_4 = lean::apply_1(x_1, x_0); return x_4; } } obj* l_quot_hrec__on(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quot_hrec__on___rarg), 3, 0); return x_6; } } obj* _init_l_quotient() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_quotient_mk___rarg(obj* x_0) { _start: { return x_0; } } obj* l_quotient_mk(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_quotient_mk___rarg), 1, 0); return x_4; } } obj* _init_l_quotient_sound() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_quotient_lift___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_1); x_4 = lean::apply_1(x_0, x_2); return x_4; } } obj* l_quotient_lift(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quotient_lift___rarg), 3, 0); return x_6; } } obj* l_quotient_lift__on___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_2); x_4 = lean::apply_1(x_1, x_0); return x_4; } } obj* l_quotient_lift__on(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quotient_lift__on___rarg), 3, 0); return x_6; } } obj* l_quotient_rec___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_1); x_4 = lean::apply_1(x_0, x_2); return x_4; } } obj* l_quotient_rec(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quotient_rec___rarg), 3, 0); return x_6; } } obj* l_quotient_rec__on___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_2); x_4 = lean::apply_1(x_1, x_0); return x_4; } } obj* l_quotient_rec__on(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quotient_rec__on___rarg), 3, 0); return x_6; } } obj* l_quotient_rec__on__subsingleton___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::apply_1(x_1, x_0); return x_2; } } obj* l_quotient_rec__on__subsingleton(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_8; lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_8 = lean::alloc_closure(reinterpret_cast(l_quotient_rec__on__subsingleton___rarg), 2, 0); return x_8; } } obj* l_quotient_hrec__on___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_4; lean::dec(x_2); x_4 = lean::apply_1(x_1, x_0); return x_4; } } obj* l_quotient_hrec__on(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_6; lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_6 = lean::alloc_closure(reinterpret_cast(l_quotient_hrec__on___rarg), 3, 0); return x_6; } } obj* l_quotient_lift_u_2082___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_5; lean::dec(x_1); x_5 = lean::apply_2(x_0, x_2, x_3); return x_5; } } obj* l_quotient_lift_u_2082(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_10; lean::dec(x_4); lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_10 = lean::alloc_closure(reinterpret_cast(l_quotient_lift_u_2082___rarg), 4, 0); return x_10; } } obj* l_quotient_lift__on_u_2082___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { obj* x_5; lean::dec(x_3); x_5 = lean::apply_2(x_2, x_0, x_1); return x_5; } } obj* l_quotient_lift__on_u_2082(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4) { _start: { obj* x_10; lean::dec(x_4); lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_10 = lean::alloc_closure(reinterpret_cast(l_quotient_lift__on_u_2082___rarg), 4, 0); return x_10; } } obj* _init_l___private_init_core_19__rel() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l_quotient_rec__on__subsingleton_u_2082___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = lean::apply_2(x_2, x_0, x_1); return x_3; } } obj* l_quotient_rec__on__subsingleton_u_2082(obj* x_0, obj* x_1, obj* x_2, obj* x_3, obj* x_4, obj* x_5) { _start: { obj* x_12; lean::dec(x_5); lean::dec(x_4); lean::dec(x_3); lean::dec(x_2); lean::dec(x_1); lean::dec(x_0); x_12 = lean::alloc_closure(reinterpret_cast(l_quotient_rec__on__subsingleton_u_2082___rarg), 3, 0); return x_12; } } obj* l_eqv__gen_setoid(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::box(0); return x_4; } } obj* l_quotient_rec__on__subsingleton_u_2082___at_quotient_decidable__eq___spec__1___rarg(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; x_3 = lean::apply_2(x_2, x_0, x_1); return x_3; } } obj* l_quotient_rec__on__subsingleton_u_2082___at_quotient_decidable__eq___spec__1(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l_quotient_rec__on__subsingleton_u_2082___at_quotient_decidable__eq___spec__1___rarg), 3, 0); return x_4; } } uint8 l_quotient_decidable__eq___rarg___lambda__1(obj* x_0, obj* x_1, obj* x_2) { _start: { obj* x_3; uint8 x_4; x_3 = lean::apply_2(x_0, x_1, x_2); x_4 = lean::unbox(x_3); if (x_4 == 0) { uint8 x_5; x_5 = 0; return x_5; } else { uint8 x_6; x_6 = 1; return x_6; } } } obj* l_quotient_decidable__eq___rarg(obj* x_0, obj* x_1, obj* x_2, obj* x_3) { _start: { uint8 x_5; obj* x_6; lean::dec(x_0); x_5 = l_quotient_decidable__eq___rarg___lambda__1(x_1, x_2, x_3); x_6 = lean::box(x_5); return x_6; } } obj* l_quotient_decidable__eq(obj* x_0) { _start: { obj* x_2; lean::dec(x_0); x_2 = lean::alloc_closure(reinterpret_cast(l_quotient_decidable__eq___rarg), 4, 0); return x_2; } } obj* l_quotient_decidable__eq___rarg___lambda__1___boxed(obj* x_0, obj* x_1, obj* x_2) { _start: { uint8 x_3; obj* x_4; x_3 = l_quotient_decidable__eq___rarg___lambda__1(x_0, x_1, x_2); x_4 = lean::box(x_3); return x_4; } } obj* _init_l_function_equiv() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l___private_init_core_24__fun__setoid(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::box(0); return x_4; } } obj* _init_l___private_init_core_25__extfun() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* l___private_init_core_26__fun__to__extfun___rarg(obj* x_0) { _start: { return x_0; } } obj* l___private_init_core_26__fun__to__extfun(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l___private_init_core_26__fun__to__extfun___rarg), 1, 0); return x_4; } } obj* l___private_init_core_27__extfun__app___rarg(obj* x_0, obj* x_1) { _start: { obj* x_2; x_2 = lean::apply_1(x_0, x_1); return x_2; } } obj* l___private_init_core_27__extfun__app(obj* x_0, obj* x_1) { _start: { obj* x_4; lean::dec(x_1); lean::dec(x_0); x_4 = lean::alloc_closure(reinterpret_cast(l___private_init_core_27__extfun__app___rarg), 2, 0); return x_4; } } obj* _init_l_pi_subsingleton() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } obj* _init_l_classical_by__cases() { _start: { obj* x_0; x_0 = lean::box(0); return x_0; } } static bool _G_initialized = false; void initialize_init_core() { if (_G_initialized) return; _G_initialized = true; l_opt__param = _init_l_opt__param(); lean::mark_persistent(l_opt__param); l_out__param = _init_l_out__param(); lean::mark_persistent(l_out__param); l_unit = _init_l_unit(); lean::mark_persistent(l_unit); l_unit_star = _init_l_unit_star(); lean::mark_persistent(l_unit_star); l_not = _init_l_not(); lean::mark_persistent(l_not); l_and_elim__left = _init_l_and_elim__left(); lean::mark_persistent(l_and_elim__left); l_and_elim__right = _init_l_and_elim__right(); lean::mark_persistent(l_and_elim__right); l_rfl = _init_l_rfl(); lean::mark_persistent(l_rfl); l_heq_rfl = _init_l_heq_rfl(); lean::mark_persistent(l_heq_rfl); l_or_intro__left = _init_l_or_intro__left(); lean::mark_persistent(l_or_intro__left); l_or_intro__right = _init_l_or_intro__right(); lean::mark_persistent(l_or_intro__right); l_decidable__pred = _init_l_decidable__pred(); lean::mark_persistent(l_decidable__pred); l_decidable__rel = _init_l_decidable__rel(); lean::mark_persistent(l_decidable__rel); l_ge = _init_l_ge(); lean::mark_persistent(l_ge); l_gt = _init_l_gt(); lean::mark_persistent(l_gt); l_superset = _init_l_superset(); lean::mark_persistent(l_superset); l_ssuperset = _init_l_ssuperset(); lean::mark_persistent(l_ssuperset); l_nat_has__zero = _init_l_nat_has__zero(); lean::mark_persistent(l_nat_has__zero); l_nat_has__one = _init_l_nat_has__one(); lean::mark_persistent(l_nat_has__one); l_nat_has__add = _init_l_nat_has__add(); lean::mark_persistent(l_nat_has__add); l_std_priority_default = _init_l_std_priority_default(); lean::mark_persistent(l_std_priority_default); l_std_priority_max = _init_l_std_priority_max(); lean::mark_persistent(l_std_priority_max); l_nat_prio = _init_l_nat_prio(); lean::mark_persistent(l_nat_prio); l_std_prec_max = _init_l_std_prec_max(); lean::mark_persistent(l_std_prec_max); l_std_prec_arrow = _init_l_std_prec_arrow(); lean::mark_persistent(l_std_prec_arrow); l_std_prec_max__plus = _init_l_std_prec_max__plus(); lean::mark_persistent(l_std_prec_max__plus); l_default__has__sizeof___closed__1 = _init_l_default__has__sizeof___closed__1(); lean::mark_persistent(l_default__has__sizeof___closed__1); l_nat_has__sizeof = _init_l_nat_has__sizeof(); lean::mark_persistent(l_nat_has__sizeof); l_punit_has__sizeof = _init_l_punit_has__sizeof(); lean::mark_persistent(l_punit_has__sizeof); l_bool_has__sizeof = _init_l_bool_has__sizeof(); lean::mark_persistent(l_bool_has__sizeof); l_implies = _init_l_implies(); lean::mark_persistent(l_implies); l_trivial = _init_l_trivial(); lean::mark_persistent(l_trivial); l_ne = _init_l_ne(); lean::mark_persistent(l_ne); l_type__eq__of__heq = _init_l_type__eq__of__heq(); lean::mark_persistent(l_type__eq__of__heq); l_and_symm = _init_l_and_symm(); lean::mark_persistent(l_and_symm); l_not__not__em = _init_l_not__not__em(); lean::mark_persistent(l_not__not__em); l_or_symm = _init_l_or_symm(); lean::mark_persistent(l_or_symm); l_xor = _init_l_xor(); lean::mark_persistent(l_xor); l_not__true__iff = _init_l_not__true__iff(); lean::mark_persistent(l_not__true__iff); l_and__implies = _init_l_and__implies(); lean::mark_persistent(l_and__implies); l_exists_intro = _init_l_exists_intro(); lean::mark_persistent(l_exists_intro); l_true_decidable = _init_l_true_decidable(); l_true_decidable___boxed = _init_l_true_decidable___boxed(); lean::mark_persistent(l_true_decidable___boxed); l_false_decidable = _init_l_false_decidable(); l_false_decidable___boxed = _init_l_false_decidable___boxed(); lean::mark_persistent(l_false_decidable___boxed); l_is__dec__eq = _init_l_is__dec__eq(); lean::mark_persistent(l_is__dec__eq); l_is__dec__refl = _init_l_is__dec__refl(); lean::mark_persistent(l_is__dec__refl); l_as__true = _init_l_as__true(); lean::mark_persistent(l_as__true); l_as__false = _init_l_as__false(); lean::mark_persistent(l_as__false); l_of__as__true = _init_l_of__as__true(); lean::mark_persistent(l_of__as__true); l_prop_inhabited = _init_l_prop_inhabited(); lean::mark_persistent(l_prop_inhabited); l_bool_inhabited = _init_l_bool_inhabited(); l_bool_inhabited___boxed = _init_l_bool_inhabited___boxed(); lean::mark_persistent(l_bool_inhabited___boxed); l_true_inhabited = _init_l_true_inhabited(); lean::mark_persistent(l_true_inhabited); l_nat_inhabited = _init_l_nat_inhabited(); lean::mark_persistent(l_nat_inhabited); l_nonempty_elim = _init_l_nonempty_elim(); lean::mark_persistent(l_nonempty_elim); l_nonempty__of__inhabited = _init_l_nonempty__of__inhabited(); lean::mark_persistent(l_nonempty__of__inhabited); l_subsingleton_elim = _init_l_subsingleton_elim(); lean::mark_persistent(l_subsingleton_elim); l_subsingleton_helim = _init_l_subsingleton_helim(); lean::mark_persistent(l_subsingleton_helim); l_subsingleton__prop = _init_l_subsingleton__prop(); lean::mark_persistent(l_subsingleton__prop); l_decidable_subsingleton = _init_l_decidable_subsingleton(); lean::mark_persistent(l_decidable_subsingleton); l_reflexive = _init_l_reflexive(); lean::mark_persistent(l_reflexive); l_symmetric = _init_l_symmetric(); lean::mark_persistent(l_symmetric); l_transitive = _init_l_transitive(); lean::mark_persistent(l_transitive); l_equivalence = _init_l_equivalence(); lean::mark_persistent(l_equivalence); l_total = _init_l_total(); lean::mark_persistent(l_total); l_mk__equivalence = _init_l_mk__equivalence(); lean::mark_persistent(l_mk__equivalence); l_irreflexive = _init_l_irreflexive(); lean::mark_persistent(l_irreflexive); l_anti__symmetric = _init_l_anti__symmetric(); lean::mark_persistent(l_anti__symmetric); l_empty__relation = _init_l_empty__relation(); lean::mark_persistent(l_empty__relation); l_subrelation = _init_l_subrelation(); lean::mark_persistent(l_subrelation); l_inv__image = _init_l_inv__image(); lean::mark_persistent(l_inv__image); l_commutative = _init_l_commutative(); lean::mark_persistent(l_commutative); l_associative = _init_l_associative(); lean::mark_persistent(l_associative); l_left__identity = _init_l_left__identity(); lean::mark_persistent(l_left__identity); l_right__identity = _init_l_right__identity(); lean::mark_persistent(l_right__identity); l_right__inverse = _init_l_right__inverse(); lean::mark_persistent(l_right__inverse); l_left__cancelative = _init_l_left__cancelative(); lean::mark_persistent(l_left__cancelative); l_right__cancelative = _init_l_right__cancelative(); lean::mark_persistent(l_right__cancelative); l_left__distributive = _init_l_left__distributive(); lean::mark_persistent(l_left__distributive); l_right__distributive = _init_l_right__distributive(); lean::mark_persistent(l_right__distributive); l_right__commutative = _init_l_right__commutative(); lean::mark_persistent(l_right__commutative); l_left__commutative = _init_l_left__commutative(); lean::mark_persistent(l_left__commutative); l_subtype_exists__of__subtype___main = _init_l_subtype_exists__of__subtype___main(); lean::mark_persistent(l_subtype_exists__of__subtype___main); l_subtype_exists__of__subtype = _init_l_subtype_exists__of__subtype(); lean::mark_persistent(l_subtype_exists__of__subtype); l_punit_subsingleton = _init_l_punit_subsingleton(); lean::mark_persistent(l_punit_subsingleton); l_punit_inhabited = _init_l_punit_inhabited(); lean::mark_persistent(l_punit_inhabited); l_quotient = _init_l_quotient(); lean::mark_persistent(l_quotient); l_quotient_sound = _init_l_quotient_sound(); lean::mark_persistent(l_quotient_sound); l___private_init_core_19__rel = _init_l___private_init_core_19__rel(); lean::mark_persistent(l___private_init_core_19__rel); l_function_equiv = _init_l_function_equiv(); lean::mark_persistent(l_function_equiv); l___private_init_core_25__extfun = _init_l___private_init_core_25__extfun(); lean::mark_persistent(l___private_init_core_25__extfun); l_pi_subsingleton = _init_l_pi_subsingleton(); lean::mark_persistent(l_pi_subsingleton); l_classical_by__cases = _init_l_classical_by__cases(); lean::mark_persistent(l_classical_by__cases); }