DV000B

mobius_table_lookup

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Every positive index in the finite domain has an actual canonical table entry and an independently defined Möbius value.

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.

Exact expanded first-order arithmetic statement

forall N M i. (((exists dst_positive_code_lookup_sourcetable dst_positive_scale_lookup_sourcetable dst_negative_code_lookup_sourcetable dst_negative_scale_lookup_sourcetable. (((M) = (((((dst_positive_code_lookup_sourcetable) + (dst_positive_scale_lookup_sourcetable)) * S ((dst_positive_code_lookup_sourcetable) + (dst_positive_scale_lookup_sourcetable)) + ((dst_positive_scale_lookup_sourcetable) + (dst_positive_scale_lookup_sourcetable))) + (((dst_negative_code_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)) * S ((dst_negative_code_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)) + ((dst_negative_scale_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)))) * S ((((dst_positive_code_lookup_sourcetable) + (dst_positive_scale_lookup_sourcetable)) * S ((dst_positive_code_lookup_sourcetable) + (dst_positive_scale_lookup_sourcetable)) + ((dst_positive_scale_lookup_sourcetable) + (dst_positive_scale_lookup_sourcetable))) + (((dst_negative_code_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)) * S ((dst_negative_code_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)) + ((dst_negative_scale_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)))) + ((((dst_negative_code_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)) * S ((dst_negative_code_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)) + ((dst_negative_scale_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable))) + (((dst_negative_code_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)) * S ((dst_negative_code_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)) + ((dst_negative_scale_lookup_sourcetable) + (dst_negative_scale_lookup_sourcetable)))))) /\ (forall dst_index_lookup_sourcetable. (exists pvs_le_gap_lookup_sourcetabledomain. pvs_le_gap_lookup_sourcetabledomain + (dst_index_lookup_sourcetable) = (N)) -> exists dst_positive_lookup_sourcetable dst_negative_lookup_sourcetable dst_value_lookup_sourcetable. ((((exists ff_h_pvs_lookup_sourcetableentrypositive. ff_h_pvs_lookup_sourcetableentrypositive + S (dst_positive_lookup_sourcetable) = S ((S (dst_index_lookup_sourcetable)) * dst_positive_scale_lookup_sourcetable)) /\ exists ff_q_pvs_lookup_sourcetableentrypositive. dst_positive_code_lookup_sourcetable = ff_q_pvs_lookup_sourcetableentrypositive * S ((S (dst_index_lookup_sourcetable)) * dst_positive_scale_lookup_sourcetable) + (dst_positive_lookup_sourcetable))) /\ (((((exists ff_h_pvs_lookup_sourcetableentrynegative. ff_h_pvs_lookup_sourcetableentrynegative + S (dst_negative_lookup_sourcetable) = S ((S (dst_index_lookup_sourcetable)) * dst_negative_scale_lookup_sourcetable)) /\ exists ff_q_pvs_lookup_sourcetableentrynegative. dst_negative_code_lookup_sourcetable = ff_q_pvs_lookup_sourcetableentrynegative * S ((S (dst_index_lookup_sourcetable)) * dst_negative_scale_lookup_sourcetable) + (dst_negative_lookup_sourcetable))) /\ (exists ge_balance_positive_lookup_sourcetableentryvalue ge_balance_negative_lookup_sourcetableentryvalue. (((((dst_value_lookup_sourcetable) = 2 * (ge_balance_positive_lookup_sourcetableentryvalue) /\ (ge_balance_negative_lookup_sourcetableentryvalue) = 0) \/ exists ge_signed_half_lookup_sourcetableentryvaluedecode. (((dst_value_lookup_sourcetable) = 2 * ge_signed_half_lookup_sourcetableentryvaluedecode + 1 /\ (ge_balance_positive_lookup_sourcetableentryvalue) = 0) /\ (ge_balance_negative_lookup_sourcetableentryvalue) = S ge_signed_half_lookup_sourcetableentryvaluedecode))) /\ ((dst_positive_lookup_sourcetable) + ge_balance_negative_lookup_sourcetableentryvalue = (dst_negative_lookup_sourcetable) + ge_balance_positive_lookup_sourcetableentryvalue))))))))) /\ (((exists dst_positive_code_lookup_sourcezero dst_positive_scale_lookup_sourcezero dst_negative_code_lookup_sourcezero dst_negative_scale_lookup_sourcezero dst_positive_lookup_sourcezero dst_negative_lookup_sourcezero. (((M) = (((((dst_positive_code_lookup_sourcezero) + (dst_positive_scale_lookup_sourcezero)) * S ((dst_positive_code_lookup_sourcezero) + (dst_positive_scale_lookup_sourcezero)) + ((dst_positive_scale_lookup_sourcezero) + (dst_positive_scale_lookup_sourcezero))) + (((dst_negative_code_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)) * S ((dst_negative_code_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)) + ((dst_negative_scale_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)))) * S ((((dst_positive_code_lookup_sourcezero) + (dst_positive_scale_lookup_sourcezero)) * S ((dst_positive_code_lookup_sourcezero) + (dst_positive_scale_lookup_sourcezero)) + ((dst_positive_scale_lookup_sourcezero) + (dst_positive_scale_lookup_sourcezero))) + (((dst_negative_code_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)) * S ((dst_negative_code_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)) + ((dst_negative_scale_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)))) + ((((dst_negative_code_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)) * S ((dst_negative_code_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)) + ((dst_negative_scale_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero))) + (((dst_negative_code_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)) * S ((dst_negative_code_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)) + ((dst_negative_scale_lookup_sourcezero) + (dst_negative_scale_lookup_sourcezero)))))) /\ (((((exists ff_h_pvs_lookup_sourcezeropositive. ff_h_pvs_lookup_sourcezeropositive + S (dst_positive_lookup_sourcezero) = S ((S (0)) * dst_positive_scale_lookup_sourcezero)) /\ exists ff_q_pvs_lookup_sourcezeropositive. dst_positive_code_lookup_sourcezero = ff_q_pvs_lookup_sourcezeropositive * S ((S (0)) * dst_positive_scale_lookup_sourcezero) + (dst_positive_lookup_sourcezero))) /\ (((((exists ff_h_pvs_lookup_sourcezeronegative. ff_h_pvs_lookup_sourcezeronegative + S (dst_negative_lookup_sourcezero) = S ((S (0)) * dst_negative_scale_lookup_sourcezero)) /\ exists ff_q_pvs_lookup_sourcezeronegative. dst_negative_code_lookup_sourcezero = ff_q_pvs_lookup_sourcezeronegative * S ((S (0)) * dst_negative_scale_lookup_sourcezero) + (dst_negative_lookup_sourcezero))) /\ (exists ge_balance_positive_lookup_sourcezerovalue ge_balance_negative_lookup_sourcezerovalue. (((((0) = 2 * (ge_balance_positive_lookup_sourcezerovalue) /\ (ge_balance_negative_lookup_sourcezerovalue) = 0) \/ exists ge_signed_half_lookup_sourcezerovaluedecode. (((0) = 2 * ge_signed_half_lookup_sourcezerovaluedecode + 1 /\ (ge_balance_positive_lookup_sourcezerovalue) = 0) /\ (ge_balance_negative_lookup_sourcezerovalue) = S ge_signed_half_lookup_sourcezerovaluedecode))) /\ ((dst_positive_lookup_sourcezero) + ge_balance_negative_lookup_sourcezerovalue = (dst_negative_lookup_sourcezero) + ge_balance_positive_lookup_sourcezerovalue))))))))) /\ (forall mt_index_lookup_source mt_value_lookup_source. ~(mt_index_lookup_source=0) -> (exists pvs_le_gap_lookup_sourcedomain. pvs_le_gap_lookup_sourcedomain + (mt_index_lookup_source) = (N)) -> (exists dst_positive_code_lookup_sourceentry dst_positive_scale_lookup_sourceentry dst_negative_code_lookup_sourceentry dst_negative_scale_lookup_sourceentry dst_positive_lookup_sourceentry dst_negative_lookup_sourceentry. (((M) = (((((dst_positive_code_lookup_sourceentry) + (dst_positive_scale_lookup_sourceentry)) * S ((dst_positive_code_lookup_sourceentry) + (dst_positive_scale_lookup_sourceentry)) + ((dst_positive_scale_lookup_sourceentry) + (dst_positive_scale_lookup_sourceentry))) + (((dst_negative_code_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)) * S ((dst_negative_code_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)) + ((dst_negative_scale_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)))) * S ((((dst_positive_code_lookup_sourceentry) + (dst_positive_scale_lookup_sourceentry)) * S ((dst_positive_code_lookup_sourceentry) + (dst_positive_scale_lookup_sourceentry)) + ((dst_positive_scale_lookup_sourceentry) + (dst_positive_scale_lookup_sourceentry))) + (((dst_negative_code_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)) * S ((dst_negative_code_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)) + ((dst_negative_scale_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)))) + ((((dst_negative_code_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)) * S ((dst_negative_code_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)) + ((dst_negative_scale_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry))) + (((dst_negative_code_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)) * S ((dst_negative_code_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)) + ((dst_negative_scale_lookup_sourceentry) + (dst_negative_scale_lookup_sourceentry)))))) /\ (((((exists ff_h_pvs_lookup_sourceentrypositive. ff_h_pvs_lookup_sourceentrypositive + S (dst_positive_lookup_sourceentry) = S ((S (mt_index_lookup_source)) * dst_positive_scale_lookup_sourceentry)) /\ exists ff_q_pvs_lookup_sourceentrypositive. dst_positive_code_lookup_sourceentry = ff_q_pvs_lookup_sourceentrypositive * S ((S (mt_index_lookup_source)) * dst_positive_scale_lookup_sourceentry) + (dst_positive_lookup_sourceentry))) /\ (((((exists ff_h_pvs_lookup_sourceentrynegative. ff_h_pvs_lookup_sourceentrynegative + S (dst_negative_lookup_sourceentry) = S ((S (mt_index_lookup_source)) * dst_negative_scale_lookup_sourceentry)) /\ exists ff_q_pvs_lookup_sourceentrynegative. dst_negative_code_lookup_sourceentry = ff_q_pvs_lookup_sourceentrynegative * S ((S (mt_index_lookup_source)) * dst_negative_scale_lookup_sourceentry) + (dst_negative_lookup_sourceentry))) /\ (exists ge_balance_positive_lookup_sourceentryvalue ge_balance_negative_lookup_sourceentryvalue. (((((mt_value_lookup_source) = 2 * (ge_balance_positive_lookup_sourceentryvalue) /\ (ge_balance_negative_lookup_sourceentryvalue) = 0) \/ exists ge_signed_half_lookup_sourceentryvaluedecode. (((mt_value_lookup_source) = 2 * ge_signed_half_lookup_sourceentryvaluedecode + 1 /\ (ge_balance_positive_lookup_sourceentryvalue) = 0) /\ (ge_balance_negative_lookup_sourceentryvalue) = S ge_signed_half_lookup_sourceentryvaluedecode))) /\ ((dst_positive_lookup_sourceentry) + ge_balance_negative_lookup_sourceentryvalue = (dst_negative_lookup_sourceentry) + ge_balance_positive_lookup_sourceentryvalue))))))))) -> (((~((mt_index_lookup_source) = 0)) /\ ((((exists mv_square_prime_lookup_sourcevaluesquare. ((~((mv_square_prime_lookup_sourcevaluesquare) = 1) /\ forall pvs_left_lookup_sourcevaluesquareprime pvs_right_lookup_sourcevaluesquareprime. (mv_square_prime_lookup_sourcevaluesquare) = pvs_left_lookup_sourcevaluesquareprime * pvs_right_lookup_sourcevaluesquareprime -> pvs_left_lookup_sourcevaluesquareprime = 1 \/ pvs_right_lookup_sourcevaluesquareprime = 1) /\ (exists pvs_factor_lookup_sourcevaluesquaredivisor. (mt_index_lookup_source) = (mv_square_prime_lookup_sourcevaluesquare * mv_square_prime_lookup_sourcevaluesquare) * pvs_factor_lookup_sourcevaluesquaredivisor))) /\ ((mt_value_lookup_source) = 0))) \/ (((((~((mt_index_lookup_source) = 0)) /\ (forall sfd_prime_lookup_sourcevaluesquarefree. (~((sfd_prime_lookup_sourcevaluesquarefree) = 1) /\ forall pvs_left_lookup_sourcevaluesquarefreedomain pvs_right_lookup_sourcevaluesquarefreedomain. (sfd_prime_lookup_sourcevaluesquarefree) = pvs_left_lookup_sourcevaluesquarefreedomain * pvs_right_lookup_sourcevaluesquarefreedomain -> pvs_left_lookup_sourcevaluesquarefreedomain = 1 \/ pvs_right_lookup_sourcevaluesquarefreedomain = 1) -> (exists pvs_le_gap_lookup_sourcevaluesquarefreebound. pvs_le_gap_lookup_sourcevaluesquarefreebound + (sfd_prime_lookup_sourcevaluesquarefree) = (mt_index_lookup_source)) -> ~(exists pvs_factor_lookup_sourcevaluesquarefreesquare. (mt_index_lookup_source) = (sfd_prime_lookup_sourcevaluesquarefree * sfd_prime_lookup_sourcevaluesquarefree) * pvs_factor_lookup_sourcevaluesquarefreesquare)))) /\ (exists mv_factor_code_lookup_sourcevaluefactors mv_factor_scale_lookup_sourcevaluefactors mv_factor_count_lookup_sourcevaluefactors. (((~(mt_index_lookup_source = 0) /\ ((exists ff_u_fsat_lookup_sourcevaluefactorsfactorization_product ff_v_fsat_lookup_sourcevaluefactorsfactorization_product. ((((exists ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_start. ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_lookup_sourcevaluefactorsfactorization_product)) /\ exists ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_start. ff_u_fsat_lookup_sourcevaluefactorsfactorization_product = ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_lookup_sourcevaluefactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_terminal. ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_terminal + S (mt_index_lookup_source) = S ((S (mv_factor_count_lookup_sourcevaluefactors)) * ff_v_fsat_lookup_sourcevaluefactorsfactorization_product)) /\ exists ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_terminal. ff_u_fsat_lookup_sourcevaluefactorsfactorization_product = ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_terminal * S ((S (mv_factor_count_lookup_sourcevaluefactors)) * ff_v_fsat_lookup_sourcevaluefactorsfactorization_product) + (mt_index_lookup_source))) /\ forall ff_i_fsat_lookup_sourcevaluefactorsfactorization_product. (exists ff_lt_fsat_lookup_sourcevaluefactorsfactorization_product_bound. ff_lt_fsat_lookup_sourcevaluefactorsfactorization_product_bound + S ff_i_fsat_lookup_sourcevaluefactorsfactorization_product = mv_factor_count_lookup_sourcevaluefactors) -> exists ff_p_fsat_lookup_sourcevaluefactorsfactorization_product ff_r_fsat_lookup_sourcevaluefactorsfactorization_product ff_s_fsat_lookup_sourcevaluefactorsfactorization_product. ((((exists ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_factor. ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_factor + S (ff_p_fsat_lookup_sourcevaluefactorsfactorization_product) = S ((S (ff_i_fsat_lookup_sourcevaluefactorsfactorization_product)) * mv_factor_scale_lookup_sourcevaluefactors)) /\ exists ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_factor. mv_factor_code_lookup_sourcevaluefactors = ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_factor * S ((S (ff_i_fsat_lookup_sourcevaluefactorsfactorization_product)) * mv_factor_scale_lookup_sourcevaluefactors) + (ff_p_fsat_lookup_sourcevaluefactorsfactorization_product))) /\ ((((exists ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_partial. ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_partial + S (ff_r_fsat_lookup_sourcevaluefactorsfactorization_product) = S ((S (ff_i_fsat_lookup_sourcevaluefactorsfactorization_product)) * ff_v_fsat_lookup_sourcevaluefactorsfactorization_product)) /\ exists ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_partial. ff_u_fsat_lookup_sourcevaluefactorsfactorization_product = ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_partial * S ((S (ff_i_fsat_lookup_sourcevaluefactorsfactorization_product)) * ff_v_fsat_lookup_sourcevaluefactorsfactorization_product) + (ff_r_fsat_lookup_sourcevaluefactorsfactorization_product))) /\ ((((exists ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_successor. ff_h_fsat_lookup_sourcevaluefactorsfactorization_product_successor + S (ff_s_fsat_lookup_sourcevaluefactorsfactorization_product) = S ((S (S ff_i_fsat_lookup_sourcevaluefactorsfactorization_product)) * ff_v_fsat_lookup_sourcevaluefactorsfactorization_product)) /\ exists ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_successor. ff_u_fsat_lookup_sourcevaluefactorsfactorization_product = ff_q_fsat_lookup_sourcevaluefactorsfactorization_product_successor * S ((S (S ff_i_fsat_lookup_sourcevaluefactorsfactorization_product)) * ff_v_fsat_lookup_sourcevaluefactorsfactorization_product) + (ff_s_fsat_lookup_sourcevaluefactorsfactorization_product))) /\ ff_s_fsat_lookup_sourcevaluefactorsfactorization_product = ff_r_fsat_lookup_sourcevaluefactorsfactorization_product * ff_p_fsat_lookup_sourcevaluefactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_lookup_sourcevaluefactorsfactorization_primes. (exists ftsf_gap_fsat_lookup_sourcevaluefactorsfactorization_primes_bound. ftsf_gap_fsat_lookup_sourcevaluefactorsfactorization_primes_bound + S ftsf_index_fsat_lookup_sourcevaluefactorsfactorization_primes = (mv_factor_count_lookup_sourcevaluefactors)) -> exists ftsf_factor_fsat_lookup_sourcevaluefactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_entry. ff_h_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_entry + S (ftsf_factor_fsat_lookup_sourcevaluefactorsfactorization_primes) = S ((S (ftsf_index_fsat_lookup_sourcevaluefactorsfactorization_primes)) * mv_factor_scale_lookup_sourcevaluefactors)) /\ exists ff_q_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_entry. mv_factor_code_lookup_sourcevaluefactors = ff_q_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_lookup_sourcevaluefactorsfactorization_primes)) * mv_factor_scale_lookup_sourcevaluefactors) + (ftsf_factor_fsat_lookup_sourcevaluefactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_lookup_sourcevaluefactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_prime. ftsf_factor_fsat_lookup_sourcevaluefactorsfactorization_primes = frm_prime_left_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_lookup_sourcevaluefactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_lookup_sourcevaluefactorsparityeven. (mv_factor_count_lookup_sourcevaluefactors) = 2 * mv_even_half_lookup_sourcevaluefactorsparityeven) /\ ((mt_value_lookup_source) = 2))) \/ (((exists mv_odd_half_lookup_sourcevaluefactorsparityodd. (mv_factor_count_lookup_sourcevaluefactors) = 2 * mv_odd_half_lookup_sourcevaluefactorsparityodd + 1) /\ ((mt_value_lookup_source) = 1)))))))))))))))) -> ~(i=0) -> (exists pvs_le_gap_lookup_bound. pvs_le_gap_lookup_bound + (i) = (N)) -> exists z. (exists dst_positive_code_lookup_entry dst_positive_scale_lookup_entry dst_negative_code_lookup_entry dst_negative_scale_lookup_entry dst_positive_lookup_entry dst_negative_lookup_entry. (((M) = (((((dst_positive_code_lookup_entry) + (dst_positive_scale_lookup_entry)) * S ((dst_positive_code_lookup_entry) + (dst_positive_scale_lookup_entry)) + ((dst_positive_scale_lookup_entry) + (dst_positive_scale_lookup_entry))) + (((dst_negative_code_lookup_entry) + (dst_negative_scale_lookup_entry)) * S ((dst_negative_code_lookup_entry) + (dst_negative_scale_lookup_entry)) + ((dst_negative_scale_lookup_entry) + (dst_negative_scale_lookup_entry)))) * S ((((dst_positive_code_lookup_entry) + (dst_positive_scale_lookup_entry)) * S ((dst_positive_code_lookup_entry) + (dst_positive_scale_lookup_entry)) + ((dst_positive_scale_lookup_entry) + (dst_positive_scale_lookup_entry))) + (((dst_negative_code_lookup_entry) + (dst_negative_scale_lookup_entry)) * S ((dst_negative_code_lookup_entry) + (dst_negative_scale_lookup_entry)) + ((dst_negative_scale_lookup_entry) + (dst_negative_scale_lookup_entry)))) + ((((dst_negative_code_lookup_entry) + (dst_negative_scale_lookup_entry)) * S ((dst_negative_code_lookup_entry) + (dst_negative_scale_lookup_entry)) + ((dst_negative_scale_lookup_entry) + (dst_negative_scale_lookup_entry))) + (((dst_negative_code_lookup_entry) + (dst_negative_scale_lookup_entry)) * S ((dst_negative_code_lookup_entry) + (dst_negative_scale_lookup_entry)) + ((dst_negative_scale_lookup_entry) + (dst_negative_scale_lookup_entry)))))) /\ (((((exists ff_h_pvs_lookup_entrypositive. ff_h_pvs_lookup_entrypositive + S (dst_positive_lookup_entry) = S ((S (i)) * dst_positive_scale_lookup_entry)) /\ exists ff_q_pvs_lookup_entrypositive. dst_positive_code_lookup_entry = ff_q_pvs_lookup_entrypositive * S ((S (i)) * dst_positive_scale_lookup_entry) + (dst_positive_lookup_entry))) /\ (((((exists ff_h_pvs_lookup_entrynegative. ff_h_pvs_lookup_entrynegative + S (dst_negative_lookup_entry) = S ((S (i)) * dst_negative_scale_lookup_entry)) /\ exists ff_q_pvs_lookup_entrynegative. dst_negative_code_lookup_entry = ff_q_pvs_lookup_entrynegative * S ((S (i)) * dst_negative_scale_lookup_entry) + (dst_negative_lookup_entry))) /\ (exists ge_balance_positive_lookup_entryvalue ge_balance_negative_lookup_entryvalue. (((((z) = 2 * (ge_balance_positive_lookup_entryvalue) /\ (ge_balance_negative_lookup_entryvalue) = 0) \/ exists ge_signed_half_lookup_entryvaluedecode. (((z) = 2 * ge_signed_half_lookup_entryvaluedecode + 1 /\ (ge_balance_positive_lookup_entryvalue) = 0) /\ (ge_balance_negative_lookup_entryvalue) = S ge_signed_half_lookup_entryvaluedecode))) /\ ((dst_positive_lookup_entry) + ge_balance_negative_lookup_entryvalue = (dst_negative_lookup_entry) + ge_balance_positive_lookup_entryvalue))))))))) /\ (((~((i) = 0)) /\ ((((exists mv_square_prime_lookup_valuesquare. ((~((mv_square_prime_lookup_valuesquare) = 1) /\ forall pvs_left_lookup_valuesquareprime pvs_right_lookup_valuesquareprime. (mv_square_prime_lookup_valuesquare) = pvs_left_lookup_valuesquareprime * pvs_right_lookup_valuesquareprime -> pvs_left_lookup_valuesquareprime = 1 \/ pvs_right_lookup_valuesquareprime = 1) /\ (exists pvs_factor_lookup_valuesquaredivisor. (i) = (mv_square_prime_lookup_valuesquare * mv_square_prime_lookup_valuesquare) * pvs_factor_lookup_valuesquaredivisor))) /\ ((z) = 0))) \/ (((((~((i) = 0)) /\ (forall sfd_prime_lookup_valuesquarefree. (~((sfd_prime_lookup_valuesquarefree) = 1) /\ forall pvs_left_lookup_valuesquarefreedomain pvs_right_lookup_valuesquarefreedomain. (sfd_prime_lookup_valuesquarefree) = pvs_left_lookup_valuesquarefreedomain * pvs_right_lookup_valuesquarefreedomain -> pvs_left_lookup_valuesquarefreedomain = 1 \/ pvs_right_lookup_valuesquarefreedomain = 1) -> (exists pvs_le_gap_lookup_valuesquarefreebound. pvs_le_gap_lookup_valuesquarefreebound + (sfd_prime_lookup_valuesquarefree) = (i)) -> ~(exists pvs_factor_lookup_valuesquarefreesquare. (i) = (sfd_prime_lookup_valuesquarefree * sfd_prime_lookup_valuesquarefree) * pvs_factor_lookup_valuesquarefreesquare)))) /\ (exists mv_factor_code_lookup_valuefactors mv_factor_scale_lookup_valuefactors mv_factor_count_lookup_valuefactors. (((~(i = 0) /\ ((exists ff_u_fsat_lookup_valuefactorsfactorization_product ff_v_fsat_lookup_valuefactorsfactorization_product. ((((exists ff_h_fsat_lookup_valuefactorsfactorization_product_start. ff_h_fsat_lookup_valuefactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_lookup_valuefactorsfactorization_product)) /\ exists ff_q_fsat_lookup_valuefactorsfactorization_product_start. ff_u_fsat_lookup_valuefactorsfactorization_product = ff_q_fsat_lookup_valuefactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_lookup_valuefactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_lookup_valuefactorsfactorization_product_terminal. ff_h_fsat_lookup_valuefactorsfactorization_product_terminal + S (i) = S ((S (mv_factor_count_lookup_valuefactors)) * ff_v_fsat_lookup_valuefactorsfactorization_product)) /\ exists ff_q_fsat_lookup_valuefactorsfactorization_product_terminal. ff_u_fsat_lookup_valuefactorsfactorization_product = ff_q_fsat_lookup_valuefactorsfactorization_product_terminal * S ((S (mv_factor_count_lookup_valuefactors)) * ff_v_fsat_lookup_valuefactorsfactorization_product) + (i))) /\ forall ff_i_fsat_lookup_valuefactorsfactorization_product. (exists ff_lt_fsat_lookup_valuefactorsfactorization_product_bound. ff_lt_fsat_lookup_valuefactorsfactorization_product_bound + S ff_i_fsat_lookup_valuefactorsfactorization_product = mv_factor_count_lookup_valuefactors) -> exists ff_p_fsat_lookup_valuefactorsfactorization_product ff_r_fsat_lookup_valuefactorsfactorization_product ff_s_fsat_lookup_valuefactorsfactorization_product. ((((exists ff_h_fsat_lookup_valuefactorsfactorization_product_factor. ff_h_fsat_lookup_valuefactorsfactorization_product_factor + S (ff_p_fsat_lookup_valuefactorsfactorization_product) = S ((S (ff_i_fsat_lookup_valuefactorsfactorization_product)) * mv_factor_scale_lookup_valuefactors)) /\ exists ff_q_fsat_lookup_valuefactorsfactorization_product_factor. mv_factor_code_lookup_valuefactors = ff_q_fsat_lookup_valuefactorsfactorization_product_factor * S ((S (ff_i_fsat_lookup_valuefactorsfactorization_product)) * mv_factor_scale_lookup_valuefactors) + (ff_p_fsat_lookup_valuefactorsfactorization_product))) /\ ((((exists ff_h_fsat_lookup_valuefactorsfactorization_product_partial. ff_h_fsat_lookup_valuefactorsfactorization_product_partial + S (ff_r_fsat_lookup_valuefactorsfactorization_product) = S ((S (ff_i_fsat_lookup_valuefactorsfactorization_product)) * ff_v_fsat_lookup_valuefactorsfactorization_product)) /\ exists ff_q_fsat_lookup_valuefactorsfactorization_product_partial. ff_u_fsat_lookup_valuefactorsfactorization_product = ff_q_fsat_lookup_valuefactorsfactorization_product_partial * S ((S (ff_i_fsat_lookup_valuefactorsfactorization_product)) * ff_v_fsat_lookup_valuefactorsfactorization_product) + (ff_r_fsat_lookup_valuefactorsfactorization_product))) /\ ((((exists ff_h_fsat_lookup_valuefactorsfactorization_product_successor. ff_h_fsat_lookup_valuefactorsfactorization_product_successor + S (ff_s_fsat_lookup_valuefactorsfactorization_product) = S ((S (S ff_i_fsat_lookup_valuefactorsfactorization_product)) * ff_v_fsat_lookup_valuefactorsfactorization_product)) /\ exists ff_q_fsat_lookup_valuefactorsfactorization_product_successor. ff_u_fsat_lookup_valuefactorsfactorization_product = ff_q_fsat_lookup_valuefactorsfactorization_product_successor * S ((S (S ff_i_fsat_lookup_valuefactorsfactorization_product)) * ff_v_fsat_lookup_valuefactorsfactorization_product) + (ff_s_fsat_lookup_valuefactorsfactorization_product))) /\ ff_s_fsat_lookup_valuefactorsfactorization_product = ff_r_fsat_lookup_valuefactorsfactorization_product * ff_p_fsat_lookup_valuefactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_lookup_valuefactorsfactorization_primes. (exists ftsf_gap_fsat_lookup_valuefactorsfactorization_primes_bound. ftsf_gap_fsat_lookup_valuefactorsfactorization_primes_bound + S ftsf_index_fsat_lookup_valuefactorsfactorization_primes = (mv_factor_count_lookup_valuefactors)) -> exists ftsf_factor_fsat_lookup_valuefactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_lookup_valuefactorsfactorization_primes_entry. ff_h_ftsf_fsat_lookup_valuefactorsfactorization_primes_entry + S (ftsf_factor_fsat_lookup_valuefactorsfactorization_primes) = S ((S (ftsf_index_fsat_lookup_valuefactorsfactorization_primes)) * mv_factor_scale_lookup_valuefactors)) /\ exists ff_q_ftsf_fsat_lookup_valuefactorsfactorization_primes_entry. mv_factor_code_lookup_valuefactors = ff_q_ftsf_fsat_lookup_valuefactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_lookup_valuefactorsfactorization_primes)) * mv_factor_scale_lookup_valuefactors) + (ftsf_factor_fsat_lookup_valuefactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_lookup_valuefactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_lookup_valuefactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_lookup_valuefactorsfactorization_primes_prime. ftsf_factor_fsat_lookup_valuefactorsfactorization_primes = frm_prime_left_ftsf_fsat_lookup_valuefactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_lookup_valuefactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_lookup_valuefactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_lookup_valuefactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_lookup_valuefactorsparityeven. (mv_factor_count_lookup_valuefactors) = 2 * mv_even_half_lookup_valuefactorsparityeven) /\ ((z) = 2))) \/ (((exists mv_odd_half_lookup_valuefactorsparityodd. (mv_factor_count_lookup_valuefactors) = 2 * mv_odd_half_lookup_valuefactorsparityodd + 1) /\ ((z) = 1)))))))))))

Constructive proof overview

Generated structural guide

Every positive index in the finite domain has an actual canonical table entry and an independently defined Möbius value.

The unchanged tactic script uses 1 declared prerequisite and contains 25 exact native proof lines.

Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

divisor_signed_table_lookup Alpha theorem; checked-use authorized

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

25 script commands · 7 reading checkpoints · 1 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–6

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro N
  2. L2
    intro M
  3. L3
    intro i
  4. L4
    intro hm
  5. L5
    intro hi
  6. L6
    intro hib
02Separate the logical casesL7–8

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L7
    cases hm
  2. L8
    cases hm_right
03Establish hzL9–15

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table lookup.

  1. L9
    have hz : ∃ z. ArithAt(M,i,z)Definitions: ArithAt
  2. L10
    specialize divisor_signed_table_lookup (N)
  3. L11
    specialize divisor_signed_table_lookup (M)
  4. L12
    specialize divisor_signed_table_lookup (i)
  5. L13
    apply divisor_signed_table_lookup
  6. L14
    exact hm_left
  7. L15
    exact hib
04Separate the logical casesL16–16

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L16
    cases hz
05Construct an explicit witnessL17–17

Supply the displayed value, then prove that it has the required property.

  1. L17
    exists x
06Separate the logical casesL18–18

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L18
    split
07Use earlier factsL19–25

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L19
    exact hz_witness
  2. L20
    specialize hm_right_right (i)
  3. L21
    specialize hm_right_right (x)
  4. L22
    apply hm_right_right
  5. L23
    exact hi
  6. L24
    exact hib
  7. L25
    exact hz_witness

Library-wide reading audit

Original exact command ledger · 25 lines
  1. 0001intro N
  2. 0002intro M
  3. 0003intro i
  4. 0004intro hm
  5. 0005intro hi
  6. 0006intro hib
  7. 0007cases hm
  8. 0008cases hm_right
  9. 0009have hz : exists z. (exists dst_positive_code_lookup_construct dst_positive_scale_lookup_construct dst_negative_code_lookup_construct dst_negative_scale_lookup_construct dst_positive_lookup_construct dst_negative_lookup_construct. (((M) = (((((dst_positive_code_lookup_construct) + (dst_positive_scale_lookup_construct)) * S ((dst_positive_code_lookup_construct) + (dst_positive_scale_lookup_construct)) + ((dst_positive_scale_lookup_construct) + (dst_positive_scale_lookup_construct))) + (((dst_negative_code_lookup_construct) + (dst_negative_scale_lookup_construct)) * S ((dst_negative_code_lookup_construct) + (dst_negative_scale_lookup_construct)) + ((dst_negative_scale_lookup_construct) + (dst_negative_scale_lookup_construct)))) * S ((((dst_positive_code_lookup_construct) + (dst_positive_scale_lookup_construct)) * S ((dst_positive_code_lookup_construct) + (dst_positive_scale_lookup_construct)) + ((dst_positive_scale_lookup_construct) + (dst_positive_scale_lookup_construct))) + (((dst_negative_code_lookup_construct) + (dst_negative_scale_lookup_construct)) * S ((dst_negative_code_lookup_construct) + (dst_negative_scale_lookup_construct)) + ((dst_negative_scale_lookup_construct) + (dst_negative_scale_lookup_construct)))) + ((((dst_negative_code_lookup_construct) + (dst_negative_scale_lookup_construct)) * S ((dst_negative_code_lookup_construct) + (dst_negative_scale_lookup_construct)) + ((dst_negative_scale_lookup_construct) + (dst_negative_scale_lookup_construct))) + (((dst_negative_code_lookup_construct) + (dst_negative_scale_lookup_construct)) * S ((dst_negative_code_lookup_construct) + (dst_negative_scale_lookup_construct)) + ((dst_negative_scale_lookup_construct) + (dst_negative_scale_lookup_construct)))))) /\ (((((exists ff_h_pvs_lookup_constructpositive. ff_h_pvs_lookup_constructpositive + S (dst_positive_lookup_construct) = S ((S (i)) * dst_positive_scale_lookup_construct)) /\ exists ff_q_pvs_lookup_constructpositive. dst_positive_code_lookup_construct = ff_q_pvs_lookup_constructpositive * S ((S (i)) * dst_positive_scale_lookup_construct) + (dst_positive_lookup_construct))) /\ (((((exists ff_h_pvs_lookup_constructnegative. ff_h_pvs_lookup_constructnegative + S (dst_negative_lookup_construct) = S ((S (i)) * dst_negative_scale_lookup_construct)) /\ exists ff_q_pvs_lookup_constructnegative. dst_negative_code_lookup_construct = ff_q_pvs_lookup_constructnegative * S ((S (i)) * dst_negative_scale_lookup_construct) + (dst_negative_lookup_construct))) /\ (exists ge_balance_positive_lookup_constructvalue ge_balance_negative_lookup_constructvalue. (((((z) = 2 * (ge_balance_positive_lookup_constructvalue) /\ (ge_balance_negative_lookup_constructvalue) = 0) \/ exists ge_signed_half_lookup_constructvaluedecode. (((z) = 2 * ge_signed_half_lookup_constructvaluedecode + 1 /\ (ge_balance_positive_lookup_constructvalue) = 0) /\ (ge_balance_negative_lookup_constructvalue) = S ge_signed_half_lookup_constructvaluedecode))) /\ ((dst_positive_lookup_construct) + ge_balance_negative_lookup_constructvalue = (dst_negative_lookup_construct) + ge_balance_positive_lookup_constructvalue)))))))))
  10. 0010specialize divisor_signed_table_lookup (N)
  11. 0011specialize divisor_signed_table_lookup (M)
  12. 0012specialize divisor_signed_table_lookup (i)
  13. 0013apply divisor_signed_table_lookup
  14. 0014exact hm_left
  15. 0015exact hib
  16. 0016cases hz
  17. 0017exists x
  18. 0018split
  19. 0019exact hz_witness
  20. 0020specialize hm_right_right (i)
  21. 0021specialize hm_right_right (x)
  22. 0022apply hm_right_right
  23. 0023exact hi
  24. 0024exact hib
  25. 0025exact hz_witness