Exact expanded first-order arithmetic statement
forall F G pb pc nb nc l a b. ((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) = (((((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc))) + (((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc)))) * S ((((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc))) + (((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc)))) + ((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc)))))) -> (exists dst_positive_code_negation_source_sum dst_positive_scale_negation_source_sum dst_negative_code_negation_source_sum dst_negative_scale_negation_source_sum dst_positive_sum_negation_source_sum dst_negative_sum_negation_source_sum. (((F) = (((((dst_positive_code_negation_source_sum) + (dst_positive_scale_negation_source_sum)) * S ((dst_positive_code_negation_source_sum) + (dst_positive_scale_negation_source_sum)) + ((dst_positive_scale_negation_source_sum) + (dst_positive_scale_negation_source_sum))) + (((dst_negative_code_negation_source_sum) + (dst_negative_scale_negation_source_sum)) * S ((dst_negative_code_negation_source_sum) + (dst_negative_scale_negation_source_sum)) + ((dst_negative_scale_negation_source_sum) + (dst_negative_scale_negation_source_sum)))) * S ((((dst_positive_code_negation_source_sum) + (dst_positive_scale_negation_source_sum)) * S ((dst_positive_code_negation_source_sum) + (dst_positive_scale_negation_source_sum)) + ((dst_positive_scale_negation_source_sum) + (dst_positive_scale_negation_source_sum))) + (((dst_negative_code_negation_source_sum) + (dst_negative_scale_negation_source_sum)) * S ((dst_negative_code_negation_source_sum) + (dst_negative_scale_negation_source_sum)) + ((dst_negative_scale_negation_source_sum) + (dst_negative_scale_negation_source_sum)))) + ((((dst_negative_code_negation_source_sum) + (dst_negative_scale_negation_source_sum)) * S ((dst_negative_code_negation_source_sum) + (dst_negative_scale_negation_source_sum)) + ((dst_negative_scale_negation_source_sum) + (dst_negative_scale_negation_source_sum))) + (((dst_negative_code_negation_source_sum) + (dst_negative_scale_negation_source_sum)) * S ((dst_negative_code_negation_source_sum) + (dst_negative_scale_negation_source_sum)) + ((dst_negative_scale_negation_source_sum) + (dst_negative_scale_negation_source_sum)))))) /\ (((exists fs_u_dst_negation_source_sumpositive fs_v_dst_negation_source_sumpositive. ((((exists fs_h_dst_negation_source_sumpositive_body_start. fs_h_dst_negation_source_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_negation_source_sumpositive)) /\ exists fs_q_dst_negation_source_sumpositive_body_start. fs_u_dst_negation_source_sumpositive = fs_q_dst_negation_source_sumpositive_body_start * S ((S (0)) * fs_v_dst_negation_source_sumpositive) + (0))) /\ ((((exists fs_h_dst_negation_source_sumpositive_body_terminal. fs_h_dst_negation_source_sumpositive_body_terminal + S (dst_positive_sum_negation_source_sum) = S ((S (l)) * fs_v_dst_negation_source_sumpositive)) /\ exists fs_q_dst_negation_source_sumpositive_body_terminal. fs_u_dst_negation_source_sumpositive = fs_q_dst_negation_source_sumpositive_body_terminal * S ((S (l)) * fs_v_dst_negation_source_sumpositive) + (dst_positive_sum_negation_source_sum))) /\ forall fs_i_dst_negation_source_sumpositive_body_steps. (exists fs_lt_dst_negation_source_sumpositive_body_steps_bound. fs_lt_dst_negation_source_sumpositive_body_steps_bound + S fs_i_dst_negation_source_sumpositive_body_steps = l) -> exists fs_a_dst_negation_source_sumpositive_body_steps fs_r_dst_negation_source_sumpositive_body_steps fs_s_dst_negation_source_sumpositive_body_steps. ((((exists fs_h_dst_negation_source_sumpositive_body_steps_summand. fs_h_dst_negation_source_sumpositive_body_steps_summand + S (fs_a_dst_negation_source_sumpositive_body_steps) = S ((S (fs_i_dst_negation_source_sumpositive_body_steps)) * dst_positive_scale_negation_source_sum)) /\ exists fs_q_dst_negation_source_sumpositive_body_steps_summand. dst_positive_code_negation_source_sum = fs_q_dst_negation_source_sumpositive_body_steps_summand * S ((S (fs_i_dst_negation_source_sumpositive_body_steps)) * dst_positive_scale_negation_source_sum) + (fs_a_dst_negation_source_sumpositive_body_steps))) /\ ((((exists fs_h_dst_negation_source_sumpositive_body_steps_partial. fs_h_dst_negation_source_sumpositive_body_steps_partial + S (fs_r_dst_negation_source_sumpositive_body_steps) = S ((S (fs_i_dst_negation_source_sumpositive_body_steps)) * fs_v_dst_negation_source_sumpositive)) /\ exists fs_q_dst_negation_source_sumpositive_body_steps_partial. fs_u_dst_negation_source_sumpositive = fs_q_dst_negation_source_sumpositive_body_steps_partial * S ((S (fs_i_dst_negation_source_sumpositive_body_steps)) * fs_v_dst_negation_source_sumpositive) + (fs_r_dst_negation_source_sumpositive_body_steps))) /\ ((((exists fs_h_dst_negation_source_sumpositive_body_steps_successor. fs_h_dst_negation_source_sumpositive_body_steps_successor + S (fs_s_dst_negation_source_sumpositive_body_steps) = S ((S (S fs_i_dst_negation_source_sumpositive_body_steps)) * fs_v_dst_negation_source_sumpositive)) /\ exists fs_q_dst_negation_source_sumpositive_body_steps_successor. fs_u_dst_negation_source_sumpositive = fs_q_dst_negation_source_sumpositive_body_steps_successor * S ((S (S fs_i_dst_negation_source_sumpositive_body_steps)) * fs_v_dst_negation_source_sumpositive) + (fs_s_dst_negation_source_sumpositive_body_steps))) /\ fs_s_dst_negation_source_sumpositive_body_steps = fs_r_dst_negation_source_sumpositive_body_steps + fs_a_dst_negation_source_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_negation_source_sumnegative fs_v_dst_negation_source_sumnegative. ((((exists fs_h_dst_negation_source_sumnegative_body_start. fs_h_dst_negation_source_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_negation_source_sumnegative)) /\ exists fs_q_dst_negation_source_sumnegative_body_start. fs_u_dst_negation_source_sumnegative = fs_q_dst_negation_source_sumnegative_body_start * S ((S (0)) * fs_v_dst_negation_source_sumnegative) + (0))) /\ ((((exists fs_h_dst_negation_source_sumnegative_body_terminal. fs_h_dst_negation_source_sumnegative_body_terminal + S (dst_negative_sum_negation_source_sum) = S ((S (l)) * fs_v_dst_negation_source_sumnegative)) /\ exists fs_q_dst_negation_source_sumnegative_body_terminal. fs_u_dst_negation_source_sumnegative = fs_q_dst_negation_source_sumnegative_body_terminal * S ((S (l)) * fs_v_dst_negation_source_sumnegative) + (dst_negative_sum_negation_source_sum))) /\ forall fs_i_dst_negation_source_sumnegative_body_steps. (exists fs_lt_dst_negation_source_sumnegative_body_steps_bound. fs_lt_dst_negation_source_sumnegative_body_steps_bound + S fs_i_dst_negation_source_sumnegative_body_steps = l) -> exists fs_a_dst_negation_source_sumnegative_body_steps fs_r_dst_negation_source_sumnegative_body_steps fs_s_dst_negation_source_sumnegative_body_steps. ((((exists fs_h_dst_negation_source_sumnegative_body_steps_summand. fs_h_dst_negation_source_sumnegative_body_steps_summand + S (fs_a_dst_negation_source_sumnegative_body_steps) = S ((S (fs_i_dst_negation_source_sumnegative_body_steps)) * dst_negative_scale_negation_source_sum)) /\ exists fs_q_dst_negation_source_sumnegative_body_steps_summand. dst_negative_code_negation_source_sum = fs_q_dst_negation_source_sumnegative_body_steps_summand * S ((S (fs_i_dst_negation_source_sumnegative_body_steps)) * dst_negative_scale_negation_source_sum) + (fs_a_dst_negation_source_sumnegative_body_steps))) /\ ((((exists fs_h_dst_negation_source_sumnegative_body_steps_partial. fs_h_dst_negation_source_sumnegative_body_steps_partial + S (fs_r_dst_negation_source_sumnegative_body_steps) = S ((S (fs_i_dst_negation_source_sumnegative_body_steps)) * fs_v_dst_negation_source_sumnegative)) /\ exists fs_q_dst_negation_source_sumnegative_body_steps_partial. fs_u_dst_negation_source_sumnegative = fs_q_dst_negation_source_sumnegative_body_steps_partial * S ((S (fs_i_dst_negation_source_sumnegative_body_steps)) * fs_v_dst_negation_source_sumnegative) + (fs_r_dst_negation_source_sumnegative_body_steps))) /\ ((((exists fs_h_dst_negation_source_sumnegative_body_steps_successor. fs_h_dst_negation_source_sumnegative_body_steps_successor + S (fs_s_dst_negation_source_sumnegative_body_steps) = S ((S (S fs_i_dst_negation_source_sumnegative_body_steps)) * fs_v_dst_negation_source_sumnegative)) /\ exists fs_q_dst_negation_source_sumnegative_body_steps_successor. fs_u_dst_negation_source_sumnegative = fs_q_dst_negation_source_sumnegative_body_steps_successor * S ((S (S fs_i_dst_negation_source_sumnegative_body_steps)) * fs_v_dst_negation_source_sumnegative) + (fs_s_dst_negation_source_sumnegative_body_steps))) /\ fs_s_dst_negation_source_sumnegative_body_steps = fs_r_dst_negation_source_sumnegative_body_steps + fs_a_dst_negation_source_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_negation_source_sumresult ge_balance_negative_negation_source_sumresult. (((((a) = 2 * (ge_balance_positive_negation_source_sumresult) /\ (ge_balance_negative_negation_source_sumresult) = 0) \/ exists ge_signed_half_negation_source_sumresultdecode. (((a) = 2 * ge_signed_half_negation_source_sumresultdecode + 1 /\ (ge_balance_positive_negation_source_sumresult) = 0) /\ (ge_balance_negative_negation_source_sumresult) = S ge_signed_half_negation_source_sumresultdecode))) /\ ((dst_positive_sum_negation_source_sum) + ge_balance_negative_negation_source_sumresult = (dst_negative_sum_negation_source_sum) + ge_balance_positive_negation_source_sumresult))))))))) -> (exists mps_positive_negation_relation mps_negative_negation_relation. (((((a) = 2 * (mps_positive_negation_relation) /\ (mps_negative_negation_relation) = 0) \/ exists ge_signed_half_negation_relationsource. (((a) = 2 * ge_signed_half_negation_relationsource + 1 /\ (mps_positive_negation_relation) = 0) /\ (mps_negative_negation_relation) = S ge_signed_half_negation_relationsource))) /\ ((((b) = 2 * (mps_negative_negation_relation) /\ (mps_positive_negation_relation) = 0) \/ exists ge_signed_half_negation_relationtarget. (((b) = 2 * ge_signed_half_negation_relationtarget + 1 /\ (mps_negative_negation_relation) = 0) /\ (mps_positive_negation_relation) = S ge_signed_half_negation_relationtarget))))) -> (exists dst_positive_code_negation_target_sum dst_positive_scale_negation_target_sum dst_negative_code_negation_target_sum dst_negative_scale_negation_target_sum dst_positive_sum_negation_target_sum dst_negative_sum_negation_target_sum. (((G) = (((((dst_positive_code_negation_target_sum) + (dst_positive_scale_negation_target_sum)) * S ((dst_positive_code_negation_target_sum) + (dst_positive_scale_negation_target_sum)) + ((dst_positive_scale_negation_target_sum) + (dst_positive_scale_negation_target_sum))) + (((dst_negative_code_negation_target_sum) + (dst_negative_scale_negation_target_sum)) * S ((dst_negative_code_negation_target_sum) + (dst_negative_scale_negation_target_sum)) + ((dst_negative_scale_negation_target_sum) + (dst_negative_scale_negation_target_sum)))) * S ((((dst_positive_code_negation_target_sum) + (dst_positive_scale_negation_target_sum)) * S ((dst_positive_code_negation_target_sum) + (dst_positive_scale_negation_target_sum)) + ((dst_positive_scale_negation_target_sum) + (dst_positive_scale_negation_target_sum))) + (((dst_negative_code_negation_target_sum) + (dst_negative_scale_negation_target_sum)) * S ((dst_negative_code_negation_target_sum) + (dst_negative_scale_negation_target_sum)) + ((dst_negative_scale_negation_target_sum) + (dst_negative_scale_negation_target_sum)))) + ((((dst_negative_code_negation_target_sum) + (dst_negative_scale_negation_target_sum)) * S ((dst_negative_code_negation_target_sum) + (dst_negative_scale_negation_target_sum)) + ((dst_negative_scale_negation_target_sum) + (dst_negative_scale_negation_target_sum))) + (((dst_negative_code_negation_target_sum) + (dst_negative_scale_negation_target_sum)) * S ((dst_negative_code_negation_target_sum) + (dst_negative_scale_negation_target_sum)) + ((dst_negative_scale_negation_target_sum) + (dst_negative_scale_negation_target_sum)))))) /\ (((exists fs_u_dst_negation_target_sumpositive fs_v_dst_negation_target_sumpositive. ((((exists fs_h_dst_negation_target_sumpositive_body_start. fs_h_dst_negation_target_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_negation_target_sumpositive)) /\ exists fs_q_dst_negation_target_sumpositive_body_start. fs_u_dst_negation_target_sumpositive = fs_q_dst_negation_target_sumpositive_body_start * S ((S (0)) * fs_v_dst_negation_target_sumpositive) + (0))) /\ ((((exists fs_h_dst_negation_target_sumpositive_body_terminal. fs_h_dst_negation_target_sumpositive_body_terminal + S (dst_positive_sum_negation_target_sum) = S ((S (l)) * fs_v_dst_negation_target_sumpositive)) /\ exists fs_q_dst_negation_target_sumpositive_body_terminal. fs_u_dst_negation_target_sumpositive = fs_q_dst_negation_target_sumpositive_body_terminal * S ((S (l)) * fs_v_dst_negation_target_sumpositive) + (dst_positive_sum_negation_target_sum))) /\ forall fs_i_dst_negation_target_sumpositive_body_steps. (exists fs_lt_dst_negation_target_sumpositive_body_steps_bound. fs_lt_dst_negation_target_sumpositive_body_steps_bound + S fs_i_dst_negation_target_sumpositive_body_steps = l) -> exists fs_a_dst_negation_target_sumpositive_body_steps fs_r_dst_negation_target_sumpositive_body_steps fs_s_dst_negation_target_sumpositive_body_steps. ((((exists fs_h_dst_negation_target_sumpositive_body_steps_summand. fs_h_dst_negation_target_sumpositive_body_steps_summand + S (fs_a_dst_negation_target_sumpositive_body_steps) = S ((S (fs_i_dst_negation_target_sumpositive_body_steps)) * dst_positive_scale_negation_target_sum)) /\ exists fs_q_dst_negation_target_sumpositive_body_steps_summand. dst_positive_code_negation_target_sum = fs_q_dst_negation_target_sumpositive_body_steps_summand * S ((S (fs_i_dst_negation_target_sumpositive_body_steps)) * dst_positive_scale_negation_target_sum) + (fs_a_dst_negation_target_sumpositive_body_steps))) /\ ((((exists fs_h_dst_negation_target_sumpositive_body_steps_partial. fs_h_dst_negation_target_sumpositive_body_steps_partial + S (fs_r_dst_negation_target_sumpositive_body_steps) = S ((S (fs_i_dst_negation_target_sumpositive_body_steps)) * fs_v_dst_negation_target_sumpositive)) /\ exists fs_q_dst_negation_target_sumpositive_body_steps_partial. fs_u_dst_negation_target_sumpositive = fs_q_dst_negation_target_sumpositive_body_steps_partial * S ((S (fs_i_dst_negation_target_sumpositive_body_steps)) * fs_v_dst_negation_target_sumpositive) + (fs_r_dst_negation_target_sumpositive_body_steps))) /\ ((((exists fs_h_dst_negation_target_sumpositive_body_steps_successor. fs_h_dst_negation_target_sumpositive_body_steps_successor + S (fs_s_dst_negation_target_sumpositive_body_steps) = S ((S (S fs_i_dst_negation_target_sumpositive_body_steps)) * fs_v_dst_negation_target_sumpositive)) /\ exists fs_q_dst_negation_target_sumpositive_body_steps_successor. fs_u_dst_negation_target_sumpositive = fs_q_dst_negation_target_sumpositive_body_steps_successor * S ((S (S fs_i_dst_negation_target_sumpositive_body_steps)) * fs_v_dst_negation_target_sumpositive) + (fs_s_dst_negation_target_sumpositive_body_steps))) /\ fs_s_dst_negation_target_sumpositive_body_steps = fs_r_dst_negation_target_sumpositive_body_steps + fs_a_dst_negation_target_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_negation_target_sumnegative fs_v_dst_negation_target_sumnegative. ((((exists fs_h_dst_negation_target_sumnegative_body_start. fs_h_dst_negation_target_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_negation_target_sumnegative)) /\ exists fs_q_dst_negation_target_sumnegative_body_start. fs_u_dst_negation_target_sumnegative = fs_q_dst_negation_target_sumnegative_body_start * S ((S (0)) * fs_v_dst_negation_target_sumnegative) + (0))) /\ ((((exists fs_h_dst_negation_target_sumnegative_body_terminal. fs_h_dst_negation_target_sumnegative_body_terminal + S (dst_negative_sum_negation_target_sum) = S ((S (l)) * fs_v_dst_negation_target_sumnegative)) /\ exists fs_q_dst_negation_target_sumnegative_body_terminal. fs_u_dst_negation_target_sumnegative = fs_q_dst_negation_target_sumnegative_body_terminal * S ((S (l)) * fs_v_dst_negation_target_sumnegative) + (dst_negative_sum_negation_target_sum))) /\ forall fs_i_dst_negation_target_sumnegative_body_steps. (exists fs_lt_dst_negation_target_sumnegative_body_steps_bound. fs_lt_dst_negation_target_sumnegative_body_steps_bound + S fs_i_dst_negation_target_sumnegative_body_steps = l) -> exists fs_a_dst_negation_target_sumnegative_body_steps fs_r_dst_negation_target_sumnegative_body_steps fs_s_dst_negation_target_sumnegative_body_steps. ((((exists fs_h_dst_negation_target_sumnegative_body_steps_summand. fs_h_dst_negation_target_sumnegative_body_steps_summand + S (fs_a_dst_negation_target_sumnegative_body_steps) = S ((S (fs_i_dst_negation_target_sumnegative_body_steps)) * dst_negative_scale_negation_target_sum)) /\ exists fs_q_dst_negation_target_sumnegative_body_steps_summand. dst_negative_code_negation_target_sum = fs_q_dst_negation_target_sumnegative_body_steps_summand * S ((S (fs_i_dst_negation_target_sumnegative_body_steps)) * dst_negative_scale_negation_target_sum) + (fs_a_dst_negation_target_sumnegative_body_steps))) /\ ((((exists fs_h_dst_negation_target_sumnegative_body_steps_partial. fs_h_dst_negation_target_sumnegative_body_steps_partial + S (fs_r_dst_negation_target_sumnegative_body_steps) = S ((S (fs_i_dst_negation_target_sumnegative_body_steps)) * fs_v_dst_negation_target_sumnegative)) /\ exists fs_q_dst_negation_target_sumnegative_body_steps_partial. fs_u_dst_negation_target_sumnegative = fs_q_dst_negation_target_sumnegative_body_steps_partial * S ((S (fs_i_dst_negation_target_sumnegative_body_steps)) * fs_v_dst_negation_target_sumnegative) + (fs_r_dst_negation_target_sumnegative_body_steps))) /\ ((((exists fs_h_dst_negation_target_sumnegative_body_steps_successor. fs_h_dst_negation_target_sumnegative_body_steps_successor + S (fs_s_dst_negation_target_sumnegative_body_steps) = S ((S (S fs_i_dst_negation_target_sumnegative_body_steps)) * fs_v_dst_negation_target_sumnegative)) /\ exists fs_q_dst_negation_target_sumnegative_body_steps_successor. fs_u_dst_negation_target_sumnegative = fs_q_dst_negation_target_sumnegative_body_steps_successor * S ((S (S fs_i_dst_negation_target_sumnegative_body_steps)) * fs_v_dst_negation_target_sumnegative) + (fs_s_dst_negation_target_sumnegative_body_steps))) /\ fs_s_dst_negation_target_sumnegative_body_steps = fs_r_dst_negation_target_sumnegative_body_steps + fs_a_dst_negation_target_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_negation_target_sumresult ge_balance_negative_negation_target_sumresult. (((((b) = 2 * (ge_balance_positive_negation_target_sumresult) /\ (ge_balance_negative_negation_target_sumresult) = 0) \/ exists ge_signed_half_negation_target_sumresultdecode. (((b) = 2 * ge_signed_half_negation_target_sumresultdecode + 1 /\ (ge_balance_positive_negation_target_sumresult) = 0) /\ (ge_balance_negative_negation_target_sumresult) = S ge_signed_half_negation_target_sumresultdecode))) /\ ((dst_positive_sum_negation_target_sum) + ge_balance_negative_negation_target_sumresult = (dst_negative_sum_negation_target_sum) + ge_balance_positive_negation_target_sumresult)))))))))Constructive proof overview
Generated structural guide
Swapping the actual positive/negative beta streams negates their signed sum, using the same genuine natural traces.
The unchanged tactic script uses 3 declared prerequisites and contains 48 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 SS0009 divisor_signed_sum_from_components SS000F divisor_signed_balance_negateDirect 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Establish hpartsL14–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum to components.
- L14
have hparts : ∃ p. ∃ n. Sum(pb,pc,l,p) ∧ (Sum(nb,nc,l,n) ∧ SignedBalance(a,p,n))Definitions: SignedBalanceSum - L15
specialize divisor_signed_sum_to_components (F) - L16
specialize divisor_signed_sum_to_components (pb) - L17
specialize divisor_signed_sum_to_components (pc) - L18
specialize divisor_signed_sum_to_components (nb) - L19
specialize divisor_signed_sum_to_components (nc) - L20
specialize divisor_signed_sum_to_components (l) - L21
specialize divisor_signed_sum_to_components (a) - L22
apply divisor_signed_sum_to_components - L23
exact hF
04Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact hs
05Separate the logical casesL25–28
06Use earlier factsL29–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L29
specialize divisor_signed_sum_from_components (G) - L30
specialize divisor_signed_sum_from_components (nb) - L31
specialize divisor_signed_sum_from_components (nc) - L32
specialize divisor_signed_sum_from_components (pb) - L33
specialize divisor_signed_sum_from_components (pc) - L34
specialize divisor_signed_sum_from_components (l) - L35
specialize divisor_signed_sum_from_components (x1) - L36
specialize divisor_signed_sum_from_components (x) - L37
specialize divisor_signed_sum_from_components (b) - L38
apply divisor_signed_sum_from_components
07Use earlier factsL39–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L39
exact hG - L40
exact hparts_witness_witness_right_left - L41
exact hparts_witness_witness_left - L42
specialize divisor_signed_balance_negate (a) - L43
specialize divisor_signed_balance_negate (b) - L44
specialize divisor_signed_balance_negate (x) - L45
specialize divisor_signed_balance_negate (x1) - L46
apply divisor_signed_balance_negate - L47
exact hparts_witness_witness_right_right - L48
exact hn
Original exact command ledger · 48 lines
- 0001
intro F - 0002
intro G - 0003
intro pb - 0004
intro pc - 0005
intro nb - 0006
intro nc - 0007
intro l - 0008
intro a - 0009
intro b - 0010
intro hF - 0011
intro hG - 0012
intro hs - 0013
intro hn - 0014
have hparts : exists p n. ((exists fs_u_dst_negation_positive fs_v_dst_negation_positive. ((((exists fs_h_dst_negation_positive_body_start. fs_h_dst_negation_positive_body_start + S (0) = S ((S (0)) * fs_v_dst_negation_positive)) /\ exists fs_q_dst_negation_positive_body_start. fs_u_dst_negation_positive = fs_q_dst_negation_positive_body_start * S ((S (0)) * fs_v_dst_negation_positive) + (0))) /\ ((((exists fs_h_dst_negation_positive_body_terminal. fs_h_dst_negation_positive_body_terminal + S (p) = S ((S (l)) * fs_v_dst_negation_positive)) /\ exists fs_q_dst_negation_positive_body_terminal. fs_u_dst_negation_positive = fs_q_dst_negation_positive_body_terminal * S ((S (l)) * fs_v_dst_negation_positive) + (p))) /\ forall fs_i_dst_negation_positive_body_steps. (exists fs_lt_dst_negation_positive_body_steps_bound. fs_lt_dst_negation_positive_body_steps_bound + S fs_i_dst_negation_positive_body_steps = l) -> exists fs_a_dst_negation_positive_body_steps fs_r_dst_negation_positive_body_steps fs_s_dst_negation_positive_body_steps. ((((exists fs_h_dst_negation_positive_body_steps_summand. fs_h_dst_negation_positive_body_steps_summand + S (fs_a_dst_negation_positive_body_steps) = S ((S (fs_i_dst_negation_positive_body_steps)) * pc)) /\ exists fs_q_dst_negation_positive_body_steps_summand. pb = fs_q_dst_negation_positive_body_steps_summand * S ((S (fs_i_dst_negation_positive_body_steps)) * pc) + (fs_a_dst_negation_positive_body_steps))) /\ ((((exists fs_h_dst_negation_positive_body_steps_partial. fs_h_dst_negation_positive_body_steps_partial + S (fs_r_dst_negation_positive_body_steps) = S ((S (fs_i_dst_negation_positive_body_steps)) * fs_v_dst_negation_positive)) /\ exists fs_q_dst_negation_positive_body_steps_partial. fs_u_dst_negation_positive = fs_q_dst_negation_positive_body_steps_partial * S ((S (fs_i_dst_negation_positive_body_steps)) * fs_v_dst_negation_positive) + (fs_r_dst_negation_positive_body_steps))) /\ ((((exists fs_h_dst_negation_positive_body_steps_successor. fs_h_dst_negation_positive_body_steps_successor + S (fs_s_dst_negation_positive_body_steps) = S ((S (S fs_i_dst_negation_positive_body_steps)) * fs_v_dst_negation_positive)) /\ exists fs_q_dst_negation_positive_body_steps_successor. fs_u_dst_negation_positive = fs_q_dst_negation_positive_body_steps_successor * S ((S (S fs_i_dst_negation_positive_body_steps)) * fs_v_dst_negation_positive) + (fs_s_dst_negation_positive_body_steps))) /\ fs_s_dst_negation_positive_body_steps = fs_r_dst_negation_positive_body_steps + fs_a_dst_negation_positive_body_steps)))))) /\ (((exists fs_u_dst_negation_negative fs_v_dst_negation_negative. ((((exists fs_h_dst_negation_negative_body_start. fs_h_dst_negation_negative_body_start + S (0) = S ((S (0)) * fs_v_dst_negation_negative)) /\ exists fs_q_dst_negation_negative_body_start. fs_u_dst_negation_negative = fs_q_dst_negation_negative_body_start * S ((S (0)) * fs_v_dst_negation_negative) + (0))) /\ ((((exists fs_h_dst_negation_negative_body_terminal. fs_h_dst_negation_negative_body_terminal + S (n) = S ((S (l)) * fs_v_dst_negation_negative)) /\ exists fs_q_dst_negation_negative_body_terminal. fs_u_dst_negation_negative = fs_q_dst_negation_negative_body_terminal * S ((S (l)) * fs_v_dst_negation_negative) + (n))) /\ forall fs_i_dst_negation_negative_body_steps. (exists fs_lt_dst_negation_negative_body_steps_bound. fs_lt_dst_negation_negative_body_steps_bound + S fs_i_dst_negation_negative_body_steps = l) -> exists fs_a_dst_negation_negative_body_steps fs_r_dst_negation_negative_body_steps fs_s_dst_negation_negative_body_steps. ((((exists fs_h_dst_negation_negative_body_steps_summand. fs_h_dst_negation_negative_body_steps_summand + S (fs_a_dst_negation_negative_body_steps) = S ((S (fs_i_dst_negation_negative_body_steps)) * nc)) /\ exists fs_q_dst_negation_negative_body_steps_summand. nb = fs_q_dst_negation_negative_body_steps_summand * S ((S (fs_i_dst_negation_negative_body_steps)) * nc) + (fs_a_dst_negation_negative_body_steps))) /\ ((((exists fs_h_dst_negation_negative_body_steps_partial. fs_h_dst_negation_negative_body_steps_partial + S (fs_r_dst_negation_negative_body_steps) = S ((S (fs_i_dst_negation_negative_body_steps)) * fs_v_dst_negation_negative)) /\ exists fs_q_dst_negation_negative_body_steps_partial. fs_u_dst_negation_negative = fs_q_dst_negation_negative_body_steps_partial * S ((S (fs_i_dst_negation_negative_body_steps)) * fs_v_dst_negation_negative) + (fs_r_dst_negation_negative_body_steps))) /\ ((((exists fs_h_dst_negation_negative_body_steps_successor. fs_h_dst_negation_negative_body_steps_successor + S (fs_s_dst_negation_negative_body_steps) = S ((S (S fs_i_dst_negation_negative_body_steps)) * fs_v_dst_negation_negative)) /\ exists fs_q_dst_negation_negative_body_steps_successor. fs_u_dst_negation_negative = fs_q_dst_negation_negative_body_steps_successor * S ((S (S fs_i_dst_negation_negative_body_steps)) * fs_v_dst_negation_negative) + (fs_s_dst_negation_negative_body_steps))) /\ fs_s_dst_negation_negative_body_steps = fs_r_dst_negation_negative_body_steps + fs_a_dst_negation_negative_body_steps)))))) /\ (exists ge_balance_positive_negation_balance ge_balance_negative_negation_balance. (((((a) = 2 * (ge_balance_positive_negation_balance) /\ (ge_balance_negative_negation_balance) = 0) \/ exists ge_signed_half_negation_balancedecode. (((a) = 2 * ge_signed_half_negation_balancedecode + 1 /\ (ge_balance_positive_negation_balance) = 0) /\ (ge_balance_negative_negation_balance) = S ge_signed_half_negation_balancedecode))) /\ ((p) + ge_balance_negative_negation_balance = (n) + ge_balance_positive_negation_balance)))))) - 0015
specialize divisor_signed_sum_to_components (F) - 0016
specialize divisor_signed_sum_to_components (pb) - 0017
specialize divisor_signed_sum_to_components (pc) - 0018
specialize divisor_signed_sum_to_components (nb) - 0019
specialize divisor_signed_sum_to_components (nc) - 0020
specialize divisor_signed_sum_to_components (l) - 0021
specialize divisor_signed_sum_to_components (a) - 0022
apply divisor_signed_sum_to_components - 0023
exact hF - 0024
exact hs - 0025
cases hparts - 0026
cases hparts_witness - 0027
cases hparts_witness_witness - 0028
cases hparts_witness_witness_right - 0029
specialize divisor_signed_sum_from_components (G) - 0030
specialize divisor_signed_sum_from_components (nb) - 0031
specialize divisor_signed_sum_from_components (nc) - 0032
specialize divisor_signed_sum_from_components (pb) - 0033
specialize divisor_signed_sum_from_components (pc) - 0034
specialize divisor_signed_sum_from_components (l) - 0035
specialize divisor_signed_sum_from_components (x1) - 0036
specialize divisor_signed_sum_from_components (x) - 0037
specialize divisor_signed_sum_from_components (b) - 0038
apply divisor_signed_sum_from_components - 0039
exact hG - 0040
exact hparts_witness_witness_right_left - 0041
exact hparts_witness_witness_left - 0042
specialize divisor_signed_balance_negate (a) - 0043
specialize divisor_signed_balance_negate (b) - 0044
specialize divisor_signed_balance_negate (x) - 0045
specialize divisor_signed_balance_negate (x1) - 0046
apply divisor_signed_balance_negate - 0047
exact hparts_witness_witness_right_right - 0048
exact hn