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 a z. (forall sfs_index_last_zeros sfs_value_last_zeros. (exists pvs_le_gap_last_zeroslower. pvs_le_gap_last_zeroslower + (0) = (sfs_index_last_zeros)) -> (exists pvs_gap_last_zerosupper. pvs_gap_last_zerosupper + S (sfs_index_last_zeros) = (l)) -> (exists dst_positive_code_last_zerosentry dst_positive_scale_last_zerosentry dst_negative_code_last_zerosentry dst_negative_scale_last_zerosentry dst_positive_last_zerosentry dst_negative_last_zerosentry. (((F) = (((((dst_positive_code_last_zerosentry) + (dst_positive_scale_last_zerosentry)) * S ((dst_positive_code_last_zerosentry) + (dst_positive_scale_last_zerosentry)) + ((dst_positive_scale_last_zerosentry) + (dst_positive_scale_last_zerosentry))) + (((dst_negative_code_last_zerosentry) + (dst_negative_scale_last_zerosentry)) * S ((dst_negative_code_last_zerosentry) + (dst_negative_scale_last_zerosentry)) + ((dst_negative_scale_last_zerosentry) + (dst_negative_scale_last_zerosentry)))) * S ((((dst_positive_code_last_zerosentry) + (dst_positive_scale_last_zerosentry)) * S ((dst_positive_code_last_zerosentry) + (dst_positive_scale_last_zerosentry)) + ((dst_positive_scale_last_zerosentry) + (dst_positive_scale_last_zerosentry))) + (((dst_negative_code_last_zerosentry) + (dst_negative_scale_last_zerosentry)) * S ((dst_negative_code_last_zerosentry) + (dst_negative_scale_last_zerosentry)) + ((dst_negative_scale_last_zerosentry) + (dst_negative_scale_last_zerosentry)))) + ((((dst_negative_code_last_zerosentry) + (dst_negative_scale_last_zerosentry)) * S ((dst_negative_code_last_zerosentry) + (dst_negative_scale_last_zerosentry)) + ((dst_negative_scale_last_zerosentry) + (dst_negative_scale_last_zerosentry))) + (((dst_negative_code_last_zerosentry) + (dst_negative_scale_last_zerosentry)) * S ((dst_negative_code_last_zerosentry) + (dst_negative_scale_last_zerosentry)) + ((dst_negative_scale_last_zerosentry) + (dst_negative_scale_last_zerosentry)))))) /\ (((((exists ff_h_pvs_last_zerosentrypositive. ff_h_pvs_last_zerosentrypositive + S (dst_positive_last_zerosentry) = S ((S (sfs_index_last_zeros)) * dst_positive_scale_last_zerosentry)) /\ exists ff_q_pvs_last_zerosentrypositive. dst_positive_code_last_zerosentry = ff_q_pvs_last_zerosentrypositive * S ((S (sfs_index_last_zeros)) * dst_positive_scale_last_zerosentry) + (dst_positive_last_zerosentry))) /\ (((((exists ff_h_pvs_last_zerosentrynegative. ff_h_pvs_last_zerosentrynegative + S (dst_negative_last_zerosentry) = S ((S (sfs_index_last_zeros)) * dst_negative_scale_last_zerosentry)) /\ exists ff_q_pvs_last_zerosentrynegative. dst_negative_code_last_zerosentry = ff_q_pvs_last_zerosentrynegative * S ((S (sfs_index_last_zeros)) * dst_negative_scale_last_zerosentry) + (dst_negative_last_zerosentry))) /\ (exists ge_balance_positive_last_zerosentryvalue ge_balance_negative_last_zerosentryvalue. (((((sfs_value_last_zeros) = 2 * (ge_balance_positive_last_zerosentryvalue) /\ (ge_balance_negative_last_zerosentryvalue) = 0) \/ exists ge_signed_half_last_zerosentryvaluedecode. (((sfs_value_last_zeros) = 2 * ge_signed_half_last_zerosentryvaluedecode + 1 /\ (ge_balance_positive_last_zerosentryvalue) = 0) /\ (ge_balance_negative_last_zerosentryvalue) = S ge_signed_half_last_zerosentryvaluedecode))) /\ ((dst_positive_last_zerosentry) + ge_balance_negative_last_zerosentryvalue = (dst_negative_last_zerosentry) + ge_balance_positive_last_zerosentryvalue))))))))) -> sfs_value_last_zeros=0) -> (exists dst_positive_code_last_value dst_positive_scale_last_value dst_negative_code_last_value dst_negative_scale_last_value dst_positive_last_value dst_negative_last_value. (((F) = (((((dst_positive_code_last_value) + (dst_positive_scale_last_value)) * S ((dst_positive_code_last_value) + (dst_positive_scale_last_value)) + ((dst_positive_scale_last_value) + (dst_positive_scale_last_value))) + (((dst_negative_code_last_value) + (dst_negative_scale_last_value)) * S ((dst_negative_code_last_value) + (dst_negative_scale_last_value)) + ((dst_negative_scale_last_value) + (dst_negative_scale_last_value)))) * S ((((dst_positive_code_last_value) + (dst_positive_scale_last_value)) * S ((dst_positive_code_last_value) + (dst_positive_scale_last_value)) + ((dst_positive_scale_last_value) + (dst_positive_scale_last_value))) + (((dst_negative_code_last_value) + (dst_negative_scale_last_value)) * S ((dst_negative_code_last_value) + (dst_negative_scale_last_value)) + ((dst_negative_scale_last_value) + (dst_negative_scale_last_value)))) + ((((dst_negative_code_last_value) + (dst_negative_scale_last_value)) * S ((dst_negative_code_last_value) + (dst_negative_scale_last_value)) + ((dst_negative_scale_last_value) + (dst_negative_scale_last_value))) + (((dst_negative_code_last_value) + (dst_negative_scale_last_value)) * S ((dst_negative_code_last_value) + (dst_negative_scale_last_value)) + ((dst_negative_scale_last_value) + (dst_negative_scale_last_value)))))) /\ (((((exists ff_h_pvs_last_valuepositive. ff_h_pvs_last_valuepositive + S (dst_positive_last_value) = S ((S (l)) * dst_positive_scale_last_value)) /\ exists ff_q_pvs_last_valuepositive. dst_positive_code_last_value = ff_q_pvs_last_valuepositive * S ((S (l)) * dst_positive_scale_last_value) + (dst_positive_last_value))) /\ (((((exists ff_h_pvs_last_valuenegative. ff_h_pvs_last_valuenegative + S (dst_negative_last_value) = S ((S (l)) * dst_negative_scale_last_value)) /\ exists ff_q_pvs_last_valuenegative. dst_negative_code_last_value = ff_q_pvs_last_valuenegative * S ((S (l)) * dst_negative_scale_last_value) + (dst_negative_last_value))) /\ (exists ge_balance_positive_last_valuevalue ge_balance_negative_last_valuevalue. (((((a) = 2 * (ge_balance_positive_last_valuevalue) /\ (ge_balance_negative_last_valuevalue) = 0) \/ exists ge_signed_half_last_valuevaluedecode. (((a) = 2 * ge_signed_half_last_valuevaluedecode + 1 /\ (ge_balance_positive_last_valuevalue) = 0) /\ (ge_balance_negative_last_valuevalue) = S ge_signed_half_last_valuevaluedecode))) /\ ((dst_positive_last_value) + ge_balance_negative_last_valuevalue = (dst_negative_last_value) + ge_balance_positive_last_valuevalue))))))))) -> (exists dst_positive_code_last_sum dst_positive_scale_last_sum dst_negative_code_last_sum dst_negative_scale_last_sum dst_positive_sum_last_sum dst_negative_sum_last_sum. (((F) = (((((dst_positive_code_last_sum) + (dst_positive_scale_last_sum)) * S ((dst_positive_code_last_sum) + (dst_positive_scale_last_sum)) + ((dst_positive_scale_last_sum) + (dst_positive_scale_last_sum))) + (((dst_negative_code_last_sum) + (dst_negative_scale_last_sum)) * S ((dst_negative_code_last_sum) + (dst_negative_scale_last_sum)) + ((dst_negative_scale_last_sum) + (dst_negative_scale_last_sum)))) * S ((((dst_positive_code_last_sum) + (dst_positive_scale_last_sum)) * S ((dst_positive_code_last_sum) + (dst_positive_scale_last_sum)) + ((dst_positive_scale_last_sum) + (dst_positive_scale_last_sum))) + (((dst_negative_code_last_sum) + (dst_negative_scale_last_sum)) * S ((dst_negative_code_last_sum) + (dst_negative_scale_last_sum)) + ((dst_negative_scale_last_sum) + (dst_negative_scale_last_sum)))) + ((((dst_negative_code_last_sum) + (dst_negative_scale_last_sum)) * S ((dst_negative_code_last_sum) + (dst_negative_scale_last_sum)) + ((dst_negative_scale_last_sum) + (dst_negative_scale_last_sum))) + (((dst_negative_code_last_sum) + (dst_negative_scale_last_sum)) * S ((dst_negative_code_last_sum) + (dst_negative_scale_last_sum)) + ((dst_negative_scale_last_sum) + (dst_negative_scale_last_sum)))))) /\ (((exists fs_u_dst_last_sumpositive fs_v_dst_last_sumpositive. ((((exists fs_h_dst_last_sumpositive_body_start. fs_h_dst_last_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_last_sumpositive)) /\ exists fs_q_dst_last_sumpositive_body_start. fs_u_dst_last_sumpositive = fs_q_dst_last_sumpositive_body_start * S ((S (0)) * fs_v_dst_last_sumpositive) + (0))) /\ ((((exists fs_h_dst_last_sumpositive_body_terminal. fs_h_dst_last_sumpositive_body_terminal + S (dst_positive_sum_last_sum) = S ((S (S l)) * fs_v_dst_last_sumpositive)) /\ exists fs_q_dst_last_sumpositive_body_terminal. fs_u_dst_last_sumpositive = fs_q_dst_last_sumpositive_body_terminal * S ((S (S l)) * fs_v_dst_last_sumpositive) + (dst_positive_sum_last_sum))) /\ forall fs_i_dst_last_sumpositive_body_steps. (exists fs_lt_dst_last_sumpositive_body_steps_bound. fs_lt_dst_last_sumpositive_body_steps_bound + S fs_i_dst_last_sumpositive_body_steps = S l) -> exists fs_a_dst_last_sumpositive_body_steps fs_r_dst_last_sumpositive_body_steps fs_s_dst_last_sumpositive_body_steps. ((((exists fs_h_dst_last_sumpositive_body_steps_summand. fs_h_dst_last_sumpositive_body_steps_summand + S (fs_a_dst_last_sumpositive_body_steps) = S ((S (fs_i_dst_last_sumpositive_body_steps)) * dst_positive_scale_last_sum)) /\ exists fs_q_dst_last_sumpositive_body_steps_summand. dst_positive_code_last_sum = fs_q_dst_last_sumpositive_body_steps_summand * S ((S (fs_i_dst_last_sumpositive_body_steps)) * dst_positive_scale_last_sum) + (fs_a_dst_last_sumpositive_body_steps))) /\ ((((exists fs_h_dst_last_sumpositive_body_steps_partial. fs_h_dst_last_sumpositive_body_steps_partial + S (fs_r_dst_last_sumpositive_body_steps) = S ((S (fs_i_dst_last_sumpositive_body_steps)) * fs_v_dst_last_sumpositive)) /\ exists fs_q_dst_last_sumpositive_body_steps_partial. fs_u_dst_last_sumpositive = fs_q_dst_last_sumpositive_body_steps_partial * S ((S (fs_i_dst_last_sumpositive_body_steps)) * fs_v_dst_last_sumpositive) + (fs_r_dst_last_sumpositive_body_steps))) /\ ((((exists fs_h_dst_last_sumpositive_body_steps_successor. fs_h_dst_last_sumpositive_body_steps_successor + S (fs_s_dst_last_sumpositive_body_steps) = S ((S (S fs_i_dst_last_sumpositive_body_steps)) * fs_v_dst_last_sumpositive)) /\ exists fs_q_dst_last_sumpositive_body_steps_successor. fs_u_dst_last_sumpositive = fs_q_dst_last_sumpositive_body_steps_successor * S ((S (S fs_i_dst_last_sumpositive_body_steps)) * fs_v_dst_last_sumpositive) + (fs_s_dst_last_sumpositive_body_steps))) /\ fs_s_dst_last_sumpositive_body_steps = fs_r_dst_last_sumpositive_body_steps + fs_a_dst_last_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_last_sumnegative fs_v_dst_last_sumnegative. ((((exists fs_h_dst_last_sumnegative_body_start. fs_h_dst_last_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_last_sumnegative)) /\ exists fs_q_dst_last_sumnegative_body_start. fs_u_dst_last_sumnegative = fs_q_dst_last_sumnegative_body_start * S ((S (0)) * fs_v_dst_last_sumnegative) + (0))) /\ ((((exists fs_h_dst_last_sumnegative_body_terminal. fs_h_dst_last_sumnegative_body_terminal + S (dst_negative_sum_last_sum) = S ((S (S l)) * fs_v_dst_last_sumnegative)) /\ exists fs_q_dst_last_sumnegative_body_terminal. fs_u_dst_last_sumnegative = fs_q_dst_last_sumnegative_body_terminal * S ((S (S l)) * fs_v_dst_last_sumnegative) + (dst_negative_sum_last_sum))) /\ forall fs_i_dst_last_sumnegative_body_steps. (exists fs_lt_dst_last_sumnegative_body_steps_bound. fs_lt_dst_last_sumnegative_body_steps_bound + S fs_i_dst_last_sumnegative_body_steps = S l) -> exists fs_a_dst_last_sumnegative_body_steps fs_r_dst_last_sumnegative_body_steps fs_s_dst_last_sumnegative_body_steps. ((((exists fs_h_dst_last_sumnegative_body_steps_summand. fs_h_dst_last_sumnegative_body_steps_summand + S (fs_a_dst_last_sumnegative_body_steps) = S ((S (fs_i_dst_last_sumnegative_body_steps)) * dst_negative_scale_last_sum)) /\ exists fs_q_dst_last_sumnegative_body_steps_summand. dst_negative_code_last_sum = fs_q_dst_last_sumnegative_body_steps_summand * S ((S (fs_i_dst_last_sumnegative_body_steps)) * dst_negative_scale_last_sum) + (fs_a_dst_last_sumnegative_body_steps))) /\ ((((exists fs_h_dst_last_sumnegative_body_steps_partial. fs_h_dst_last_sumnegative_body_steps_partial + S (fs_r_dst_last_sumnegative_body_steps) = S ((S (fs_i_dst_last_sumnegative_body_steps)) * fs_v_dst_last_sumnegative)) /\ exists fs_q_dst_last_sumnegative_body_steps_partial. fs_u_dst_last_sumnegative = fs_q_dst_last_sumnegative_body_steps_partial * S ((S (fs_i_dst_last_sumnegative_body_steps)) * fs_v_dst_last_sumnegative) + (fs_r_dst_last_sumnegative_body_steps))) /\ ((((exists fs_h_dst_last_sumnegative_body_steps_successor. fs_h_dst_last_sumnegative_body_steps_successor + S (fs_s_dst_last_sumnegative_body_steps) = S ((S (S fs_i_dst_last_sumnegative_body_steps)) * fs_v_dst_last_sumnegative)) /\ exists fs_q_dst_last_sumnegative_body_steps_successor. fs_u_dst_last_sumnegative = fs_q_dst_last_sumnegative_body_steps_successor * S ((S (S fs_i_dst_last_sumnegative_body_steps)) * fs_v_dst_last_sumnegative) + (fs_s_dst_last_sumnegative_body_steps))) /\ fs_s_dst_last_sumnegative_body_steps = fs_r_dst_last_sumnegative_body_steps + fs_a_dst_last_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_last_sumresult ge_balance_negative_last_sumresult. (((((z) = 2 * (ge_balance_positive_last_sumresult) /\ (ge_balance_negative_last_sumresult) = 0) \/ exists ge_signed_half_last_sumresultdecode. (((z) = 2 * ge_signed_half_last_sumresultdecode + 1 /\ (ge_balance_positive_last_sumresult) = 0) /\ (ge_balance_negative_last_sumresult) = S ge_signed_half_last_sumresultdecode))) /\ ((dst_positive_sum_last_sum) + ge_balance_negative_last_sumresult = (dst_negative_sum_last_sum) + ge_balance_positive_last_sumresult))))))))) -> z=aConstructive proof overview
Generated structural guide
If a prefix is zero, its next actual sum is precisely the actual last entry, including the l=0 boundary.
The unchanged tactic script uses 5 declared prerequisites and contains 44 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
divisor_signed_sum_successor_decompose Alpha theorem; checked-use authorized ZS0005 signed_prefix_sum_zero_value divisor_signed_table_at_functional Alpha theorem; checked-use authorized signed_add_functional Alpha theorem; checked-use authorized signed_add_zero_left 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. 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–7
02Establish hdL8–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum successor decompose.
- L8
have hd : ∃ u. ∃ v. SignedPrefixSum(F,l,u) ∧ (ArithAt(F,l,v) ∧ SignedAdd(u,v,z))Definitions: SignedAddArithAtSignedPrefixSum - L9
specialize divisor_signed_sum_successor_decompose (F) - L10
specialize divisor_signed_sum_successor_decompose (l) - L11
specialize divisor_signed_sum_successor_decompose (z) - L12
apply divisor_signed_sum_successor_decompose - L13
exact hs
03Separate the logical casesL14–17
04Establish hpL18–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed prefix sum zero value.
05Establish heL25–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at functional.
- L25
have he : x1=a - L26
specialize divisor_signed_table_at_functional (F) - L27
specialize divisor_signed_table_at_functional (l) - L28
specialize divisor_signed_table_at_functional (x1) - L29
specialize divisor_signed_table_at_functional (a) - L30
apply divisor_signed_table_at_functional - L31
exact hd_witness_witness_right_left - L32
exact ha - L33
rewrite hp at hd_witness_witness_right_right - L34
rewrite hp at hd_witness_witness_right_right
06Calculate and transport equalitiesL35–36
07Use earlier factsL37–44
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 44 lines
- 0001
intro F - 0002
intro l - 0003
intro a - 0004
intro z - 0005
intro hz - 0006
intro ha - 0007
intro hs - 0008
have hd : exists u v. (((exists dst_positive_code_last_prefix dst_positive_scale_last_prefix dst_negative_code_last_prefix dst_negative_scale_last_prefix dst_positive_sum_last_prefix dst_negative_sum_last_prefix. (((F) = (((((dst_positive_code_last_prefix) + (dst_positive_scale_last_prefix)) * S ((dst_positive_code_last_prefix) + (dst_positive_scale_last_prefix)) + ((dst_positive_scale_last_prefix) + (dst_positive_scale_last_prefix))) + (((dst_negative_code_last_prefix) + (dst_negative_scale_last_prefix)) * S ((dst_negative_code_last_prefix) + (dst_negative_scale_last_prefix)) + ((dst_negative_scale_last_prefix) + (dst_negative_scale_last_prefix)))) * S ((((dst_positive_code_last_prefix) + (dst_positive_scale_last_prefix)) * S ((dst_positive_code_last_prefix) + (dst_positive_scale_last_prefix)) + ((dst_positive_scale_last_prefix) + (dst_positive_scale_last_prefix))) + (((dst_negative_code_last_prefix) + (dst_negative_scale_last_prefix)) * S ((dst_negative_code_last_prefix) + (dst_negative_scale_last_prefix)) + ((dst_negative_scale_last_prefix) + (dst_negative_scale_last_prefix)))) + ((((dst_negative_code_last_prefix) + (dst_negative_scale_last_prefix)) * S ((dst_negative_code_last_prefix) + (dst_negative_scale_last_prefix)) + ((dst_negative_scale_last_prefix) + (dst_negative_scale_last_prefix))) + (((dst_negative_code_last_prefix) + (dst_negative_scale_last_prefix)) * S ((dst_negative_code_last_prefix) + (dst_negative_scale_last_prefix)) + ((dst_negative_scale_last_prefix) + (dst_negative_scale_last_prefix)))))) /\ (((exists fs_u_dst_last_prefixpositive fs_v_dst_last_prefixpositive. ((((exists fs_h_dst_last_prefixpositive_body_start. fs_h_dst_last_prefixpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_last_prefixpositive)) /\ exists fs_q_dst_last_prefixpositive_body_start. fs_u_dst_last_prefixpositive = fs_q_dst_last_prefixpositive_body_start * S ((S (0)) * fs_v_dst_last_prefixpositive) + (0))) /\ ((((exists fs_h_dst_last_prefixpositive_body_terminal. fs_h_dst_last_prefixpositive_body_terminal + S (dst_positive_sum_last_prefix) = S ((S (l)) * fs_v_dst_last_prefixpositive)) /\ exists fs_q_dst_last_prefixpositive_body_terminal. fs_u_dst_last_prefixpositive = fs_q_dst_last_prefixpositive_body_terminal * S ((S (l)) * fs_v_dst_last_prefixpositive) + (dst_positive_sum_last_prefix))) /\ forall fs_i_dst_last_prefixpositive_body_steps. (exists fs_lt_dst_last_prefixpositive_body_steps_bound. fs_lt_dst_last_prefixpositive_body_steps_bound + S fs_i_dst_last_prefixpositive_body_steps = l) -> exists fs_a_dst_last_prefixpositive_body_steps fs_r_dst_last_prefixpositive_body_steps fs_s_dst_last_prefixpositive_body_steps. ((((exists fs_h_dst_last_prefixpositive_body_steps_summand. fs_h_dst_last_prefixpositive_body_steps_summand + S (fs_a_dst_last_prefixpositive_body_steps) = S ((S (fs_i_dst_last_prefixpositive_body_steps)) * dst_positive_scale_last_prefix)) /\ exists fs_q_dst_last_prefixpositive_body_steps_summand. dst_positive_code_last_prefix = fs_q_dst_last_prefixpositive_body_steps_summand * S ((S (fs_i_dst_last_prefixpositive_body_steps)) * dst_positive_scale_last_prefix) + (fs_a_dst_last_prefixpositive_body_steps))) /\ ((((exists fs_h_dst_last_prefixpositive_body_steps_partial. fs_h_dst_last_prefixpositive_body_steps_partial + S (fs_r_dst_last_prefixpositive_body_steps) = S ((S (fs_i_dst_last_prefixpositive_body_steps)) * fs_v_dst_last_prefixpositive)) /\ exists fs_q_dst_last_prefixpositive_body_steps_partial. fs_u_dst_last_prefixpositive = fs_q_dst_last_prefixpositive_body_steps_partial * S ((S (fs_i_dst_last_prefixpositive_body_steps)) * fs_v_dst_last_prefixpositive) + (fs_r_dst_last_prefixpositive_body_steps))) /\ ((((exists fs_h_dst_last_prefixpositive_body_steps_successor. fs_h_dst_last_prefixpositive_body_steps_successor + S (fs_s_dst_last_prefixpositive_body_steps) = S ((S (S fs_i_dst_last_prefixpositive_body_steps)) * fs_v_dst_last_prefixpositive)) /\ exists fs_q_dst_last_prefixpositive_body_steps_successor. fs_u_dst_last_prefixpositive = fs_q_dst_last_prefixpositive_body_steps_successor * S ((S (S fs_i_dst_last_prefixpositive_body_steps)) * fs_v_dst_last_prefixpositive) + (fs_s_dst_last_prefixpositive_body_steps))) /\ fs_s_dst_last_prefixpositive_body_steps = fs_r_dst_last_prefixpositive_body_steps + fs_a_dst_last_prefixpositive_body_steps)))))) /\ (((exists fs_u_dst_last_prefixnegative fs_v_dst_last_prefixnegative. ((((exists fs_h_dst_last_prefixnegative_body_start. fs_h_dst_last_prefixnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_last_prefixnegative)) /\ exists fs_q_dst_last_prefixnegative_body_start. fs_u_dst_last_prefixnegative = fs_q_dst_last_prefixnegative_body_start * S ((S (0)) * fs_v_dst_last_prefixnegative) + (0))) /\ ((((exists fs_h_dst_last_prefixnegative_body_terminal. fs_h_dst_last_prefixnegative_body_terminal + S (dst_negative_sum_last_prefix) = S ((S (l)) * fs_v_dst_last_prefixnegative)) /\ exists fs_q_dst_last_prefixnegative_body_terminal. fs_u_dst_last_prefixnegative = fs_q_dst_last_prefixnegative_body_terminal * S ((S (l)) * fs_v_dst_last_prefixnegative) + (dst_negative_sum_last_prefix))) /\ forall fs_i_dst_last_prefixnegative_body_steps. (exists fs_lt_dst_last_prefixnegative_body_steps_bound. fs_lt_dst_last_prefixnegative_body_steps_bound + S fs_i_dst_last_prefixnegative_body_steps = l) -> exists fs_a_dst_last_prefixnegative_body_steps fs_r_dst_last_prefixnegative_body_steps fs_s_dst_last_prefixnegative_body_steps. ((((exists fs_h_dst_last_prefixnegative_body_steps_summand. fs_h_dst_last_prefixnegative_body_steps_summand + S (fs_a_dst_last_prefixnegative_body_steps) = S ((S (fs_i_dst_last_prefixnegative_body_steps)) * dst_negative_scale_last_prefix)) /\ exists fs_q_dst_last_prefixnegative_body_steps_summand. dst_negative_code_last_prefix = fs_q_dst_last_prefixnegative_body_steps_summand * S ((S (fs_i_dst_last_prefixnegative_body_steps)) * dst_negative_scale_last_prefix) + (fs_a_dst_last_prefixnegative_body_steps))) /\ ((((exists fs_h_dst_last_prefixnegative_body_steps_partial. fs_h_dst_last_prefixnegative_body_steps_partial + S (fs_r_dst_last_prefixnegative_body_steps) = S ((S (fs_i_dst_last_prefixnegative_body_steps)) * fs_v_dst_last_prefixnegative)) /\ exists fs_q_dst_last_prefixnegative_body_steps_partial. fs_u_dst_last_prefixnegative = fs_q_dst_last_prefixnegative_body_steps_partial * S ((S (fs_i_dst_last_prefixnegative_body_steps)) * fs_v_dst_last_prefixnegative) + (fs_r_dst_last_prefixnegative_body_steps))) /\ ((((exists fs_h_dst_last_prefixnegative_body_steps_successor. fs_h_dst_last_prefixnegative_body_steps_successor + S (fs_s_dst_last_prefixnegative_body_steps) = S ((S (S fs_i_dst_last_prefixnegative_body_steps)) * fs_v_dst_last_prefixnegative)) /\ exists fs_q_dst_last_prefixnegative_body_steps_successor. fs_u_dst_last_prefixnegative = fs_q_dst_last_prefixnegative_body_steps_successor * S ((S (S fs_i_dst_last_prefixnegative_body_steps)) * fs_v_dst_last_prefixnegative) + (fs_s_dst_last_prefixnegative_body_steps))) /\ fs_s_dst_last_prefixnegative_body_steps = fs_r_dst_last_prefixnegative_body_steps + fs_a_dst_last_prefixnegative_body_steps)))))) /\ (exists ge_balance_positive_last_prefixresult ge_balance_negative_last_prefixresult. (((((u) = 2 * (ge_balance_positive_last_prefixresult) /\ (ge_balance_negative_last_prefixresult) = 0) \/ exists ge_signed_half_last_prefixresultdecode. (((u) = 2 * ge_signed_half_last_prefixresultdecode + 1 /\ (ge_balance_positive_last_prefixresult) = 0) /\ (ge_balance_negative_last_prefixresult) = S ge_signed_half_last_prefixresultdecode))) /\ ((dst_positive_sum_last_prefix) + ge_balance_negative_last_prefixresult = (dst_negative_sum_last_prefix) + ge_balance_positive_last_prefixresult))))))))) /\ (((exists dst_positive_code_last_entry dst_positive_scale_last_entry dst_negative_code_last_entry dst_negative_scale_last_entry dst_positive_last_entry dst_negative_last_entry. (((F) = (((((dst_positive_code_last_entry) + (dst_positive_scale_last_entry)) * S ((dst_positive_code_last_entry) + (dst_positive_scale_last_entry)) + ((dst_positive_scale_last_entry) + (dst_positive_scale_last_entry))) + (((dst_negative_code_last_entry) + (dst_negative_scale_last_entry)) * S ((dst_negative_code_last_entry) + (dst_negative_scale_last_entry)) + ((dst_negative_scale_last_entry) + (dst_negative_scale_last_entry)))) * S ((((dst_positive_code_last_entry) + (dst_positive_scale_last_entry)) * S ((dst_positive_code_last_entry) + (dst_positive_scale_last_entry)) + ((dst_positive_scale_last_entry) + (dst_positive_scale_last_entry))) + (((dst_negative_code_last_entry) + (dst_negative_scale_last_entry)) * S ((dst_negative_code_last_entry) + (dst_negative_scale_last_entry)) + ((dst_negative_scale_last_entry) + (dst_negative_scale_last_entry)))) + ((((dst_negative_code_last_entry) + (dst_negative_scale_last_entry)) * S ((dst_negative_code_last_entry) + (dst_negative_scale_last_entry)) + ((dst_negative_scale_last_entry) + (dst_negative_scale_last_entry))) + (((dst_negative_code_last_entry) + (dst_negative_scale_last_entry)) * S ((dst_negative_code_last_entry) + (dst_negative_scale_last_entry)) + ((dst_negative_scale_last_entry) + (dst_negative_scale_last_entry)))))) /\ (((((exists ff_h_pvs_last_entrypositive. ff_h_pvs_last_entrypositive + S (dst_positive_last_entry) = S ((S (l)) * dst_positive_scale_last_entry)) /\ exists ff_q_pvs_last_entrypositive. dst_positive_code_last_entry = ff_q_pvs_last_entrypositive * S ((S (l)) * dst_positive_scale_last_entry) + (dst_positive_last_entry))) /\ (((((exists ff_h_pvs_last_entrynegative. ff_h_pvs_last_entrynegative + S (dst_negative_last_entry) = S ((S (l)) * dst_negative_scale_last_entry)) /\ exists ff_q_pvs_last_entrynegative. dst_negative_code_last_entry = ff_q_pvs_last_entrynegative * S ((S (l)) * dst_negative_scale_last_entry) + (dst_negative_last_entry))) /\ (exists ge_balance_positive_last_entryvalue ge_balance_negative_last_entryvalue. (((((v) = 2 * (ge_balance_positive_last_entryvalue) /\ (ge_balance_negative_last_entryvalue) = 0) \/ exists ge_signed_half_last_entryvaluedecode. (((v) = 2 * ge_signed_half_last_entryvaluedecode + 1 /\ (ge_balance_positive_last_entryvalue) = 0) /\ (ge_balance_negative_last_entryvalue) = S ge_signed_half_last_entryvaluedecode))) /\ ((dst_positive_last_entry) + ge_balance_negative_last_entryvalue = (dst_negative_last_entry) + ge_balance_positive_last_entryvalue))))))))) /\ (exists dsa_ap_last_add dsa_an_last_add dsa_bp_last_add dsa_bn_last_add dsa_cp_last_add dsa_cn_last_add. (((((u) = 2 * (dsa_ap_last_add) /\ (dsa_an_last_add) = 0) \/ exists ge_signed_half_last_addleft. (((u) = 2 * ge_signed_half_last_addleft + 1 /\ (dsa_ap_last_add) = 0) /\ (dsa_an_last_add) = S ge_signed_half_last_addleft))) /\ ((((((v) = 2 * (dsa_bp_last_add) /\ (dsa_bn_last_add) = 0) \/ exists ge_signed_half_last_addright. (((v) = 2 * ge_signed_half_last_addright + 1 /\ (dsa_bp_last_add) = 0) /\ (dsa_bn_last_add) = S ge_signed_half_last_addright))) /\ ((((((z) = 2 * (dsa_cp_last_add) /\ (dsa_cn_last_add) = 0) \/ exists ge_signed_half_last_addoutput. (((z) = 2 * ge_signed_half_last_addoutput + 1 /\ (dsa_cp_last_add) = 0) /\ (dsa_cn_last_add) = S ge_signed_half_last_addoutput))) /\ ((dsa_ap_last_add + dsa_bp_last_add) + dsa_cn_last_add = (dsa_an_last_add + dsa_bn_last_add) + dsa_cp_last_add))))))))))) - 0009
specialize divisor_signed_sum_successor_decompose (F) - 0010
specialize divisor_signed_sum_successor_decompose (l) - 0011
specialize divisor_signed_sum_successor_decompose (z) - 0012
apply divisor_signed_sum_successor_decompose - 0013
exact hs - 0014
cases hd - 0015
cases hd_witness - 0016
cases hd_witness_witness - 0017
cases hd_witness_witness_right - 0018
have hp : x=0 - 0019
specialize signed_prefix_sum_zero_value (F) - 0020
specialize signed_prefix_sum_zero_value (l) - 0021
specialize signed_prefix_sum_zero_value (x) - 0022
apply signed_prefix_sum_zero_value - 0023
exact hz - 0024
exact hd_witness_witness_left - 0025
have he : x1=a - 0026
specialize divisor_signed_table_at_functional (F) - 0027
specialize divisor_signed_table_at_functional (l) - 0028
specialize divisor_signed_table_at_functional (x1) - 0029
specialize divisor_signed_table_at_functional (a) - 0030
apply divisor_signed_table_at_functional - 0031
exact hd_witness_witness_right_left - 0032
exact ha - 0033
rewrite hp at hd_witness_witness_right_right - 0034
rewrite hp at hd_witness_witness_right_right - 0035
rewrite he at hd_witness_witness_right_right - 0036
rewrite he at hd_witness_witness_right_right - 0037
specialize signed_add_functional (0) - 0038
specialize signed_add_functional (a) - 0039
specialize signed_add_functional (z) - 0040
specialize signed_add_functional (a) - 0041
apply signed_add_functional - 0042
exact hd_witness_witness_right_right - 0043
specialize signed_add_zero_left (a) - 0044
apply signed_add_zero_left