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 b. (exists dst_positive_code_sum_unique_first dst_positive_scale_sum_unique_first dst_negative_code_sum_unique_first dst_negative_scale_sum_unique_first dst_positive_sum_sum_unique_first dst_negative_sum_sum_unique_first. (((F) = (((((dst_positive_code_sum_unique_first) + (dst_positive_scale_sum_unique_first)) * S ((dst_positive_code_sum_unique_first) + (dst_positive_scale_sum_unique_first)) + ((dst_positive_scale_sum_unique_first) + (dst_positive_scale_sum_unique_first))) + (((dst_negative_code_sum_unique_first) + (dst_negative_scale_sum_unique_first)) * S ((dst_negative_code_sum_unique_first) + (dst_negative_scale_sum_unique_first)) + ((dst_negative_scale_sum_unique_first) + (dst_negative_scale_sum_unique_first)))) * S ((((dst_positive_code_sum_unique_first) + (dst_positive_scale_sum_unique_first)) * S ((dst_positive_code_sum_unique_first) + (dst_positive_scale_sum_unique_first)) + ((dst_positive_scale_sum_unique_first) + (dst_positive_scale_sum_unique_first))) + (((dst_negative_code_sum_unique_first) + (dst_negative_scale_sum_unique_first)) * S ((dst_negative_code_sum_unique_first) + (dst_negative_scale_sum_unique_first)) + ((dst_negative_scale_sum_unique_first) + (dst_negative_scale_sum_unique_first)))) + ((((dst_negative_code_sum_unique_first) + (dst_negative_scale_sum_unique_first)) * S ((dst_negative_code_sum_unique_first) + (dst_negative_scale_sum_unique_first)) + ((dst_negative_scale_sum_unique_first) + (dst_negative_scale_sum_unique_first))) + (((dst_negative_code_sum_unique_first) + (dst_negative_scale_sum_unique_first)) * S ((dst_negative_code_sum_unique_first) + (dst_negative_scale_sum_unique_first)) + ((dst_negative_scale_sum_unique_first) + (dst_negative_scale_sum_unique_first)))))) /\ (((exists fs_u_dst_sum_unique_firstpositive fs_v_dst_sum_unique_firstpositive. ((((exists fs_h_dst_sum_unique_firstpositive_body_start. fs_h_dst_sum_unique_firstpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_unique_firstpositive)) /\ exists fs_q_dst_sum_unique_firstpositive_body_start. fs_u_dst_sum_unique_firstpositive = fs_q_dst_sum_unique_firstpositive_body_start * S ((S (0)) * fs_v_dst_sum_unique_firstpositive) + (0))) /\ ((((exists fs_h_dst_sum_unique_firstpositive_body_terminal. fs_h_dst_sum_unique_firstpositive_body_terminal + S (dst_positive_sum_sum_unique_first) = S ((S (l)) * fs_v_dst_sum_unique_firstpositive)) /\ exists fs_q_dst_sum_unique_firstpositive_body_terminal. fs_u_dst_sum_unique_firstpositive = fs_q_dst_sum_unique_firstpositive_body_terminal * S ((S (l)) * fs_v_dst_sum_unique_firstpositive) + (dst_positive_sum_sum_unique_first))) /\ forall fs_i_dst_sum_unique_firstpositive_body_steps. (exists fs_lt_dst_sum_unique_firstpositive_body_steps_bound. fs_lt_dst_sum_unique_firstpositive_body_steps_bound + S fs_i_dst_sum_unique_firstpositive_body_steps = l) -> exists fs_a_dst_sum_unique_firstpositive_body_steps fs_r_dst_sum_unique_firstpositive_body_steps fs_s_dst_sum_unique_firstpositive_body_steps. ((((exists fs_h_dst_sum_unique_firstpositive_body_steps_summand. fs_h_dst_sum_unique_firstpositive_body_steps_summand + S (fs_a_dst_sum_unique_firstpositive_body_steps) = S ((S (fs_i_dst_sum_unique_firstpositive_body_steps)) * dst_positive_scale_sum_unique_first)) /\ exists fs_q_dst_sum_unique_firstpositive_body_steps_summand. dst_positive_code_sum_unique_first = fs_q_dst_sum_unique_firstpositive_body_steps_summand * S ((S (fs_i_dst_sum_unique_firstpositive_body_steps)) * dst_positive_scale_sum_unique_first) + (fs_a_dst_sum_unique_firstpositive_body_steps))) /\ ((((exists fs_h_dst_sum_unique_firstpositive_body_steps_partial. fs_h_dst_sum_unique_firstpositive_body_steps_partial + S (fs_r_dst_sum_unique_firstpositive_body_steps) = S ((S (fs_i_dst_sum_unique_firstpositive_body_steps)) * fs_v_dst_sum_unique_firstpositive)) /\ exists fs_q_dst_sum_unique_firstpositive_body_steps_partial. fs_u_dst_sum_unique_firstpositive = fs_q_dst_sum_unique_firstpositive_body_steps_partial * S ((S (fs_i_dst_sum_unique_firstpositive_body_steps)) * fs_v_dst_sum_unique_firstpositive) + (fs_r_dst_sum_unique_firstpositive_body_steps))) /\ ((((exists fs_h_dst_sum_unique_firstpositive_body_steps_successor. fs_h_dst_sum_unique_firstpositive_body_steps_successor + S (fs_s_dst_sum_unique_firstpositive_body_steps) = S ((S (S fs_i_dst_sum_unique_firstpositive_body_steps)) * fs_v_dst_sum_unique_firstpositive)) /\ exists fs_q_dst_sum_unique_firstpositive_body_steps_successor. fs_u_dst_sum_unique_firstpositive = fs_q_dst_sum_unique_firstpositive_body_steps_successor * S ((S (S fs_i_dst_sum_unique_firstpositive_body_steps)) * fs_v_dst_sum_unique_firstpositive) + (fs_s_dst_sum_unique_firstpositive_body_steps))) /\ fs_s_dst_sum_unique_firstpositive_body_steps = fs_r_dst_sum_unique_firstpositive_body_steps + fs_a_dst_sum_unique_firstpositive_body_steps)))))) /\ (((exists fs_u_dst_sum_unique_firstnegative fs_v_dst_sum_unique_firstnegative. ((((exists fs_h_dst_sum_unique_firstnegative_body_start. fs_h_dst_sum_unique_firstnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_unique_firstnegative)) /\ exists fs_q_dst_sum_unique_firstnegative_body_start. fs_u_dst_sum_unique_firstnegative = fs_q_dst_sum_unique_firstnegative_body_start * S ((S (0)) * fs_v_dst_sum_unique_firstnegative) + (0))) /\ ((((exists fs_h_dst_sum_unique_firstnegative_body_terminal. fs_h_dst_sum_unique_firstnegative_body_terminal + S (dst_negative_sum_sum_unique_first) = S ((S (l)) * fs_v_dst_sum_unique_firstnegative)) /\ exists fs_q_dst_sum_unique_firstnegative_body_terminal. fs_u_dst_sum_unique_firstnegative = fs_q_dst_sum_unique_firstnegative_body_terminal * S ((S (l)) * fs_v_dst_sum_unique_firstnegative) + (dst_negative_sum_sum_unique_first))) /\ forall fs_i_dst_sum_unique_firstnegative_body_steps. (exists fs_lt_dst_sum_unique_firstnegative_body_steps_bound. fs_lt_dst_sum_unique_firstnegative_body_steps_bound + S fs_i_dst_sum_unique_firstnegative_body_steps = l) -> exists fs_a_dst_sum_unique_firstnegative_body_steps fs_r_dst_sum_unique_firstnegative_body_steps fs_s_dst_sum_unique_firstnegative_body_steps. ((((exists fs_h_dst_sum_unique_firstnegative_body_steps_summand. fs_h_dst_sum_unique_firstnegative_body_steps_summand + S (fs_a_dst_sum_unique_firstnegative_body_steps) = S ((S (fs_i_dst_sum_unique_firstnegative_body_steps)) * dst_negative_scale_sum_unique_first)) /\ exists fs_q_dst_sum_unique_firstnegative_body_steps_summand. dst_negative_code_sum_unique_first = fs_q_dst_sum_unique_firstnegative_body_steps_summand * S ((S (fs_i_dst_sum_unique_firstnegative_body_steps)) * dst_negative_scale_sum_unique_first) + (fs_a_dst_sum_unique_firstnegative_body_steps))) /\ ((((exists fs_h_dst_sum_unique_firstnegative_body_steps_partial. fs_h_dst_sum_unique_firstnegative_body_steps_partial + S (fs_r_dst_sum_unique_firstnegative_body_steps) = S ((S (fs_i_dst_sum_unique_firstnegative_body_steps)) * fs_v_dst_sum_unique_firstnegative)) /\ exists fs_q_dst_sum_unique_firstnegative_body_steps_partial. fs_u_dst_sum_unique_firstnegative = fs_q_dst_sum_unique_firstnegative_body_steps_partial * S ((S (fs_i_dst_sum_unique_firstnegative_body_steps)) * fs_v_dst_sum_unique_firstnegative) + (fs_r_dst_sum_unique_firstnegative_body_steps))) /\ ((((exists fs_h_dst_sum_unique_firstnegative_body_steps_successor. fs_h_dst_sum_unique_firstnegative_body_steps_successor + S (fs_s_dst_sum_unique_firstnegative_body_steps) = S ((S (S fs_i_dst_sum_unique_firstnegative_body_steps)) * fs_v_dst_sum_unique_firstnegative)) /\ exists fs_q_dst_sum_unique_firstnegative_body_steps_successor. fs_u_dst_sum_unique_firstnegative = fs_q_dst_sum_unique_firstnegative_body_steps_successor * S ((S (S fs_i_dst_sum_unique_firstnegative_body_steps)) * fs_v_dst_sum_unique_firstnegative) + (fs_s_dst_sum_unique_firstnegative_body_steps))) /\ fs_s_dst_sum_unique_firstnegative_body_steps = fs_r_dst_sum_unique_firstnegative_body_steps + fs_a_dst_sum_unique_firstnegative_body_steps)))))) /\ (exists ge_balance_positive_sum_unique_firstresult ge_balance_negative_sum_unique_firstresult. (((((a) = 2 * (ge_balance_positive_sum_unique_firstresult) /\ (ge_balance_negative_sum_unique_firstresult) = 0) \/ exists ge_signed_half_sum_unique_firstresultdecode. (((a) = 2 * ge_signed_half_sum_unique_firstresultdecode + 1 /\ (ge_balance_positive_sum_unique_firstresult) = 0) /\ (ge_balance_negative_sum_unique_firstresult) = S ge_signed_half_sum_unique_firstresultdecode))) /\ ((dst_positive_sum_sum_unique_first) + ge_balance_negative_sum_unique_firstresult = (dst_negative_sum_sum_unique_first) + ge_balance_positive_sum_unique_firstresult))))))))) -> (exists dst_positive_code_sum_unique_second dst_positive_scale_sum_unique_second dst_negative_code_sum_unique_second dst_negative_scale_sum_unique_second dst_positive_sum_sum_unique_second dst_negative_sum_sum_unique_second. (((F) = (((((dst_positive_code_sum_unique_second) + (dst_positive_scale_sum_unique_second)) * S ((dst_positive_code_sum_unique_second) + (dst_positive_scale_sum_unique_second)) + ((dst_positive_scale_sum_unique_second) + (dst_positive_scale_sum_unique_second))) + (((dst_negative_code_sum_unique_second) + (dst_negative_scale_sum_unique_second)) * S ((dst_negative_code_sum_unique_second) + (dst_negative_scale_sum_unique_second)) + ((dst_negative_scale_sum_unique_second) + (dst_negative_scale_sum_unique_second)))) * S ((((dst_positive_code_sum_unique_second) + (dst_positive_scale_sum_unique_second)) * S ((dst_positive_code_sum_unique_second) + (dst_positive_scale_sum_unique_second)) + ((dst_positive_scale_sum_unique_second) + (dst_positive_scale_sum_unique_second))) + (((dst_negative_code_sum_unique_second) + (dst_negative_scale_sum_unique_second)) * S ((dst_negative_code_sum_unique_second) + (dst_negative_scale_sum_unique_second)) + ((dst_negative_scale_sum_unique_second) + (dst_negative_scale_sum_unique_second)))) + ((((dst_negative_code_sum_unique_second) + (dst_negative_scale_sum_unique_second)) * S ((dst_negative_code_sum_unique_second) + (dst_negative_scale_sum_unique_second)) + ((dst_negative_scale_sum_unique_second) + (dst_negative_scale_sum_unique_second))) + (((dst_negative_code_sum_unique_second) + (dst_negative_scale_sum_unique_second)) * S ((dst_negative_code_sum_unique_second) + (dst_negative_scale_sum_unique_second)) + ((dst_negative_scale_sum_unique_second) + (dst_negative_scale_sum_unique_second)))))) /\ (((exists fs_u_dst_sum_unique_secondpositive fs_v_dst_sum_unique_secondpositive. ((((exists fs_h_dst_sum_unique_secondpositive_body_start. fs_h_dst_sum_unique_secondpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_unique_secondpositive)) /\ exists fs_q_dst_sum_unique_secondpositive_body_start. fs_u_dst_sum_unique_secondpositive = fs_q_dst_sum_unique_secondpositive_body_start * S ((S (0)) * fs_v_dst_sum_unique_secondpositive) + (0))) /\ ((((exists fs_h_dst_sum_unique_secondpositive_body_terminal. fs_h_dst_sum_unique_secondpositive_body_terminal + S (dst_positive_sum_sum_unique_second) = S ((S (l)) * fs_v_dst_sum_unique_secondpositive)) /\ exists fs_q_dst_sum_unique_secondpositive_body_terminal. fs_u_dst_sum_unique_secondpositive = fs_q_dst_sum_unique_secondpositive_body_terminal * S ((S (l)) * fs_v_dst_sum_unique_secondpositive) + (dst_positive_sum_sum_unique_second))) /\ forall fs_i_dst_sum_unique_secondpositive_body_steps. (exists fs_lt_dst_sum_unique_secondpositive_body_steps_bound. fs_lt_dst_sum_unique_secondpositive_body_steps_bound + S fs_i_dst_sum_unique_secondpositive_body_steps = l) -> exists fs_a_dst_sum_unique_secondpositive_body_steps fs_r_dst_sum_unique_secondpositive_body_steps fs_s_dst_sum_unique_secondpositive_body_steps. ((((exists fs_h_dst_sum_unique_secondpositive_body_steps_summand. fs_h_dst_sum_unique_secondpositive_body_steps_summand + S (fs_a_dst_sum_unique_secondpositive_body_steps) = S ((S (fs_i_dst_sum_unique_secondpositive_body_steps)) * dst_positive_scale_sum_unique_second)) /\ exists fs_q_dst_sum_unique_secondpositive_body_steps_summand. dst_positive_code_sum_unique_second = fs_q_dst_sum_unique_secondpositive_body_steps_summand * S ((S (fs_i_dst_sum_unique_secondpositive_body_steps)) * dst_positive_scale_sum_unique_second) + (fs_a_dst_sum_unique_secondpositive_body_steps))) /\ ((((exists fs_h_dst_sum_unique_secondpositive_body_steps_partial. fs_h_dst_sum_unique_secondpositive_body_steps_partial + S (fs_r_dst_sum_unique_secondpositive_body_steps) = S ((S (fs_i_dst_sum_unique_secondpositive_body_steps)) * fs_v_dst_sum_unique_secondpositive)) /\ exists fs_q_dst_sum_unique_secondpositive_body_steps_partial. fs_u_dst_sum_unique_secondpositive = fs_q_dst_sum_unique_secondpositive_body_steps_partial * S ((S (fs_i_dst_sum_unique_secondpositive_body_steps)) * fs_v_dst_sum_unique_secondpositive) + (fs_r_dst_sum_unique_secondpositive_body_steps))) /\ ((((exists fs_h_dst_sum_unique_secondpositive_body_steps_successor. fs_h_dst_sum_unique_secondpositive_body_steps_successor + S (fs_s_dst_sum_unique_secondpositive_body_steps) = S ((S (S fs_i_dst_sum_unique_secondpositive_body_steps)) * fs_v_dst_sum_unique_secondpositive)) /\ exists fs_q_dst_sum_unique_secondpositive_body_steps_successor. fs_u_dst_sum_unique_secondpositive = fs_q_dst_sum_unique_secondpositive_body_steps_successor * S ((S (S fs_i_dst_sum_unique_secondpositive_body_steps)) * fs_v_dst_sum_unique_secondpositive) + (fs_s_dst_sum_unique_secondpositive_body_steps))) /\ fs_s_dst_sum_unique_secondpositive_body_steps = fs_r_dst_sum_unique_secondpositive_body_steps + fs_a_dst_sum_unique_secondpositive_body_steps)))))) /\ (((exists fs_u_dst_sum_unique_secondnegative fs_v_dst_sum_unique_secondnegative. ((((exists fs_h_dst_sum_unique_secondnegative_body_start. fs_h_dst_sum_unique_secondnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_unique_secondnegative)) /\ exists fs_q_dst_sum_unique_secondnegative_body_start. fs_u_dst_sum_unique_secondnegative = fs_q_dst_sum_unique_secondnegative_body_start * S ((S (0)) * fs_v_dst_sum_unique_secondnegative) + (0))) /\ ((((exists fs_h_dst_sum_unique_secondnegative_body_terminal. fs_h_dst_sum_unique_secondnegative_body_terminal + S (dst_negative_sum_sum_unique_second) = S ((S (l)) * fs_v_dst_sum_unique_secondnegative)) /\ exists fs_q_dst_sum_unique_secondnegative_body_terminal. fs_u_dst_sum_unique_secondnegative = fs_q_dst_sum_unique_secondnegative_body_terminal * S ((S (l)) * fs_v_dst_sum_unique_secondnegative) + (dst_negative_sum_sum_unique_second))) /\ forall fs_i_dst_sum_unique_secondnegative_body_steps. (exists fs_lt_dst_sum_unique_secondnegative_body_steps_bound. fs_lt_dst_sum_unique_secondnegative_body_steps_bound + S fs_i_dst_sum_unique_secondnegative_body_steps = l) -> exists fs_a_dst_sum_unique_secondnegative_body_steps fs_r_dst_sum_unique_secondnegative_body_steps fs_s_dst_sum_unique_secondnegative_body_steps. ((((exists fs_h_dst_sum_unique_secondnegative_body_steps_summand. fs_h_dst_sum_unique_secondnegative_body_steps_summand + S (fs_a_dst_sum_unique_secondnegative_body_steps) = S ((S (fs_i_dst_sum_unique_secondnegative_body_steps)) * dst_negative_scale_sum_unique_second)) /\ exists fs_q_dst_sum_unique_secondnegative_body_steps_summand. dst_negative_code_sum_unique_second = fs_q_dst_sum_unique_secondnegative_body_steps_summand * S ((S (fs_i_dst_sum_unique_secondnegative_body_steps)) * dst_negative_scale_sum_unique_second) + (fs_a_dst_sum_unique_secondnegative_body_steps))) /\ ((((exists fs_h_dst_sum_unique_secondnegative_body_steps_partial. fs_h_dst_sum_unique_secondnegative_body_steps_partial + S (fs_r_dst_sum_unique_secondnegative_body_steps) = S ((S (fs_i_dst_sum_unique_secondnegative_body_steps)) * fs_v_dst_sum_unique_secondnegative)) /\ exists fs_q_dst_sum_unique_secondnegative_body_steps_partial. fs_u_dst_sum_unique_secondnegative = fs_q_dst_sum_unique_secondnegative_body_steps_partial * S ((S (fs_i_dst_sum_unique_secondnegative_body_steps)) * fs_v_dst_sum_unique_secondnegative) + (fs_r_dst_sum_unique_secondnegative_body_steps))) /\ ((((exists fs_h_dst_sum_unique_secondnegative_body_steps_successor. fs_h_dst_sum_unique_secondnegative_body_steps_successor + S (fs_s_dst_sum_unique_secondnegative_body_steps) = S ((S (S fs_i_dst_sum_unique_secondnegative_body_steps)) * fs_v_dst_sum_unique_secondnegative)) /\ exists fs_q_dst_sum_unique_secondnegative_body_steps_successor. fs_u_dst_sum_unique_secondnegative = fs_q_dst_sum_unique_secondnegative_body_steps_successor * S ((S (S fs_i_dst_sum_unique_secondnegative_body_steps)) * fs_v_dst_sum_unique_secondnegative) + (fs_s_dst_sum_unique_secondnegative_body_steps))) /\ fs_s_dst_sum_unique_secondnegative_body_steps = fs_r_dst_sum_unique_secondnegative_body_steps + fs_a_dst_sum_unique_secondnegative_body_steps)))))) /\ (exists ge_balance_positive_sum_unique_secondresult ge_balance_negative_sum_unique_secondresult. (((((b) = 2 * (ge_balance_positive_sum_unique_secondresult) /\ (ge_balance_negative_sum_unique_secondresult) = 0) \/ exists ge_signed_half_sum_unique_secondresultdecode. (((b) = 2 * ge_signed_half_sum_unique_secondresultdecode + 1 /\ (ge_balance_positive_sum_unique_secondresult) = 0) /\ (ge_balance_negative_sum_unique_secondresult) = S ge_signed_half_sum_unique_secondresultdecode))) /\ ((dst_positive_sum_sum_unique_second) + ge_balance_negative_sum_unique_secondresult = (dst_negative_sum_sum_unique_second) + ge_balance_positive_sum_unique_secondresult))))))))) -> a = bConstructive proof overview
Generated structural guide
The signed sum has a literally unique canonical result code, not a supposedly unique non-normalized signed pair.
The unchanged tactic script uses 3 declared prerequisites and contains 57 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
SS000A divisor_signed_sum_to_components beta_sum_functional Stable 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. 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–6
02Separate the logical casesL7–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
cases ha - L8
cases ha_witness - L9
cases ha_witness_witness - L10
cases ha_witness_witness_witness - L11
cases ha_witness_witness_witness_witness - L12
cases ha_witness_witness_witness_witness_witness - L13
cases ha_witness_witness_witness_witness_witness_witness - L14
cases ha_witness_witness_witness_witness_witness_witness_right - L15
cases ha_witness_witness_witness_witness_witness_witness_right_right
03Establish hotherL16–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed sum to components.
- L16
have hother : ∃ p. ∃ n. Sum(x,x1,l,p) ∧ (Sum(x2,x3,l,n) ∧ SignedBalance(b,p,n))Definitions: SignedBalanceSum - L17
specialize divisor_signed_sum_to_components (F) - L18
specialize divisor_signed_sum_to_components (x) - L19
specialize divisor_signed_sum_to_components (x1) - L20
specialize divisor_signed_sum_to_components (x2) - L21
specialize divisor_signed_sum_to_components (x3) - L22
specialize divisor_signed_sum_to_components (l) - L23
specialize divisor_signed_sum_to_components (b) - L24
apply divisor_signed_sum_to_components - L25
exact ha_witness_witness_witness_witness_witness_witness_left
04Use earlier factsL26–26
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
exact hb
05Separate the logical casesL27–30
06Establish hpL31–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum functional.
- L31
have hp : x6 = x4 - L32
specialize beta_sum_functional (x) - L33
specialize beta_sum_functional (x1) - L34
specialize beta_sum_functional (l) - L35
specialize beta_sum_functional (x6) - L36
specialize beta_sum_functional (x4) - L37
apply beta_sum_functional - L38
exact hother_witness_witness_left - L39
exact ha_witness_witness_witness_witness_witness_witness_right_left
07Establish hnL40–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta sum functional.
- L40
have hn : x7 = x5 - L41
specialize beta_sum_functional (x2) - L42
specialize beta_sum_functional (x3) - L43
specialize beta_sum_functional (l) - L44
specialize beta_sum_functional (x7) - L45
specialize beta_sum_functional (x5) - L46
apply beta_sum_functional - L47
exact hother_witness_witness_right_left - L48
exact ha_witness_witness_witness_witness_witness_witness_right_right_left - L49
rewrite hp at hother_witness_witness_right_right
08Calculate and transport equalitiesL50–50
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L50
rewrite hn at hother_witness_witness_right_right
09Use earlier factsL51–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
specialize signed_balance_functional (x4) - L52
specialize signed_balance_functional (x5) - L53
specialize signed_balance_functional (a) - L54
specialize signed_balance_functional (b) - L55
apply signed_balance_functional - L56
exact ha_witness_witness_witness_witness_witness_witness_right_right_right - L57
exact hother_witness_witness_right_right
Original exact command ledger · 57 lines
- 0001
intro F - 0002
intro l - 0003
intro a - 0004
intro b - 0005
intro ha - 0006
intro hb - 0007
cases ha - 0008
cases ha_witness - 0009
cases ha_witness_witness - 0010
cases ha_witness_witness_witness - 0011
cases ha_witness_witness_witness_witness - 0012
cases ha_witness_witness_witness_witness_witness - 0013
cases ha_witness_witness_witness_witness_witness_witness - 0014
cases ha_witness_witness_witness_witness_witness_witness_right - 0015
cases ha_witness_witness_witness_witness_witness_witness_right_right - 0016
have hother : exists p n. ((exists fs_u_dst_sum_unique_positive fs_v_dst_sum_unique_positive. ((((exists fs_h_dst_sum_unique_positive_body_start. fs_h_dst_sum_unique_positive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_unique_positive)) /\ exists fs_q_dst_sum_unique_positive_body_start. fs_u_dst_sum_unique_positive = fs_q_dst_sum_unique_positive_body_start * S ((S (0)) * fs_v_dst_sum_unique_positive) + (0))) /\ ((((exists fs_h_dst_sum_unique_positive_body_terminal. fs_h_dst_sum_unique_positive_body_terminal + S (p) = S ((S (l)) * fs_v_dst_sum_unique_positive)) /\ exists fs_q_dst_sum_unique_positive_body_terminal. fs_u_dst_sum_unique_positive = fs_q_dst_sum_unique_positive_body_terminal * S ((S (l)) * fs_v_dst_sum_unique_positive) + (p))) /\ forall fs_i_dst_sum_unique_positive_body_steps. (exists fs_lt_dst_sum_unique_positive_body_steps_bound. fs_lt_dst_sum_unique_positive_body_steps_bound + S fs_i_dst_sum_unique_positive_body_steps = l) -> exists fs_a_dst_sum_unique_positive_body_steps fs_r_dst_sum_unique_positive_body_steps fs_s_dst_sum_unique_positive_body_steps. ((((exists fs_h_dst_sum_unique_positive_body_steps_summand. fs_h_dst_sum_unique_positive_body_steps_summand + S (fs_a_dst_sum_unique_positive_body_steps) = S ((S (fs_i_dst_sum_unique_positive_body_steps)) * x1)) /\ exists fs_q_dst_sum_unique_positive_body_steps_summand. x = fs_q_dst_sum_unique_positive_body_steps_summand * S ((S (fs_i_dst_sum_unique_positive_body_steps)) * x1) + (fs_a_dst_sum_unique_positive_body_steps))) /\ ((((exists fs_h_dst_sum_unique_positive_body_steps_partial. fs_h_dst_sum_unique_positive_body_steps_partial + S (fs_r_dst_sum_unique_positive_body_steps) = S ((S (fs_i_dst_sum_unique_positive_body_steps)) * fs_v_dst_sum_unique_positive)) /\ exists fs_q_dst_sum_unique_positive_body_steps_partial. fs_u_dst_sum_unique_positive = fs_q_dst_sum_unique_positive_body_steps_partial * S ((S (fs_i_dst_sum_unique_positive_body_steps)) * fs_v_dst_sum_unique_positive) + (fs_r_dst_sum_unique_positive_body_steps))) /\ ((((exists fs_h_dst_sum_unique_positive_body_steps_successor. fs_h_dst_sum_unique_positive_body_steps_successor + S (fs_s_dst_sum_unique_positive_body_steps) = S ((S (S fs_i_dst_sum_unique_positive_body_steps)) * fs_v_dst_sum_unique_positive)) /\ exists fs_q_dst_sum_unique_positive_body_steps_successor. fs_u_dst_sum_unique_positive = fs_q_dst_sum_unique_positive_body_steps_successor * S ((S (S fs_i_dst_sum_unique_positive_body_steps)) * fs_v_dst_sum_unique_positive) + (fs_s_dst_sum_unique_positive_body_steps))) /\ fs_s_dst_sum_unique_positive_body_steps = fs_r_dst_sum_unique_positive_body_steps + fs_a_dst_sum_unique_positive_body_steps)))))) /\ (((exists fs_u_dst_sum_unique_negative fs_v_dst_sum_unique_negative. ((((exists fs_h_dst_sum_unique_negative_body_start. fs_h_dst_sum_unique_negative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_unique_negative)) /\ exists fs_q_dst_sum_unique_negative_body_start. fs_u_dst_sum_unique_negative = fs_q_dst_sum_unique_negative_body_start * S ((S (0)) * fs_v_dst_sum_unique_negative) + (0))) /\ ((((exists fs_h_dst_sum_unique_negative_body_terminal. fs_h_dst_sum_unique_negative_body_terminal + S (n) = S ((S (l)) * fs_v_dst_sum_unique_negative)) /\ exists fs_q_dst_sum_unique_negative_body_terminal. fs_u_dst_sum_unique_negative = fs_q_dst_sum_unique_negative_body_terminal * S ((S (l)) * fs_v_dst_sum_unique_negative) + (n))) /\ forall fs_i_dst_sum_unique_negative_body_steps. (exists fs_lt_dst_sum_unique_negative_body_steps_bound. fs_lt_dst_sum_unique_negative_body_steps_bound + S fs_i_dst_sum_unique_negative_body_steps = l) -> exists fs_a_dst_sum_unique_negative_body_steps fs_r_dst_sum_unique_negative_body_steps fs_s_dst_sum_unique_negative_body_steps. ((((exists fs_h_dst_sum_unique_negative_body_steps_summand. fs_h_dst_sum_unique_negative_body_steps_summand + S (fs_a_dst_sum_unique_negative_body_steps) = S ((S (fs_i_dst_sum_unique_negative_body_steps)) * x3)) /\ exists fs_q_dst_sum_unique_negative_body_steps_summand. x2 = fs_q_dst_sum_unique_negative_body_steps_summand * S ((S (fs_i_dst_sum_unique_negative_body_steps)) * x3) + (fs_a_dst_sum_unique_negative_body_steps))) /\ ((((exists fs_h_dst_sum_unique_negative_body_steps_partial. fs_h_dst_sum_unique_negative_body_steps_partial + S (fs_r_dst_sum_unique_negative_body_steps) = S ((S (fs_i_dst_sum_unique_negative_body_steps)) * fs_v_dst_sum_unique_negative)) /\ exists fs_q_dst_sum_unique_negative_body_steps_partial. fs_u_dst_sum_unique_negative = fs_q_dst_sum_unique_negative_body_steps_partial * S ((S (fs_i_dst_sum_unique_negative_body_steps)) * fs_v_dst_sum_unique_negative) + (fs_r_dst_sum_unique_negative_body_steps))) /\ ((((exists fs_h_dst_sum_unique_negative_body_steps_successor. fs_h_dst_sum_unique_negative_body_steps_successor + S (fs_s_dst_sum_unique_negative_body_steps) = S ((S (S fs_i_dst_sum_unique_negative_body_steps)) * fs_v_dst_sum_unique_negative)) /\ exists fs_q_dst_sum_unique_negative_body_steps_successor. fs_u_dst_sum_unique_negative = fs_q_dst_sum_unique_negative_body_steps_successor * S ((S (S fs_i_dst_sum_unique_negative_body_steps)) * fs_v_dst_sum_unique_negative) + (fs_s_dst_sum_unique_negative_body_steps))) /\ fs_s_dst_sum_unique_negative_body_steps = fs_r_dst_sum_unique_negative_body_steps + fs_a_dst_sum_unique_negative_body_steps)))))) /\ (exists ge_balance_positive_sum_unique_balance ge_balance_negative_sum_unique_balance. (((((b) = 2 * (ge_balance_positive_sum_unique_balance) /\ (ge_balance_negative_sum_unique_balance) = 0) \/ exists ge_signed_half_sum_unique_balancedecode. (((b) = 2 * ge_signed_half_sum_unique_balancedecode + 1 /\ (ge_balance_positive_sum_unique_balance) = 0) /\ (ge_balance_negative_sum_unique_balance) = S ge_signed_half_sum_unique_balancedecode))) /\ ((p) + ge_balance_negative_sum_unique_balance = (n) + ge_balance_positive_sum_unique_balance)))))) - 0017
specialize divisor_signed_sum_to_components (F) - 0018
specialize divisor_signed_sum_to_components (x) - 0019
specialize divisor_signed_sum_to_components (x1) - 0020
specialize divisor_signed_sum_to_components (x2) - 0021
specialize divisor_signed_sum_to_components (x3) - 0022
specialize divisor_signed_sum_to_components (l) - 0023
specialize divisor_signed_sum_to_components (b) - 0024
apply divisor_signed_sum_to_components - 0025
exact ha_witness_witness_witness_witness_witness_witness_left - 0026
exact hb - 0027
cases hother - 0028
cases hother_witness - 0029
cases hother_witness_witness - 0030
cases hother_witness_witness_right - 0031
have hp : x6 = x4 - 0032
specialize beta_sum_functional (x) - 0033
specialize beta_sum_functional (x1) - 0034
specialize beta_sum_functional (l) - 0035
specialize beta_sum_functional (x6) - 0036
specialize beta_sum_functional (x4) - 0037
apply beta_sum_functional - 0038
exact hother_witness_witness_left - 0039
exact ha_witness_witness_witness_witness_witness_witness_right_left - 0040
have hn : x7 = x5 - 0041
specialize beta_sum_functional (x2) - 0042
specialize beta_sum_functional (x3) - 0043
specialize beta_sum_functional (l) - 0044
specialize beta_sum_functional (x7) - 0045
specialize beta_sum_functional (x5) - 0046
apply beta_sum_functional - 0047
exact hother_witness_witness_right_left - 0048
exact ha_witness_witness_witness_witness_witness_witness_right_right_left - 0049
rewrite hp at hother_witness_witness_right_right - 0050
rewrite hn at hother_witness_witness_right_right - 0051
specialize signed_balance_functional (x4) - 0052
specialize signed_balance_functional (x5) - 0053
specialize signed_balance_functional (a) - 0054
specialize signed_balance_functional (b) - 0055
apply signed_balance_functional - 0056
exact ha_witness_witness_witness_witness_witness_witness_right_right_right - 0057
exact hother_witness_witness_right_right