MC0018

mobius_divisor_sum_nonunit_zero

Construct the actual finite divisor sum before identifying it with zero for every positive nonunit input.

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

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

The input n is positive. Signed code 2 denotes +1, so the actual sum is +1 at n=1 and zero for n>1. The positive-values result permits arbitrary F(0), which the divisor mask excludes. Prime-square multiples contribute zero. Full G007 inversion is established in its separate family.

Exact theorem in conservative defined notation

∀ N. ∀ M. ∀ n. MobiusTable(N,M) → ¬n = 0 → ¬n = 1 → Le(n,N)DivisorSum(M,n,0)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall N M n. (((exists dst_positive_code_cancel_zero_tabletable dst_positive_scale_cancel_zero_tabletable dst_negative_code_cancel_zero_tabletable dst_negative_scale_cancel_zero_tabletable. (((M) = (((((dst_positive_code_cancel_zero_tabletable) + (dst_positive_scale_cancel_zero_tabletable)) * S ((dst_positive_code_cancel_zero_tabletable) + (dst_positive_scale_cancel_zero_tabletable)) + ((dst_positive_scale_cancel_zero_tabletable) + (dst_positive_scale_cancel_zero_tabletable))) + (((dst_negative_code_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)) * S ((dst_negative_code_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)) + ((dst_negative_scale_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)))) * S ((((dst_positive_code_cancel_zero_tabletable) + (dst_positive_scale_cancel_zero_tabletable)) * S ((dst_positive_code_cancel_zero_tabletable) + (dst_positive_scale_cancel_zero_tabletable)) + ((dst_positive_scale_cancel_zero_tabletable) + (dst_positive_scale_cancel_zero_tabletable))) + (((dst_negative_code_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)) * S ((dst_negative_code_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)) + ((dst_negative_scale_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)))) + ((((dst_negative_code_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)) * S ((dst_negative_code_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)) + ((dst_negative_scale_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable))) + (((dst_negative_code_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)) * S ((dst_negative_code_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)) + ((dst_negative_scale_cancel_zero_tabletable) + (dst_negative_scale_cancel_zero_tabletable)))))) /\ (forall dst_index_cancel_zero_tabletable. (exists pvs_le_gap_cancel_zero_tabletabledomain. pvs_le_gap_cancel_zero_tabletabledomain + (dst_index_cancel_zero_tabletable) = (N)) -> exists dst_positive_cancel_zero_tabletable dst_negative_cancel_zero_tabletable dst_value_cancel_zero_tabletable. ((((exists ff_h_pvs_cancel_zero_tabletableentrypositive. ff_h_pvs_cancel_zero_tabletableentrypositive + S (dst_positive_cancel_zero_tabletable) = S ((S (dst_index_cancel_zero_tabletable)) * dst_positive_scale_cancel_zero_tabletable)) /\ exists ff_q_pvs_cancel_zero_tabletableentrypositive. dst_positive_code_cancel_zero_tabletable = ff_q_pvs_cancel_zero_tabletableentrypositive * S ((S (dst_index_cancel_zero_tabletable)) * dst_positive_scale_cancel_zero_tabletable) + (dst_positive_cancel_zero_tabletable))) /\ (((((exists ff_h_pvs_cancel_zero_tabletableentrynegative. ff_h_pvs_cancel_zero_tabletableentrynegative + S (dst_negative_cancel_zero_tabletable) = S ((S (dst_index_cancel_zero_tabletable)) * dst_negative_scale_cancel_zero_tabletable)) /\ exists ff_q_pvs_cancel_zero_tabletableentrynegative. dst_negative_code_cancel_zero_tabletable = ff_q_pvs_cancel_zero_tabletableentrynegative * S ((S (dst_index_cancel_zero_tabletable)) * dst_negative_scale_cancel_zero_tabletable) + (dst_negative_cancel_zero_tabletable))) /\ (exists ge_balance_positive_cancel_zero_tabletableentryvalue ge_balance_negative_cancel_zero_tabletableentryvalue. (((((dst_value_cancel_zero_tabletable) = 2 * (ge_balance_positive_cancel_zero_tabletableentryvalue) /\ (ge_balance_negative_cancel_zero_tabletableentryvalue) = 0) \/ exists ge_signed_half_cancel_zero_tabletableentryvaluedecode. (((dst_value_cancel_zero_tabletable) = 2 * ge_signed_half_cancel_zero_tabletableentryvaluedecode + 1 /\ (ge_balance_positive_cancel_zero_tabletableentryvalue) = 0) /\ (ge_balance_negative_cancel_zero_tabletableentryvalue) = S ge_signed_half_cancel_zero_tabletableentryvaluedecode))) /\ ((dst_positive_cancel_zero_tabletable) + ge_balance_negative_cancel_zero_tabletableentryvalue = (dst_negative_cancel_zero_tabletable) + ge_balance_positive_cancel_zero_tabletableentryvalue))))))))) /\ (((exists dst_positive_code_cancel_zero_tablezero dst_positive_scale_cancel_zero_tablezero dst_negative_code_cancel_zero_tablezero dst_negative_scale_cancel_zero_tablezero dst_positive_cancel_zero_tablezero dst_negative_cancel_zero_tablezero. (((M) = (((((dst_positive_code_cancel_zero_tablezero) + (dst_positive_scale_cancel_zero_tablezero)) * S ((dst_positive_code_cancel_zero_tablezero) + (dst_positive_scale_cancel_zero_tablezero)) + ((dst_positive_scale_cancel_zero_tablezero) + (dst_positive_scale_cancel_zero_tablezero))) + (((dst_negative_code_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)) * S ((dst_negative_code_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)) + ((dst_negative_scale_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)))) * S ((((dst_positive_code_cancel_zero_tablezero) + (dst_positive_scale_cancel_zero_tablezero)) * S ((dst_positive_code_cancel_zero_tablezero) + (dst_positive_scale_cancel_zero_tablezero)) + ((dst_positive_scale_cancel_zero_tablezero) + (dst_positive_scale_cancel_zero_tablezero))) + (((dst_negative_code_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)) * S ((dst_negative_code_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)) + ((dst_negative_scale_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)))) + ((((dst_negative_code_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)) * S ((dst_negative_code_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)) + ((dst_negative_scale_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero))) + (((dst_negative_code_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)) * S ((dst_negative_code_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)) + ((dst_negative_scale_cancel_zero_tablezero) + (dst_negative_scale_cancel_zero_tablezero)))))) /\ (((((exists ff_h_pvs_cancel_zero_tablezeropositive. ff_h_pvs_cancel_zero_tablezeropositive + S (dst_positive_cancel_zero_tablezero) = S ((S (0)) * dst_positive_scale_cancel_zero_tablezero)) /\ exists ff_q_pvs_cancel_zero_tablezeropositive. dst_positive_code_cancel_zero_tablezero = ff_q_pvs_cancel_zero_tablezeropositive * S ((S (0)) * dst_positive_scale_cancel_zero_tablezero) + (dst_positive_cancel_zero_tablezero))) /\ (((((exists ff_h_pvs_cancel_zero_tablezeronegative. ff_h_pvs_cancel_zero_tablezeronegative + S (dst_negative_cancel_zero_tablezero) = S ((S (0)) * dst_negative_scale_cancel_zero_tablezero)) /\ exists ff_q_pvs_cancel_zero_tablezeronegative. dst_negative_code_cancel_zero_tablezero = ff_q_pvs_cancel_zero_tablezeronegative * S ((S (0)) * dst_negative_scale_cancel_zero_tablezero) + (dst_negative_cancel_zero_tablezero))) /\ (exists ge_balance_positive_cancel_zero_tablezerovalue ge_balance_negative_cancel_zero_tablezerovalue. (((((0) = 2 * (ge_balance_positive_cancel_zero_tablezerovalue) /\ (ge_balance_negative_cancel_zero_tablezerovalue) = 0) \/ exists ge_signed_half_cancel_zero_tablezerovaluedecode. (((0) = 2 * ge_signed_half_cancel_zero_tablezerovaluedecode + 1 /\ (ge_balance_positive_cancel_zero_tablezerovalue) = 0) /\ (ge_balance_negative_cancel_zero_tablezerovalue) = S ge_signed_half_cancel_zero_tablezerovaluedecode))) /\ ((dst_positive_cancel_zero_tablezero) + ge_balance_negative_cancel_zero_tablezerovalue = (dst_negative_cancel_zero_tablezero) + ge_balance_positive_cancel_zero_tablezerovalue))))))))) /\ (forall mt_index_cancel_zero_table mt_value_cancel_zero_table. ~(mt_index_cancel_zero_table=0) -> (exists pvs_le_gap_cancel_zero_tabledomain. pvs_le_gap_cancel_zero_tabledomain + (mt_index_cancel_zero_table) = (N)) -> (exists dst_positive_code_cancel_zero_tableentry dst_positive_scale_cancel_zero_tableentry dst_negative_code_cancel_zero_tableentry dst_negative_scale_cancel_zero_tableentry dst_positive_cancel_zero_tableentry dst_negative_cancel_zero_tableentry. (((M) = (((((dst_positive_code_cancel_zero_tableentry) + (dst_positive_scale_cancel_zero_tableentry)) * S ((dst_positive_code_cancel_zero_tableentry) + (dst_positive_scale_cancel_zero_tableentry)) + ((dst_positive_scale_cancel_zero_tableentry) + (dst_positive_scale_cancel_zero_tableentry))) + (((dst_negative_code_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)) * S ((dst_negative_code_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)) + ((dst_negative_scale_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)))) * S ((((dst_positive_code_cancel_zero_tableentry) + (dst_positive_scale_cancel_zero_tableentry)) * S ((dst_positive_code_cancel_zero_tableentry) + (dst_positive_scale_cancel_zero_tableentry)) + ((dst_positive_scale_cancel_zero_tableentry) + (dst_positive_scale_cancel_zero_tableentry))) + (((dst_negative_code_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)) * S ((dst_negative_code_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)) + ((dst_negative_scale_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)))) + ((((dst_negative_code_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)) * S ((dst_negative_code_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)) + ((dst_negative_scale_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry))) + (((dst_negative_code_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)) * S ((dst_negative_code_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)) + ((dst_negative_scale_cancel_zero_tableentry) + (dst_negative_scale_cancel_zero_tableentry)))))) /\ (((((exists ff_h_pvs_cancel_zero_tableentrypositive. ff_h_pvs_cancel_zero_tableentrypositive + S (dst_positive_cancel_zero_tableentry) = S ((S (mt_index_cancel_zero_table)) * dst_positive_scale_cancel_zero_tableentry)) /\ exists ff_q_pvs_cancel_zero_tableentrypositive. dst_positive_code_cancel_zero_tableentry = ff_q_pvs_cancel_zero_tableentrypositive * S ((S (mt_index_cancel_zero_table)) * dst_positive_scale_cancel_zero_tableentry) + (dst_positive_cancel_zero_tableentry))) /\ (((((exists ff_h_pvs_cancel_zero_tableentrynegative. ff_h_pvs_cancel_zero_tableentrynegative + S (dst_negative_cancel_zero_tableentry) = S ((S (mt_index_cancel_zero_table)) * dst_negative_scale_cancel_zero_tableentry)) /\ exists ff_q_pvs_cancel_zero_tableentrynegative. dst_negative_code_cancel_zero_tableentry = ff_q_pvs_cancel_zero_tableentrynegative * S ((S (mt_index_cancel_zero_table)) * dst_negative_scale_cancel_zero_tableentry) + (dst_negative_cancel_zero_tableentry))) /\ (exists ge_balance_positive_cancel_zero_tableentryvalue ge_balance_negative_cancel_zero_tableentryvalue. (((((mt_value_cancel_zero_table) = 2 * (ge_balance_positive_cancel_zero_tableentryvalue) /\ (ge_balance_negative_cancel_zero_tableentryvalue) = 0) \/ exists ge_signed_half_cancel_zero_tableentryvaluedecode. (((mt_value_cancel_zero_table) = 2 * ge_signed_half_cancel_zero_tableentryvaluedecode + 1 /\ (ge_balance_positive_cancel_zero_tableentryvalue) = 0) /\ (ge_balance_negative_cancel_zero_tableentryvalue) = S ge_signed_half_cancel_zero_tableentryvaluedecode))) /\ ((dst_positive_cancel_zero_tableentry) + ge_balance_negative_cancel_zero_tableentryvalue = (dst_negative_cancel_zero_tableentry) + ge_balance_positive_cancel_zero_tableentryvalue))))))))) -> (((~((mt_index_cancel_zero_table) = 0)) /\ ((((exists mv_square_prime_cancel_zero_tablevaluesquare. ((~((mv_square_prime_cancel_zero_tablevaluesquare) = 1) /\ forall pvs_left_cancel_zero_tablevaluesquareprime pvs_right_cancel_zero_tablevaluesquareprime. (mv_square_prime_cancel_zero_tablevaluesquare) = pvs_left_cancel_zero_tablevaluesquareprime * pvs_right_cancel_zero_tablevaluesquareprime -> pvs_left_cancel_zero_tablevaluesquareprime = 1 \/ pvs_right_cancel_zero_tablevaluesquareprime = 1) /\ (exists pvs_factor_cancel_zero_tablevaluesquaredivisor. (mt_index_cancel_zero_table) = (mv_square_prime_cancel_zero_tablevaluesquare * mv_square_prime_cancel_zero_tablevaluesquare) * pvs_factor_cancel_zero_tablevaluesquaredivisor))) /\ ((mt_value_cancel_zero_table) = 0))) \/ (((((~((mt_index_cancel_zero_table) = 0)) /\ (forall sfd_prime_cancel_zero_tablevaluesquarefree. (~((sfd_prime_cancel_zero_tablevaluesquarefree) = 1) /\ forall pvs_left_cancel_zero_tablevaluesquarefreedomain pvs_right_cancel_zero_tablevaluesquarefreedomain. (sfd_prime_cancel_zero_tablevaluesquarefree) = pvs_left_cancel_zero_tablevaluesquarefreedomain * pvs_right_cancel_zero_tablevaluesquarefreedomain -> pvs_left_cancel_zero_tablevaluesquarefreedomain = 1 \/ pvs_right_cancel_zero_tablevaluesquarefreedomain = 1) -> (exists pvs_le_gap_cancel_zero_tablevaluesquarefreebound. pvs_le_gap_cancel_zero_tablevaluesquarefreebound + (sfd_prime_cancel_zero_tablevaluesquarefree) = (mt_index_cancel_zero_table)) -> ~(exists pvs_factor_cancel_zero_tablevaluesquarefreesquare. (mt_index_cancel_zero_table) = (sfd_prime_cancel_zero_tablevaluesquarefree * sfd_prime_cancel_zero_tablevaluesquarefree) * pvs_factor_cancel_zero_tablevaluesquarefreesquare)))) /\ (exists mv_factor_code_cancel_zero_tablevaluefactors mv_factor_scale_cancel_zero_tablevaluefactors mv_factor_count_cancel_zero_tablevaluefactors. (((~(mt_index_cancel_zero_table = 0) /\ ((exists ff_u_fsat_cancel_zero_tablevaluefactorsfactorization_product ff_v_fsat_cancel_zero_tablevaluefactorsfactorization_product. ((((exists ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_start. ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_start + S (1) = S ((S (0)) * ff_v_fsat_cancel_zero_tablevaluefactorsfactorization_product)) /\ exists ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_start. ff_u_fsat_cancel_zero_tablevaluefactorsfactorization_product = ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_start * S ((S (0)) * ff_v_fsat_cancel_zero_tablevaluefactorsfactorization_product) + (1))) /\ ((((exists ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_terminal. ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_terminal + S (mt_index_cancel_zero_table) = S ((S (mv_factor_count_cancel_zero_tablevaluefactors)) * ff_v_fsat_cancel_zero_tablevaluefactorsfactorization_product)) /\ exists ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_terminal. ff_u_fsat_cancel_zero_tablevaluefactorsfactorization_product = ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_terminal * S ((S (mv_factor_count_cancel_zero_tablevaluefactors)) * ff_v_fsat_cancel_zero_tablevaluefactorsfactorization_product) + (mt_index_cancel_zero_table))) /\ forall ff_i_fsat_cancel_zero_tablevaluefactorsfactorization_product. (exists ff_lt_fsat_cancel_zero_tablevaluefactorsfactorization_product_bound. ff_lt_fsat_cancel_zero_tablevaluefactorsfactorization_product_bound + S ff_i_fsat_cancel_zero_tablevaluefactorsfactorization_product = mv_factor_count_cancel_zero_tablevaluefactors) -> exists ff_p_fsat_cancel_zero_tablevaluefactorsfactorization_product ff_r_fsat_cancel_zero_tablevaluefactorsfactorization_product ff_s_fsat_cancel_zero_tablevaluefactorsfactorization_product. ((((exists ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_factor. ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_factor + S (ff_p_fsat_cancel_zero_tablevaluefactorsfactorization_product) = S ((S (ff_i_fsat_cancel_zero_tablevaluefactorsfactorization_product)) * mv_factor_scale_cancel_zero_tablevaluefactors)) /\ exists ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_factor. mv_factor_code_cancel_zero_tablevaluefactors = ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_factor * S ((S (ff_i_fsat_cancel_zero_tablevaluefactorsfactorization_product)) * mv_factor_scale_cancel_zero_tablevaluefactors) + (ff_p_fsat_cancel_zero_tablevaluefactorsfactorization_product))) /\ ((((exists ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_partial. ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_partial + S (ff_r_fsat_cancel_zero_tablevaluefactorsfactorization_product) = S ((S (ff_i_fsat_cancel_zero_tablevaluefactorsfactorization_product)) * ff_v_fsat_cancel_zero_tablevaluefactorsfactorization_product)) /\ exists ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_partial. ff_u_fsat_cancel_zero_tablevaluefactorsfactorization_product = ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_partial * S ((S (ff_i_fsat_cancel_zero_tablevaluefactorsfactorization_product)) * ff_v_fsat_cancel_zero_tablevaluefactorsfactorization_product) + (ff_r_fsat_cancel_zero_tablevaluefactorsfactorization_product))) /\ ((((exists ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_successor. ff_h_fsat_cancel_zero_tablevaluefactorsfactorization_product_successor + S (ff_s_fsat_cancel_zero_tablevaluefactorsfactorization_product) = S ((S (S ff_i_fsat_cancel_zero_tablevaluefactorsfactorization_product)) * ff_v_fsat_cancel_zero_tablevaluefactorsfactorization_product)) /\ exists ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_successor. ff_u_fsat_cancel_zero_tablevaluefactorsfactorization_product = ff_q_fsat_cancel_zero_tablevaluefactorsfactorization_product_successor * S ((S (S ff_i_fsat_cancel_zero_tablevaluefactorsfactorization_product)) * ff_v_fsat_cancel_zero_tablevaluefactorsfactorization_product) + (ff_s_fsat_cancel_zero_tablevaluefactorsfactorization_product))) /\ ff_s_fsat_cancel_zero_tablevaluefactorsfactorization_product = ff_r_fsat_cancel_zero_tablevaluefactorsfactorization_product * ff_p_fsat_cancel_zero_tablevaluefactorsfactorization_product)))))) /\ (forall ftsf_index_fsat_cancel_zero_tablevaluefactorsfactorization_primes. (exists ftsf_gap_fsat_cancel_zero_tablevaluefactorsfactorization_primes_bound. ftsf_gap_fsat_cancel_zero_tablevaluefactorsfactorization_primes_bound + S ftsf_index_fsat_cancel_zero_tablevaluefactorsfactorization_primes = (mv_factor_count_cancel_zero_tablevaluefactors)) -> exists ftsf_factor_fsat_cancel_zero_tablevaluefactorsfactorization_primes. ((((exists ff_h_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_entry. ff_h_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_entry + S (ftsf_factor_fsat_cancel_zero_tablevaluefactorsfactorization_primes) = S ((S (ftsf_index_fsat_cancel_zero_tablevaluefactorsfactorization_primes)) * mv_factor_scale_cancel_zero_tablevaluefactors)) /\ exists ff_q_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_entry. mv_factor_code_cancel_zero_tablevaluefactors = ff_q_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_entry * S ((S (ftsf_index_fsat_cancel_zero_tablevaluefactorsfactorization_primes)) * mv_factor_scale_cancel_zero_tablevaluefactors) + (ftsf_factor_fsat_cancel_zero_tablevaluefactorsfactorization_primes))) /\ ((~(ftsf_factor_fsat_cancel_zero_tablevaluefactorsfactorization_primes = 1) /\ forall frm_prime_left_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_prime frm_prime_right_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_prime. ftsf_factor_fsat_cancel_zero_tablevaluefactorsfactorization_primes = frm_prime_left_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_prime * frm_prime_right_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_prime -> frm_prime_left_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_prime = 1 \/ frm_prime_right_ftsf_fsat_cancel_zero_tablevaluefactorsfactorization_primes_prime = 1))))))) /\ ((((exists mv_even_half_cancel_zero_tablevaluefactorsparityeven. (mv_factor_count_cancel_zero_tablevaluefactors) = 2 * mv_even_half_cancel_zero_tablevaluefactorsparityeven) /\ ((mt_value_cancel_zero_table) = 2))) \/ (((exists mv_odd_half_cancel_zero_tablevaluefactorsparityodd. (mv_factor_count_cancel_zero_tablevaluefactors) = 2 * mv_odd_half_cancel_zero_tablevaluefactorsparityodd + 1) /\ ((mt_value_cancel_zero_table) = 1)))))))))))))))) -> ~(n=0) -> ~(n=1) -> (exists pvs_le_gap_cancel_zero_bound. pvs_le_gap_cancel_zero_bound + (n) = (N)) -> (((~((n)=0)) /\ (exists dm_mask_table_cancel_zero_result. ((((exists dst_positive_code_cancel_zero_resultmasktable dst_positive_scale_cancel_zero_resultmasktable dst_negative_code_cancel_zero_resultmasktable dst_negative_scale_cancel_zero_resultmasktable. (((dm_mask_table_cancel_zero_result) = (((((dst_positive_code_cancel_zero_resultmasktable) + (dst_positive_scale_cancel_zero_resultmasktable)) * S ((dst_positive_code_cancel_zero_resultmasktable) + (dst_positive_scale_cancel_zero_resultmasktable)) + ((dst_positive_scale_cancel_zero_resultmasktable) + (dst_positive_scale_cancel_zero_resultmasktable))) + (((dst_negative_code_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)) * S ((dst_negative_code_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)) + ((dst_negative_scale_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)))) * S ((((dst_positive_code_cancel_zero_resultmasktable) + (dst_positive_scale_cancel_zero_resultmasktable)) * S ((dst_positive_code_cancel_zero_resultmasktable) + (dst_positive_scale_cancel_zero_resultmasktable)) + ((dst_positive_scale_cancel_zero_resultmasktable) + (dst_positive_scale_cancel_zero_resultmasktable))) + (((dst_negative_code_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)) * S ((dst_negative_code_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)) + ((dst_negative_scale_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)))) + ((((dst_negative_code_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)) * S ((dst_negative_code_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)) + ((dst_negative_scale_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable))) + (((dst_negative_code_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)) * S ((dst_negative_code_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)) + ((dst_negative_scale_cancel_zero_resultmasktable) + (dst_negative_scale_cancel_zero_resultmasktable)))))) /\ (forall dst_index_cancel_zero_resultmasktable. (exists pvs_le_gap_cancel_zero_resultmasktabledomain. pvs_le_gap_cancel_zero_resultmasktabledomain + (dst_index_cancel_zero_resultmasktable) = (n)) -> exists dst_positive_cancel_zero_resultmasktable dst_negative_cancel_zero_resultmasktable dst_value_cancel_zero_resultmasktable. ((((exists ff_h_pvs_cancel_zero_resultmasktableentrypositive. ff_h_pvs_cancel_zero_resultmasktableentrypositive + S (dst_positive_cancel_zero_resultmasktable) = S ((S (dst_index_cancel_zero_resultmasktable)) * dst_positive_scale_cancel_zero_resultmasktable)) /\ exists ff_q_pvs_cancel_zero_resultmasktableentrypositive. dst_positive_code_cancel_zero_resultmasktable = ff_q_pvs_cancel_zero_resultmasktableentrypositive * S ((S (dst_index_cancel_zero_resultmasktable)) * dst_positive_scale_cancel_zero_resultmasktable) + (dst_positive_cancel_zero_resultmasktable))) /\ (((((exists ff_h_pvs_cancel_zero_resultmasktableentrynegative. ff_h_pvs_cancel_zero_resultmasktableentrynegative + S (dst_negative_cancel_zero_resultmasktable) = S ((S (dst_index_cancel_zero_resultmasktable)) * dst_negative_scale_cancel_zero_resultmasktable)) /\ exists ff_q_pvs_cancel_zero_resultmasktableentrynegative. dst_negative_code_cancel_zero_resultmasktable = ff_q_pvs_cancel_zero_resultmasktableentrynegative * S ((S (dst_index_cancel_zero_resultmasktable)) * dst_negative_scale_cancel_zero_resultmasktable) + (dst_negative_cancel_zero_resultmasktable))) /\ (exists ge_balance_positive_cancel_zero_resultmasktableentryvalue ge_balance_negative_cancel_zero_resultmasktableentryvalue. (((((dst_value_cancel_zero_resultmasktable) = 2 * (ge_balance_positive_cancel_zero_resultmasktableentryvalue) /\ (ge_balance_negative_cancel_zero_resultmasktableentryvalue) = 0) \/ exists ge_signed_half_cancel_zero_resultmasktableentryvaluedecode. (((dst_value_cancel_zero_resultmasktable) = 2 * ge_signed_half_cancel_zero_resultmasktableentryvaluedecode + 1 /\ (ge_balance_positive_cancel_zero_resultmasktableentryvalue) = 0) /\ (ge_balance_negative_cancel_zero_resultmasktableentryvalue) = S ge_signed_half_cancel_zero_resultmasktableentryvaluedecode))) /\ ((dst_positive_cancel_zero_resultmasktable) + ge_balance_negative_cancel_zero_resultmasktableentryvalue = (dst_negative_cancel_zero_resultmasktable) + ge_balance_positive_cancel_zero_resultmasktableentryvalue))))))))) /\ (forall dm_index_cancel_zero_resultmask dm_value_cancel_zero_resultmask. (exists pvs_le_gap_cancel_zero_resultmaskdomain. pvs_le_gap_cancel_zero_resultmaskdomain + (dm_index_cancel_zero_resultmask) = (n)) -> (exists dst_positive_code_cancel_zero_resultmasklookup dst_positive_scale_cancel_zero_resultmasklookup dst_negative_code_cancel_zero_resultmasklookup dst_negative_scale_cancel_zero_resultmasklookup dst_positive_cancel_zero_resultmasklookup dst_negative_cancel_zero_resultmasklookup. (((dm_mask_table_cancel_zero_result) = (((((dst_positive_code_cancel_zero_resultmasklookup) + (dst_positive_scale_cancel_zero_resultmasklookup)) * S ((dst_positive_code_cancel_zero_resultmasklookup) + (dst_positive_scale_cancel_zero_resultmasklookup)) + ((dst_positive_scale_cancel_zero_resultmasklookup) + (dst_positive_scale_cancel_zero_resultmasklookup))) + (((dst_negative_code_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)) * S ((dst_negative_code_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)) + ((dst_negative_scale_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)))) * S ((((dst_positive_code_cancel_zero_resultmasklookup) + (dst_positive_scale_cancel_zero_resultmasklookup)) * S ((dst_positive_code_cancel_zero_resultmasklookup) + (dst_positive_scale_cancel_zero_resultmasklookup)) + ((dst_positive_scale_cancel_zero_resultmasklookup) + (dst_positive_scale_cancel_zero_resultmasklookup))) + (((dst_negative_code_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)) * S ((dst_negative_code_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)) + ((dst_negative_scale_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)))) + ((((dst_negative_code_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)) * S ((dst_negative_code_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)) + ((dst_negative_scale_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup))) + (((dst_negative_code_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)) * S ((dst_negative_code_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)) + ((dst_negative_scale_cancel_zero_resultmasklookup) + (dst_negative_scale_cancel_zero_resultmasklookup)))))) /\ (((((exists ff_h_pvs_cancel_zero_resultmasklookuppositive. ff_h_pvs_cancel_zero_resultmasklookuppositive + S (dst_positive_cancel_zero_resultmasklookup) = S ((S (dm_index_cancel_zero_resultmask)) * dst_positive_scale_cancel_zero_resultmasklookup)) /\ exists ff_q_pvs_cancel_zero_resultmasklookuppositive. dst_positive_code_cancel_zero_resultmasklookup = ff_q_pvs_cancel_zero_resultmasklookuppositive * S ((S (dm_index_cancel_zero_resultmask)) * dst_positive_scale_cancel_zero_resultmasklookup) + (dst_positive_cancel_zero_resultmasklookup))) /\ (((((exists ff_h_pvs_cancel_zero_resultmasklookupnegative. ff_h_pvs_cancel_zero_resultmasklookupnegative + S (dst_negative_cancel_zero_resultmasklookup) = S ((S (dm_index_cancel_zero_resultmask)) * dst_negative_scale_cancel_zero_resultmasklookup)) /\ exists ff_q_pvs_cancel_zero_resultmasklookupnegative. dst_negative_code_cancel_zero_resultmasklookup = ff_q_pvs_cancel_zero_resultmasklookupnegative * S ((S (dm_index_cancel_zero_resultmask)) * dst_negative_scale_cancel_zero_resultmasklookup) + (dst_negative_cancel_zero_resultmasklookup))) /\ (exists ge_balance_positive_cancel_zero_resultmasklookupvalue ge_balance_negative_cancel_zero_resultmasklookupvalue. (((((dm_value_cancel_zero_resultmask) = 2 * (ge_balance_positive_cancel_zero_resultmasklookupvalue) /\ (ge_balance_negative_cancel_zero_resultmasklookupvalue) = 0) \/ exists ge_signed_half_cancel_zero_resultmasklookupvaluedecode. (((dm_value_cancel_zero_resultmask) = 2 * ge_signed_half_cancel_zero_resultmasklookupvaluedecode + 1 /\ (ge_balance_positive_cancel_zero_resultmasklookupvalue) = 0) /\ (ge_balance_negative_cancel_zero_resultmasklookupvalue) = S ge_signed_half_cancel_zero_resultmasklookupvaluedecode))) /\ ((dst_positive_cancel_zero_resultmasklookup) + ge_balance_negative_cancel_zero_resultmasklookupvalue = (dst_negative_cancel_zero_resultmasklookup) + ge_balance_positive_cancel_zero_resultmasklookupvalue))))))))) -> ((((~((dm_index_cancel_zero_resultmask)=0)) /\ (exists dm_quotient_cancel_zero_resultmaskentry. (((n)=(dm_index_cancel_zero_resultmask)*dm_quotient_cancel_zero_resultmaskentry) /\ (exists dst_positive_code_cancel_zero_resultmaskentryinput dst_positive_scale_cancel_zero_resultmaskentryinput dst_negative_code_cancel_zero_resultmaskentryinput dst_negative_scale_cancel_zero_resultmaskentryinput dst_positive_cancel_zero_resultmaskentryinput dst_negative_cancel_zero_resultmaskentryinput. (((M) = (((((dst_positive_code_cancel_zero_resultmaskentryinput) + (dst_positive_scale_cancel_zero_resultmaskentryinput)) * S ((dst_positive_code_cancel_zero_resultmaskentryinput) + (dst_positive_scale_cancel_zero_resultmaskentryinput)) + ((dst_positive_scale_cancel_zero_resultmaskentryinput) + (dst_positive_scale_cancel_zero_resultmaskentryinput))) + (((dst_negative_code_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)) * S ((dst_negative_code_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)) + ((dst_negative_scale_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)))) * S ((((dst_positive_code_cancel_zero_resultmaskentryinput) + (dst_positive_scale_cancel_zero_resultmaskentryinput)) * S ((dst_positive_code_cancel_zero_resultmaskentryinput) + (dst_positive_scale_cancel_zero_resultmaskentryinput)) + ((dst_positive_scale_cancel_zero_resultmaskentryinput) + (dst_positive_scale_cancel_zero_resultmaskentryinput))) + (((dst_negative_code_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)) * S ((dst_negative_code_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)) + ((dst_negative_scale_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)))) + ((((dst_negative_code_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)) * S ((dst_negative_code_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)) + ((dst_negative_scale_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput))) + (((dst_negative_code_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)) * S ((dst_negative_code_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)) + ((dst_negative_scale_cancel_zero_resultmaskentryinput) + (dst_negative_scale_cancel_zero_resultmaskentryinput)))))) /\ (((((exists ff_h_pvs_cancel_zero_resultmaskentryinputpositive. ff_h_pvs_cancel_zero_resultmaskentryinputpositive + S (dst_positive_cancel_zero_resultmaskentryinput) = S ((S (dm_index_cancel_zero_resultmask)) * dst_positive_scale_cancel_zero_resultmaskentryinput)) /\ exists ff_q_pvs_cancel_zero_resultmaskentryinputpositive. dst_positive_code_cancel_zero_resultmaskentryinput = ff_q_pvs_cancel_zero_resultmaskentryinputpositive * S ((S (dm_index_cancel_zero_resultmask)) * dst_positive_scale_cancel_zero_resultmaskentryinput) + (dst_positive_cancel_zero_resultmaskentryinput))) /\ (((((exists ff_h_pvs_cancel_zero_resultmaskentryinputnegative. ff_h_pvs_cancel_zero_resultmaskentryinputnegative + S (dst_negative_cancel_zero_resultmaskentryinput) = S ((S (dm_index_cancel_zero_resultmask)) * dst_negative_scale_cancel_zero_resultmaskentryinput)) /\ exists ff_q_pvs_cancel_zero_resultmaskentryinputnegative. dst_negative_code_cancel_zero_resultmaskentryinput = ff_q_pvs_cancel_zero_resultmaskentryinputnegative * S ((S (dm_index_cancel_zero_resultmask)) * dst_negative_scale_cancel_zero_resultmaskentryinput) + (dst_negative_cancel_zero_resultmaskentryinput))) /\ (exists ge_balance_positive_cancel_zero_resultmaskentryinputvalue ge_balance_negative_cancel_zero_resultmaskentryinputvalue. (((((dm_value_cancel_zero_resultmask) = 2 * (ge_balance_positive_cancel_zero_resultmaskentryinputvalue) /\ (ge_balance_negative_cancel_zero_resultmaskentryinputvalue) = 0) \/ exists ge_signed_half_cancel_zero_resultmaskentryinputvaluedecode. (((dm_value_cancel_zero_resultmask) = 2 * ge_signed_half_cancel_zero_resultmaskentryinputvaluedecode + 1 /\ (ge_balance_positive_cancel_zero_resultmaskentryinputvalue) = 0) /\ (ge_balance_negative_cancel_zero_resultmaskentryinputvalue) = S ge_signed_half_cancel_zero_resultmaskentryinputvaluedecode))) /\ ((dst_positive_cancel_zero_resultmaskentryinput) + ge_balance_negative_cancel_zero_resultmaskentryinputvalue = (dst_negative_cancel_zero_resultmaskentryinput) + ge_balance_positive_cancel_zero_resultmaskentryinputvalue))))))))))))) \/ ((((dm_index_cancel_zero_resultmask)=0 \/ ~(exists pvs_factor_cancel_zero_resultmaskentrynondivisor. (n) = (dm_index_cancel_zero_resultmask) * pvs_factor_cancel_zero_resultmaskentrynondivisor)) /\ ((dm_value_cancel_zero_resultmask)=0))))))) /\ (exists dst_positive_code_cancel_zero_resultfold dst_positive_scale_cancel_zero_resultfold dst_negative_code_cancel_zero_resultfold dst_negative_scale_cancel_zero_resultfold dst_positive_sum_cancel_zero_resultfold dst_negative_sum_cancel_zero_resultfold. (((dm_mask_table_cancel_zero_result) = (((((dst_positive_code_cancel_zero_resultfold) + (dst_positive_scale_cancel_zero_resultfold)) * S ((dst_positive_code_cancel_zero_resultfold) + (dst_positive_scale_cancel_zero_resultfold)) + ((dst_positive_scale_cancel_zero_resultfold) + (dst_positive_scale_cancel_zero_resultfold))) + (((dst_negative_code_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)) * S ((dst_negative_code_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)) + ((dst_negative_scale_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)))) * S ((((dst_positive_code_cancel_zero_resultfold) + (dst_positive_scale_cancel_zero_resultfold)) * S ((dst_positive_code_cancel_zero_resultfold) + (dst_positive_scale_cancel_zero_resultfold)) + ((dst_positive_scale_cancel_zero_resultfold) + (dst_positive_scale_cancel_zero_resultfold))) + (((dst_negative_code_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)) * S ((dst_negative_code_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)) + ((dst_negative_scale_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)))) + ((((dst_negative_code_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)) * S ((dst_negative_code_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)) + ((dst_negative_scale_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold))) + (((dst_negative_code_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)) * S ((dst_negative_code_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)) + ((dst_negative_scale_cancel_zero_resultfold) + (dst_negative_scale_cancel_zero_resultfold)))))) /\ (((exists fs_u_dst_cancel_zero_resultfoldpositive fs_v_dst_cancel_zero_resultfoldpositive. ((((exists fs_h_dst_cancel_zero_resultfoldpositive_body_start. fs_h_dst_cancel_zero_resultfoldpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_cancel_zero_resultfoldpositive)) /\ exists fs_q_dst_cancel_zero_resultfoldpositive_body_start. fs_u_dst_cancel_zero_resultfoldpositive = fs_q_dst_cancel_zero_resultfoldpositive_body_start * S ((S (0)) * fs_v_dst_cancel_zero_resultfoldpositive) + (0))) /\ ((((exists fs_h_dst_cancel_zero_resultfoldpositive_body_terminal. fs_h_dst_cancel_zero_resultfoldpositive_body_terminal + S (dst_positive_sum_cancel_zero_resultfold) = S ((S (S (n))) * fs_v_dst_cancel_zero_resultfoldpositive)) /\ exists fs_q_dst_cancel_zero_resultfoldpositive_body_terminal. fs_u_dst_cancel_zero_resultfoldpositive = fs_q_dst_cancel_zero_resultfoldpositive_body_terminal * S ((S (S (n))) * fs_v_dst_cancel_zero_resultfoldpositive) + (dst_positive_sum_cancel_zero_resultfold))) /\ forall fs_i_dst_cancel_zero_resultfoldpositive_body_steps. (exists fs_lt_dst_cancel_zero_resultfoldpositive_body_steps_bound. fs_lt_dst_cancel_zero_resultfoldpositive_body_steps_bound + S fs_i_dst_cancel_zero_resultfoldpositive_body_steps = S (n)) -> exists fs_a_dst_cancel_zero_resultfoldpositive_body_steps fs_r_dst_cancel_zero_resultfoldpositive_body_steps fs_s_dst_cancel_zero_resultfoldpositive_body_steps. ((((exists fs_h_dst_cancel_zero_resultfoldpositive_body_steps_summand. fs_h_dst_cancel_zero_resultfoldpositive_body_steps_summand + S (fs_a_dst_cancel_zero_resultfoldpositive_body_steps) = S ((S (fs_i_dst_cancel_zero_resultfoldpositive_body_steps)) * dst_positive_scale_cancel_zero_resultfold)) /\ exists fs_q_dst_cancel_zero_resultfoldpositive_body_steps_summand. dst_positive_code_cancel_zero_resultfold = fs_q_dst_cancel_zero_resultfoldpositive_body_steps_summand * S ((S (fs_i_dst_cancel_zero_resultfoldpositive_body_steps)) * dst_positive_scale_cancel_zero_resultfold) + (fs_a_dst_cancel_zero_resultfoldpositive_body_steps))) /\ ((((exists fs_h_dst_cancel_zero_resultfoldpositive_body_steps_partial. fs_h_dst_cancel_zero_resultfoldpositive_body_steps_partial + S (fs_r_dst_cancel_zero_resultfoldpositive_body_steps) = S ((S (fs_i_dst_cancel_zero_resultfoldpositive_body_steps)) * fs_v_dst_cancel_zero_resultfoldpositive)) /\ exists fs_q_dst_cancel_zero_resultfoldpositive_body_steps_partial. fs_u_dst_cancel_zero_resultfoldpositive = fs_q_dst_cancel_zero_resultfoldpositive_body_steps_partial * S ((S (fs_i_dst_cancel_zero_resultfoldpositive_body_steps)) * fs_v_dst_cancel_zero_resultfoldpositive) + (fs_r_dst_cancel_zero_resultfoldpositive_body_steps))) /\ ((((exists fs_h_dst_cancel_zero_resultfoldpositive_body_steps_successor. fs_h_dst_cancel_zero_resultfoldpositive_body_steps_successor + S (fs_s_dst_cancel_zero_resultfoldpositive_body_steps) = S ((S (S fs_i_dst_cancel_zero_resultfoldpositive_body_steps)) * fs_v_dst_cancel_zero_resultfoldpositive)) /\ exists fs_q_dst_cancel_zero_resultfoldpositive_body_steps_successor. fs_u_dst_cancel_zero_resultfoldpositive = fs_q_dst_cancel_zero_resultfoldpositive_body_steps_successor * S ((S (S fs_i_dst_cancel_zero_resultfoldpositive_body_steps)) * fs_v_dst_cancel_zero_resultfoldpositive) + (fs_s_dst_cancel_zero_resultfoldpositive_body_steps))) /\ fs_s_dst_cancel_zero_resultfoldpositive_body_steps = fs_r_dst_cancel_zero_resultfoldpositive_body_steps + fs_a_dst_cancel_zero_resultfoldpositive_body_steps)))))) /\ (((exists fs_u_dst_cancel_zero_resultfoldnegative fs_v_dst_cancel_zero_resultfoldnegative. ((((exists fs_h_dst_cancel_zero_resultfoldnegative_body_start. fs_h_dst_cancel_zero_resultfoldnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_cancel_zero_resultfoldnegative)) /\ exists fs_q_dst_cancel_zero_resultfoldnegative_body_start. fs_u_dst_cancel_zero_resultfoldnegative = fs_q_dst_cancel_zero_resultfoldnegative_body_start * S ((S (0)) * fs_v_dst_cancel_zero_resultfoldnegative) + (0))) /\ ((((exists fs_h_dst_cancel_zero_resultfoldnegative_body_terminal. fs_h_dst_cancel_zero_resultfoldnegative_body_terminal + S (dst_negative_sum_cancel_zero_resultfold) = S ((S (S (n))) * fs_v_dst_cancel_zero_resultfoldnegative)) /\ exists fs_q_dst_cancel_zero_resultfoldnegative_body_terminal. fs_u_dst_cancel_zero_resultfoldnegative = fs_q_dst_cancel_zero_resultfoldnegative_body_terminal * S ((S (S (n))) * fs_v_dst_cancel_zero_resultfoldnegative) + (dst_negative_sum_cancel_zero_resultfold))) /\ forall fs_i_dst_cancel_zero_resultfoldnegative_body_steps. (exists fs_lt_dst_cancel_zero_resultfoldnegative_body_steps_bound. fs_lt_dst_cancel_zero_resultfoldnegative_body_steps_bound + S fs_i_dst_cancel_zero_resultfoldnegative_body_steps = S (n)) -> exists fs_a_dst_cancel_zero_resultfoldnegative_body_steps fs_r_dst_cancel_zero_resultfoldnegative_body_steps fs_s_dst_cancel_zero_resultfoldnegative_body_steps. ((((exists fs_h_dst_cancel_zero_resultfoldnegative_body_steps_summand. fs_h_dst_cancel_zero_resultfoldnegative_body_steps_summand + S (fs_a_dst_cancel_zero_resultfoldnegative_body_steps) = S ((S (fs_i_dst_cancel_zero_resultfoldnegative_body_steps)) * dst_negative_scale_cancel_zero_resultfold)) /\ exists fs_q_dst_cancel_zero_resultfoldnegative_body_steps_summand. dst_negative_code_cancel_zero_resultfold = fs_q_dst_cancel_zero_resultfoldnegative_body_steps_summand * S ((S (fs_i_dst_cancel_zero_resultfoldnegative_body_steps)) * dst_negative_scale_cancel_zero_resultfold) + (fs_a_dst_cancel_zero_resultfoldnegative_body_steps))) /\ ((((exists fs_h_dst_cancel_zero_resultfoldnegative_body_steps_partial. fs_h_dst_cancel_zero_resultfoldnegative_body_steps_partial + S (fs_r_dst_cancel_zero_resultfoldnegative_body_steps) = S ((S (fs_i_dst_cancel_zero_resultfoldnegative_body_steps)) * fs_v_dst_cancel_zero_resultfoldnegative)) /\ exists fs_q_dst_cancel_zero_resultfoldnegative_body_steps_partial. fs_u_dst_cancel_zero_resultfoldnegative = fs_q_dst_cancel_zero_resultfoldnegative_body_steps_partial * S ((S (fs_i_dst_cancel_zero_resultfoldnegative_body_steps)) * fs_v_dst_cancel_zero_resultfoldnegative) + (fs_r_dst_cancel_zero_resultfoldnegative_body_steps))) /\ ((((exists fs_h_dst_cancel_zero_resultfoldnegative_body_steps_successor. fs_h_dst_cancel_zero_resultfoldnegative_body_steps_successor + S (fs_s_dst_cancel_zero_resultfoldnegative_body_steps) = S ((S (S fs_i_dst_cancel_zero_resultfoldnegative_body_steps)) * fs_v_dst_cancel_zero_resultfoldnegative)) /\ exists fs_q_dst_cancel_zero_resultfoldnegative_body_steps_successor. fs_u_dst_cancel_zero_resultfoldnegative = fs_q_dst_cancel_zero_resultfoldnegative_body_steps_successor * S ((S (S fs_i_dst_cancel_zero_resultfoldnegative_body_steps)) * fs_v_dst_cancel_zero_resultfoldnegative) + (fs_s_dst_cancel_zero_resultfoldnegative_body_steps))) /\ fs_s_dst_cancel_zero_resultfoldnegative_body_steps = fs_r_dst_cancel_zero_resultfoldnegative_body_steps + fs_a_dst_cancel_zero_resultfoldnegative_body_steps)))))) /\ (exists ge_balance_positive_cancel_zero_resultfoldresult ge_balance_negative_cancel_zero_resultfoldresult. (((((0) = 2 * (ge_balance_positive_cancel_zero_resultfoldresult) /\ (ge_balance_negative_cancel_zero_resultfoldresult) = 0) \/ exists ge_signed_half_cancel_zero_resultfoldresultdecode. (((0) = 2 * ge_signed_half_cancel_zero_resultfoldresultdecode + 1 /\ (ge_balance_positive_cancel_zero_resultfoldresult) = 0) /\ (ge_balance_negative_cancel_zero_resultfoldresult) = S ge_signed_half_cancel_zero_resultfoldresultdecode))) /\ ((dst_positive_sum_cancel_zero_resultfold) + ge_balance_negative_cancel_zero_resultfoldresult = (dst_negative_sum_cancel_zero_resultfold) + ge_balance_positive_cancel_zero_resultfoldresult)))))))))))))

Complete tactic proof in conservative notation

All 32 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

32 script commands · 8 reading checkpoints · 2 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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (1)
01Fix variables and assumptionsL1–7

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

  1. L1
    intro N
  2. L2
    intro M
  3. L3
    intro n
  4. L4
    intro hmu
  5. L5
    intro hn
  6. L6
    intro hne
  7. L7
    intro hN
02Separate the logical casesL8–9

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

  1. L8
    cases hmu
  2. L9
    cases hmu_right
03Establish hsL10–17

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

  1. L10
    have hs : ∃ z. DivisorSum(M,n,z)Definitions: DivisorSum(M,n,z)Original native command in the exact edition
  2. L11
    specialize signed_divisor_sum_exists (N)
  3. L12
    specialize signed_divisor_sum_exists (M)
  4. L13
    specialize signed_divisor_sum_exists (n)
  5. L14
    apply signed_divisor_sum_exists
  6. L15
    exact hmu_left
  7. L16
    exact hn
  8. L17
    exact hN
04Separate the logical casesL18–18

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

  1. L18
    cases hs
05Establish heqL19–28

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mobius divisor sum nonunit value zero.

  1. L19
    have heq : x=0
  2. L20
    specialize mobius_divisor_sum_nonunit_value_zero (N)
  3. L21
    specialize mobius_divisor_sum_nonunit_value_zero (M)
  4. L22
    specialize mobius_divisor_sum_nonunit_value_zero (n)
  5. L23
    specialize mobius_divisor_sum_nonunit_value_zero (x)
  6. L24
    apply mobius_divisor_sum_nonunit_value_zero
  7. L25
    exact hmu
  8. L26
    exact hn
  9. L27
    exact hne
  10. L28
    exact hN
06Use earlier factsL29–29

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

  1. L29
    exact hs_witness
07Calculate and transport equalitiesL30–31

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L30
    rewrite heq at hs_witness
  2. L31
    rewrite heq at hs_witness
08Use earlier factsL32–32

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

  1. L32
    exact hs_witness

Library-wide reading audit

Original defined command ledger · 32 lines
  1. 0001intro N
  2. 0002intro M
  3. 0003intro n
  4. 0004intro hmu
  5. 0005intro hn
  6. 0006intro hne
  7. 0007intro hN
  8. 0008cases hmu
  9. 0009cases hmu_right
  10. 0010have hs : ∃ z. DivisorSum(M,n,z)
  11. 0011specialize signed_divisor_sum_exists (N)
  12. 0012specialize signed_divisor_sum_exists (M)
  13. 0013specialize signed_divisor_sum_exists (n)
  14. 0014apply signed_divisor_sum_exists
  15. 0015exact hmu_left
  16. 0016exact hn
  17. 0017exact hN
  18. 0018cases hs
  19. 0019have heq : x=0
  20. 0020specialize mobius_divisor_sum_nonunit_value_zero (N)
  21. 0021specialize mobius_divisor_sum_nonunit_value_zero (M)
  22. 0022specialize mobius_divisor_sum_nonunit_value_zero (n)
  23. 0023specialize mobius_divisor_sum_nonunit_value_zero (x)
  24. 0024apply mobius_divisor_sum_nonunit_value_zero
  25. 0025exact hmu
  26. 0026exact hn
  27. 0027exact hne
  28. 0028exact hN
  29. 0029exact hs_witness
  30. 0030rewrite heq at hs_witness
  31. 0031rewrite heq at hs_witness
  32. 0032exact hs_witness