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 F l. (exists dst_positive_code_zero_source dst_positive_scale_zero_source dst_negative_code_zero_source dst_negative_scale_zero_source. (((F) = (((((dst_positive_code_zero_source) + (dst_positive_scale_zero_source)) * S ((dst_positive_code_zero_source) + (dst_positive_scale_zero_source)) + ((dst_positive_scale_zero_source) + (dst_positive_scale_zero_source))) + (((dst_negative_code_zero_source) + (dst_negative_scale_zero_source)) * S ((dst_negative_code_zero_source) + (dst_negative_scale_zero_source)) + ((dst_negative_scale_zero_source) + (dst_negative_scale_zero_source)))) * S ((((dst_positive_code_zero_source) + (dst_positive_scale_zero_source)) * S ((dst_positive_code_zero_source) + (dst_positive_scale_zero_source)) + ((dst_positive_scale_zero_source) + (dst_positive_scale_zero_source))) + (((dst_negative_code_zero_source) + (dst_negative_scale_zero_source)) * S ((dst_negative_code_zero_source) + (dst_negative_scale_zero_source)) + ((dst_negative_scale_zero_source) + (dst_negative_scale_zero_source)))) + ((((dst_negative_code_zero_source) + (dst_negative_scale_zero_source)) * S ((dst_negative_code_zero_source) + (dst_negative_scale_zero_source)) + ((dst_negative_scale_zero_source) + (dst_negative_scale_zero_source))) + (((dst_negative_code_zero_source) + (dst_negative_scale_zero_source)) * S ((dst_negative_code_zero_source) + (dst_negative_scale_zero_source)) + ((dst_negative_scale_zero_source) + (dst_negative_scale_zero_source)))))) /\ (forall dst_index_zero_source. (exists pvs_le_gap_zero_sourcedomain. pvs_le_gap_zero_sourcedomain + (dst_index_zero_source) = (0)) -> exists dst_positive_zero_source dst_negative_zero_source dst_value_zero_source. ((((exists ff_h_pvs_zero_sourceentrypositive. ff_h_pvs_zero_sourceentrypositive + S (dst_positive_zero_source) = S ((S (dst_index_zero_source)) * dst_positive_scale_zero_source)) /\ exists ff_q_pvs_zero_sourceentrypositive. dst_positive_code_zero_source = ff_q_pvs_zero_sourceentrypositive * S ((S (dst_index_zero_source)) * dst_positive_scale_zero_source) + (dst_positive_zero_source))) /\ (((((exists ff_h_pvs_zero_sourceentrynegative. ff_h_pvs_zero_sourceentrynegative + S (dst_negative_zero_source) = S ((S (dst_index_zero_source)) * dst_negative_scale_zero_source)) /\ exists ff_q_pvs_zero_sourceentrynegative. dst_negative_code_zero_source = ff_q_pvs_zero_sourceentrynegative * S ((S (dst_index_zero_source)) * dst_negative_scale_zero_source) + (dst_negative_zero_source))) /\ (exists ge_balance_positive_zero_sourceentryvalue ge_balance_negative_zero_sourceentryvalue. (((((dst_value_zero_source) = 2 * (ge_balance_positive_zero_sourceentryvalue) /\ (ge_balance_negative_zero_sourceentryvalue) = 0) \/ exists ge_signed_half_zero_sourceentryvaluedecode. (((dst_value_zero_source) = 2 * ge_signed_half_zero_sourceentryvaluedecode + 1 /\ (ge_balance_positive_zero_sourceentryvalue) = 0) /\ (ge_balance_negative_zero_sourceentryvalue) = S ge_signed_half_zero_sourceentryvaluedecode))) /\ ((dst_positive_zero_source) + ge_balance_negative_zero_sourceentryvalue = (dst_negative_zero_source) + ge_balance_positive_zero_sourceentryvalue))))))))) -> (forall sfs_index_zero_window sfs_value_zero_window. (exists pvs_le_gap_zero_windowlower. pvs_le_gap_zero_windowlower + (0) = (sfs_index_zero_window)) -> (exists pvs_gap_zero_windowupper. pvs_gap_zero_windowupper + S (sfs_index_zero_window) = (l)) -> (exists dst_positive_code_zero_windowentry dst_positive_scale_zero_windowentry dst_negative_code_zero_windowentry dst_negative_scale_zero_windowentry dst_positive_zero_windowentry dst_negative_zero_windowentry. (((F) = (((((dst_positive_code_zero_windowentry) + (dst_positive_scale_zero_windowentry)) * S ((dst_positive_code_zero_windowentry) + (dst_positive_scale_zero_windowentry)) + ((dst_positive_scale_zero_windowentry) + (dst_positive_scale_zero_windowentry))) + (((dst_negative_code_zero_windowentry) + (dst_negative_scale_zero_windowentry)) * S ((dst_negative_code_zero_windowentry) + (dst_negative_scale_zero_windowentry)) + ((dst_negative_scale_zero_windowentry) + (dst_negative_scale_zero_windowentry)))) * S ((((dst_positive_code_zero_windowentry) + (dst_positive_scale_zero_windowentry)) * S ((dst_positive_code_zero_windowentry) + (dst_positive_scale_zero_windowentry)) + ((dst_positive_scale_zero_windowentry) + (dst_positive_scale_zero_windowentry))) + (((dst_negative_code_zero_windowentry) + (dst_negative_scale_zero_windowentry)) * S ((dst_negative_code_zero_windowentry) + (dst_negative_scale_zero_windowentry)) + ((dst_negative_scale_zero_windowentry) + (dst_negative_scale_zero_windowentry)))) + ((((dst_negative_code_zero_windowentry) + (dst_negative_scale_zero_windowentry)) * S ((dst_negative_code_zero_windowentry) + (dst_negative_scale_zero_windowentry)) + ((dst_negative_scale_zero_windowentry) + (dst_negative_scale_zero_windowentry))) + (((dst_negative_code_zero_windowentry) + (dst_negative_scale_zero_windowentry)) * S ((dst_negative_code_zero_windowentry) + (dst_negative_scale_zero_windowentry)) + ((dst_negative_scale_zero_windowentry) + (dst_negative_scale_zero_windowentry)))))) /\ (((((exists ff_h_pvs_zero_windowentrypositive. ff_h_pvs_zero_windowentrypositive + S (dst_positive_zero_windowentry) = S ((S (sfs_index_zero_window)) * dst_positive_scale_zero_windowentry)) /\ exists ff_q_pvs_zero_windowentrypositive. dst_positive_code_zero_windowentry = ff_q_pvs_zero_windowentrypositive * S ((S (sfs_index_zero_window)) * dst_positive_scale_zero_windowentry) + (dst_positive_zero_windowentry))) /\ (((((exists ff_h_pvs_zero_windowentrynegative. ff_h_pvs_zero_windowentrynegative + S (dst_negative_zero_windowentry) = S ((S (sfs_index_zero_window)) * dst_negative_scale_zero_windowentry)) /\ exists ff_q_pvs_zero_windowentrynegative. dst_negative_code_zero_windowentry = ff_q_pvs_zero_windowentrynegative * S ((S (sfs_index_zero_window)) * dst_negative_scale_zero_windowentry) + (dst_negative_zero_windowentry))) /\ (exists ge_balance_positive_zero_windowentryvalue ge_balance_negative_zero_windowentryvalue. (((((sfs_value_zero_window) = 2 * (ge_balance_positive_zero_windowentryvalue) /\ (ge_balance_negative_zero_windowentryvalue) = 0) \/ exists ge_signed_half_zero_windowentryvaluedecode. (((sfs_value_zero_window) = 2 * ge_signed_half_zero_windowentryvaluedecode + 1 /\ (ge_balance_positive_zero_windowentryvalue) = 0) /\ (ge_balance_negative_zero_windowentryvalue) = S ge_signed_half_zero_windowentryvaluedecode))) /\ ((dst_positive_zero_windowentry) + ge_balance_negative_zero_windowentryvalue = (dst_negative_zero_windowentry) + ge_balance_positive_zero_windowentryvalue))))))))) -> sfs_value_zero_window=0) -> (exists dst_positive_code_zero_result dst_positive_scale_zero_result dst_negative_code_zero_result dst_negative_scale_zero_result dst_positive_sum_zero_result dst_negative_sum_zero_result. (((F) = (((((dst_positive_code_zero_result) + (dst_positive_scale_zero_result)) * S ((dst_positive_code_zero_result) + (dst_positive_scale_zero_result)) + ((dst_positive_scale_zero_result) + (dst_positive_scale_zero_result))) + (((dst_negative_code_zero_result) + (dst_negative_scale_zero_result)) * S ((dst_negative_code_zero_result) + (dst_negative_scale_zero_result)) + ((dst_negative_scale_zero_result) + (dst_negative_scale_zero_result)))) * S ((((dst_positive_code_zero_result) + (dst_positive_scale_zero_result)) * S ((dst_positive_code_zero_result) + (dst_positive_scale_zero_result)) + ((dst_positive_scale_zero_result) + (dst_positive_scale_zero_result))) + (((dst_negative_code_zero_result) + (dst_negative_scale_zero_result)) * S ((dst_negative_code_zero_result) + (dst_negative_scale_zero_result)) + ((dst_negative_scale_zero_result) + (dst_negative_scale_zero_result)))) + ((((dst_negative_code_zero_result) + (dst_negative_scale_zero_result)) * S ((dst_negative_code_zero_result) + (dst_negative_scale_zero_result)) + ((dst_negative_scale_zero_result) + (dst_negative_scale_zero_result))) + (((dst_negative_code_zero_result) + (dst_negative_scale_zero_result)) * S ((dst_negative_code_zero_result) + (dst_negative_scale_zero_result)) + ((dst_negative_scale_zero_result) + (dst_negative_scale_zero_result)))))) /\ (((exists fs_u_dst_zero_resultpositive fs_v_dst_zero_resultpositive. ((((exists fs_h_dst_zero_resultpositive_body_start. fs_h_dst_zero_resultpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_zero_resultpositive)) /\ exists fs_q_dst_zero_resultpositive_body_start. fs_u_dst_zero_resultpositive = fs_q_dst_zero_resultpositive_body_start * S ((S (0)) * fs_v_dst_zero_resultpositive) + (0))) /\ ((((exists fs_h_dst_zero_resultpositive_body_terminal. fs_h_dst_zero_resultpositive_body_terminal + S (dst_positive_sum_zero_result) = S ((S (l)) * fs_v_dst_zero_resultpositive)) /\ exists fs_q_dst_zero_resultpositive_body_terminal. fs_u_dst_zero_resultpositive = fs_q_dst_zero_resultpositive_body_terminal * S ((S (l)) * fs_v_dst_zero_resultpositive) + (dst_positive_sum_zero_result))) /\ forall fs_i_dst_zero_resultpositive_body_steps. (exists fs_lt_dst_zero_resultpositive_body_steps_bound. fs_lt_dst_zero_resultpositive_body_steps_bound + S fs_i_dst_zero_resultpositive_body_steps = l) -> exists fs_a_dst_zero_resultpositive_body_steps fs_r_dst_zero_resultpositive_body_steps fs_s_dst_zero_resultpositive_body_steps. ((((exists fs_h_dst_zero_resultpositive_body_steps_summand. fs_h_dst_zero_resultpositive_body_steps_summand + S (fs_a_dst_zero_resultpositive_body_steps) = S ((S (fs_i_dst_zero_resultpositive_body_steps)) * dst_positive_scale_zero_result)) /\ exists fs_q_dst_zero_resultpositive_body_steps_summand. dst_positive_code_zero_result = fs_q_dst_zero_resultpositive_body_steps_summand * S ((S (fs_i_dst_zero_resultpositive_body_steps)) * dst_positive_scale_zero_result) + (fs_a_dst_zero_resultpositive_body_steps))) /\ ((((exists fs_h_dst_zero_resultpositive_body_steps_partial. fs_h_dst_zero_resultpositive_body_steps_partial + S (fs_r_dst_zero_resultpositive_body_steps) = S ((S (fs_i_dst_zero_resultpositive_body_steps)) * fs_v_dst_zero_resultpositive)) /\ exists fs_q_dst_zero_resultpositive_body_steps_partial. fs_u_dst_zero_resultpositive = fs_q_dst_zero_resultpositive_body_steps_partial * S ((S (fs_i_dst_zero_resultpositive_body_steps)) * fs_v_dst_zero_resultpositive) + (fs_r_dst_zero_resultpositive_body_steps))) /\ ((((exists fs_h_dst_zero_resultpositive_body_steps_successor. fs_h_dst_zero_resultpositive_body_steps_successor + S (fs_s_dst_zero_resultpositive_body_steps) = S ((S (S fs_i_dst_zero_resultpositive_body_steps)) * fs_v_dst_zero_resultpositive)) /\ exists fs_q_dst_zero_resultpositive_body_steps_successor. fs_u_dst_zero_resultpositive = fs_q_dst_zero_resultpositive_body_steps_successor * S ((S (S fs_i_dst_zero_resultpositive_body_steps)) * fs_v_dst_zero_resultpositive) + (fs_s_dst_zero_resultpositive_body_steps))) /\ fs_s_dst_zero_resultpositive_body_steps = fs_r_dst_zero_resultpositive_body_steps + fs_a_dst_zero_resultpositive_body_steps)))))) /\ (((exists fs_u_dst_zero_resultnegative fs_v_dst_zero_resultnegative. ((((exists fs_h_dst_zero_resultnegative_body_start. fs_h_dst_zero_resultnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_zero_resultnegative)) /\ exists fs_q_dst_zero_resultnegative_body_start. fs_u_dst_zero_resultnegative = fs_q_dst_zero_resultnegative_body_start * S ((S (0)) * fs_v_dst_zero_resultnegative) + (0))) /\ ((((exists fs_h_dst_zero_resultnegative_body_terminal. fs_h_dst_zero_resultnegative_body_terminal + S (dst_negative_sum_zero_result) = S ((S (l)) * fs_v_dst_zero_resultnegative)) /\ exists fs_q_dst_zero_resultnegative_body_terminal. fs_u_dst_zero_resultnegative = fs_q_dst_zero_resultnegative_body_terminal * S ((S (l)) * fs_v_dst_zero_resultnegative) + (dst_negative_sum_zero_result))) /\ forall fs_i_dst_zero_resultnegative_body_steps. (exists fs_lt_dst_zero_resultnegative_body_steps_bound. fs_lt_dst_zero_resultnegative_body_steps_bound + S fs_i_dst_zero_resultnegative_body_steps = l) -> exists fs_a_dst_zero_resultnegative_body_steps fs_r_dst_zero_resultnegative_body_steps fs_s_dst_zero_resultnegative_body_steps. ((((exists fs_h_dst_zero_resultnegative_body_steps_summand. fs_h_dst_zero_resultnegative_body_steps_summand + S (fs_a_dst_zero_resultnegative_body_steps) = S ((S (fs_i_dst_zero_resultnegative_body_steps)) * dst_negative_scale_zero_result)) /\ exists fs_q_dst_zero_resultnegative_body_steps_summand. dst_negative_code_zero_result = fs_q_dst_zero_resultnegative_body_steps_summand * S ((S (fs_i_dst_zero_resultnegative_body_steps)) * dst_negative_scale_zero_result) + (fs_a_dst_zero_resultnegative_body_steps))) /\ ((((exists fs_h_dst_zero_resultnegative_body_steps_partial. fs_h_dst_zero_resultnegative_body_steps_partial + S (fs_r_dst_zero_resultnegative_body_steps) = S ((S (fs_i_dst_zero_resultnegative_body_steps)) * fs_v_dst_zero_resultnegative)) /\ exists fs_q_dst_zero_resultnegative_body_steps_partial. fs_u_dst_zero_resultnegative = fs_q_dst_zero_resultnegative_body_steps_partial * S ((S (fs_i_dst_zero_resultnegative_body_steps)) * fs_v_dst_zero_resultnegative) + (fs_r_dst_zero_resultnegative_body_steps))) /\ ((((exists fs_h_dst_zero_resultnegative_body_steps_successor. fs_h_dst_zero_resultnegative_body_steps_successor + S (fs_s_dst_zero_resultnegative_body_steps) = S ((S (S fs_i_dst_zero_resultnegative_body_steps)) * fs_v_dst_zero_resultnegative)) /\ exists fs_q_dst_zero_resultnegative_body_steps_successor. fs_u_dst_zero_resultnegative = fs_q_dst_zero_resultnegative_body_steps_successor * S ((S (S fs_i_dst_zero_resultnegative_body_steps)) * fs_v_dst_zero_resultnegative) + (fs_s_dst_zero_resultnegative_body_steps))) /\ fs_s_dst_zero_resultnegative_body_steps = fs_r_dst_zero_resultnegative_body_steps + fs_a_dst_zero_resultnegative_body_steps)))))) /\ (exists ge_balance_positive_zero_resultresult ge_balance_negative_zero_resultresult. (((((0) = 2 * (ge_balance_positive_zero_resultresult) /\ (ge_balance_negative_zero_resultresult) = 0) \/ exists ge_signed_half_zero_resultresultdecode. (((0) = 2 * ge_signed_half_zero_resultresultdecode + 1 /\ (ge_balance_positive_zero_resultresult) = 0) /\ (ge_balance_negative_zero_resultresult) = S ge_signed_half_zero_resultresultdecode))) /\ ((dst_positive_sum_zero_result) + ge_balance_negative_zero_resultresult = (dst_negative_sum_zero_result) + ge_balance_positive_zero_resultresult)))))))))Constructive proof overview
Generated structural guide
Construct the actual sum of a valid all-zero prefix and prove its value, without postulating a sum oracle.
The unchanged tactic script uses 2 declared prerequisites and contains 21 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
arithmetic_signed_sum_exists Alpha theorem; checked-use authorized ZS0005 signed_prefix_sum_zero_valueDirect 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
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 (1)
01Fix variables and assumptionsL1–4
02Establish hsL5–10
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed sum exists.
03Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
cases hs
04Establish hvL12–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed prefix sum zero value.
Original exact command ledger · 21 lines
- 0001
intro F - 0002
intro l - 0003
intro hF - 0004
intro hz - 0005
have hs : exists z. (exists dst_positive_code_zero_construct dst_positive_scale_zero_construct dst_negative_code_zero_construct dst_negative_scale_zero_construct dst_positive_sum_zero_construct dst_negative_sum_zero_construct. (((F) = (((((dst_positive_code_zero_construct) + (dst_positive_scale_zero_construct)) * S ((dst_positive_code_zero_construct) + (dst_positive_scale_zero_construct)) + ((dst_positive_scale_zero_construct) + (dst_positive_scale_zero_construct))) + (((dst_negative_code_zero_construct) + (dst_negative_scale_zero_construct)) * S ((dst_negative_code_zero_construct) + (dst_negative_scale_zero_construct)) + ((dst_negative_scale_zero_construct) + (dst_negative_scale_zero_construct)))) * S ((((dst_positive_code_zero_construct) + (dst_positive_scale_zero_construct)) * S ((dst_positive_code_zero_construct) + (dst_positive_scale_zero_construct)) + ((dst_positive_scale_zero_construct) + (dst_positive_scale_zero_construct))) + (((dst_negative_code_zero_construct) + (dst_negative_scale_zero_construct)) * S ((dst_negative_code_zero_construct) + (dst_negative_scale_zero_construct)) + ((dst_negative_scale_zero_construct) + (dst_negative_scale_zero_construct)))) + ((((dst_negative_code_zero_construct) + (dst_negative_scale_zero_construct)) * S ((dst_negative_code_zero_construct) + (dst_negative_scale_zero_construct)) + ((dst_negative_scale_zero_construct) + (dst_negative_scale_zero_construct))) + (((dst_negative_code_zero_construct) + (dst_negative_scale_zero_construct)) * S ((dst_negative_code_zero_construct) + (dst_negative_scale_zero_construct)) + ((dst_negative_scale_zero_construct) + (dst_negative_scale_zero_construct)))))) /\ (((exists fs_u_dst_zero_constructpositive fs_v_dst_zero_constructpositive. ((((exists fs_h_dst_zero_constructpositive_body_start. fs_h_dst_zero_constructpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_zero_constructpositive)) /\ exists fs_q_dst_zero_constructpositive_body_start. fs_u_dst_zero_constructpositive = fs_q_dst_zero_constructpositive_body_start * S ((S (0)) * fs_v_dst_zero_constructpositive) + (0))) /\ ((((exists fs_h_dst_zero_constructpositive_body_terminal. fs_h_dst_zero_constructpositive_body_terminal + S (dst_positive_sum_zero_construct) = S ((S (l)) * fs_v_dst_zero_constructpositive)) /\ exists fs_q_dst_zero_constructpositive_body_terminal. fs_u_dst_zero_constructpositive = fs_q_dst_zero_constructpositive_body_terminal * S ((S (l)) * fs_v_dst_zero_constructpositive) + (dst_positive_sum_zero_construct))) /\ forall fs_i_dst_zero_constructpositive_body_steps. (exists fs_lt_dst_zero_constructpositive_body_steps_bound. fs_lt_dst_zero_constructpositive_body_steps_bound + S fs_i_dst_zero_constructpositive_body_steps = l) -> exists fs_a_dst_zero_constructpositive_body_steps fs_r_dst_zero_constructpositive_body_steps fs_s_dst_zero_constructpositive_body_steps. ((((exists fs_h_dst_zero_constructpositive_body_steps_summand. fs_h_dst_zero_constructpositive_body_steps_summand + S (fs_a_dst_zero_constructpositive_body_steps) = S ((S (fs_i_dst_zero_constructpositive_body_steps)) * dst_positive_scale_zero_construct)) /\ exists fs_q_dst_zero_constructpositive_body_steps_summand. dst_positive_code_zero_construct = fs_q_dst_zero_constructpositive_body_steps_summand * S ((S (fs_i_dst_zero_constructpositive_body_steps)) * dst_positive_scale_zero_construct) + (fs_a_dst_zero_constructpositive_body_steps))) /\ ((((exists fs_h_dst_zero_constructpositive_body_steps_partial. fs_h_dst_zero_constructpositive_body_steps_partial + S (fs_r_dst_zero_constructpositive_body_steps) = S ((S (fs_i_dst_zero_constructpositive_body_steps)) * fs_v_dst_zero_constructpositive)) /\ exists fs_q_dst_zero_constructpositive_body_steps_partial. fs_u_dst_zero_constructpositive = fs_q_dst_zero_constructpositive_body_steps_partial * S ((S (fs_i_dst_zero_constructpositive_body_steps)) * fs_v_dst_zero_constructpositive) + (fs_r_dst_zero_constructpositive_body_steps))) /\ ((((exists fs_h_dst_zero_constructpositive_body_steps_successor. fs_h_dst_zero_constructpositive_body_steps_successor + S (fs_s_dst_zero_constructpositive_body_steps) = S ((S (S fs_i_dst_zero_constructpositive_body_steps)) * fs_v_dst_zero_constructpositive)) /\ exists fs_q_dst_zero_constructpositive_body_steps_successor. fs_u_dst_zero_constructpositive = fs_q_dst_zero_constructpositive_body_steps_successor * S ((S (S fs_i_dst_zero_constructpositive_body_steps)) * fs_v_dst_zero_constructpositive) + (fs_s_dst_zero_constructpositive_body_steps))) /\ fs_s_dst_zero_constructpositive_body_steps = fs_r_dst_zero_constructpositive_body_steps + fs_a_dst_zero_constructpositive_body_steps)))))) /\ (((exists fs_u_dst_zero_constructnegative fs_v_dst_zero_constructnegative. ((((exists fs_h_dst_zero_constructnegative_body_start. fs_h_dst_zero_constructnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_zero_constructnegative)) /\ exists fs_q_dst_zero_constructnegative_body_start. fs_u_dst_zero_constructnegative = fs_q_dst_zero_constructnegative_body_start * S ((S (0)) * fs_v_dst_zero_constructnegative) + (0))) /\ ((((exists fs_h_dst_zero_constructnegative_body_terminal. fs_h_dst_zero_constructnegative_body_terminal + S (dst_negative_sum_zero_construct) = S ((S (l)) * fs_v_dst_zero_constructnegative)) /\ exists fs_q_dst_zero_constructnegative_body_terminal. fs_u_dst_zero_constructnegative = fs_q_dst_zero_constructnegative_body_terminal * S ((S (l)) * fs_v_dst_zero_constructnegative) + (dst_negative_sum_zero_construct))) /\ forall fs_i_dst_zero_constructnegative_body_steps. (exists fs_lt_dst_zero_constructnegative_body_steps_bound. fs_lt_dst_zero_constructnegative_body_steps_bound + S fs_i_dst_zero_constructnegative_body_steps = l) -> exists fs_a_dst_zero_constructnegative_body_steps fs_r_dst_zero_constructnegative_body_steps fs_s_dst_zero_constructnegative_body_steps. ((((exists fs_h_dst_zero_constructnegative_body_steps_summand. fs_h_dst_zero_constructnegative_body_steps_summand + S (fs_a_dst_zero_constructnegative_body_steps) = S ((S (fs_i_dst_zero_constructnegative_body_steps)) * dst_negative_scale_zero_construct)) /\ exists fs_q_dst_zero_constructnegative_body_steps_summand. dst_negative_code_zero_construct = fs_q_dst_zero_constructnegative_body_steps_summand * S ((S (fs_i_dst_zero_constructnegative_body_steps)) * dst_negative_scale_zero_construct) + (fs_a_dst_zero_constructnegative_body_steps))) /\ ((((exists fs_h_dst_zero_constructnegative_body_steps_partial. fs_h_dst_zero_constructnegative_body_steps_partial + S (fs_r_dst_zero_constructnegative_body_steps) = S ((S (fs_i_dst_zero_constructnegative_body_steps)) * fs_v_dst_zero_constructnegative)) /\ exists fs_q_dst_zero_constructnegative_body_steps_partial. fs_u_dst_zero_constructnegative = fs_q_dst_zero_constructnegative_body_steps_partial * S ((S (fs_i_dst_zero_constructnegative_body_steps)) * fs_v_dst_zero_constructnegative) + (fs_r_dst_zero_constructnegative_body_steps))) /\ ((((exists fs_h_dst_zero_constructnegative_body_steps_successor. fs_h_dst_zero_constructnegative_body_steps_successor + S (fs_s_dst_zero_constructnegative_body_steps) = S ((S (S fs_i_dst_zero_constructnegative_body_steps)) * fs_v_dst_zero_constructnegative)) /\ exists fs_q_dst_zero_constructnegative_body_steps_successor. fs_u_dst_zero_constructnegative = fs_q_dst_zero_constructnegative_body_steps_successor * S ((S (S fs_i_dst_zero_constructnegative_body_steps)) * fs_v_dst_zero_constructnegative) + (fs_s_dst_zero_constructnegative_body_steps))) /\ fs_s_dst_zero_constructnegative_body_steps = fs_r_dst_zero_constructnegative_body_steps + fs_a_dst_zero_constructnegative_body_steps)))))) /\ (exists ge_balance_positive_zero_constructresult ge_balance_negative_zero_constructresult. (((((z) = 2 * (ge_balance_positive_zero_constructresult) /\ (ge_balance_negative_zero_constructresult) = 0) \/ exists ge_signed_half_zero_constructresultdecode. (((z) = 2 * ge_signed_half_zero_constructresultdecode + 1 /\ (ge_balance_positive_zero_constructresult) = 0) /\ (ge_balance_negative_zero_constructresult) = S ge_signed_half_zero_constructresultdecode))) /\ ((dst_positive_sum_zero_construct) + ge_balance_negative_zero_constructresult = (dst_negative_sum_zero_construct) + ge_balance_positive_zero_constructresult))))))))) - 0006
specialize arithmetic_signed_sum_exists (0) - 0007
specialize arithmetic_signed_sum_exists (F) - 0008
specialize arithmetic_signed_sum_exists (l) - 0009
apply arithmetic_signed_sum_exists - 0010
exact hF - 0011
cases hs - 0012
have hv : x=0 - 0013
specialize signed_prefix_sum_zero_value (F) - 0014
specialize signed_prefix_sum_zero_value (l) - 0015
specialize signed_prefix_sum_zero_value (x) - 0016
apply signed_prefix_sum_zero_value - 0017
exact hz - 0018
exact hs_witness - 0019
rewrite hv at hs_witness - 0020
rewrite hv at hs_witness - 0021
exact hs_witness