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 c. (exists dst_positive_code_step_sum dst_positive_scale_step_sum dst_negative_code_step_sum dst_negative_scale_step_sum dst_positive_sum_step_sum dst_negative_sum_step_sum. (((F) = (((((dst_positive_code_step_sum) + (dst_positive_scale_step_sum)) * S ((dst_positive_code_step_sum) + (dst_positive_scale_step_sum)) + ((dst_positive_scale_step_sum) + (dst_positive_scale_step_sum))) + (((dst_negative_code_step_sum) + (dst_negative_scale_step_sum)) * S ((dst_negative_code_step_sum) + (dst_negative_scale_step_sum)) + ((dst_negative_scale_step_sum) + (dst_negative_scale_step_sum)))) * S ((((dst_positive_code_step_sum) + (dst_positive_scale_step_sum)) * S ((dst_positive_code_step_sum) + (dst_positive_scale_step_sum)) + ((dst_positive_scale_step_sum) + (dst_positive_scale_step_sum))) + (((dst_negative_code_step_sum) + (dst_negative_scale_step_sum)) * S ((dst_negative_code_step_sum) + (dst_negative_scale_step_sum)) + ((dst_negative_scale_step_sum) + (dst_negative_scale_step_sum)))) + ((((dst_negative_code_step_sum) + (dst_negative_scale_step_sum)) * S ((dst_negative_code_step_sum) + (dst_negative_scale_step_sum)) + ((dst_negative_scale_step_sum) + (dst_negative_scale_step_sum))) + (((dst_negative_code_step_sum) + (dst_negative_scale_step_sum)) * S ((dst_negative_code_step_sum) + (dst_negative_scale_step_sum)) + ((dst_negative_scale_step_sum) + (dst_negative_scale_step_sum)))))) /\ (((exists fs_u_dst_step_sumpositive fs_v_dst_step_sumpositive. ((((exists fs_h_dst_step_sumpositive_body_start. fs_h_dst_step_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_step_sumpositive)) /\ exists fs_q_dst_step_sumpositive_body_start. fs_u_dst_step_sumpositive = fs_q_dst_step_sumpositive_body_start * S ((S (0)) * fs_v_dst_step_sumpositive) + (0))) /\ ((((exists fs_h_dst_step_sumpositive_body_terminal. fs_h_dst_step_sumpositive_body_terminal + S (dst_positive_sum_step_sum) = S ((S (l)) * fs_v_dst_step_sumpositive)) /\ exists fs_q_dst_step_sumpositive_body_terminal. fs_u_dst_step_sumpositive = fs_q_dst_step_sumpositive_body_terminal * S ((S (l)) * fs_v_dst_step_sumpositive) + (dst_positive_sum_step_sum))) /\ forall fs_i_dst_step_sumpositive_body_steps. (exists fs_lt_dst_step_sumpositive_body_steps_bound. fs_lt_dst_step_sumpositive_body_steps_bound + S fs_i_dst_step_sumpositive_body_steps = l) -> exists fs_a_dst_step_sumpositive_body_steps fs_r_dst_step_sumpositive_body_steps fs_s_dst_step_sumpositive_body_steps. ((((exists fs_h_dst_step_sumpositive_body_steps_summand. fs_h_dst_step_sumpositive_body_steps_summand + S (fs_a_dst_step_sumpositive_body_steps) = S ((S (fs_i_dst_step_sumpositive_body_steps)) * dst_positive_scale_step_sum)) /\ exists fs_q_dst_step_sumpositive_body_steps_summand. dst_positive_code_step_sum = fs_q_dst_step_sumpositive_body_steps_summand * S ((S (fs_i_dst_step_sumpositive_body_steps)) * dst_positive_scale_step_sum) + (fs_a_dst_step_sumpositive_body_steps))) /\ ((((exists fs_h_dst_step_sumpositive_body_steps_partial. fs_h_dst_step_sumpositive_body_steps_partial + S (fs_r_dst_step_sumpositive_body_steps) = S ((S (fs_i_dst_step_sumpositive_body_steps)) * fs_v_dst_step_sumpositive)) /\ exists fs_q_dst_step_sumpositive_body_steps_partial. fs_u_dst_step_sumpositive = fs_q_dst_step_sumpositive_body_steps_partial * S ((S (fs_i_dst_step_sumpositive_body_steps)) * fs_v_dst_step_sumpositive) + (fs_r_dst_step_sumpositive_body_steps))) /\ ((((exists fs_h_dst_step_sumpositive_body_steps_successor. fs_h_dst_step_sumpositive_body_steps_successor + S (fs_s_dst_step_sumpositive_body_steps) = S ((S (S fs_i_dst_step_sumpositive_body_steps)) * fs_v_dst_step_sumpositive)) /\ exists fs_q_dst_step_sumpositive_body_steps_successor. fs_u_dst_step_sumpositive = fs_q_dst_step_sumpositive_body_steps_successor * S ((S (S fs_i_dst_step_sumpositive_body_steps)) * fs_v_dst_step_sumpositive) + (fs_s_dst_step_sumpositive_body_steps))) /\ fs_s_dst_step_sumpositive_body_steps = fs_r_dst_step_sumpositive_body_steps + fs_a_dst_step_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_step_sumnegative fs_v_dst_step_sumnegative. ((((exists fs_h_dst_step_sumnegative_body_start. fs_h_dst_step_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_step_sumnegative)) /\ exists fs_q_dst_step_sumnegative_body_start. fs_u_dst_step_sumnegative = fs_q_dst_step_sumnegative_body_start * S ((S (0)) * fs_v_dst_step_sumnegative) + (0))) /\ ((((exists fs_h_dst_step_sumnegative_body_terminal. fs_h_dst_step_sumnegative_body_terminal + S (dst_negative_sum_step_sum) = S ((S (l)) * fs_v_dst_step_sumnegative)) /\ exists fs_q_dst_step_sumnegative_body_terminal. fs_u_dst_step_sumnegative = fs_q_dst_step_sumnegative_body_terminal * S ((S (l)) * fs_v_dst_step_sumnegative) + (dst_negative_sum_step_sum))) /\ forall fs_i_dst_step_sumnegative_body_steps. (exists fs_lt_dst_step_sumnegative_body_steps_bound. fs_lt_dst_step_sumnegative_body_steps_bound + S fs_i_dst_step_sumnegative_body_steps = l) -> exists fs_a_dst_step_sumnegative_body_steps fs_r_dst_step_sumnegative_body_steps fs_s_dst_step_sumnegative_body_steps. ((((exists fs_h_dst_step_sumnegative_body_steps_summand. fs_h_dst_step_sumnegative_body_steps_summand + S (fs_a_dst_step_sumnegative_body_steps) = S ((S (fs_i_dst_step_sumnegative_body_steps)) * dst_negative_scale_step_sum)) /\ exists fs_q_dst_step_sumnegative_body_steps_summand. dst_negative_code_step_sum = fs_q_dst_step_sumnegative_body_steps_summand * S ((S (fs_i_dst_step_sumnegative_body_steps)) * dst_negative_scale_step_sum) + (fs_a_dst_step_sumnegative_body_steps))) /\ ((((exists fs_h_dst_step_sumnegative_body_steps_partial. fs_h_dst_step_sumnegative_body_steps_partial + S (fs_r_dst_step_sumnegative_body_steps) = S ((S (fs_i_dst_step_sumnegative_body_steps)) * fs_v_dst_step_sumnegative)) /\ exists fs_q_dst_step_sumnegative_body_steps_partial. fs_u_dst_step_sumnegative = fs_q_dst_step_sumnegative_body_steps_partial * S ((S (fs_i_dst_step_sumnegative_body_steps)) * fs_v_dst_step_sumnegative) + (fs_r_dst_step_sumnegative_body_steps))) /\ ((((exists fs_h_dst_step_sumnegative_body_steps_successor. fs_h_dst_step_sumnegative_body_steps_successor + S (fs_s_dst_step_sumnegative_body_steps) = S ((S (S fs_i_dst_step_sumnegative_body_steps)) * fs_v_dst_step_sumnegative)) /\ exists fs_q_dst_step_sumnegative_body_steps_successor. fs_u_dst_step_sumnegative = fs_q_dst_step_sumnegative_body_steps_successor * S ((S (S fs_i_dst_step_sumnegative_body_steps)) * fs_v_dst_step_sumnegative) + (fs_s_dst_step_sumnegative_body_steps))) /\ fs_s_dst_step_sumnegative_body_steps = fs_r_dst_step_sumnegative_body_steps + fs_a_dst_step_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_step_sumresult ge_balance_negative_step_sumresult. (((((a) = 2 * (ge_balance_positive_step_sumresult) /\ (ge_balance_negative_step_sumresult) = 0) \/ exists ge_signed_half_step_sumresultdecode. (((a) = 2 * ge_signed_half_step_sumresultdecode + 1 /\ (ge_balance_positive_step_sumresult) = 0) /\ (ge_balance_negative_step_sumresult) = S ge_signed_half_step_sumresultdecode))) /\ ((dst_positive_sum_step_sum) + ge_balance_negative_step_sumresult = (dst_negative_sum_step_sum) + ge_balance_positive_step_sumresult))))))))) -> (exists dst_positive_code_step_entry dst_positive_scale_step_entry dst_negative_code_step_entry dst_negative_scale_step_entry dst_positive_step_entry dst_negative_step_entry. (((F) = (((((dst_positive_code_step_entry) + (dst_positive_scale_step_entry)) * S ((dst_positive_code_step_entry) + (dst_positive_scale_step_entry)) + ((dst_positive_scale_step_entry) + (dst_positive_scale_step_entry))) + (((dst_negative_code_step_entry) + (dst_negative_scale_step_entry)) * S ((dst_negative_code_step_entry) + (dst_negative_scale_step_entry)) + ((dst_negative_scale_step_entry) + (dst_negative_scale_step_entry)))) * S ((((dst_positive_code_step_entry) + (dst_positive_scale_step_entry)) * S ((dst_positive_code_step_entry) + (dst_positive_scale_step_entry)) + ((dst_positive_scale_step_entry) + (dst_positive_scale_step_entry))) + (((dst_negative_code_step_entry) + (dst_negative_scale_step_entry)) * S ((dst_negative_code_step_entry) + (dst_negative_scale_step_entry)) + ((dst_negative_scale_step_entry) + (dst_negative_scale_step_entry)))) + ((((dst_negative_code_step_entry) + (dst_negative_scale_step_entry)) * S ((dst_negative_code_step_entry) + (dst_negative_scale_step_entry)) + ((dst_negative_scale_step_entry) + (dst_negative_scale_step_entry))) + (((dst_negative_code_step_entry) + (dst_negative_scale_step_entry)) * S ((dst_negative_code_step_entry) + (dst_negative_scale_step_entry)) + ((dst_negative_scale_step_entry) + (dst_negative_scale_step_entry)))))) /\ (((((exists ff_h_pvs_step_entrypositive. ff_h_pvs_step_entrypositive + S (dst_positive_step_entry) = S ((S (l)) * dst_positive_scale_step_entry)) /\ exists ff_q_pvs_step_entrypositive. dst_positive_code_step_entry = ff_q_pvs_step_entrypositive * S ((S (l)) * dst_positive_scale_step_entry) + (dst_positive_step_entry))) /\ (((((exists ff_h_pvs_step_entrynegative. ff_h_pvs_step_entrynegative + S (dst_negative_step_entry) = S ((S (l)) * dst_negative_scale_step_entry)) /\ exists ff_q_pvs_step_entrynegative. dst_negative_code_step_entry = ff_q_pvs_step_entrynegative * S ((S (l)) * dst_negative_scale_step_entry) + (dst_negative_step_entry))) /\ (exists ge_balance_positive_step_entryvalue ge_balance_negative_step_entryvalue. (((((b) = 2 * (ge_balance_positive_step_entryvalue) /\ (ge_balance_negative_step_entryvalue) = 0) \/ exists ge_signed_half_step_entryvaluedecode. (((b) = 2 * ge_signed_half_step_entryvaluedecode + 1 /\ (ge_balance_positive_step_entryvalue) = 0) /\ (ge_balance_negative_step_entryvalue) = S ge_signed_half_step_entryvaluedecode))) /\ ((dst_positive_step_entry) + ge_balance_negative_step_entryvalue = (dst_negative_step_entry) + ge_balance_positive_step_entryvalue))))))))) -> (exists dsa_ap_step_add dsa_an_step_add dsa_bp_step_add dsa_bn_step_add dsa_cp_step_add dsa_cn_step_add. (((((a) = 2 * (dsa_ap_step_add) /\ (dsa_an_step_add) = 0) \/ exists ge_signed_half_step_addleft. (((a) = 2 * ge_signed_half_step_addleft + 1 /\ (dsa_ap_step_add) = 0) /\ (dsa_an_step_add) = S ge_signed_half_step_addleft))) /\ ((((((b) = 2 * (dsa_bp_step_add) /\ (dsa_bn_step_add) = 0) \/ exists ge_signed_half_step_addright. (((b) = 2 * ge_signed_half_step_addright + 1 /\ (dsa_bp_step_add) = 0) /\ (dsa_bn_step_add) = S ge_signed_half_step_addright))) /\ ((((((c) = 2 * (dsa_cp_step_add) /\ (dsa_cn_step_add) = 0) \/ exists ge_signed_half_step_addoutput. (((c) = 2 * ge_signed_half_step_addoutput + 1 /\ (dsa_cp_step_add) = 0) /\ (dsa_cn_step_add) = S ge_signed_half_step_addoutput))) /\ ((dsa_ap_step_add + dsa_bp_step_add) + dsa_cn_step_add = (dsa_an_step_add + dsa_bn_step_add) + dsa_cp_step_add))))))) -> (exists dst_positive_code_step_result dst_positive_scale_step_result dst_negative_code_step_result dst_negative_scale_step_result dst_positive_sum_step_result dst_negative_sum_step_result. (((F) = (((((dst_positive_code_step_result) + (dst_positive_scale_step_result)) * S ((dst_positive_code_step_result) + (dst_positive_scale_step_result)) + ((dst_positive_scale_step_result) + (dst_positive_scale_step_result))) + (((dst_negative_code_step_result) + (dst_negative_scale_step_result)) * S ((dst_negative_code_step_result) + (dst_negative_scale_step_result)) + ((dst_negative_scale_step_result) + (dst_negative_scale_step_result)))) * S ((((dst_positive_code_step_result) + (dst_positive_scale_step_result)) * S ((dst_positive_code_step_result) + (dst_positive_scale_step_result)) + ((dst_positive_scale_step_result) + (dst_positive_scale_step_result))) + (((dst_negative_code_step_result) + (dst_negative_scale_step_result)) * S ((dst_negative_code_step_result) + (dst_negative_scale_step_result)) + ((dst_negative_scale_step_result) + (dst_negative_scale_step_result)))) + ((((dst_negative_code_step_result) + (dst_negative_scale_step_result)) * S ((dst_negative_code_step_result) + (dst_negative_scale_step_result)) + ((dst_negative_scale_step_result) + (dst_negative_scale_step_result))) + (((dst_negative_code_step_result) + (dst_negative_scale_step_result)) * S ((dst_negative_code_step_result) + (dst_negative_scale_step_result)) + ((dst_negative_scale_step_result) + (dst_negative_scale_step_result)))))) /\ (((exists fs_u_dst_step_resultpositive fs_v_dst_step_resultpositive. ((((exists fs_h_dst_step_resultpositive_body_start. fs_h_dst_step_resultpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_step_resultpositive)) /\ exists fs_q_dst_step_resultpositive_body_start. fs_u_dst_step_resultpositive = fs_q_dst_step_resultpositive_body_start * S ((S (0)) * fs_v_dst_step_resultpositive) + (0))) /\ ((((exists fs_h_dst_step_resultpositive_body_terminal. fs_h_dst_step_resultpositive_body_terminal + S (dst_positive_sum_step_result) = S ((S (S l)) * fs_v_dst_step_resultpositive)) /\ exists fs_q_dst_step_resultpositive_body_terminal. fs_u_dst_step_resultpositive = fs_q_dst_step_resultpositive_body_terminal * S ((S (S l)) * fs_v_dst_step_resultpositive) + (dst_positive_sum_step_result))) /\ forall fs_i_dst_step_resultpositive_body_steps. (exists fs_lt_dst_step_resultpositive_body_steps_bound. fs_lt_dst_step_resultpositive_body_steps_bound + S fs_i_dst_step_resultpositive_body_steps = S l) -> exists fs_a_dst_step_resultpositive_body_steps fs_r_dst_step_resultpositive_body_steps fs_s_dst_step_resultpositive_body_steps. ((((exists fs_h_dst_step_resultpositive_body_steps_summand. fs_h_dst_step_resultpositive_body_steps_summand + S (fs_a_dst_step_resultpositive_body_steps) = S ((S (fs_i_dst_step_resultpositive_body_steps)) * dst_positive_scale_step_result)) /\ exists fs_q_dst_step_resultpositive_body_steps_summand. dst_positive_code_step_result = fs_q_dst_step_resultpositive_body_steps_summand * S ((S (fs_i_dst_step_resultpositive_body_steps)) * dst_positive_scale_step_result) + (fs_a_dst_step_resultpositive_body_steps))) /\ ((((exists fs_h_dst_step_resultpositive_body_steps_partial. fs_h_dst_step_resultpositive_body_steps_partial + S (fs_r_dst_step_resultpositive_body_steps) = S ((S (fs_i_dst_step_resultpositive_body_steps)) * fs_v_dst_step_resultpositive)) /\ exists fs_q_dst_step_resultpositive_body_steps_partial. fs_u_dst_step_resultpositive = fs_q_dst_step_resultpositive_body_steps_partial * S ((S (fs_i_dst_step_resultpositive_body_steps)) * fs_v_dst_step_resultpositive) + (fs_r_dst_step_resultpositive_body_steps))) /\ ((((exists fs_h_dst_step_resultpositive_body_steps_successor. fs_h_dst_step_resultpositive_body_steps_successor + S (fs_s_dst_step_resultpositive_body_steps) = S ((S (S fs_i_dst_step_resultpositive_body_steps)) * fs_v_dst_step_resultpositive)) /\ exists fs_q_dst_step_resultpositive_body_steps_successor. fs_u_dst_step_resultpositive = fs_q_dst_step_resultpositive_body_steps_successor * S ((S (S fs_i_dst_step_resultpositive_body_steps)) * fs_v_dst_step_resultpositive) + (fs_s_dst_step_resultpositive_body_steps))) /\ fs_s_dst_step_resultpositive_body_steps = fs_r_dst_step_resultpositive_body_steps + fs_a_dst_step_resultpositive_body_steps)))))) /\ (((exists fs_u_dst_step_resultnegative fs_v_dst_step_resultnegative. ((((exists fs_h_dst_step_resultnegative_body_start. fs_h_dst_step_resultnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_step_resultnegative)) /\ exists fs_q_dst_step_resultnegative_body_start. fs_u_dst_step_resultnegative = fs_q_dst_step_resultnegative_body_start * S ((S (0)) * fs_v_dst_step_resultnegative) + (0))) /\ ((((exists fs_h_dst_step_resultnegative_body_terminal. fs_h_dst_step_resultnegative_body_terminal + S (dst_negative_sum_step_result) = S ((S (S l)) * fs_v_dst_step_resultnegative)) /\ exists fs_q_dst_step_resultnegative_body_terminal. fs_u_dst_step_resultnegative = fs_q_dst_step_resultnegative_body_terminal * S ((S (S l)) * fs_v_dst_step_resultnegative) + (dst_negative_sum_step_result))) /\ forall fs_i_dst_step_resultnegative_body_steps. (exists fs_lt_dst_step_resultnegative_body_steps_bound. fs_lt_dst_step_resultnegative_body_steps_bound + S fs_i_dst_step_resultnegative_body_steps = S l) -> exists fs_a_dst_step_resultnegative_body_steps fs_r_dst_step_resultnegative_body_steps fs_s_dst_step_resultnegative_body_steps. ((((exists fs_h_dst_step_resultnegative_body_steps_summand. fs_h_dst_step_resultnegative_body_steps_summand + S (fs_a_dst_step_resultnegative_body_steps) = S ((S (fs_i_dst_step_resultnegative_body_steps)) * dst_negative_scale_step_result)) /\ exists fs_q_dst_step_resultnegative_body_steps_summand. dst_negative_code_step_result = fs_q_dst_step_resultnegative_body_steps_summand * S ((S (fs_i_dst_step_resultnegative_body_steps)) * dst_negative_scale_step_result) + (fs_a_dst_step_resultnegative_body_steps))) /\ ((((exists fs_h_dst_step_resultnegative_body_steps_partial. fs_h_dst_step_resultnegative_body_steps_partial + S (fs_r_dst_step_resultnegative_body_steps) = S ((S (fs_i_dst_step_resultnegative_body_steps)) * fs_v_dst_step_resultnegative)) /\ exists fs_q_dst_step_resultnegative_body_steps_partial. fs_u_dst_step_resultnegative = fs_q_dst_step_resultnegative_body_steps_partial * S ((S (fs_i_dst_step_resultnegative_body_steps)) * fs_v_dst_step_resultnegative) + (fs_r_dst_step_resultnegative_body_steps))) /\ ((((exists fs_h_dst_step_resultnegative_body_steps_successor. fs_h_dst_step_resultnegative_body_steps_successor + S (fs_s_dst_step_resultnegative_body_steps) = S ((S (S fs_i_dst_step_resultnegative_body_steps)) * fs_v_dst_step_resultnegative)) /\ exists fs_q_dst_step_resultnegative_body_steps_successor. fs_u_dst_step_resultnegative = fs_q_dst_step_resultnegative_body_steps_successor * S ((S (S fs_i_dst_step_resultnegative_body_steps)) * fs_v_dst_step_resultnegative) + (fs_s_dst_step_resultnegative_body_steps))) /\ fs_s_dst_step_resultnegative_body_steps = fs_r_dst_step_resultnegative_body_steps + fs_a_dst_step_resultnegative_body_steps)))))) /\ (exists ge_balance_positive_step_resultresult ge_balance_negative_step_resultresult. (((((c) = 2 * (ge_balance_positive_step_resultresult) /\ (ge_balance_negative_step_resultresult) = 0) \/ exists ge_signed_half_step_resultresultdecode. (((c) = 2 * ge_signed_half_step_resultresultdecode + 1 /\ (ge_balance_positive_step_resultresult) = 0) /\ (ge_balance_negative_step_resultresult) = S ge_signed_half_step_resultresultdecode))) /\ ((dst_positive_sum_step_result) + ge_balance_negative_step_resultresult = (dst_negative_sum_step_result) + ge_balance_positive_step_resultresult)))))))))Constructive proof overview
Generated structural guide
A genuine signed prefix sum, its actual next entry and canonical signed addition construct the successor sum.
The unchanged tactic script uses 4 declared prerequisites and contains 70 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
SS0002 divisor_signed_table_at_to_components SS0009 divisor_signed_sum_from_components SS0012 divisor_natural_sum_successor_intro gaussian_signed_add_to_balance 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 (3)
01Fix variables and assumptionsL1–8
02Separate the logical casesL9–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
cases hs - L10
cases hs_witness - L11
cases hs_witness_witness - L12
cases hs_witness_witness_witness - L13
cases hs_witness_witness_witness_witness - L14
cases hs_witness_witness_witness_witness_witness - L15
cases hs_witness_witness_witness_witness_witness_witness - L16
cases hs_witness_witness_witness_witness_witness_witness_right - L17
cases hs_witness_witness_witness_witness_witness_witness_right_right
03Establish hentryL18–27
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at to components.
- L18
have hentry : ∃ p. ∃ n. BetaAt(x,x1,l,p) ∧ (BetaAt(x2,x3,l,n) ∧ SignedBalance(b,p,n))Definitions: SignedBalanceBetaAt - L19
specialize divisor_signed_table_at_to_components (F) - L20
specialize divisor_signed_table_at_to_components (x) - L21
specialize divisor_signed_table_at_to_components (x1) - L22
specialize divisor_signed_table_at_to_components (x2) - L23
specialize divisor_signed_table_at_to_components (x3) - L24
specialize divisor_signed_table_at_to_components (l) - L25
specialize divisor_signed_table_at_to_components (b) - L26
apply divisor_signed_table_at_to_components - L27
exact hs_witness_witness_witness_witness_witness_witness_left
04Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact he
05Separate the logical casesL29–32
06Use earlier factsL33–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
specialize divisor_signed_sum_from_components (F) - L34
specialize divisor_signed_sum_from_components (x) - L35
specialize divisor_signed_sum_from_components (x1) - L36
specialize divisor_signed_sum_from_components (x2) - L37
specialize divisor_signed_sum_from_components (x3) - L38
specialize divisor_signed_sum_from_components (S l) - L39
specialize divisor_signed_sum_from_components (x4 + x6) - L40
specialize divisor_signed_sum_from_components (x5 + x7) - L41
specialize divisor_signed_sum_from_components (c) - L42
apply divisor_signed_sum_from_components
07Use earlier factsL43–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hs_witness_witness_witness_witness_witness_witness_left - L44
specialize divisor_natural_sum_successor_intro (x) - L45
specialize divisor_natural_sum_successor_intro (x1) - L46
specialize divisor_natural_sum_successor_intro (l) - L47
specialize divisor_natural_sum_successor_intro (x4) - L48
specialize divisor_natural_sum_successor_intro (x6) - L49
apply divisor_natural_sum_successor_intro - L50
exact hs_witness_witness_witness_witness_witness_witness_right_left - L51
exact hentry_witness_witness_left - L52
specialize divisor_natural_sum_successor_intro (x2)
08Use earlier factsL53–62
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
specialize divisor_natural_sum_successor_intro (x3) - L54
specialize divisor_natural_sum_successor_intro (l) - L55
specialize divisor_natural_sum_successor_intro (x5) - L56
specialize divisor_natural_sum_successor_intro (x7) - L57
apply divisor_natural_sum_successor_intro - L58
exact hs_witness_witness_witness_witness_witness_witness_right_right_left - L59
exact hentry_witness_witness_right_left - L60
specialize gaussian_signed_add_to_balance (a) - L61
specialize gaussian_signed_add_to_balance (b) - L62
specialize gaussian_signed_add_to_balance (c)
09Use earlier factsL63–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
specialize gaussian_signed_add_to_balance (x4) - L64
specialize gaussian_signed_add_to_balance (x5) - L65
specialize gaussian_signed_add_to_balance (x6) - L66
specialize gaussian_signed_add_to_balance (x7) - L67
apply gaussian_signed_add_to_balance - L68
exact hs_witness_witness_witness_witness_witness_witness_right_right_right - L69
exact hentry_witness_witness_right_right - L70
exact hadd
Original exact command ledger · 70 lines
- 0001
intro F - 0002
intro l - 0003
intro a - 0004
intro b - 0005
intro c - 0006
intro hs - 0007
intro he - 0008
intro hadd - 0009
cases hs - 0010
cases hs_witness - 0011
cases hs_witness_witness - 0012
cases hs_witness_witness_witness - 0013
cases hs_witness_witness_witness_witness - 0014
cases hs_witness_witness_witness_witness_witness - 0015
cases hs_witness_witness_witness_witness_witness_witness - 0016
cases hs_witness_witness_witness_witness_witness_witness_right - 0017
cases hs_witness_witness_witness_witness_witness_witness_right_right - 0018
have hentry : exists p n. (((((exists ff_h_pvs_step_componentspositive. ff_h_pvs_step_componentspositive + S (p) = S ((S (l)) * x1)) /\ exists ff_q_pvs_step_componentspositive. x = ff_q_pvs_step_componentspositive * S ((S (l)) * x1) + (p))) /\ (((((exists ff_h_pvs_step_componentsnegative. ff_h_pvs_step_componentsnegative + S (n) = S ((S (l)) * x3)) /\ exists ff_q_pvs_step_componentsnegative. x2 = ff_q_pvs_step_componentsnegative * S ((S (l)) * x3) + (n))) /\ (exists ge_balance_positive_step_componentsvalue ge_balance_negative_step_componentsvalue. (((((b) = 2 * (ge_balance_positive_step_componentsvalue) /\ (ge_balance_negative_step_componentsvalue) = 0) \/ exists ge_signed_half_step_componentsvaluedecode. (((b) = 2 * ge_signed_half_step_componentsvaluedecode + 1 /\ (ge_balance_positive_step_componentsvalue) = 0) /\ (ge_balance_negative_step_componentsvalue) = S ge_signed_half_step_componentsvaluedecode))) /\ ((p) + ge_balance_negative_step_componentsvalue = (n) + ge_balance_positive_step_componentsvalue))))))) - 0019
specialize divisor_signed_table_at_to_components (F) - 0020
specialize divisor_signed_table_at_to_components (x) - 0021
specialize divisor_signed_table_at_to_components (x1) - 0022
specialize divisor_signed_table_at_to_components (x2) - 0023
specialize divisor_signed_table_at_to_components (x3) - 0024
specialize divisor_signed_table_at_to_components (l) - 0025
specialize divisor_signed_table_at_to_components (b) - 0026
apply divisor_signed_table_at_to_components - 0027
exact hs_witness_witness_witness_witness_witness_witness_left - 0028
exact he - 0029
cases hentry - 0030
cases hentry_witness - 0031
cases hentry_witness_witness - 0032
cases hentry_witness_witness_right - 0033
specialize divisor_signed_sum_from_components (F) - 0034
specialize divisor_signed_sum_from_components (x) - 0035
specialize divisor_signed_sum_from_components (x1) - 0036
specialize divisor_signed_sum_from_components (x2) - 0037
specialize divisor_signed_sum_from_components (x3) - 0038
specialize divisor_signed_sum_from_components (S l) - 0039
specialize divisor_signed_sum_from_components (x4 + x6) - 0040
specialize divisor_signed_sum_from_components (x5 + x7) - 0041
specialize divisor_signed_sum_from_components (c) - 0042
apply divisor_signed_sum_from_components - 0043
exact hs_witness_witness_witness_witness_witness_witness_left - 0044
specialize divisor_natural_sum_successor_intro (x) - 0045
specialize divisor_natural_sum_successor_intro (x1) - 0046
specialize divisor_natural_sum_successor_intro (l) - 0047
specialize divisor_natural_sum_successor_intro (x4) - 0048
specialize divisor_natural_sum_successor_intro (x6) - 0049
apply divisor_natural_sum_successor_intro - 0050
exact hs_witness_witness_witness_witness_witness_witness_right_left - 0051
exact hentry_witness_witness_left - 0052
specialize divisor_natural_sum_successor_intro (x2) - 0053
specialize divisor_natural_sum_successor_intro (x3) - 0054
specialize divisor_natural_sum_successor_intro (l) - 0055
specialize divisor_natural_sum_successor_intro (x5) - 0056
specialize divisor_natural_sum_successor_intro (x7) - 0057
apply divisor_natural_sum_successor_intro - 0058
exact hs_witness_witness_witness_witness_witness_witness_right_right_left - 0059
exact hentry_witness_witness_right_left - 0060
specialize gaussian_signed_add_to_balance (a) - 0061
specialize gaussian_signed_add_to_balance (b) - 0062
specialize gaussian_signed_add_to_balance (c) - 0063
specialize gaussian_signed_add_to_balance (x4) - 0064
specialize gaussian_signed_add_to_balance (x5) - 0065
specialize gaussian_signed_add_to_balance (x6) - 0066
specialize gaussian_signed_add_to_balance (x7) - 0067
apply gaussian_signed_add_to_balance - 0068
exact hs_witness_witness_witness_witness_witness_witness_right_right_right - 0069
exact hentry_witness_witness_right_right - 0070
exact hadd