Exact expanded first-order arithmetic statement
forall F pb pc nb nc l p n z. ((F) = (((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) * S ((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) + ((((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))))) -> (exists fs_u_dst_sum_constructor_positive fs_v_dst_sum_constructor_positive. ((((exists fs_h_dst_sum_constructor_positive_body_start. fs_h_dst_sum_constructor_positive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_constructor_positive)) /\ exists fs_q_dst_sum_constructor_positive_body_start. fs_u_dst_sum_constructor_positive = fs_q_dst_sum_constructor_positive_body_start * S ((S (0)) * fs_v_dst_sum_constructor_positive) + (0))) /\ ((((exists fs_h_dst_sum_constructor_positive_body_terminal. fs_h_dst_sum_constructor_positive_body_terminal + S (p) = S ((S (l)) * fs_v_dst_sum_constructor_positive)) /\ exists fs_q_dst_sum_constructor_positive_body_terminal. fs_u_dst_sum_constructor_positive = fs_q_dst_sum_constructor_positive_body_terminal * S ((S (l)) * fs_v_dst_sum_constructor_positive) + (p))) /\ forall fs_i_dst_sum_constructor_positive_body_steps. (exists fs_lt_dst_sum_constructor_positive_body_steps_bound. fs_lt_dst_sum_constructor_positive_body_steps_bound + S fs_i_dst_sum_constructor_positive_body_steps = l) -> exists fs_a_dst_sum_constructor_positive_body_steps fs_r_dst_sum_constructor_positive_body_steps fs_s_dst_sum_constructor_positive_body_steps. ((((exists fs_h_dst_sum_constructor_positive_body_steps_summand. fs_h_dst_sum_constructor_positive_body_steps_summand + S (fs_a_dst_sum_constructor_positive_body_steps) = S ((S (fs_i_dst_sum_constructor_positive_body_steps)) * pc)) /\ exists fs_q_dst_sum_constructor_positive_body_steps_summand. pb = fs_q_dst_sum_constructor_positive_body_steps_summand * S ((S (fs_i_dst_sum_constructor_positive_body_steps)) * pc) + (fs_a_dst_sum_constructor_positive_body_steps))) /\ ((((exists fs_h_dst_sum_constructor_positive_body_steps_partial. fs_h_dst_sum_constructor_positive_body_steps_partial + S (fs_r_dst_sum_constructor_positive_body_steps) = S ((S (fs_i_dst_sum_constructor_positive_body_steps)) * fs_v_dst_sum_constructor_positive)) /\ exists fs_q_dst_sum_constructor_positive_body_steps_partial. fs_u_dst_sum_constructor_positive = fs_q_dst_sum_constructor_positive_body_steps_partial * S ((S (fs_i_dst_sum_constructor_positive_body_steps)) * fs_v_dst_sum_constructor_positive) + (fs_r_dst_sum_constructor_positive_body_steps))) /\ ((((exists fs_h_dst_sum_constructor_positive_body_steps_successor. fs_h_dst_sum_constructor_positive_body_steps_successor + S (fs_s_dst_sum_constructor_positive_body_steps) = S ((S (S fs_i_dst_sum_constructor_positive_body_steps)) * fs_v_dst_sum_constructor_positive)) /\ exists fs_q_dst_sum_constructor_positive_body_steps_successor. fs_u_dst_sum_constructor_positive = fs_q_dst_sum_constructor_positive_body_steps_successor * S ((S (S fs_i_dst_sum_constructor_positive_body_steps)) * fs_v_dst_sum_constructor_positive) + (fs_s_dst_sum_constructor_positive_body_steps))) /\ fs_s_dst_sum_constructor_positive_body_steps = fs_r_dst_sum_constructor_positive_body_steps + fs_a_dst_sum_constructor_positive_body_steps)))))) -> (exists fs_u_dst_sum_constructor_negative fs_v_dst_sum_constructor_negative. ((((exists fs_h_dst_sum_constructor_negative_body_start. fs_h_dst_sum_constructor_negative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_constructor_negative)) /\ exists fs_q_dst_sum_constructor_negative_body_start. fs_u_dst_sum_constructor_negative = fs_q_dst_sum_constructor_negative_body_start * S ((S (0)) * fs_v_dst_sum_constructor_negative) + (0))) /\ ((((exists fs_h_dst_sum_constructor_negative_body_terminal. fs_h_dst_sum_constructor_negative_body_terminal + S (n) = S ((S (l)) * fs_v_dst_sum_constructor_negative)) /\ exists fs_q_dst_sum_constructor_negative_body_terminal. fs_u_dst_sum_constructor_negative = fs_q_dst_sum_constructor_negative_body_terminal * S ((S (l)) * fs_v_dst_sum_constructor_negative) + (n))) /\ forall fs_i_dst_sum_constructor_negative_body_steps. (exists fs_lt_dst_sum_constructor_negative_body_steps_bound. fs_lt_dst_sum_constructor_negative_body_steps_bound + S fs_i_dst_sum_constructor_negative_body_steps = l) -> exists fs_a_dst_sum_constructor_negative_body_steps fs_r_dst_sum_constructor_negative_body_steps fs_s_dst_sum_constructor_negative_body_steps. ((((exists fs_h_dst_sum_constructor_negative_body_steps_summand. fs_h_dst_sum_constructor_negative_body_steps_summand + S (fs_a_dst_sum_constructor_negative_body_steps) = S ((S (fs_i_dst_sum_constructor_negative_body_steps)) * nc)) /\ exists fs_q_dst_sum_constructor_negative_body_steps_summand. nb = fs_q_dst_sum_constructor_negative_body_steps_summand * S ((S (fs_i_dst_sum_constructor_negative_body_steps)) * nc) + (fs_a_dst_sum_constructor_negative_body_steps))) /\ ((((exists fs_h_dst_sum_constructor_negative_body_steps_partial. fs_h_dst_sum_constructor_negative_body_steps_partial + S (fs_r_dst_sum_constructor_negative_body_steps) = S ((S (fs_i_dst_sum_constructor_negative_body_steps)) * fs_v_dst_sum_constructor_negative)) /\ exists fs_q_dst_sum_constructor_negative_body_steps_partial. fs_u_dst_sum_constructor_negative = fs_q_dst_sum_constructor_negative_body_steps_partial * S ((S (fs_i_dst_sum_constructor_negative_body_steps)) * fs_v_dst_sum_constructor_negative) + (fs_r_dst_sum_constructor_negative_body_steps))) /\ ((((exists fs_h_dst_sum_constructor_negative_body_steps_successor. fs_h_dst_sum_constructor_negative_body_steps_successor + S (fs_s_dst_sum_constructor_negative_body_steps) = S ((S (S fs_i_dst_sum_constructor_negative_body_steps)) * fs_v_dst_sum_constructor_negative)) /\ exists fs_q_dst_sum_constructor_negative_body_steps_successor. fs_u_dst_sum_constructor_negative = fs_q_dst_sum_constructor_negative_body_steps_successor * S ((S (S fs_i_dst_sum_constructor_negative_body_steps)) * fs_v_dst_sum_constructor_negative) + (fs_s_dst_sum_constructor_negative_body_steps))) /\ fs_s_dst_sum_constructor_negative_body_steps = fs_r_dst_sum_constructor_negative_body_steps + fs_a_dst_sum_constructor_negative_body_steps)))))) -> (exists ge_balance_positive_sum_constructor_balance ge_balance_negative_sum_constructor_balance. (((((z) = 2 * (ge_balance_positive_sum_constructor_balance) /\ (ge_balance_negative_sum_constructor_balance) = 0) \/ exists ge_signed_half_sum_constructor_balancedecode. (((z) = 2 * ge_signed_half_sum_constructor_balancedecode + 1 /\ (ge_balance_positive_sum_constructor_balance) = 0) /\ (ge_balance_negative_sum_constructor_balance) = S ge_signed_half_sum_constructor_balancedecode))) /\ ((p) + ge_balance_negative_sum_constructor_balance = (n) + ge_balance_positive_sum_constructor_balance))) -> (exists dst_positive_code_sum_constructor_result dst_positive_scale_sum_constructor_result dst_negative_code_sum_constructor_result dst_negative_scale_sum_constructor_result dst_positive_sum_sum_constructor_result dst_negative_sum_sum_constructor_result. (((F) = (((((dst_positive_code_sum_constructor_result) + (dst_positive_scale_sum_constructor_result)) * S ((dst_positive_code_sum_constructor_result) + (dst_positive_scale_sum_constructor_result)) + ((dst_positive_scale_sum_constructor_result) + (dst_positive_scale_sum_constructor_result))) + (((dst_negative_code_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)) * S ((dst_negative_code_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)) + ((dst_negative_scale_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)))) * S ((((dst_positive_code_sum_constructor_result) + (dst_positive_scale_sum_constructor_result)) * S ((dst_positive_code_sum_constructor_result) + (dst_positive_scale_sum_constructor_result)) + ((dst_positive_scale_sum_constructor_result) + (dst_positive_scale_sum_constructor_result))) + (((dst_negative_code_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)) * S ((dst_negative_code_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)) + ((dst_negative_scale_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)))) + ((((dst_negative_code_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)) * S ((dst_negative_code_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)) + ((dst_negative_scale_sum_constructor_result) + (dst_negative_scale_sum_constructor_result))) + (((dst_negative_code_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)) * S ((dst_negative_code_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)) + ((dst_negative_scale_sum_constructor_result) + (dst_negative_scale_sum_constructor_result)))))) /\ (((exists fs_u_dst_sum_constructor_resultpositive fs_v_dst_sum_constructor_resultpositive. ((((exists fs_h_dst_sum_constructor_resultpositive_body_start. fs_h_dst_sum_constructor_resultpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_constructor_resultpositive)) /\ exists fs_q_dst_sum_constructor_resultpositive_body_start. fs_u_dst_sum_constructor_resultpositive = fs_q_dst_sum_constructor_resultpositive_body_start * S ((S (0)) * fs_v_dst_sum_constructor_resultpositive) + (0))) /\ ((((exists fs_h_dst_sum_constructor_resultpositive_body_terminal. fs_h_dst_sum_constructor_resultpositive_body_terminal + S (dst_positive_sum_sum_constructor_result) = S ((S (l)) * fs_v_dst_sum_constructor_resultpositive)) /\ exists fs_q_dst_sum_constructor_resultpositive_body_terminal. fs_u_dst_sum_constructor_resultpositive = fs_q_dst_sum_constructor_resultpositive_body_terminal * S ((S (l)) * fs_v_dst_sum_constructor_resultpositive) + (dst_positive_sum_sum_constructor_result))) /\ forall fs_i_dst_sum_constructor_resultpositive_body_steps. (exists fs_lt_dst_sum_constructor_resultpositive_body_steps_bound. fs_lt_dst_sum_constructor_resultpositive_body_steps_bound + S fs_i_dst_sum_constructor_resultpositive_body_steps = l) -> exists fs_a_dst_sum_constructor_resultpositive_body_steps fs_r_dst_sum_constructor_resultpositive_body_steps fs_s_dst_sum_constructor_resultpositive_body_steps. ((((exists fs_h_dst_sum_constructor_resultpositive_body_steps_summand. fs_h_dst_sum_constructor_resultpositive_body_steps_summand + S (fs_a_dst_sum_constructor_resultpositive_body_steps) = S ((S (fs_i_dst_sum_constructor_resultpositive_body_steps)) * dst_positive_scale_sum_constructor_result)) /\ exists fs_q_dst_sum_constructor_resultpositive_body_steps_summand. dst_positive_code_sum_constructor_result = fs_q_dst_sum_constructor_resultpositive_body_steps_summand * S ((S (fs_i_dst_sum_constructor_resultpositive_body_steps)) * dst_positive_scale_sum_constructor_result) + (fs_a_dst_sum_constructor_resultpositive_body_steps))) /\ ((((exists fs_h_dst_sum_constructor_resultpositive_body_steps_partial. fs_h_dst_sum_constructor_resultpositive_body_steps_partial + S (fs_r_dst_sum_constructor_resultpositive_body_steps) = S ((S (fs_i_dst_sum_constructor_resultpositive_body_steps)) * fs_v_dst_sum_constructor_resultpositive)) /\ exists fs_q_dst_sum_constructor_resultpositive_body_steps_partial. fs_u_dst_sum_constructor_resultpositive = fs_q_dst_sum_constructor_resultpositive_body_steps_partial * S ((S (fs_i_dst_sum_constructor_resultpositive_body_steps)) * fs_v_dst_sum_constructor_resultpositive) + (fs_r_dst_sum_constructor_resultpositive_body_steps))) /\ ((((exists fs_h_dst_sum_constructor_resultpositive_body_steps_successor. fs_h_dst_sum_constructor_resultpositive_body_steps_successor + S (fs_s_dst_sum_constructor_resultpositive_body_steps) = S ((S (S fs_i_dst_sum_constructor_resultpositive_body_steps)) * fs_v_dst_sum_constructor_resultpositive)) /\ exists fs_q_dst_sum_constructor_resultpositive_body_steps_successor. fs_u_dst_sum_constructor_resultpositive = fs_q_dst_sum_constructor_resultpositive_body_steps_successor * S ((S (S fs_i_dst_sum_constructor_resultpositive_body_steps)) * fs_v_dst_sum_constructor_resultpositive) + (fs_s_dst_sum_constructor_resultpositive_body_steps))) /\ fs_s_dst_sum_constructor_resultpositive_body_steps = fs_r_dst_sum_constructor_resultpositive_body_steps + fs_a_dst_sum_constructor_resultpositive_body_steps)))))) /\ (((exists fs_u_dst_sum_constructor_resultnegative fs_v_dst_sum_constructor_resultnegative. ((((exists fs_h_dst_sum_constructor_resultnegative_body_start. fs_h_dst_sum_constructor_resultnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_constructor_resultnegative)) /\ exists fs_q_dst_sum_constructor_resultnegative_body_start. fs_u_dst_sum_constructor_resultnegative = fs_q_dst_sum_constructor_resultnegative_body_start * S ((S (0)) * fs_v_dst_sum_constructor_resultnegative) + (0))) /\ ((((exists fs_h_dst_sum_constructor_resultnegative_body_terminal. fs_h_dst_sum_constructor_resultnegative_body_terminal + S (dst_negative_sum_sum_constructor_result) = S ((S (l)) * fs_v_dst_sum_constructor_resultnegative)) /\ exists fs_q_dst_sum_constructor_resultnegative_body_terminal. fs_u_dst_sum_constructor_resultnegative = fs_q_dst_sum_constructor_resultnegative_body_terminal * S ((S (l)) * fs_v_dst_sum_constructor_resultnegative) + (dst_negative_sum_sum_constructor_result))) /\ forall fs_i_dst_sum_constructor_resultnegative_body_steps. (exists fs_lt_dst_sum_constructor_resultnegative_body_steps_bound. fs_lt_dst_sum_constructor_resultnegative_body_steps_bound + S fs_i_dst_sum_constructor_resultnegative_body_steps = l) -> exists fs_a_dst_sum_constructor_resultnegative_body_steps fs_r_dst_sum_constructor_resultnegative_body_steps fs_s_dst_sum_constructor_resultnegative_body_steps. ((((exists fs_h_dst_sum_constructor_resultnegative_body_steps_summand. fs_h_dst_sum_constructor_resultnegative_body_steps_summand + S (fs_a_dst_sum_constructor_resultnegative_body_steps) = S ((S (fs_i_dst_sum_constructor_resultnegative_body_steps)) * dst_negative_scale_sum_constructor_result)) /\ exists fs_q_dst_sum_constructor_resultnegative_body_steps_summand. dst_negative_code_sum_constructor_result = fs_q_dst_sum_constructor_resultnegative_body_steps_summand * S ((S (fs_i_dst_sum_constructor_resultnegative_body_steps)) * dst_negative_scale_sum_constructor_result) + (fs_a_dst_sum_constructor_resultnegative_body_steps))) /\ ((((exists fs_h_dst_sum_constructor_resultnegative_body_steps_partial. fs_h_dst_sum_constructor_resultnegative_body_steps_partial + S (fs_r_dst_sum_constructor_resultnegative_body_steps) = S ((S (fs_i_dst_sum_constructor_resultnegative_body_steps)) * fs_v_dst_sum_constructor_resultnegative)) /\ exists fs_q_dst_sum_constructor_resultnegative_body_steps_partial. fs_u_dst_sum_constructor_resultnegative = fs_q_dst_sum_constructor_resultnegative_body_steps_partial * S ((S (fs_i_dst_sum_constructor_resultnegative_body_steps)) * fs_v_dst_sum_constructor_resultnegative) + (fs_r_dst_sum_constructor_resultnegative_body_steps))) /\ ((((exists fs_h_dst_sum_constructor_resultnegative_body_steps_successor. fs_h_dst_sum_constructor_resultnegative_body_steps_successor + S (fs_s_dst_sum_constructor_resultnegative_body_steps) = S ((S (S fs_i_dst_sum_constructor_resultnegative_body_steps)) * fs_v_dst_sum_constructor_resultnegative)) /\ exists fs_q_dst_sum_constructor_resultnegative_body_steps_successor. fs_u_dst_sum_constructor_resultnegative = fs_q_dst_sum_constructor_resultnegative_body_steps_successor * S ((S (S fs_i_dst_sum_constructor_resultnegative_body_steps)) * fs_v_dst_sum_constructor_resultnegative) + (fs_s_dst_sum_constructor_resultnegative_body_steps))) /\ fs_s_dst_sum_constructor_resultnegative_body_steps = fs_r_dst_sum_constructor_resultnegative_body_steps + fs_a_dst_sum_constructor_resultnegative_body_steps)))))) /\ (exists ge_balance_positive_sum_constructor_resultresult ge_balance_negative_sum_constructor_resultresult. (((((z) = 2 * (ge_balance_positive_sum_constructor_resultresult) /\ (ge_balance_negative_sum_constructor_resultresult) = 0) \/ exists ge_signed_half_sum_constructor_resultresultdecode. (((z) = 2 * ge_signed_half_sum_constructor_resultresultdecode + 1 /\ (ge_balance_positive_sum_constructor_resultresult) = 0) /\ (ge_balance_negative_sum_constructor_resultresult) = S ge_signed_half_sum_constructor_resultresultdecode))) /\ ((dst_positive_sum_sum_constructor_result) + ge_balance_negative_sum_constructor_resultresult = (dst_negative_sum_sum_constructor_result) + ge_balance_positive_sum_constructor_resultresult)))))))))Constructive proof overview
Generated structural guide
Two genuine natural finite sums and their canonical signed balance construct the signed prefix sum.
The unchanged tactic script uses 0 declared prerequisites and contains 26 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
Direct 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Construct an explicit witnessL14–19
04Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
split
05Use earlier factsL21–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L21
exact hrep
06Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
split
07Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hp
08Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
split
Original exact command ledger · 26 lines
- 0001
intro F - 0002
intro pb - 0003
intro pc - 0004
intro nb - 0005
intro nc - 0006
intro l - 0007
intro p - 0008
intro n - 0009
intro z - 0010
intro hrep - 0011
intro hp - 0012
intro hn - 0013
intro hz - 0014
exists pb - 0015
exists pc - 0016
exists nb - 0017
exists nc - 0018
exists p - 0019
exists n - 0020
split - 0021
exact hrep - 0022
split - 0023
exact hp - 0024
split - 0025
exact hn - 0026
exact hz