Exact expanded first-order arithmetic statement
forall F G pb pc nb nc qb qc mb mc r s l u v. ((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)))))) -> ((G) = (((((qb) + (qc)) * S ((qb) + (qc)) + ((qc) + (qc))) + (((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc)))) * S ((((qb) + (qc)) * S ((qb) + (qc)) + ((qc) + (qc))) + (((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc)))) + ((((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc))) + (((mb) + (mc)) * S ((mb) + (mc)) + ((mc) + (mc)))))) -> (forall pfp_i_sum_map_bounded. (exists pfp_gap_sum_map_boundedindex. pfp_gap_sum_map_boundedindex + S (pfp_i_sum_map_bounded) = (l)) -> exists pfp_a_sum_map_bounded. (((exists ff_h_pfp_sum_map_boundedentry. ff_h_pfp_sum_map_boundedentry + S (pfp_a_sum_map_bounded) = S ((S (pfp_i_sum_map_bounded)) * s)) /\ exists ff_q_pfp_sum_map_boundedentry. r = ff_q_pfp_sum_map_boundedentry * S ((S (pfp_i_sum_map_bounded)) * s) + (pfp_a_sum_map_bounded))) /\ (exists pfp_gap_sum_map_boundedvalue. pfp_gap_sum_map_boundedvalue + S (pfp_a_sum_map_bounded) = (l))) -> (forall pfp_i_sum_map_injective pfp_j_sum_map_injective pfp_a_sum_map_injective. (exists pfp_gap_sum_map_injectivefirst. pfp_gap_sum_map_injectivefirst + S (pfp_i_sum_map_injective) = (l)) -> (exists pfp_gap_sum_map_injectivesecond. pfp_gap_sum_map_injectivesecond + S (pfp_j_sum_map_injective) = (l)) -> (((exists ff_h_pfp_sum_map_injectiveleft. ff_h_pfp_sum_map_injectiveleft + S (pfp_a_sum_map_injective) = S ((S (pfp_i_sum_map_injective)) * s)) /\ exists ff_q_pfp_sum_map_injectiveleft. r = ff_q_pfp_sum_map_injectiveleft * S ((S (pfp_i_sum_map_injective)) * s) + (pfp_a_sum_map_injective))) -> (((exists ff_h_pfp_sum_map_injectiveright. ff_h_pfp_sum_map_injectiveright + S (pfp_a_sum_map_injective) = S ((S (pfp_j_sum_map_injective)) * s)) /\ exists ff_q_pfp_sum_map_injectiveright. r = ff_q_pfp_sum_map_injectiveright * S ((S (pfp_j_sum_map_injective)) * s) + (pfp_a_sum_map_injective))) -> pfp_i_sum_map_injective = pfp_j_sum_map_injective) -> (((forall fms_i_sum_component_compositionpositive fms_j_sum_component_compositionpositive fms_v_sum_component_compositionpositive. (exists fms_gap_sum_component_compositionpositive. fms_gap_sum_component_compositionpositive + S (fms_i_sum_component_compositionpositive) = (l)) -> (((exists fs_h_fms_sum_component_compositionpositive_index. fs_h_fms_sum_component_compositionpositive_index + S (fms_j_sum_component_compositionpositive) = S ((S (fms_i_sum_component_compositionpositive)) * s)) /\ exists fs_q_fms_sum_component_compositionpositive_index. r = fs_q_fms_sum_component_compositionpositive_index * S ((S (fms_i_sum_component_compositionpositive)) * s) + (fms_j_sum_component_compositionpositive))) -> (((exists fs_h_fms_sum_component_compositionpositive_source. fs_h_fms_sum_component_compositionpositive_source + S (fms_v_sum_component_compositionpositive) = S ((S (fms_j_sum_component_compositionpositive)) * pc)) /\ exists fs_q_fms_sum_component_compositionpositive_source. pb = fs_q_fms_sum_component_compositionpositive_source * S ((S (fms_j_sum_component_compositionpositive)) * pc) + (fms_v_sum_component_compositionpositive))) -> (((exists fs_h_fms_sum_component_compositionpositive_target. fs_h_fms_sum_component_compositionpositive_target + S (fms_v_sum_component_compositionpositive) = S ((S (fms_i_sum_component_compositionpositive)) * qc)) /\ exists fs_q_fms_sum_component_compositionpositive_target. qb = fs_q_fms_sum_component_compositionpositive_target * S ((S (fms_i_sum_component_compositionpositive)) * qc) + (fms_v_sum_component_compositionpositive)))) /\ (forall fms_i_sum_component_compositionnegative fms_j_sum_component_compositionnegative fms_v_sum_component_compositionnegative. (exists fms_gap_sum_component_compositionnegative. fms_gap_sum_component_compositionnegative + S (fms_i_sum_component_compositionnegative) = (l)) -> (((exists fs_h_fms_sum_component_compositionnegative_index. fs_h_fms_sum_component_compositionnegative_index + S (fms_j_sum_component_compositionnegative) = S ((S (fms_i_sum_component_compositionnegative)) * s)) /\ exists fs_q_fms_sum_component_compositionnegative_index. r = fs_q_fms_sum_component_compositionnegative_index * S ((S (fms_i_sum_component_compositionnegative)) * s) + (fms_j_sum_component_compositionnegative))) -> (((exists fs_h_fms_sum_component_compositionnegative_source. fs_h_fms_sum_component_compositionnegative_source + S (fms_v_sum_component_compositionnegative) = S ((S (fms_j_sum_component_compositionnegative)) * nc)) /\ exists fs_q_fms_sum_component_compositionnegative_source. nb = fs_q_fms_sum_component_compositionnegative_source * S ((S (fms_j_sum_component_compositionnegative)) * nc) + (fms_v_sum_component_compositionnegative))) -> (((exists fs_h_fms_sum_component_compositionnegative_target. fs_h_fms_sum_component_compositionnegative_target + S (fms_v_sum_component_compositionnegative) = S ((S (fms_i_sum_component_compositionnegative)) * mc)) /\ exists fs_q_fms_sum_component_compositionnegative_target. mb = fs_q_fms_sum_component_compositionnegative_target * S ((S (fms_i_sum_component_compositionnegative)) * mc) + (fms_v_sum_component_compositionnegative)))))) -> (exists dst_positive_code_sum_source dst_positive_scale_sum_source dst_negative_code_sum_source dst_negative_scale_sum_source dst_positive_sum_sum_source dst_negative_sum_sum_source. (((F) = (((((dst_positive_code_sum_source) + (dst_positive_scale_sum_source)) * S ((dst_positive_code_sum_source) + (dst_positive_scale_sum_source)) + ((dst_positive_scale_sum_source) + (dst_positive_scale_sum_source))) + (((dst_negative_code_sum_source) + (dst_negative_scale_sum_source)) * S ((dst_negative_code_sum_source) + (dst_negative_scale_sum_source)) + ((dst_negative_scale_sum_source) + (dst_negative_scale_sum_source)))) * S ((((dst_positive_code_sum_source) + (dst_positive_scale_sum_source)) * S ((dst_positive_code_sum_source) + (dst_positive_scale_sum_source)) + ((dst_positive_scale_sum_source) + (dst_positive_scale_sum_source))) + (((dst_negative_code_sum_source) + (dst_negative_scale_sum_source)) * S ((dst_negative_code_sum_source) + (dst_negative_scale_sum_source)) + ((dst_negative_scale_sum_source) + (dst_negative_scale_sum_source)))) + ((((dst_negative_code_sum_source) + (dst_negative_scale_sum_source)) * S ((dst_negative_code_sum_source) + (dst_negative_scale_sum_source)) + ((dst_negative_scale_sum_source) + (dst_negative_scale_sum_source))) + (((dst_negative_code_sum_source) + (dst_negative_scale_sum_source)) * S ((dst_negative_code_sum_source) + (dst_negative_scale_sum_source)) + ((dst_negative_scale_sum_source) + (dst_negative_scale_sum_source)))))) /\ (((exists fs_u_dst_sum_sourcepositive fs_v_dst_sum_sourcepositive. ((((exists fs_h_dst_sum_sourcepositive_body_start. fs_h_dst_sum_sourcepositive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_sourcepositive)) /\ exists fs_q_dst_sum_sourcepositive_body_start. fs_u_dst_sum_sourcepositive = fs_q_dst_sum_sourcepositive_body_start * S ((S (0)) * fs_v_dst_sum_sourcepositive) + (0))) /\ ((((exists fs_h_dst_sum_sourcepositive_body_terminal. fs_h_dst_sum_sourcepositive_body_terminal + S (dst_positive_sum_sum_source) = S ((S (l)) * fs_v_dst_sum_sourcepositive)) /\ exists fs_q_dst_sum_sourcepositive_body_terminal. fs_u_dst_sum_sourcepositive = fs_q_dst_sum_sourcepositive_body_terminal * S ((S (l)) * fs_v_dst_sum_sourcepositive) + (dst_positive_sum_sum_source))) /\ forall fs_i_dst_sum_sourcepositive_body_steps. (exists fs_lt_dst_sum_sourcepositive_body_steps_bound. fs_lt_dst_sum_sourcepositive_body_steps_bound + S fs_i_dst_sum_sourcepositive_body_steps = l) -> exists fs_a_dst_sum_sourcepositive_body_steps fs_r_dst_sum_sourcepositive_body_steps fs_s_dst_sum_sourcepositive_body_steps. ((((exists fs_h_dst_sum_sourcepositive_body_steps_summand. fs_h_dst_sum_sourcepositive_body_steps_summand + S (fs_a_dst_sum_sourcepositive_body_steps) = S ((S (fs_i_dst_sum_sourcepositive_body_steps)) * dst_positive_scale_sum_source)) /\ exists fs_q_dst_sum_sourcepositive_body_steps_summand. dst_positive_code_sum_source = fs_q_dst_sum_sourcepositive_body_steps_summand * S ((S (fs_i_dst_sum_sourcepositive_body_steps)) * dst_positive_scale_sum_source) + (fs_a_dst_sum_sourcepositive_body_steps))) /\ ((((exists fs_h_dst_sum_sourcepositive_body_steps_partial. fs_h_dst_sum_sourcepositive_body_steps_partial + S (fs_r_dst_sum_sourcepositive_body_steps) = S ((S (fs_i_dst_sum_sourcepositive_body_steps)) * fs_v_dst_sum_sourcepositive)) /\ exists fs_q_dst_sum_sourcepositive_body_steps_partial. fs_u_dst_sum_sourcepositive = fs_q_dst_sum_sourcepositive_body_steps_partial * S ((S (fs_i_dst_sum_sourcepositive_body_steps)) * fs_v_dst_sum_sourcepositive) + (fs_r_dst_sum_sourcepositive_body_steps))) /\ ((((exists fs_h_dst_sum_sourcepositive_body_steps_successor. fs_h_dst_sum_sourcepositive_body_steps_successor + S (fs_s_dst_sum_sourcepositive_body_steps) = S ((S (S fs_i_dst_sum_sourcepositive_body_steps)) * fs_v_dst_sum_sourcepositive)) /\ exists fs_q_dst_sum_sourcepositive_body_steps_successor. fs_u_dst_sum_sourcepositive = fs_q_dst_sum_sourcepositive_body_steps_successor * S ((S (S fs_i_dst_sum_sourcepositive_body_steps)) * fs_v_dst_sum_sourcepositive) + (fs_s_dst_sum_sourcepositive_body_steps))) /\ fs_s_dst_sum_sourcepositive_body_steps = fs_r_dst_sum_sourcepositive_body_steps + fs_a_dst_sum_sourcepositive_body_steps)))))) /\ (((exists fs_u_dst_sum_sourcenegative fs_v_dst_sum_sourcenegative. ((((exists fs_h_dst_sum_sourcenegative_body_start. fs_h_dst_sum_sourcenegative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_sourcenegative)) /\ exists fs_q_dst_sum_sourcenegative_body_start. fs_u_dst_sum_sourcenegative = fs_q_dst_sum_sourcenegative_body_start * S ((S (0)) * fs_v_dst_sum_sourcenegative) + (0))) /\ ((((exists fs_h_dst_sum_sourcenegative_body_terminal. fs_h_dst_sum_sourcenegative_body_terminal + S (dst_negative_sum_sum_source) = S ((S (l)) * fs_v_dst_sum_sourcenegative)) /\ exists fs_q_dst_sum_sourcenegative_body_terminal. fs_u_dst_sum_sourcenegative = fs_q_dst_sum_sourcenegative_body_terminal * S ((S (l)) * fs_v_dst_sum_sourcenegative) + (dst_negative_sum_sum_source))) /\ forall fs_i_dst_sum_sourcenegative_body_steps. (exists fs_lt_dst_sum_sourcenegative_body_steps_bound. fs_lt_dst_sum_sourcenegative_body_steps_bound + S fs_i_dst_sum_sourcenegative_body_steps = l) -> exists fs_a_dst_sum_sourcenegative_body_steps fs_r_dst_sum_sourcenegative_body_steps fs_s_dst_sum_sourcenegative_body_steps. ((((exists fs_h_dst_sum_sourcenegative_body_steps_summand. fs_h_dst_sum_sourcenegative_body_steps_summand + S (fs_a_dst_sum_sourcenegative_body_steps) = S ((S (fs_i_dst_sum_sourcenegative_body_steps)) * dst_negative_scale_sum_source)) /\ exists fs_q_dst_sum_sourcenegative_body_steps_summand. dst_negative_code_sum_source = fs_q_dst_sum_sourcenegative_body_steps_summand * S ((S (fs_i_dst_sum_sourcenegative_body_steps)) * dst_negative_scale_sum_source) + (fs_a_dst_sum_sourcenegative_body_steps))) /\ ((((exists fs_h_dst_sum_sourcenegative_body_steps_partial. fs_h_dst_sum_sourcenegative_body_steps_partial + S (fs_r_dst_sum_sourcenegative_body_steps) = S ((S (fs_i_dst_sum_sourcenegative_body_steps)) * fs_v_dst_sum_sourcenegative)) /\ exists fs_q_dst_sum_sourcenegative_body_steps_partial. fs_u_dst_sum_sourcenegative = fs_q_dst_sum_sourcenegative_body_steps_partial * S ((S (fs_i_dst_sum_sourcenegative_body_steps)) * fs_v_dst_sum_sourcenegative) + (fs_r_dst_sum_sourcenegative_body_steps))) /\ ((((exists fs_h_dst_sum_sourcenegative_body_steps_successor. fs_h_dst_sum_sourcenegative_body_steps_successor + S (fs_s_dst_sum_sourcenegative_body_steps) = S ((S (S fs_i_dst_sum_sourcenegative_body_steps)) * fs_v_dst_sum_sourcenegative)) /\ exists fs_q_dst_sum_sourcenegative_body_steps_successor. fs_u_dst_sum_sourcenegative = fs_q_dst_sum_sourcenegative_body_steps_successor * S ((S (S fs_i_dst_sum_sourcenegative_body_steps)) * fs_v_dst_sum_sourcenegative) + (fs_s_dst_sum_sourcenegative_body_steps))) /\ fs_s_dst_sum_sourcenegative_body_steps = fs_r_dst_sum_sourcenegative_body_steps + fs_a_dst_sum_sourcenegative_body_steps)))))) /\ (exists ge_balance_positive_sum_sourceresult ge_balance_negative_sum_sourceresult. (((((u) = 2 * (ge_balance_positive_sum_sourceresult) /\ (ge_balance_negative_sum_sourceresult) = 0) \/ exists ge_signed_half_sum_sourceresultdecode. (((u) = 2 * ge_signed_half_sum_sourceresultdecode + 1 /\ (ge_balance_positive_sum_sourceresult) = 0) /\ (ge_balance_negative_sum_sourceresult) = S ge_signed_half_sum_sourceresultdecode))) /\ ((dst_positive_sum_sum_source) + ge_balance_negative_sum_sourceresult = (dst_negative_sum_sum_source) + ge_balance_positive_sum_sourceresult))))))))) -> (exists dst_positive_code_sum_target dst_positive_scale_sum_target dst_negative_code_sum_target dst_negative_scale_sum_target dst_positive_sum_sum_target dst_negative_sum_sum_target. (((G) = (((((dst_positive_code_sum_target) + (dst_positive_scale_sum_target)) * S ((dst_positive_code_sum_target) + (dst_positive_scale_sum_target)) + ((dst_positive_scale_sum_target) + (dst_positive_scale_sum_target))) + (((dst_negative_code_sum_target) + (dst_negative_scale_sum_target)) * S ((dst_negative_code_sum_target) + (dst_negative_scale_sum_target)) + ((dst_negative_scale_sum_target) + (dst_negative_scale_sum_target)))) * S ((((dst_positive_code_sum_target) + (dst_positive_scale_sum_target)) * S ((dst_positive_code_sum_target) + (dst_positive_scale_sum_target)) + ((dst_positive_scale_sum_target) + (dst_positive_scale_sum_target))) + (((dst_negative_code_sum_target) + (dst_negative_scale_sum_target)) * S ((dst_negative_code_sum_target) + (dst_negative_scale_sum_target)) + ((dst_negative_scale_sum_target) + (dst_negative_scale_sum_target)))) + ((((dst_negative_code_sum_target) + (dst_negative_scale_sum_target)) * S ((dst_negative_code_sum_target) + (dst_negative_scale_sum_target)) + ((dst_negative_scale_sum_target) + (dst_negative_scale_sum_target))) + (((dst_negative_code_sum_target) + (dst_negative_scale_sum_target)) * S ((dst_negative_code_sum_target) + (dst_negative_scale_sum_target)) + ((dst_negative_scale_sum_target) + (dst_negative_scale_sum_target)))))) /\ (((exists fs_u_dst_sum_targetpositive fs_v_dst_sum_targetpositive. ((((exists fs_h_dst_sum_targetpositive_body_start. fs_h_dst_sum_targetpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_targetpositive)) /\ exists fs_q_dst_sum_targetpositive_body_start. fs_u_dst_sum_targetpositive = fs_q_dst_sum_targetpositive_body_start * S ((S (0)) * fs_v_dst_sum_targetpositive) + (0))) /\ ((((exists fs_h_dst_sum_targetpositive_body_terminal. fs_h_dst_sum_targetpositive_body_terminal + S (dst_positive_sum_sum_target) = S ((S (l)) * fs_v_dst_sum_targetpositive)) /\ exists fs_q_dst_sum_targetpositive_body_terminal. fs_u_dst_sum_targetpositive = fs_q_dst_sum_targetpositive_body_terminal * S ((S (l)) * fs_v_dst_sum_targetpositive) + (dst_positive_sum_sum_target))) /\ forall fs_i_dst_sum_targetpositive_body_steps. (exists fs_lt_dst_sum_targetpositive_body_steps_bound. fs_lt_dst_sum_targetpositive_body_steps_bound + S fs_i_dst_sum_targetpositive_body_steps = l) -> exists fs_a_dst_sum_targetpositive_body_steps fs_r_dst_sum_targetpositive_body_steps fs_s_dst_sum_targetpositive_body_steps. ((((exists fs_h_dst_sum_targetpositive_body_steps_summand. fs_h_dst_sum_targetpositive_body_steps_summand + S (fs_a_dst_sum_targetpositive_body_steps) = S ((S (fs_i_dst_sum_targetpositive_body_steps)) * dst_positive_scale_sum_target)) /\ exists fs_q_dst_sum_targetpositive_body_steps_summand. dst_positive_code_sum_target = fs_q_dst_sum_targetpositive_body_steps_summand * S ((S (fs_i_dst_sum_targetpositive_body_steps)) * dst_positive_scale_sum_target) + (fs_a_dst_sum_targetpositive_body_steps))) /\ ((((exists fs_h_dst_sum_targetpositive_body_steps_partial. fs_h_dst_sum_targetpositive_body_steps_partial + S (fs_r_dst_sum_targetpositive_body_steps) = S ((S (fs_i_dst_sum_targetpositive_body_steps)) * fs_v_dst_sum_targetpositive)) /\ exists fs_q_dst_sum_targetpositive_body_steps_partial. fs_u_dst_sum_targetpositive = fs_q_dst_sum_targetpositive_body_steps_partial * S ((S (fs_i_dst_sum_targetpositive_body_steps)) * fs_v_dst_sum_targetpositive) + (fs_r_dst_sum_targetpositive_body_steps))) /\ ((((exists fs_h_dst_sum_targetpositive_body_steps_successor. fs_h_dst_sum_targetpositive_body_steps_successor + S (fs_s_dst_sum_targetpositive_body_steps) = S ((S (S fs_i_dst_sum_targetpositive_body_steps)) * fs_v_dst_sum_targetpositive)) /\ exists fs_q_dst_sum_targetpositive_body_steps_successor. fs_u_dst_sum_targetpositive = fs_q_dst_sum_targetpositive_body_steps_successor * S ((S (S fs_i_dst_sum_targetpositive_body_steps)) * fs_v_dst_sum_targetpositive) + (fs_s_dst_sum_targetpositive_body_steps))) /\ fs_s_dst_sum_targetpositive_body_steps = fs_r_dst_sum_targetpositive_body_steps + fs_a_dst_sum_targetpositive_body_steps)))))) /\ (((exists fs_u_dst_sum_targetnegative fs_v_dst_sum_targetnegative. ((((exists fs_h_dst_sum_targetnegative_body_start. fs_h_dst_sum_targetnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_targetnegative)) /\ exists fs_q_dst_sum_targetnegative_body_start. fs_u_dst_sum_targetnegative = fs_q_dst_sum_targetnegative_body_start * S ((S (0)) * fs_v_dst_sum_targetnegative) + (0))) /\ ((((exists fs_h_dst_sum_targetnegative_body_terminal. fs_h_dst_sum_targetnegative_body_terminal + S (dst_negative_sum_sum_target) = S ((S (l)) * fs_v_dst_sum_targetnegative)) /\ exists fs_q_dst_sum_targetnegative_body_terminal. fs_u_dst_sum_targetnegative = fs_q_dst_sum_targetnegative_body_terminal * S ((S (l)) * fs_v_dst_sum_targetnegative) + (dst_negative_sum_sum_target))) /\ forall fs_i_dst_sum_targetnegative_body_steps. (exists fs_lt_dst_sum_targetnegative_body_steps_bound. fs_lt_dst_sum_targetnegative_body_steps_bound + S fs_i_dst_sum_targetnegative_body_steps = l) -> exists fs_a_dst_sum_targetnegative_body_steps fs_r_dst_sum_targetnegative_body_steps fs_s_dst_sum_targetnegative_body_steps. ((((exists fs_h_dst_sum_targetnegative_body_steps_summand. fs_h_dst_sum_targetnegative_body_steps_summand + S (fs_a_dst_sum_targetnegative_body_steps) = S ((S (fs_i_dst_sum_targetnegative_body_steps)) * dst_negative_scale_sum_target)) /\ exists fs_q_dst_sum_targetnegative_body_steps_summand. dst_negative_code_sum_target = fs_q_dst_sum_targetnegative_body_steps_summand * S ((S (fs_i_dst_sum_targetnegative_body_steps)) * dst_negative_scale_sum_target) + (fs_a_dst_sum_targetnegative_body_steps))) /\ ((((exists fs_h_dst_sum_targetnegative_body_steps_partial. fs_h_dst_sum_targetnegative_body_steps_partial + S (fs_r_dst_sum_targetnegative_body_steps) = S ((S (fs_i_dst_sum_targetnegative_body_steps)) * fs_v_dst_sum_targetnegative)) /\ exists fs_q_dst_sum_targetnegative_body_steps_partial. fs_u_dst_sum_targetnegative = fs_q_dst_sum_targetnegative_body_steps_partial * S ((S (fs_i_dst_sum_targetnegative_body_steps)) * fs_v_dst_sum_targetnegative) + (fs_r_dst_sum_targetnegative_body_steps))) /\ ((((exists fs_h_dst_sum_targetnegative_body_steps_successor. fs_h_dst_sum_targetnegative_body_steps_successor + S (fs_s_dst_sum_targetnegative_body_steps) = S ((S (S fs_i_dst_sum_targetnegative_body_steps)) * fs_v_dst_sum_targetnegative)) /\ exists fs_q_dst_sum_targetnegative_body_steps_successor. fs_u_dst_sum_targetnegative = fs_q_dst_sum_targetnegative_body_steps_successor * S ((S (S fs_i_dst_sum_targetnegative_body_steps)) * fs_v_dst_sum_targetnegative) + (fs_s_dst_sum_targetnegative_body_steps))) /\ fs_s_dst_sum_targetnegative_body_steps = fs_r_dst_sum_targetnegative_body_steps + fs_a_dst_sum_targetnegative_body_steps)))))) /\ (exists ge_balance_positive_sum_targetresult ge_balance_negative_sum_targetresult. (((((v) = 2 * (ge_balance_positive_sum_targetresult) /\ (ge_balance_negative_sum_targetresult) = 0) \/ exists ge_signed_half_sum_targetresultdecode. (((v) = 2 * ge_signed_half_sum_targetresultdecode + 1 /\ (ge_balance_positive_sum_targetresult) = 0) /\ (ge_balance_negative_sum_targetresult) = S ge_signed_half_sum_targetresultdecode))) /\ ((dst_positive_sum_sum_target) + ge_balance_negative_sum_targetresult = (dst_negative_sum_sum_target) + ge_balance_positive_sum_targetresult))))))))) -> u = vConstructive proof overview
Generated structural guide
Original finite natural-sum permutation invariance preserves both actual component sums, hence their canonical signed result.
The unchanged tactic script uses 3 declared prerequisites and contains 96 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
SS000A divisor_signed_sum_to_components beta_sum_permutation_invariant Alpha theorem; checked-use authorized signed_balance_functional 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–22
04Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hcomp
05Establish hfirstL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum to components.
- L24
have hfirst : ∃ p. ∃ n. Sum(pb,pc,l,p) ∧ (Sum(nb,nc,l,n) ∧ SignedBalance(u,p,n))Definitions: SignedBalanceSum - L25
specialize divisor_signed_sum_to_components (F) - L26
specialize divisor_signed_sum_to_components (pb) - L27
specialize divisor_signed_sum_to_components (pc) - L28
specialize divisor_signed_sum_to_components (nb) - L29
specialize divisor_signed_sum_to_components (nc) - L30
specialize divisor_signed_sum_to_components (l) - L31
specialize divisor_signed_sum_to_components (u) - L32
apply divisor_signed_sum_to_components - L33
exact hF
06Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact hu
07Separate the logical casesL35–38
08Establish hsecondL39–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum to components.
- L39
have hsecond : ∃ p. ∃ n. Sum(qb,qc,l,p) ∧ (Sum(mb,mc,l,n) ∧ SignedBalance(v,p,n))Definitions: SignedBalanceSum - L40
specialize divisor_signed_sum_to_components (G) - L41
specialize divisor_signed_sum_to_components (qb) - L42
specialize divisor_signed_sum_to_components (qc) - L43
specialize divisor_signed_sum_to_components (mb) - L44
specialize divisor_signed_sum_to_components (mc) - L45
specialize divisor_signed_sum_to_components (l) - L46
specialize divisor_signed_sum_to_components (v) - L47
apply divisor_signed_sum_to_components - L48
exact hG
09Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hv
10Separate the logical casesL50–53
11Establish hpL54–63
Establish this local claim before using it. It is not an additional assumption.
- L54
have hp : x2 = x - L55
symm - L56
specialize beta_sum_permutation_invariant (l) - L57
specialize beta_sum_permutation_invariant (r) - L58
specialize beta_sum_permutation_invariant (s) - L59
specialize beta_sum_permutation_invariant (pb) - L60
specialize beta_sum_permutation_invariant (pc) - L61
specialize beta_sum_permutation_invariant (qb) - L62
specialize beta_sum_permutation_invariant (qc) - L63
specialize beta_sum_permutation_invariant (x)
12Use earlier factsL64–70
13Establish hnL71–80
Establish this local claim before using it. It is not an additional assumption.
- L71
have hn : x3 = x1 - L72
symm - L73
specialize beta_sum_permutation_invariant (l) - L74
specialize beta_sum_permutation_invariant (r) - L75
specialize beta_sum_permutation_invariant (s) - L76
specialize beta_sum_permutation_invariant (nb) - L77
specialize beta_sum_permutation_invariant (nc) - L78
specialize beta_sum_permutation_invariant (mb) - L79
specialize beta_sum_permutation_invariant (mc) - L80
specialize beta_sum_permutation_invariant (x1)
14Use earlier factsL81–87
Instantiate or apply named facts and discharge the corresponding proof obligations.
15Calculate and transport equalitiesL88–89
16Use earlier factsL90–96
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 96 lines
- 0001
intro F - 0002
intro G - 0003
intro pb - 0004
intro pc - 0005
intro nb - 0006
intro nc - 0007
intro qb - 0008
intro qc - 0009
intro mb - 0010
intro mc - 0011
intro r - 0012
intro s - 0013
intro l - 0014
intro u - 0015
intro v - 0016
intro hF - 0017
intro hG - 0018
intro hbound - 0019
intro hinj - 0020
intro hcomp - 0021
intro hu - 0022
intro hv - 0023
cases hcomp - 0024
have hfirst : exists p n. ((exists fs_u_dst_sum_first_positive fs_v_dst_sum_first_positive. ((((exists fs_h_dst_sum_first_positive_body_start. fs_h_dst_sum_first_positive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_first_positive)) /\ exists fs_q_dst_sum_first_positive_body_start. fs_u_dst_sum_first_positive = fs_q_dst_sum_first_positive_body_start * S ((S (0)) * fs_v_dst_sum_first_positive) + (0))) /\ ((((exists fs_h_dst_sum_first_positive_body_terminal. fs_h_dst_sum_first_positive_body_terminal + S (p) = S ((S (l)) * fs_v_dst_sum_first_positive)) /\ exists fs_q_dst_sum_first_positive_body_terminal. fs_u_dst_sum_first_positive = fs_q_dst_sum_first_positive_body_terminal * S ((S (l)) * fs_v_dst_sum_first_positive) + (p))) /\ forall fs_i_dst_sum_first_positive_body_steps. (exists fs_lt_dst_sum_first_positive_body_steps_bound. fs_lt_dst_sum_first_positive_body_steps_bound + S fs_i_dst_sum_first_positive_body_steps = l) -> exists fs_a_dst_sum_first_positive_body_steps fs_r_dst_sum_first_positive_body_steps fs_s_dst_sum_first_positive_body_steps. ((((exists fs_h_dst_sum_first_positive_body_steps_summand. fs_h_dst_sum_first_positive_body_steps_summand + S (fs_a_dst_sum_first_positive_body_steps) = S ((S (fs_i_dst_sum_first_positive_body_steps)) * pc)) /\ exists fs_q_dst_sum_first_positive_body_steps_summand. pb = fs_q_dst_sum_first_positive_body_steps_summand * S ((S (fs_i_dst_sum_first_positive_body_steps)) * pc) + (fs_a_dst_sum_first_positive_body_steps))) /\ ((((exists fs_h_dst_sum_first_positive_body_steps_partial. fs_h_dst_sum_first_positive_body_steps_partial + S (fs_r_dst_sum_first_positive_body_steps) = S ((S (fs_i_dst_sum_first_positive_body_steps)) * fs_v_dst_sum_first_positive)) /\ exists fs_q_dst_sum_first_positive_body_steps_partial. fs_u_dst_sum_first_positive = fs_q_dst_sum_first_positive_body_steps_partial * S ((S (fs_i_dst_sum_first_positive_body_steps)) * fs_v_dst_sum_first_positive) + (fs_r_dst_sum_first_positive_body_steps))) /\ ((((exists fs_h_dst_sum_first_positive_body_steps_successor. fs_h_dst_sum_first_positive_body_steps_successor + S (fs_s_dst_sum_first_positive_body_steps) = S ((S (S fs_i_dst_sum_first_positive_body_steps)) * fs_v_dst_sum_first_positive)) /\ exists fs_q_dst_sum_first_positive_body_steps_successor. fs_u_dst_sum_first_positive = fs_q_dst_sum_first_positive_body_steps_successor * S ((S (S fs_i_dst_sum_first_positive_body_steps)) * fs_v_dst_sum_first_positive) + (fs_s_dst_sum_first_positive_body_steps))) /\ fs_s_dst_sum_first_positive_body_steps = fs_r_dst_sum_first_positive_body_steps + fs_a_dst_sum_first_positive_body_steps)))))) /\ (((exists fs_u_dst_sum_first_negative fs_v_dst_sum_first_negative. ((((exists fs_h_dst_sum_first_negative_body_start. fs_h_dst_sum_first_negative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_first_negative)) /\ exists fs_q_dst_sum_first_negative_body_start. fs_u_dst_sum_first_negative = fs_q_dst_sum_first_negative_body_start * S ((S (0)) * fs_v_dst_sum_first_negative) + (0))) /\ ((((exists fs_h_dst_sum_first_negative_body_terminal. fs_h_dst_sum_first_negative_body_terminal + S (n) = S ((S (l)) * fs_v_dst_sum_first_negative)) /\ exists fs_q_dst_sum_first_negative_body_terminal. fs_u_dst_sum_first_negative = fs_q_dst_sum_first_negative_body_terminal * S ((S (l)) * fs_v_dst_sum_first_negative) + (n))) /\ forall fs_i_dst_sum_first_negative_body_steps. (exists fs_lt_dst_sum_first_negative_body_steps_bound. fs_lt_dst_sum_first_negative_body_steps_bound + S fs_i_dst_sum_first_negative_body_steps = l) -> exists fs_a_dst_sum_first_negative_body_steps fs_r_dst_sum_first_negative_body_steps fs_s_dst_sum_first_negative_body_steps. ((((exists fs_h_dst_sum_first_negative_body_steps_summand. fs_h_dst_sum_first_negative_body_steps_summand + S (fs_a_dst_sum_first_negative_body_steps) = S ((S (fs_i_dst_sum_first_negative_body_steps)) * nc)) /\ exists fs_q_dst_sum_first_negative_body_steps_summand. nb = fs_q_dst_sum_first_negative_body_steps_summand * S ((S (fs_i_dst_sum_first_negative_body_steps)) * nc) + (fs_a_dst_sum_first_negative_body_steps))) /\ ((((exists fs_h_dst_sum_first_negative_body_steps_partial. fs_h_dst_sum_first_negative_body_steps_partial + S (fs_r_dst_sum_first_negative_body_steps) = S ((S (fs_i_dst_sum_first_negative_body_steps)) * fs_v_dst_sum_first_negative)) /\ exists fs_q_dst_sum_first_negative_body_steps_partial. fs_u_dst_sum_first_negative = fs_q_dst_sum_first_negative_body_steps_partial * S ((S (fs_i_dst_sum_first_negative_body_steps)) * fs_v_dst_sum_first_negative) + (fs_r_dst_sum_first_negative_body_steps))) /\ ((((exists fs_h_dst_sum_first_negative_body_steps_successor. fs_h_dst_sum_first_negative_body_steps_successor + S (fs_s_dst_sum_first_negative_body_steps) = S ((S (S fs_i_dst_sum_first_negative_body_steps)) * fs_v_dst_sum_first_negative)) /\ exists fs_q_dst_sum_first_negative_body_steps_successor. fs_u_dst_sum_first_negative = fs_q_dst_sum_first_negative_body_steps_successor * S ((S (S fs_i_dst_sum_first_negative_body_steps)) * fs_v_dst_sum_first_negative) + (fs_s_dst_sum_first_negative_body_steps))) /\ fs_s_dst_sum_first_negative_body_steps = fs_r_dst_sum_first_negative_body_steps + fs_a_dst_sum_first_negative_body_steps)))))) /\ (exists ge_balance_positive_sum_first_balance ge_balance_negative_sum_first_balance. (((((u) = 2 * (ge_balance_positive_sum_first_balance) /\ (ge_balance_negative_sum_first_balance) = 0) \/ exists ge_signed_half_sum_first_balancedecode. (((u) = 2 * ge_signed_half_sum_first_balancedecode + 1 /\ (ge_balance_positive_sum_first_balance) = 0) /\ (ge_balance_negative_sum_first_balance) = S ge_signed_half_sum_first_balancedecode))) /\ ((p) + ge_balance_negative_sum_first_balance = (n) + ge_balance_positive_sum_first_balance)))))) - 0025
specialize divisor_signed_sum_to_components (F) - 0026
specialize divisor_signed_sum_to_components (pb) - 0027
specialize divisor_signed_sum_to_components (pc) - 0028
specialize divisor_signed_sum_to_components (nb) - 0029
specialize divisor_signed_sum_to_components (nc) - 0030
specialize divisor_signed_sum_to_components (l) - 0031
specialize divisor_signed_sum_to_components (u) - 0032
apply divisor_signed_sum_to_components - 0033
exact hF - 0034
exact hu - 0035
cases hfirst - 0036
cases hfirst_witness - 0037
cases hfirst_witness_witness - 0038
cases hfirst_witness_witness_right - 0039
have hsecond : exists p n. ((exists fs_u_dst_sum_second_positive fs_v_dst_sum_second_positive. ((((exists fs_h_dst_sum_second_positive_body_start. fs_h_dst_sum_second_positive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_second_positive)) /\ exists fs_q_dst_sum_second_positive_body_start. fs_u_dst_sum_second_positive = fs_q_dst_sum_second_positive_body_start * S ((S (0)) * fs_v_dst_sum_second_positive) + (0))) /\ ((((exists fs_h_dst_sum_second_positive_body_terminal. fs_h_dst_sum_second_positive_body_terminal + S (p) = S ((S (l)) * fs_v_dst_sum_second_positive)) /\ exists fs_q_dst_sum_second_positive_body_terminal. fs_u_dst_sum_second_positive = fs_q_dst_sum_second_positive_body_terminal * S ((S (l)) * fs_v_dst_sum_second_positive) + (p))) /\ forall fs_i_dst_sum_second_positive_body_steps. (exists fs_lt_dst_sum_second_positive_body_steps_bound. fs_lt_dst_sum_second_positive_body_steps_bound + S fs_i_dst_sum_second_positive_body_steps = l) -> exists fs_a_dst_sum_second_positive_body_steps fs_r_dst_sum_second_positive_body_steps fs_s_dst_sum_second_positive_body_steps. ((((exists fs_h_dst_sum_second_positive_body_steps_summand. fs_h_dst_sum_second_positive_body_steps_summand + S (fs_a_dst_sum_second_positive_body_steps) = S ((S (fs_i_dst_sum_second_positive_body_steps)) * qc)) /\ exists fs_q_dst_sum_second_positive_body_steps_summand. qb = fs_q_dst_sum_second_positive_body_steps_summand * S ((S (fs_i_dst_sum_second_positive_body_steps)) * qc) + (fs_a_dst_sum_second_positive_body_steps))) /\ ((((exists fs_h_dst_sum_second_positive_body_steps_partial. fs_h_dst_sum_second_positive_body_steps_partial + S (fs_r_dst_sum_second_positive_body_steps) = S ((S (fs_i_dst_sum_second_positive_body_steps)) * fs_v_dst_sum_second_positive)) /\ exists fs_q_dst_sum_second_positive_body_steps_partial. fs_u_dst_sum_second_positive = fs_q_dst_sum_second_positive_body_steps_partial * S ((S (fs_i_dst_sum_second_positive_body_steps)) * fs_v_dst_sum_second_positive) + (fs_r_dst_sum_second_positive_body_steps))) /\ ((((exists fs_h_dst_sum_second_positive_body_steps_successor. fs_h_dst_sum_second_positive_body_steps_successor + S (fs_s_dst_sum_second_positive_body_steps) = S ((S (S fs_i_dst_sum_second_positive_body_steps)) * fs_v_dst_sum_second_positive)) /\ exists fs_q_dst_sum_second_positive_body_steps_successor. fs_u_dst_sum_second_positive = fs_q_dst_sum_second_positive_body_steps_successor * S ((S (S fs_i_dst_sum_second_positive_body_steps)) * fs_v_dst_sum_second_positive) + (fs_s_dst_sum_second_positive_body_steps))) /\ fs_s_dst_sum_second_positive_body_steps = fs_r_dst_sum_second_positive_body_steps + fs_a_dst_sum_second_positive_body_steps)))))) /\ (((exists fs_u_dst_sum_second_negative fs_v_dst_sum_second_negative. ((((exists fs_h_dst_sum_second_negative_body_start. fs_h_dst_sum_second_negative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_second_negative)) /\ exists fs_q_dst_sum_second_negative_body_start. fs_u_dst_sum_second_negative = fs_q_dst_sum_second_negative_body_start * S ((S (0)) * fs_v_dst_sum_second_negative) + (0))) /\ ((((exists fs_h_dst_sum_second_negative_body_terminal. fs_h_dst_sum_second_negative_body_terminal + S (n) = S ((S (l)) * fs_v_dst_sum_second_negative)) /\ exists fs_q_dst_sum_second_negative_body_terminal. fs_u_dst_sum_second_negative = fs_q_dst_sum_second_negative_body_terminal * S ((S (l)) * fs_v_dst_sum_second_negative) + (n))) /\ forall fs_i_dst_sum_second_negative_body_steps. (exists fs_lt_dst_sum_second_negative_body_steps_bound. fs_lt_dst_sum_second_negative_body_steps_bound + S fs_i_dst_sum_second_negative_body_steps = l) -> exists fs_a_dst_sum_second_negative_body_steps fs_r_dst_sum_second_negative_body_steps fs_s_dst_sum_second_negative_body_steps. ((((exists fs_h_dst_sum_second_negative_body_steps_summand. fs_h_dst_sum_second_negative_body_steps_summand + S (fs_a_dst_sum_second_negative_body_steps) = S ((S (fs_i_dst_sum_second_negative_body_steps)) * mc)) /\ exists fs_q_dst_sum_second_negative_body_steps_summand. mb = fs_q_dst_sum_second_negative_body_steps_summand * S ((S (fs_i_dst_sum_second_negative_body_steps)) * mc) + (fs_a_dst_sum_second_negative_body_steps))) /\ ((((exists fs_h_dst_sum_second_negative_body_steps_partial. fs_h_dst_sum_second_negative_body_steps_partial + S (fs_r_dst_sum_second_negative_body_steps) = S ((S (fs_i_dst_sum_second_negative_body_steps)) * fs_v_dst_sum_second_negative)) /\ exists fs_q_dst_sum_second_negative_body_steps_partial. fs_u_dst_sum_second_negative = fs_q_dst_sum_second_negative_body_steps_partial * S ((S (fs_i_dst_sum_second_negative_body_steps)) * fs_v_dst_sum_second_negative) + (fs_r_dst_sum_second_negative_body_steps))) /\ ((((exists fs_h_dst_sum_second_negative_body_steps_successor. fs_h_dst_sum_second_negative_body_steps_successor + S (fs_s_dst_sum_second_negative_body_steps) = S ((S (S fs_i_dst_sum_second_negative_body_steps)) * fs_v_dst_sum_second_negative)) /\ exists fs_q_dst_sum_second_negative_body_steps_successor. fs_u_dst_sum_second_negative = fs_q_dst_sum_second_negative_body_steps_successor * S ((S (S fs_i_dst_sum_second_negative_body_steps)) * fs_v_dst_sum_second_negative) + (fs_s_dst_sum_second_negative_body_steps))) /\ fs_s_dst_sum_second_negative_body_steps = fs_r_dst_sum_second_negative_body_steps + fs_a_dst_sum_second_negative_body_steps)))))) /\ (exists ge_balance_positive_sum_second_balance ge_balance_negative_sum_second_balance. (((((v) = 2 * (ge_balance_positive_sum_second_balance) /\ (ge_balance_negative_sum_second_balance) = 0) \/ exists ge_signed_half_sum_second_balancedecode. (((v) = 2 * ge_signed_half_sum_second_balancedecode + 1 /\ (ge_balance_positive_sum_second_balance) = 0) /\ (ge_balance_negative_sum_second_balance) = S ge_signed_half_sum_second_balancedecode))) /\ ((p) + ge_balance_negative_sum_second_balance = (n) + ge_balance_positive_sum_second_balance)))))) - 0040
specialize divisor_signed_sum_to_components (G) - 0041
specialize divisor_signed_sum_to_components (qb) - 0042
specialize divisor_signed_sum_to_components (qc) - 0043
specialize divisor_signed_sum_to_components (mb) - 0044
specialize divisor_signed_sum_to_components (mc) - 0045
specialize divisor_signed_sum_to_components (l) - 0046
specialize divisor_signed_sum_to_components (v) - 0047
apply divisor_signed_sum_to_components - 0048
exact hG - 0049
exact hv - 0050
cases hsecond - 0051
cases hsecond_witness - 0052
cases hsecond_witness_witness - 0053
cases hsecond_witness_witness_right - 0054
have hp : x2 = x - 0055
symm - 0056
specialize beta_sum_permutation_invariant (l) - 0057
specialize beta_sum_permutation_invariant (r) - 0058
specialize beta_sum_permutation_invariant (s) - 0059
specialize beta_sum_permutation_invariant (pb) - 0060
specialize beta_sum_permutation_invariant (pc) - 0061
specialize beta_sum_permutation_invariant (qb) - 0062
specialize beta_sum_permutation_invariant (qc) - 0063
specialize beta_sum_permutation_invariant (x) - 0064
specialize beta_sum_permutation_invariant (x2) - 0065
apply beta_sum_permutation_invariant - 0066
exact hbound - 0067
exact hinj - 0068
exact hcomp_left - 0069
exact hfirst_witness_witness_left - 0070
exact hsecond_witness_witness_left - 0071
have hn : x3 = x1 - 0072
symm - 0073
specialize beta_sum_permutation_invariant (l) - 0074
specialize beta_sum_permutation_invariant (r) - 0075
specialize beta_sum_permutation_invariant (s) - 0076
specialize beta_sum_permutation_invariant (nb) - 0077
specialize beta_sum_permutation_invariant (nc) - 0078
specialize beta_sum_permutation_invariant (mb) - 0079
specialize beta_sum_permutation_invariant (mc) - 0080
specialize beta_sum_permutation_invariant (x1) - 0081
specialize beta_sum_permutation_invariant (x3) - 0082
apply beta_sum_permutation_invariant - 0083
exact hbound - 0084
exact hinj - 0085
exact hcomp_right - 0086
exact hfirst_witness_witness_right_left - 0087
exact hsecond_witness_witness_right_left - 0088
rewrite hp at hsecond_witness_witness_right_right - 0089
rewrite hn at hsecond_witness_witness_right_right - 0090
specialize signed_balance_functional (x) - 0091
specialize signed_balance_functional (x1) - 0092
specialize signed_balance_functional (u) - 0093
specialize signed_balance_functional (v) - 0094
apply signed_balance_functional - 0095
exact hfirst_witness_witness_right_right - 0096
exact hsecond_witness_witness_right_right