Exact expanded first-order arithmetic statement
forall F l z. (exists dst_positive_code_decomp_sum dst_positive_scale_decomp_sum dst_negative_code_decomp_sum dst_negative_scale_decomp_sum dst_positive_sum_decomp_sum dst_negative_sum_decomp_sum. (((F) = (((((dst_positive_code_decomp_sum) + (dst_positive_scale_decomp_sum)) * S ((dst_positive_code_decomp_sum) + (dst_positive_scale_decomp_sum)) + ((dst_positive_scale_decomp_sum) + (dst_positive_scale_decomp_sum))) + (((dst_negative_code_decomp_sum) + (dst_negative_scale_decomp_sum)) * S ((dst_negative_code_decomp_sum) + (dst_negative_scale_decomp_sum)) + ((dst_negative_scale_decomp_sum) + (dst_negative_scale_decomp_sum)))) * S ((((dst_positive_code_decomp_sum) + (dst_positive_scale_decomp_sum)) * S ((dst_positive_code_decomp_sum) + (dst_positive_scale_decomp_sum)) + ((dst_positive_scale_decomp_sum) + (dst_positive_scale_decomp_sum))) + (((dst_negative_code_decomp_sum) + (dst_negative_scale_decomp_sum)) * S ((dst_negative_code_decomp_sum) + (dst_negative_scale_decomp_sum)) + ((dst_negative_scale_decomp_sum) + (dst_negative_scale_decomp_sum)))) + ((((dst_negative_code_decomp_sum) + (dst_negative_scale_decomp_sum)) * S ((dst_negative_code_decomp_sum) + (dst_negative_scale_decomp_sum)) + ((dst_negative_scale_decomp_sum) + (dst_negative_scale_decomp_sum))) + (((dst_negative_code_decomp_sum) + (dst_negative_scale_decomp_sum)) * S ((dst_negative_code_decomp_sum) + (dst_negative_scale_decomp_sum)) + ((dst_negative_scale_decomp_sum) + (dst_negative_scale_decomp_sum)))))) /\ (((exists fs_u_dst_decomp_sumpositive fs_v_dst_decomp_sumpositive. ((((exists fs_h_dst_decomp_sumpositive_body_start. fs_h_dst_decomp_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_decomp_sumpositive)) /\ exists fs_q_dst_decomp_sumpositive_body_start. fs_u_dst_decomp_sumpositive = fs_q_dst_decomp_sumpositive_body_start * S ((S (0)) * fs_v_dst_decomp_sumpositive) + (0))) /\ ((((exists fs_h_dst_decomp_sumpositive_body_terminal. fs_h_dst_decomp_sumpositive_body_terminal + S (dst_positive_sum_decomp_sum) = S ((S (S l)) * fs_v_dst_decomp_sumpositive)) /\ exists fs_q_dst_decomp_sumpositive_body_terminal. fs_u_dst_decomp_sumpositive = fs_q_dst_decomp_sumpositive_body_terminal * S ((S (S l)) * fs_v_dst_decomp_sumpositive) + (dst_positive_sum_decomp_sum))) /\ forall fs_i_dst_decomp_sumpositive_body_steps. (exists fs_lt_dst_decomp_sumpositive_body_steps_bound. fs_lt_dst_decomp_sumpositive_body_steps_bound + S fs_i_dst_decomp_sumpositive_body_steps = S l) -> exists fs_a_dst_decomp_sumpositive_body_steps fs_r_dst_decomp_sumpositive_body_steps fs_s_dst_decomp_sumpositive_body_steps. ((((exists fs_h_dst_decomp_sumpositive_body_steps_summand. fs_h_dst_decomp_sumpositive_body_steps_summand + S (fs_a_dst_decomp_sumpositive_body_steps) = S ((S (fs_i_dst_decomp_sumpositive_body_steps)) * dst_positive_scale_decomp_sum)) /\ exists fs_q_dst_decomp_sumpositive_body_steps_summand. dst_positive_code_decomp_sum = fs_q_dst_decomp_sumpositive_body_steps_summand * S ((S (fs_i_dst_decomp_sumpositive_body_steps)) * dst_positive_scale_decomp_sum) + (fs_a_dst_decomp_sumpositive_body_steps))) /\ ((((exists fs_h_dst_decomp_sumpositive_body_steps_partial. fs_h_dst_decomp_sumpositive_body_steps_partial + S (fs_r_dst_decomp_sumpositive_body_steps) = S ((S (fs_i_dst_decomp_sumpositive_body_steps)) * fs_v_dst_decomp_sumpositive)) /\ exists fs_q_dst_decomp_sumpositive_body_steps_partial. fs_u_dst_decomp_sumpositive = fs_q_dst_decomp_sumpositive_body_steps_partial * S ((S (fs_i_dst_decomp_sumpositive_body_steps)) * fs_v_dst_decomp_sumpositive) + (fs_r_dst_decomp_sumpositive_body_steps))) /\ ((((exists fs_h_dst_decomp_sumpositive_body_steps_successor. fs_h_dst_decomp_sumpositive_body_steps_successor + S (fs_s_dst_decomp_sumpositive_body_steps) = S ((S (S fs_i_dst_decomp_sumpositive_body_steps)) * fs_v_dst_decomp_sumpositive)) /\ exists fs_q_dst_decomp_sumpositive_body_steps_successor. fs_u_dst_decomp_sumpositive = fs_q_dst_decomp_sumpositive_body_steps_successor * S ((S (S fs_i_dst_decomp_sumpositive_body_steps)) * fs_v_dst_decomp_sumpositive) + (fs_s_dst_decomp_sumpositive_body_steps))) /\ fs_s_dst_decomp_sumpositive_body_steps = fs_r_dst_decomp_sumpositive_body_steps + fs_a_dst_decomp_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_decomp_sumnegative fs_v_dst_decomp_sumnegative. ((((exists fs_h_dst_decomp_sumnegative_body_start. fs_h_dst_decomp_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_decomp_sumnegative)) /\ exists fs_q_dst_decomp_sumnegative_body_start. fs_u_dst_decomp_sumnegative = fs_q_dst_decomp_sumnegative_body_start * S ((S (0)) * fs_v_dst_decomp_sumnegative) + (0))) /\ ((((exists fs_h_dst_decomp_sumnegative_body_terminal. fs_h_dst_decomp_sumnegative_body_terminal + S (dst_negative_sum_decomp_sum) = S ((S (S l)) * fs_v_dst_decomp_sumnegative)) /\ exists fs_q_dst_decomp_sumnegative_body_terminal. fs_u_dst_decomp_sumnegative = fs_q_dst_decomp_sumnegative_body_terminal * S ((S (S l)) * fs_v_dst_decomp_sumnegative) + (dst_negative_sum_decomp_sum))) /\ forall fs_i_dst_decomp_sumnegative_body_steps. (exists fs_lt_dst_decomp_sumnegative_body_steps_bound. fs_lt_dst_decomp_sumnegative_body_steps_bound + S fs_i_dst_decomp_sumnegative_body_steps = S l) -> exists fs_a_dst_decomp_sumnegative_body_steps fs_r_dst_decomp_sumnegative_body_steps fs_s_dst_decomp_sumnegative_body_steps. ((((exists fs_h_dst_decomp_sumnegative_body_steps_summand. fs_h_dst_decomp_sumnegative_body_steps_summand + S (fs_a_dst_decomp_sumnegative_body_steps) = S ((S (fs_i_dst_decomp_sumnegative_body_steps)) * dst_negative_scale_decomp_sum)) /\ exists fs_q_dst_decomp_sumnegative_body_steps_summand. dst_negative_code_decomp_sum = fs_q_dst_decomp_sumnegative_body_steps_summand * S ((S (fs_i_dst_decomp_sumnegative_body_steps)) * dst_negative_scale_decomp_sum) + (fs_a_dst_decomp_sumnegative_body_steps))) /\ ((((exists fs_h_dst_decomp_sumnegative_body_steps_partial. fs_h_dst_decomp_sumnegative_body_steps_partial + S (fs_r_dst_decomp_sumnegative_body_steps) = S ((S (fs_i_dst_decomp_sumnegative_body_steps)) * fs_v_dst_decomp_sumnegative)) /\ exists fs_q_dst_decomp_sumnegative_body_steps_partial. fs_u_dst_decomp_sumnegative = fs_q_dst_decomp_sumnegative_body_steps_partial * S ((S (fs_i_dst_decomp_sumnegative_body_steps)) * fs_v_dst_decomp_sumnegative) + (fs_r_dst_decomp_sumnegative_body_steps))) /\ ((((exists fs_h_dst_decomp_sumnegative_body_steps_successor. fs_h_dst_decomp_sumnegative_body_steps_successor + S (fs_s_dst_decomp_sumnegative_body_steps) = S ((S (S fs_i_dst_decomp_sumnegative_body_steps)) * fs_v_dst_decomp_sumnegative)) /\ exists fs_q_dst_decomp_sumnegative_body_steps_successor. fs_u_dst_decomp_sumnegative = fs_q_dst_decomp_sumnegative_body_steps_successor * S ((S (S fs_i_dst_decomp_sumnegative_body_steps)) * fs_v_dst_decomp_sumnegative) + (fs_s_dst_decomp_sumnegative_body_steps))) /\ fs_s_dst_decomp_sumnegative_body_steps = fs_r_dst_decomp_sumnegative_body_steps + fs_a_dst_decomp_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_decomp_sumresult ge_balance_negative_decomp_sumresult. (((((z) = 2 * (ge_balance_positive_decomp_sumresult) /\ (ge_balance_negative_decomp_sumresult) = 0) \/ exists ge_signed_half_decomp_sumresultdecode. (((z) = 2 * ge_signed_half_decomp_sumresultdecode + 1 /\ (ge_balance_positive_decomp_sumresult) = 0) /\ (ge_balance_negative_decomp_sumresult) = S ge_signed_half_decomp_sumresultdecode))) /\ ((dst_positive_sum_decomp_sum) + ge_balance_negative_decomp_sumresult = (dst_negative_sum_decomp_sum) + ge_balance_positive_decomp_sumresult))))))))) -> exists a b. ((exists dst_positive_code_decomp_prefix dst_positive_scale_decomp_prefix dst_negative_code_decomp_prefix dst_negative_scale_decomp_prefix dst_positive_sum_decomp_prefix dst_negative_sum_decomp_prefix. (((F) = (((((dst_positive_code_decomp_prefix) + (dst_positive_scale_decomp_prefix)) * S ((dst_positive_code_decomp_prefix) + (dst_positive_scale_decomp_prefix)) + ((dst_positive_scale_decomp_prefix) + (dst_positive_scale_decomp_prefix))) + (((dst_negative_code_decomp_prefix) + (dst_negative_scale_decomp_prefix)) * S ((dst_negative_code_decomp_prefix) + (dst_negative_scale_decomp_prefix)) + ((dst_negative_scale_decomp_prefix) + (dst_negative_scale_decomp_prefix)))) * S ((((dst_positive_code_decomp_prefix) + (dst_positive_scale_decomp_prefix)) * S ((dst_positive_code_decomp_prefix) + (dst_positive_scale_decomp_prefix)) + ((dst_positive_scale_decomp_prefix) + (dst_positive_scale_decomp_prefix))) + (((dst_negative_code_decomp_prefix) + (dst_negative_scale_decomp_prefix)) * S ((dst_negative_code_decomp_prefix) + (dst_negative_scale_decomp_prefix)) + ((dst_negative_scale_decomp_prefix) + (dst_negative_scale_decomp_prefix)))) + ((((dst_negative_code_decomp_prefix) + (dst_negative_scale_decomp_prefix)) * S ((dst_negative_code_decomp_prefix) + (dst_negative_scale_decomp_prefix)) + ((dst_negative_scale_decomp_prefix) + (dst_negative_scale_decomp_prefix))) + (((dst_negative_code_decomp_prefix) + (dst_negative_scale_decomp_prefix)) * S ((dst_negative_code_decomp_prefix) + (dst_negative_scale_decomp_prefix)) + ((dst_negative_scale_decomp_prefix) + (dst_negative_scale_decomp_prefix)))))) /\ (((exists fs_u_dst_decomp_prefixpositive fs_v_dst_decomp_prefixpositive. ((((exists fs_h_dst_decomp_prefixpositive_body_start. fs_h_dst_decomp_prefixpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_decomp_prefixpositive)) /\ exists fs_q_dst_decomp_prefixpositive_body_start. fs_u_dst_decomp_prefixpositive = fs_q_dst_decomp_prefixpositive_body_start * S ((S (0)) * fs_v_dst_decomp_prefixpositive) + (0))) /\ ((((exists fs_h_dst_decomp_prefixpositive_body_terminal. fs_h_dst_decomp_prefixpositive_body_terminal + S (dst_positive_sum_decomp_prefix) = S ((S (l)) * fs_v_dst_decomp_prefixpositive)) /\ exists fs_q_dst_decomp_prefixpositive_body_terminal. fs_u_dst_decomp_prefixpositive = fs_q_dst_decomp_prefixpositive_body_terminal * S ((S (l)) * fs_v_dst_decomp_prefixpositive) + (dst_positive_sum_decomp_prefix))) /\ forall fs_i_dst_decomp_prefixpositive_body_steps. (exists fs_lt_dst_decomp_prefixpositive_body_steps_bound. fs_lt_dst_decomp_prefixpositive_body_steps_bound + S fs_i_dst_decomp_prefixpositive_body_steps = l) -> exists fs_a_dst_decomp_prefixpositive_body_steps fs_r_dst_decomp_prefixpositive_body_steps fs_s_dst_decomp_prefixpositive_body_steps. ((((exists fs_h_dst_decomp_prefixpositive_body_steps_summand. fs_h_dst_decomp_prefixpositive_body_steps_summand + S (fs_a_dst_decomp_prefixpositive_body_steps) = S ((S (fs_i_dst_decomp_prefixpositive_body_steps)) * dst_positive_scale_decomp_prefix)) /\ exists fs_q_dst_decomp_prefixpositive_body_steps_summand. dst_positive_code_decomp_prefix = fs_q_dst_decomp_prefixpositive_body_steps_summand * S ((S (fs_i_dst_decomp_prefixpositive_body_steps)) * dst_positive_scale_decomp_prefix) + (fs_a_dst_decomp_prefixpositive_body_steps))) /\ ((((exists fs_h_dst_decomp_prefixpositive_body_steps_partial. fs_h_dst_decomp_prefixpositive_body_steps_partial + S (fs_r_dst_decomp_prefixpositive_body_steps) = S ((S (fs_i_dst_decomp_prefixpositive_body_steps)) * fs_v_dst_decomp_prefixpositive)) /\ exists fs_q_dst_decomp_prefixpositive_body_steps_partial. fs_u_dst_decomp_prefixpositive = fs_q_dst_decomp_prefixpositive_body_steps_partial * S ((S (fs_i_dst_decomp_prefixpositive_body_steps)) * fs_v_dst_decomp_prefixpositive) + (fs_r_dst_decomp_prefixpositive_body_steps))) /\ ((((exists fs_h_dst_decomp_prefixpositive_body_steps_successor. fs_h_dst_decomp_prefixpositive_body_steps_successor + S (fs_s_dst_decomp_prefixpositive_body_steps) = S ((S (S fs_i_dst_decomp_prefixpositive_body_steps)) * fs_v_dst_decomp_prefixpositive)) /\ exists fs_q_dst_decomp_prefixpositive_body_steps_successor. fs_u_dst_decomp_prefixpositive = fs_q_dst_decomp_prefixpositive_body_steps_successor * S ((S (S fs_i_dst_decomp_prefixpositive_body_steps)) * fs_v_dst_decomp_prefixpositive) + (fs_s_dst_decomp_prefixpositive_body_steps))) /\ fs_s_dst_decomp_prefixpositive_body_steps = fs_r_dst_decomp_prefixpositive_body_steps + fs_a_dst_decomp_prefixpositive_body_steps)))))) /\ (((exists fs_u_dst_decomp_prefixnegative fs_v_dst_decomp_prefixnegative. ((((exists fs_h_dst_decomp_prefixnegative_body_start. fs_h_dst_decomp_prefixnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_decomp_prefixnegative)) /\ exists fs_q_dst_decomp_prefixnegative_body_start. fs_u_dst_decomp_prefixnegative = fs_q_dst_decomp_prefixnegative_body_start * S ((S (0)) * fs_v_dst_decomp_prefixnegative) + (0))) /\ ((((exists fs_h_dst_decomp_prefixnegative_body_terminal. fs_h_dst_decomp_prefixnegative_body_terminal + S (dst_negative_sum_decomp_prefix) = S ((S (l)) * fs_v_dst_decomp_prefixnegative)) /\ exists fs_q_dst_decomp_prefixnegative_body_terminal. fs_u_dst_decomp_prefixnegative = fs_q_dst_decomp_prefixnegative_body_terminal * S ((S (l)) * fs_v_dst_decomp_prefixnegative) + (dst_negative_sum_decomp_prefix))) /\ forall fs_i_dst_decomp_prefixnegative_body_steps. (exists fs_lt_dst_decomp_prefixnegative_body_steps_bound. fs_lt_dst_decomp_prefixnegative_body_steps_bound + S fs_i_dst_decomp_prefixnegative_body_steps = l) -> exists fs_a_dst_decomp_prefixnegative_body_steps fs_r_dst_decomp_prefixnegative_body_steps fs_s_dst_decomp_prefixnegative_body_steps. ((((exists fs_h_dst_decomp_prefixnegative_body_steps_summand. fs_h_dst_decomp_prefixnegative_body_steps_summand + S (fs_a_dst_decomp_prefixnegative_body_steps) = S ((S (fs_i_dst_decomp_prefixnegative_body_steps)) * dst_negative_scale_decomp_prefix)) /\ exists fs_q_dst_decomp_prefixnegative_body_steps_summand. dst_negative_code_decomp_prefix = fs_q_dst_decomp_prefixnegative_body_steps_summand * S ((S (fs_i_dst_decomp_prefixnegative_body_steps)) * dst_negative_scale_decomp_prefix) + (fs_a_dst_decomp_prefixnegative_body_steps))) /\ ((((exists fs_h_dst_decomp_prefixnegative_body_steps_partial. fs_h_dst_decomp_prefixnegative_body_steps_partial + S (fs_r_dst_decomp_prefixnegative_body_steps) = S ((S (fs_i_dst_decomp_prefixnegative_body_steps)) * fs_v_dst_decomp_prefixnegative)) /\ exists fs_q_dst_decomp_prefixnegative_body_steps_partial. fs_u_dst_decomp_prefixnegative = fs_q_dst_decomp_prefixnegative_body_steps_partial * S ((S (fs_i_dst_decomp_prefixnegative_body_steps)) * fs_v_dst_decomp_prefixnegative) + (fs_r_dst_decomp_prefixnegative_body_steps))) /\ ((((exists fs_h_dst_decomp_prefixnegative_body_steps_successor. fs_h_dst_decomp_prefixnegative_body_steps_successor + S (fs_s_dst_decomp_prefixnegative_body_steps) = S ((S (S fs_i_dst_decomp_prefixnegative_body_steps)) * fs_v_dst_decomp_prefixnegative)) /\ exists fs_q_dst_decomp_prefixnegative_body_steps_successor. fs_u_dst_decomp_prefixnegative = fs_q_dst_decomp_prefixnegative_body_steps_successor * S ((S (S fs_i_dst_decomp_prefixnegative_body_steps)) * fs_v_dst_decomp_prefixnegative) + (fs_s_dst_decomp_prefixnegative_body_steps))) /\ fs_s_dst_decomp_prefixnegative_body_steps = fs_r_dst_decomp_prefixnegative_body_steps + fs_a_dst_decomp_prefixnegative_body_steps)))))) /\ (exists ge_balance_positive_decomp_prefixresult ge_balance_negative_decomp_prefixresult. (((((a) = 2 * (ge_balance_positive_decomp_prefixresult) /\ (ge_balance_negative_decomp_prefixresult) = 0) \/ exists ge_signed_half_decomp_prefixresultdecode. (((a) = 2 * ge_signed_half_decomp_prefixresultdecode + 1 /\ (ge_balance_positive_decomp_prefixresult) = 0) /\ (ge_balance_negative_decomp_prefixresult) = S ge_signed_half_decomp_prefixresultdecode))) /\ ((dst_positive_sum_decomp_prefix) + ge_balance_negative_decomp_prefixresult = (dst_negative_sum_decomp_prefix) + ge_balance_positive_decomp_prefixresult))))))))) /\ (((exists dst_positive_code_decomp_entry dst_positive_scale_decomp_entry dst_negative_code_decomp_entry dst_negative_scale_decomp_entry dst_positive_decomp_entry dst_negative_decomp_entry. (((F) = (((((dst_positive_code_decomp_entry) + (dst_positive_scale_decomp_entry)) * S ((dst_positive_code_decomp_entry) + (dst_positive_scale_decomp_entry)) + ((dst_positive_scale_decomp_entry) + (dst_positive_scale_decomp_entry))) + (((dst_negative_code_decomp_entry) + (dst_negative_scale_decomp_entry)) * S ((dst_negative_code_decomp_entry) + (dst_negative_scale_decomp_entry)) + ((dst_negative_scale_decomp_entry) + (dst_negative_scale_decomp_entry)))) * S ((((dst_positive_code_decomp_entry) + (dst_positive_scale_decomp_entry)) * S ((dst_positive_code_decomp_entry) + (dst_positive_scale_decomp_entry)) + ((dst_positive_scale_decomp_entry) + (dst_positive_scale_decomp_entry))) + (((dst_negative_code_decomp_entry) + (dst_negative_scale_decomp_entry)) * S ((dst_negative_code_decomp_entry) + (dst_negative_scale_decomp_entry)) + ((dst_negative_scale_decomp_entry) + (dst_negative_scale_decomp_entry)))) + ((((dst_negative_code_decomp_entry) + (dst_negative_scale_decomp_entry)) * S ((dst_negative_code_decomp_entry) + (dst_negative_scale_decomp_entry)) + ((dst_negative_scale_decomp_entry) + (dst_negative_scale_decomp_entry))) + (((dst_negative_code_decomp_entry) + (dst_negative_scale_decomp_entry)) * S ((dst_negative_code_decomp_entry) + (dst_negative_scale_decomp_entry)) + ((dst_negative_scale_decomp_entry) + (dst_negative_scale_decomp_entry)))))) /\ (((((exists ff_h_pvs_decomp_entrypositive. ff_h_pvs_decomp_entrypositive + S (dst_positive_decomp_entry) = S ((S (l)) * dst_positive_scale_decomp_entry)) /\ exists ff_q_pvs_decomp_entrypositive. dst_positive_code_decomp_entry = ff_q_pvs_decomp_entrypositive * S ((S (l)) * dst_positive_scale_decomp_entry) + (dst_positive_decomp_entry))) /\ (((((exists ff_h_pvs_decomp_entrynegative. ff_h_pvs_decomp_entrynegative + S (dst_negative_decomp_entry) = S ((S (l)) * dst_negative_scale_decomp_entry)) /\ exists ff_q_pvs_decomp_entrynegative. dst_negative_code_decomp_entry = ff_q_pvs_decomp_entrynegative * S ((S (l)) * dst_negative_scale_decomp_entry) + (dst_negative_decomp_entry))) /\ (exists ge_balance_positive_decomp_entryvalue ge_balance_negative_decomp_entryvalue. (((((b) = 2 * (ge_balance_positive_decomp_entryvalue) /\ (ge_balance_negative_decomp_entryvalue) = 0) \/ exists ge_signed_half_decomp_entryvaluedecode. (((b) = 2 * ge_signed_half_decomp_entryvaluedecode + 1 /\ (ge_balance_positive_decomp_entryvalue) = 0) /\ (ge_balance_negative_decomp_entryvalue) = S ge_signed_half_decomp_entryvaluedecode))) /\ ((dst_positive_decomp_entry) + ge_balance_negative_decomp_entryvalue = (dst_negative_decomp_entry) + ge_balance_positive_decomp_entryvalue))))))))) /\ (exists dsa_ap_decomp_add dsa_an_decomp_add dsa_bp_decomp_add dsa_bn_decomp_add dsa_cp_decomp_add dsa_cn_decomp_add. (((((a) = 2 * (dsa_ap_decomp_add) /\ (dsa_an_decomp_add) = 0) \/ exists ge_signed_half_decomp_addleft. (((a) = 2 * ge_signed_half_decomp_addleft + 1 /\ (dsa_ap_decomp_add) = 0) /\ (dsa_an_decomp_add) = S ge_signed_half_decomp_addleft))) /\ ((((((b) = 2 * (dsa_bp_decomp_add) /\ (dsa_bn_decomp_add) = 0) \/ exists ge_signed_half_decomp_addright. (((b) = 2 * ge_signed_half_decomp_addright + 1 /\ (dsa_bp_decomp_add) = 0) /\ (dsa_bn_decomp_add) = S ge_signed_half_decomp_addright))) /\ ((((((z) = 2 * (dsa_cp_decomp_add) /\ (dsa_cn_decomp_add) = 0) \/ exists ge_signed_half_decomp_addoutput. (((z) = 2 * ge_signed_half_decomp_addoutput + 1 /\ (dsa_cp_decomp_add) = 0) /\ (dsa_cn_decomp_add) = S ge_signed_half_decomp_addoutput))) /\ ((dsa_ap_decomp_add + dsa_bp_decomp_add) + dsa_cn_decomp_add = (dsa_an_decomp_add + dsa_bn_decomp_add) + dsa_cp_decomp_add))))))))))Constructive proof overview
Generated structural guide
Every successor signed sum supplies real predecessor and last-entry codes whose original SignedAdd graph gives its result.
The unchanged tactic script uses 5 declared prerequisites and contains 90 exact native proof lines.
Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable
Proof neighborhood
Direct dependencies
beta_sum_succ_decompose Alpha theorem; checked-use authorized signed_balance_total Alpha theorem; checked-use authorized SS0009 divisor_signed_sum_from_components SS0001 divisor_signed_table_at_from_components gaussian_signed_add_of_balances Alpha theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. The literal dependency-closed bundle is checked by original HA and the independently compiled Lean verifier. Public delivery grants no Alpha checked-use authority or Stable membership.
Read the argument
Proof checkpoints
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.
Named ingredients (2)
01Fix variables and assumptionsL1–4
02Separate the logical casesL5–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L5
cases hs - L6
cases hs_witness - L7
cases hs_witness_witness - L8
cases hs_witness_witness_witness - L9
cases hs_witness_witness_witness_witness - L10
cases hs_witness_witness_witness_witness_witness - L11
cases hs_witness_witness_witness_witness_witness_witness - L12
cases hs_witness_witness_witness_witness_witness_witness_right - L13
cases hs_witness_witness_witness_witness_witness_witness_right_right
03Establish hpL14–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
04Separate the logical casesL21–24
05Establish hnL25–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum succ decompose.
06Separate the logical casesL32–35
07Establish haL36–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed balance total.
- L36
have ha : exists a. (exists ge_balance_positive_decomp_prefix_code ge_balance_negative_decomp_prefix_code. (((((a) = 2 * (ge_balance_positive_decomp_prefix_code) /\ (ge_balance_negative_decomp_prefix_code) = 0) \/ exists ge_signed_half_decomp_prefix_codedecode. (((a) = 2 * ge_signed_half_decomp_prefix_codedecode + 1 /\ (ge_balance_positive_decomp_prefix_code) = 0) /\ (ge_balance_negative_decomp_prefix_code) = S ge_signed_half_decomp_prefix_codedecode))) /\ ((x7) + ge_balance_negative_decomp_prefix_code = (x9) + ge_balance_positive_decomp_prefix_code))) - L37
specialize signed_balance_total (x7) - L38
specialize signed_balance_total (x9) - L39
apply signed_balance_total
08Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases ha
09Establish hbL41–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed balance total.
- L41
have hb : exists b. (exists ge_balance_positive_decomp_entry_code ge_balance_negative_decomp_entry_code. (((((b) = 2 * (ge_balance_positive_decomp_entry_code) /\ (ge_balance_negative_decomp_entry_code) = 0) \/ exists ge_signed_half_decomp_entry_codedecode. (((b) = 2 * ge_signed_half_decomp_entry_codedecode + 1 /\ (ge_balance_positive_decomp_entry_code) = 0) /\ (ge_balance_negative_decomp_entry_code) = S ge_signed_half_decomp_entry_codedecode))) /\ ((x6) + ge_balance_negative_decomp_entry_code = (x8) + ge_balance_positive_decomp_entry_code))) - L42
specialize signed_balance_total (x6) - L43
specialize signed_balance_total (x8) - L44
apply signed_balance_total
10Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
cases hb
11Construct an explicit witnessL46–47
12Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
13Use earlier factsL49–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
specialize divisor_signed_sum_from_components (F) - L50
specialize divisor_signed_sum_from_components (x) - L51
specialize divisor_signed_sum_from_components (x1) - L52
specialize divisor_signed_sum_from_components (x2) - L53
specialize divisor_signed_sum_from_components (x3) - L54
specialize divisor_signed_sum_from_components (l) - L55
specialize divisor_signed_sum_from_components (x7) - L56
specialize divisor_signed_sum_from_components (x9) - L57
specialize divisor_signed_sum_from_components (x10) - L58
apply divisor_signed_sum_from_components
14Use earlier factsL59–62
15Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
split
16Use earlier factsL64–73
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
specialize divisor_signed_table_at_from_components (F) - L65
specialize divisor_signed_table_at_from_components (x) - L66
specialize divisor_signed_table_at_from_components (x1) - L67
specialize divisor_signed_table_at_from_components (x2) - L68
specialize divisor_signed_table_at_from_components (x3) - L69
specialize divisor_signed_table_at_from_components (l) - L70
specialize divisor_signed_table_at_from_components (x6) - L71
specialize divisor_signed_table_at_from_components (x8) - L72
specialize divisor_signed_table_at_from_components (x11) - L73
apply divisor_signed_table_at_from_components
17Use earlier factsL74–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact hs_witness_witness_witness_witness_witness_witness_left - L75
exact hp_witness_witness_left - L76
exact hn_witness_witness_left - L77
exact hb_witness - L78
specialize gaussian_signed_add_of_balances (x10) - L79
specialize gaussian_signed_add_of_balances (x11) - L80
specialize gaussian_signed_add_of_balances (z) - L81
specialize gaussian_signed_add_of_balances (x7) - L82
specialize gaussian_signed_add_of_balances (x9) - L83
specialize gaussian_signed_add_of_balances (x6)
18Use earlier factsL84–87
19Calculate and transport equalitiesL88–89
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
20Use earlier factsL90–90
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L90
exact hs_witness_witness_witness_witness_witness_witness_right_right_right
Original exact command ledger · 90 lines
- 0001
intro F - 0002
intro l - 0003
intro z - 0004
intro hs - 0005
cases hs - 0006
cases hs_witness - 0007
cases hs_witness_witness - 0008
cases hs_witness_witness_witness - 0009
cases hs_witness_witness_witness_witness - 0010
cases hs_witness_witness_witness_witness_witness - 0011
cases hs_witness_witness_witness_witness_witness_witness - 0012
cases hs_witness_witness_witness_witness_witness_witness_right - 0013
cases hs_witness_witness_witness_witness_witness_witness_right_right - 0014
have hp : exists dsa_summand_decomp_positive dsa_partial_decomp_positive. ((((exists ff_h_pvs_decomp_positivelast. ff_h_pvs_decomp_positivelast + S (dsa_summand_decomp_positive) = S ((S (l)) * x1)) /\ exists ff_q_pvs_decomp_positivelast. x = ff_q_pvs_decomp_positivelast * S ((S (l)) * x1) + (dsa_summand_decomp_positive))) /\ (((exists fs_u_dst_decomp_positiveprefix fs_v_dst_decomp_positiveprefix. ((((exists fs_h_dst_decomp_positiveprefix_body_start. fs_h_dst_decomp_positiveprefix_body_start + S (0) = S ((S (0)) * fs_v_dst_decomp_positiveprefix)) /\ exists fs_q_dst_decomp_positiveprefix_body_start. fs_u_dst_decomp_positiveprefix = fs_q_dst_decomp_positiveprefix_body_start * S ((S (0)) * fs_v_dst_decomp_positiveprefix) + (0))) /\ ((((exists fs_h_dst_decomp_positiveprefix_body_terminal. fs_h_dst_decomp_positiveprefix_body_terminal + S (dsa_partial_decomp_positive) = S ((S (l)) * fs_v_dst_decomp_positiveprefix)) /\ exists fs_q_dst_decomp_positiveprefix_body_terminal. fs_u_dst_decomp_positiveprefix = fs_q_dst_decomp_positiveprefix_body_terminal * S ((S (l)) * fs_v_dst_decomp_positiveprefix) + (dsa_partial_decomp_positive))) /\ forall fs_i_dst_decomp_positiveprefix_body_steps. (exists fs_lt_dst_decomp_positiveprefix_body_steps_bound. fs_lt_dst_decomp_positiveprefix_body_steps_bound + S fs_i_dst_decomp_positiveprefix_body_steps = l) -> exists fs_a_dst_decomp_positiveprefix_body_steps fs_r_dst_decomp_positiveprefix_body_steps fs_s_dst_decomp_positiveprefix_body_steps. ((((exists fs_h_dst_decomp_positiveprefix_body_steps_summand. fs_h_dst_decomp_positiveprefix_body_steps_summand + S (fs_a_dst_decomp_positiveprefix_body_steps) = S ((S (fs_i_dst_decomp_positiveprefix_body_steps)) * x1)) /\ exists fs_q_dst_decomp_positiveprefix_body_steps_summand. x = fs_q_dst_decomp_positiveprefix_body_steps_summand * S ((S (fs_i_dst_decomp_positiveprefix_body_steps)) * x1) + (fs_a_dst_decomp_positiveprefix_body_steps))) /\ ((((exists fs_h_dst_decomp_positiveprefix_body_steps_partial. fs_h_dst_decomp_positiveprefix_body_steps_partial + S (fs_r_dst_decomp_positiveprefix_body_steps) = S ((S (fs_i_dst_decomp_positiveprefix_body_steps)) * fs_v_dst_decomp_positiveprefix)) /\ exists fs_q_dst_decomp_positiveprefix_body_steps_partial. fs_u_dst_decomp_positiveprefix = fs_q_dst_decomp_positiveprefix_body_steps_partial * S ((S (fs_i_dst_decomp_positiveprefix_body_steps)) * fs_v_dst_decomp_positiveprefix) + (fs_r_dst_decomp_positiveprefix_body_steps))) /\ ((((exists fs_h_dst_decomp_positiveprefix_body_steps_successor. fs_h_dst_decomp_positiveprefix_body_steps_successor + S (fs_s_dst_decomp_positiveprefix_body_steps) = S ((S (S fs_i_dst_decomp_positiveprefix_body_steps)) * fs_v_dst_decomp_positiveprefix)) /\ exists fs_q_dst_decomp_positiveprefix_body_steps_successor. fs_u_dst_decomp_positiveprefix = fs_q_dst_decomp_positiveprefix_body_steps_successor * S ((S (S fs_i_dst_decomp_positiveprefix_body_steps)) * fs_v_dst_decomp_positiveprefix) + (fs_s_dst_decomp_positiveprefix_body_steps))) /\ fs_s_dst_decomp_positiveprefix_body_steps = fs_r_dst_decomp_positiveprefix_body_steps + fs_a_dst_decomp_positiveprefix_body_steps)))))) /\ ((x4) = dsa_partial_decomp_positive + dsa_summand_decomp_positive)))) - 0015
specialize beta_sum_succ_decompose (x) - 0016
specialize beta_sum_succ_decompose (x1) - 0017
specialize beta_sum_succ_decompose (l) - 0018
specialize beta_sum_succ_decompose (x4) - 0019
apply beta_sum_succ_decompose - 0020
exact hs_witness_witness_witness_witness_witness_witness_right_left - 0021
cases hp - 0022
cases hp_witness - 0023
cases hp_witness_witness - 0024
cases hp_witness_witness_right - 0025
have hn : exists dsa_summand_decomp_negative dsa_partial_decomp_negative. ((((exists ff_h_pvs_decomp_negativelast. ff_h_pvs_decomp_negativelast + S (dsa_summand_decomp_negative) = S ((S (l)) * x3)) /\ exists ff_q_pvs_decomp_negativelast. x2 = ff_q_pvs_decomp_negativelast * S ((S (l)) * x3) + (dsa_summand_decomp_negative))) /\ (((exists fs_u_dst_decomp_negativeprefix fs_v_dst_decomp_negativeprefix. ((((exists fs_h_dst_decomp_negativeprefix_body_start. fs_h_dst_decomp_negativeprefix_body_start + S (0) = S ((S (0)) * fs_v_dst_decomp_negativeprefix)) /\ exists fs_q_dst_decomp_negativeprefix_body_start. fs_u_dst_decomp_negativeprefix = fs_q_dst_decomp_negativeprefix_body_start * S ((S (0)) * fs_v_dst_decomp_negativeprefix) + (0))) /\ ((((exists fs_h_dst_decomp_negativeprefix_body_terminal. fs_h_dst_decomp_negativeprefix_body_terminal + S (dsa_partial_decomp_negative) = S ((S (l)) * fs_v_dst_decomp_negativeprefix)) /\ exists fs_q_dst_decomp_negativeprefix_body_terminal. fs_u_dst_decomp_negativeprefix = fs_q_dst_decomp_negativeprefix_body_terminal * S ((S (l)) * fs_v_dst_decomp_negativeprefix) + (dsa_partial_decomp_negative))) /\ forall fs_i_dst_decomp_negativeprefix_body_steps. (exists fs_lt_dst_decomp_negativeprefix_body_steps_bound. fs_lt_dst_decomp_negativeprefix_body_steps_bound + S fs_i_dst_decomp_negativeprefix_body_steps = l) -> exists fs_a_dst_decomp_negativeprefix_body_steps fs_r_dst_decomp_negativeprefix_body_steps fs_s_dst_decomp_negativeprefix_body_steps. ((((exists fs_h_dst_decomp_negativeprefix_body_steps_summand. fs_h_dst_decomp_negativeprefix_body_steps_summand + S (fs_a_dst_decomp_negativeprefix_body_steps) = S ((S (fs_i_dst_decomp_negativeprefix_body_steps)) * x3)) /\ exists fs_q_dst_decomp_negativeprefix_body_steps_summand. x2 = fs_q_dst_decomp_negativeprefix_body_steps_summand * S ((S (fs_i_dst_decomp_negativeprefix_body_steps)) * x3) + (fs_a_dst_decomp_negativeprefix_body_steps))) /\ ((((exists fs_h_dst_decomp_negativeprefix_body_steps_partial. fs_h_dst_decomp_negativeprefix_body_steps_partial + S (fs_r_dst_decomp_negativeprefix_body_steps) = S ((S (fs_i_dst_decomp_negativeprefix_body_steps)) * fs_v_dst_decomp_negativeprefix)) /\ exists fs_q_dst_decomp_negativeprefix_body_steps_partial. fs_u_dst_decomp_negativeprefix = fs_q_dst_decomp_negativeprefix_body_steps_partial * S ((S (fs_i_dst_decomp_negativeprefix_body_steps)) * fs_v_dst_decomp_negativeprefix) + (fs_r_dst_decomp_negativeprefix_body_steps))) /\ ((((exists fs_h_dst_decomp_negativeprefix_body_steps_successor. fs_h_dst_decomp_negativeprefix_body_steps_successor + S (fs_s_dst_decomp_negativeprefix_body_steps) = S ((S (S fs_i_dst_decomp_negativeprefix_body_steps)) * fs_v_dst_decomp_negativeprefix)) /\ exists fs_q_dst_decomp_negativeprefix_body_steps_successor. fs_u_dst_decomp_negativeprefix = fs_q_dst_decomp_negativeprefix_body_steps_successor * S ((S (S fs_i_dst_decomp_negativeprefix_body_steps)) * fs_v_dst_decomp_negativeprefix) + (fs_s_dst_decomp_negativeprefix_body_steps))) /\ fs_s_dst_decomp_negativeprefix_body_steps = fs_r_dst_decomp_negativeprefix_body_steps + fs_a_dst_decomp_negativeprefix_body_steps)))))) /\ ((x5) = dsa_partial_decomp_negative + dsa_summand_decomp_negative)))) - 0026
specialize beta_sum_succ_decompose (x2) - 0027
specialize beta_sum_succ_decompose (x3) - 0028
specialize beta_sum_succ_decompose (l) - 0029
specialize beta_sum_succ_decompose (x5) - 0030
apply beta_sum_succ_decompose - 0031
exact hs_witness_witness_witness_witness_witness_witness_right_right_left - 0032
cases hn - 0033
cases hn_witness - 0034
cases hn_witness_witness - 0035
cases hn_witness_witness_right - 0036
have ha : exists a. (exists ge_balance_positive_decomp_prefix_code ge_balance_negative_decomp_prefix_code. (((((a) = 2 * (ge_balance_positive_decomp_prefix_code) /\ (ge_balance_negative_decomp_prefix_code) = 0) \/ exists ge_signed_half_decomp_prefix_codedecode. (((a) = 2 * ge_signed_half_decomp_prefix_codedecode + 1 /\ (ge_balance_positive_decomp_prefix_code) = 0) /\ (ge_balance_negative_decomp_prefix_code) = S ge_signed_half_decomp_prefix_codedecode))) /\ ((x7) + ge_balance_negative_decomp_prefix_code = (x9) + ge_balance_positive_decomp_prefix_code))) - 0037
specialize signed_balance_total (x7) - 0038
specialize signed_balance_total (x9) - 0039
apply signed_balance_total - 0040
cases ha - 0041
have hb : exists b. (exists ge_balance_positive_decomp_entry_code ge_balance_negative_decomp_entry_code. (((((b) = 2 * (ge_balance_positive_decomp_entry_code) /\ (ge_balance_negative_decomp_entry_code) = 0) \/ exists ge_signed_half_decomp_entry_codedecode. (((b) = 2 * ge_signed_half_decomp_entry_codedecode + 1 /\ (ge_balance_positive_decomp_entry_code) = 0) /\ (ge_balance_negative_decomp_entry_code) = S ge_signed_half_decomp_entry_codedecode))) /\ ((x6) + ge_balance_negative_decomp_entry_code = (x8) + ge_balance_positive_decomp_entry_code))) - 0042
specialize signed_balance_total (x6) - 0043
specialize signed_balance_total (x8) - 0044
apply signed_balance_total - 0045
cases hb - 0046
exists x10 - 0047
exists x11 - 0048
split - 0049
specialize divisor_signed_sum_from_components (F) - 0050
specialize divisor_signed_sum_from_components (x) - 0051
specialize divisor_signed_sum_from_components (x1) - 0052
specialize divisor_signed_sum_from_components (x2) - 0053
specialize divisor_signed_sum_from_components (x3) - 0054
specialize divisor_signed_sum_from_components (l) - 0055
specialize divisor_signed_sum_from_components (x7) - 0056
specialize divisor_signed_sum_from_components (x9) - 0057
specialize divisor_signed_sum_from_components (x10) - 0058
apply divisor_signed_sum_from_components - 0059
exact hs_witness_witness_witness_witness_witness_witness_left - 0060
exact hp_witness_witness_right_left - 0061
exact hn_witness_witness_right_left - 0062
exact ha_witness - 0063
split - 0064
specialize divisor_signed_table_at_from_components (F) - 0065
specialize divisor_signed_table_at_from_components (x) - 0066
specialize divisor_signed_table_at_from_components (x1) - 0067
specialize divisor_signed_table_at_from_components (x2) - 0068
specialize divisor_signed_table_at_from_components (x3) - 0069
specialize divisor_signed_table_at_from_components (l) - 0070
specialize divisor_signed_table_at_from_components (x6) - 0071
specialize divisor_signed_table_at_from_components (x8) - 0072
specialize divisor_signed_table_at_from_components (x11) - 0073
apply divisor_signed_table_at_from_components - 0074
exact hs_witness_witness_witness_witness_witness_witness_left - 0075
exact hp_witness_witness_left - 0076
exact hn_witness_witness_left - 0077
exact hb_witness - 0078
specialize gaussian_signed_add_of_balances (x10) - 0079
specialize gaussian_signed_add_of_balances (x11) - 0080
specialize gaussian_signed_add_of_balances (z) - 0081
specialize gaussian_signed_add_of_balances (x7) - 0082
specialize gaussian_signed_add_of_balances (x9) - 0083
specialize gaussian_signed_add_of_balances (x6) - 0084
specialize gaussian_signed_add_of_balances (x8) - 0085
apply gaussian_signed_add_of_balances - 0086
exact ha_witness - 0087
exact hb_witness - 0088
rewrite hp_witness_witness_right_right at hs_witness_witness_witness_witness_witness_witness_right_right_right - 0089
rewrite hn_witness_witness_right_right at hs_witness_witness_witness_witness_witness_witness_right_right_right - 0090
exact hs_witness_witness_witness_witness_witness_witness_right_right_right