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 p a. (exists dst_positive_code_spike_exists_table dst_positive_scale_spike_exists_table dst_negative_code_spike_exists_table dst_negative_scale_spike_exists_table. (((F) = (((((dst_positive_code_spike_exists_table) + (dst_positive_scale_spike_exists_table)) * S ((dst_positive_code_spike_exists_table) + (dst_positive_scale_spike_exists_table)) + ((dst_positive_scale_spike_exists_table) + (dst_positive_scale_spike_exists_table))) + (((dst_negative_code_spike_exists_table) + (dst_negative_scale_spike_exists_table)) * S ((dst_negative_code_spike_exists_table) + (dst_negative_scale_spike_exists_table)) + ((dst_negative_scale_spike_exists_table) + (dst_negative_scale_spike_exists_table)))) * S ((((dst_positive_code_spike_exists_table) + (dst_positive_scale_spike_exists_table)) * S ((dst_positive_code_spike_exists_table) + (dst_positive_scale_spike_exists_table)) + ((dst_positive_scale_spike_exists_table) + (dst_positive_scale_spike_exists_table))) + (((dst_negative_code_spike_exists_table) + (dst_negative_scale_spike_exists_table)) * S ((dst_negative_code_spike_exists_table) + (dst_negative_scale_spike_exists_table)) + ((dst_negative_scale_spike_exists_table) + (dst_negative_scale_spike_exists_table)))) + ((((dst_negative_code_spike_exists_table) + (dst_negative_scale_spike_exists_table)) * S ((dst_negative_code_spike_exists_table) + (dst_negative_scale_spike_exists_table)) + ((dst_negative_scale_spike_exists_table) + (dst_negative_scale_spike_exists_table))) + (((dst_negative_code_spike_exists_table) + (dst_negative_scale_spike_exists_table)) * S ((dst_negative_code_spike_exists_table) + (dst_negative_scale_spike_exists_table)) + ((dst_negative_scale_spike_exists_table) + (dst_negative_scale_spike_exists_table)))))) /\ (forall dst_index_spike_exists_table. (exists pvs_le_gap_spike_exists_tabledomain. pvs_le_gap_spike_exists_tabledomain + (dst_index_spike_exists_table) = (0)) -> exists dst_positive_spike_exists_table dst_negative_spike_exists_table dst_value_spike_exists_table. ((((exists ff_h_pvs_spike_exists_tableentrypositive. ff_h_pvs_spike_exists_tableentrypositive + S (dst_positive_spike_exists_table) = S ((S (dst_index_spike_exists_table)) * dst_positive_scale_spike_exists_table)) /\ exists ff_q_pvs_spike_exists_tableentrypositive. dst_positive_code_spike_exists_table = ff_q_pvs_spike_exists_tableentrypositive * S ((S (dst_index_spike_exists_table)) * dst_positive_scale_spike_exists_table) + (dst_positive_spike_exists_table))) /\ (((((exists ff_h_pvs_spike_exists_tableentrynegative. ff_h_pvs_spike_exists_tableentrynegative + S (dst_negative_spike_exists_table) = S ((S (dst_index_spike_exists_table)) * dst_negative_scale_spike_exists_table)) /\ exists ff_q_pvs_spike_exists_tableentrynegative. dst_negative_code_spike_exists_table = ff_q_pvs_spike_exists_tableentrynegative * S ((S (dst_index_spike_exists_table)) * dst_negative_scale_spike_exists_table) + (dst_negative_spike_exists_table))) /\ (exists ge_balance_positive_spike_exists_tableentryvalue ge_balance_negative_spike_exists_tableentryvalue. (((((dst_value_spike_exists_table) = 2 * (ge_balance_positive_spike_exists_tableentryvalue) /\ (ge_balance_negative_spike_exists_tableentryvalue) = 0) \/ exists ge_signed_half_spike_exists_tableentryvaluedecode. (((dst_value_spike_exists_table) = 2 * ge_signed_half_spike_exists_tableentryvaluedecode + 1 /\ (ge_balance_positive_spike_exists_tableentryvalue) = 0) /\ (ge_balance_negative_spike_exists_tableentryvalue) = S ge_signed_half_spike_exists_tableentryvaluedecode))) /\ ((dst_positive_spike_exists_table) + ge_balance_negative_spike_exists_tableentryvalue = (dst_negative_spike_exists_table) + ge_balance_positive_spike_exists_tableentryvalue))))))))) -> (exists pvs_gap_spike_exists_bound. pvs_gap_spike_exists_bound + S (p) = (l)) -> (forall sfs_index_spike_exists_before sfs_value_spike_exists_before. (exists pvs_le_gap_spike_exists_beforelower. pvs_le_gap_spike_exists_beforelower + (0) = (sfs_index_spike_exists_before)) -> (exists pvs_gap_spike_exists_beforeupper. pvs_gap_spike_exists_beforeupper + S (sfs_index_spike_exists_before) = (p)) -> (exists dst_positive_code_spike_exists_beforeentry dst_positive_scale_spike_exists_beforeentry dst_negative_code_spike_exists_beforeentry dst_negative_scale_spike_exists_beforeentry dst_positive_spike_exists_beforeentry dst_negative_spike_exists_beforeentry. (((F) = (((((dst_positive_code_spike_exists_beforeentry) + (dst_positive_scale_spike_exists_beforeentry)) * S ((dst_positive_code_spike_exists_beforeentry) + (dst_positive_scale_spike_exists_beforeentry)) + ((dst_positive_scale_spike_exists_beforeentry) + (dst_positive_scale_spike_exists_beforeentry))) + (((dst_negative_code_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)) * S ((dst_negative_code_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)) + ((dst_negative_scale_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)))) * S ((((dst_positive_code_spike_exists_beforeentry) + (dst_positive_scale_spike_exists_beforeentry)) * S ((dst_positive_code_spike_exists_beforeentry) + (dst_positive_scale_spike_exists_beforeentry)) + ((dst_positive_scale_spike_exists_beforeentry) + (dst_positive_scale_spike_exists_beforeentry))) + (((dst_negative_code_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)) * S ((dst_negative_code_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)) + ((dst_negative_scale_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)))) + ((((dst_negative_code_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)) * S ((dst_negative_code_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)) + ((dst_negative_scale_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry))) + (((dst_negative_code_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)) * S ((dst_negative_code_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)) + ((dst_negative_scale_spike_exists_beforeentry) + (dst_negative_scale_spike_exists_beforeentry)))))) /\ (((((exists ff_h_pvs_spike_exists_beforeentrypositive. ff_h_pvs_spike_exists_beforeentrypositive + S (dst_positive_spike_exists_beforeentry) = S ((S (sfs_index_spike_exists_before)) * dst_positive_scale_spike_exists_beforeentry)) /\ exists ff_q_pvs_spike_exists_beforeentrypositive. dst_positive_code_spike_exists_beforeentry = ff_q_pvs_spike_exists_beforeentrypositive * S ((S (sfs_index_spike_exists_before)) * dst_positive_scale_spike_exists_beforeentry) + (dst_positive_spike_exists_beforeentry))) /\ (((((exists ff_h_pvs_spike_exists_beforeentrynegative. ff_h_pvs_spike_exists_beforeentrynegative + S (dst_negative_spike_exists_beforeentry) = S ((S (sfs_index_spike_exists_before)) * dst_negative_scale_spike_exists_beforeentry)) /\ exists ff_q_pvs_spike_exists_beforeentrynegative. dst_negative_code_spike_exists_beforeentry = ff_q_pvs_spike_exists_beforeentrynegative * S ((S (sfs_index_spike_exists_before)) * dst_negative_scale_spike_exists_beforeentry) + (dst_negative_spike_exists_beforeentry))) /\ (exists ge_balance_positive_spike_exists_beforeentryvalue ge_balance_negative_spike_exists_beforeentryvalue. (((((sfs_value_spike_exists_before) = 2 * (ge_balance_positive_spike_exists_beforeentryvalue) /\ (ge_balance_negative_spike_exists_beforeentryvalue) = 0) \/ exists ge_signed_half_spike_exists_beforeentryvaluedecode. (((sfs_value_spike_exists_before) = 2 * ge_signed_half_spike_exists_beforeentryvaluedecode + 1 /\ (ge_balance_positive_spike_exists_beforeentryvalue) = 0) /\ (ge_balance_negative_spike_exists_beforeentryvalue) = S ge_signed_half_spike_exists_beforeentryvaluedecode))) /\ ((dst_positive_spike_exists_beforeentry) + ge_balance_negative_spike_exists_beforeentryvalue = (dst_negative_spike_exists_beforeentry) + ge_balance_positive_spike_exists_beforeentryvalue))))))))) -> sfs_value_spike_exists_before=0) -> (exists dst_positive_code_spike_exists_value dst_positive_scale_spike_exists_value dst_negative_code_spike_exists_value dst_negative_scale_spike_exists_value dst_positive_spike_exists_value dst_negative_spike_exists_value. (((F) = (((((dst_positive_code_spike_exists_value) + (dst_positive_scale_spike_exists_value)) * S ((dst_positive_code_spike_exists_value) + (dst_positive_scale_spike_exists_value)) + ((dst_positive_scale_spike_exists_value) + (dst_positive_scale_spike_exists_value))) + (((dst_negative_code_spike_exists_value) + (dst_negative_scale_spike_exists_value)) * S ((dst_negative_code_spike_exists_value) + (dst_negative_scale_spike_exists_value)) + ((dst_negative_scale_spike_exists_value) + (dst_negative_scale_spike_exists_value)))) * S ((((dst_positive_code_spike_exists_value) + (dst_positive_scale_spike_exists_value)) * S ((dst_positive_code_spike_exists_value) + (dst_positive_scale_spike_exists_value)) + ((dst_positive_scale_spike_exists_value) + (dst_positive_scale_spike_exists_value))) + (((dst_negative_code_spike_exists_value) + (dst_negative_scale_spike_exists_value)) * S ((dst_negative_code_spike_exists_value) + (dst_negative_scale_spike_exists_value)) + ((dst_negative_scale_spike_exists_value) + (dst_negative_scale_spike_exists_value)))) + ((((dst_negative_code_spike_exists_value) + (dst_negative_scale_spike_exists_value)) * S ((dst_negative_code_spike_exists_value) + (dst_negative_scale_spike_exists_value)) + ((dst_negative_scale_spike_exists_value) + (dst_negative_scale_spike_exists_value))) + (((dst_negative_code_spike_exists_value) + (dst_negative_scale_spike_exists_value)) * S ((dst_negative_code_spike_exists_value) + (dst_negative_scale_spike_exists_value)) + ((dst_negative_scale_spike_exists_value) + (dst_negative_scale_spike_exists_value)))))) /\ (((((exists ff_h_pvs_spike_exists_valuepositive. ff_h_pvs_spike_exists_valuepositive + S (dst_positive_spike_exists_value) = S ((S (p)) * dst_positive_scale_spike_exists_value)) /\ exists ff_q_pvs_spike_exists_valuepositive. dst_positive_code_spike_exists_value = ff_q_pvs_spike_exists_valuepositive * S ((S (p)) * dst_positive_scale_spike_exists_value) + (dst_positive_spike_exists_value))) /\ (((((exists ff_h_pvs_spike_exists_valuenegative. ff_h_pvs_spike_exists_valuenegative + S (dst_negative_spike_exists_value) = S ((S (p)) * dst_negative_scale_spike_exists_value)) /\ exists ff_q_pvs_spike_exists_valuenegative. dst_negative_code_spike_exists_value = ff_q_pvs_spike_exists_valuenegative * S ((S (p)) * dst_negative_scale_spike_exists_value) + (dst_negative_spike_exists_value))) /\ (exists ge_balance_positive_spike_exists_valuevalue ge_balance_negative_spike_exists_valuevalue. (((((a) = 2 * (ge_balance_positive_spike_exists_valuevalue) /\ (ge_balance_negative_spike_exists_valuevalue) = 0) \/ exists ge_signed_half_spike_exists_valuevaluedecode. (((a) = 2 * ge_signed_half_spike_exists_valuevaluedecode + 1 /\ (ge_balance_positive_spike_exists_valuevalue) = 0) /\ (ge_balance_negative_spike_exists_valuevalue) = S ge_signed_half_spike_exists_valuevaluedecode))) /\ ((dst_positive_spike_exists_value) + ge_balance_negative_spike_exists_valuevalue = (dst_negative_spike_exists_value) + ge_balance_positive_spike_exists_valuevalue))))))))) -> (forall sfs_index_spike_exists_after sfs_value_spike_exists_after. (exists pvs_le_gap_spike_exists_afterlower. pvs_le_gap_spike_exists_afterlower + (S p) = (sfs_index_spike_exists_after)) -> (exists pvs_gap_spike_exists_afterupper. pvs_gap_spike_exists_afterupper + S (sfs_index_spike_exists_after) = (l)) -> (exists dst_positive_code_spike_exists_afterentry dst_positive_scale_spike_exists_afterentry dst_negative_code_spike_exists_afterentry dst_negative_scale_spike_exists_afterentry dst_positive_spike_exists_afterentry dst_negative_spike_exists_afterentry. (((F) = (((((dst_positive_code_spike_exists_afterentry) + (dst_positive_scale_spike_exists_afterentry)) * S ((dst_positive_code_spike_exists_afterentry) + (dst_positive_scale_spike_exists_afterentry)) + ((dst_positive_scale_spike_exists_afterentry) + (dst_positive_scale_spike_exists_afterentry))) + (((dst_negative_code_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)) * S ((dst_negative_code_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)) + ((dst_negative_scale_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)))) * S ((((dst_positive_code_spike_exists_afterentry) + (dst_positive_scale_spike_exists_afterentry)) * S ((dst_positive_code_spike_exists_afterentry) + (dst_positive_scale_spike_exists_afterentry)) + ((dst_positive_scale_spike_exists_afterentry) + (dst_positive_scale_spike_exists_afterentry))) + (((dst_negative_code_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)) * S ((dst_negative_code_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)) + ((dst_negative_scale_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)))) + ((((dst_negative_code_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)) * S ((dst_negative_code_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)) + ((dst_negative_scale_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry))) + (((dst_negative_code_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)) * S ((dst_negative_code_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)) + ((dst_negative_scale_spike_exists_afterentry) + (dst_negative_scale_spike_exists_afterentry)))))) /\ (((((exists ff_h_pvs_spike_exists_afterentrypositive. ff_h_pvs_spike_exists_afterentrypositive + S (dst_positive_spike_exists_afterentry) = S ((S (sfs_index_spike_exists_after)) * dst_positive_scale_spike_exists_afterentry)) /\ exists ff_q_pvs_spike_exists_afterentrypositive. dst_positive_code_spike_exists_afterentry = ff_q_pvs_spike_exists_afterentrypositive * S ((S (sfs_index_spike_exists_after)) * dst_positive_scale_spike_exists_afterentry) + (dst_positive_spike_exists_afterentry))) /\ (((((exists ff_h_pvs_spike_exists_afterentrynegative. ff_h_pvs_spike_exists_afterentrynegative + S (dst_negative_spike_exists_afterentry) = S ((S (sfs_index_spike_exists_after)) * dst_negative_scale_spike_exists_afterentry)) /\ exists ff_q_pvs_spike_exists_afterentrynegative. dst_negative_code_spike_exists_afterentry = ff_q_pvs_spike_exists_afterentrynegative * S ((S (sfs_index_spike_exists_after)) * dst_negative_scale_spike_exists_afterentry) + (dst_negative_spike_exists_afterentry))) /\ (exists ge_balance_positive_spike_exists_afterentryvalue ge_balance_negative_spike_exists_afterentryvalue. (((((sfs_value_spike_exists_after) = 2 * (ge_balance_positive_spike_exists_afterentryvalue) /\ (ge_balance_negative_spike_exists_afterentryvalue) = 0) \/ exists ge_signed_half_spike_exists_afterentryvaluedecode. (((sfs_value_spike_exists_after) = 2 * ge_signed_half_spike_exists_afterentryvaluedecode + 1 /\ (ge_balance_positive_spike_exists_afterentryvalue) = 0) /\ (ge_balance_negative_spike_exists_afterentryvalue) = S ge_signed_half_spike_exists_afterentryvaluedecode))) /\ ((dst_positive_spike_exists_afterentry) + ge_balance_negative_spike_exists_afterentryvalue = (dst_negative_spike_exists_afterentry) + ge_balance_positive_spike_exists_afterentryvalue))))))))) -> sfs_value_spike_exists_after=0) -> (exists dst_positive_code_spike_exists_sum dst_positive_scale_spike_exists_sum dst_negative_code_spike_exists_sum dst_negative_scale_spike_exists_sum dst_positive_sum_spike_exists_sum dst_negative_sum_spike_exists_sum. (((F) = (((((dst_positive_code_spike_exists_sum) + (dst_positive_scale_spike_exists_sum)) * S ((dst_positive_code_spike_exists_sum) + (dst_positive_scale_spike_exists_sum)) + ((dst_positive_scale_spike_exists_sum) + (dst_positive_scale_spike_exists_sum))) + (((dst_negative_code_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)) * S ((dst_negative_code_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)) + ((dst_negative_scale_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)))) * S ((((dst_positive_code_spike_exists_sum) + (dst_positive_scale_spike_exists_sum)) * S ((dst_positive_code_spike_exists_sum) + (dst_positive_scale_spike_exists_sum)) + ((dst_positive_scale_spike_exists_sum) + (dst_positive_scale_spike_exists_sum))) + (((dst_negative_code_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)) * S ((dst_negative_code_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)) + ((dst_negative_scale_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)))) + ((((dst_negative_code_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)) * S ((dst_negative_code_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)) + ((dst_negative_scale_spike_exists_sum) + (dst_negative_scale_spike_exists_sum))) + (((dst_negative_code_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)) * S ((dst_negative_code_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)) + ((dst_negative_scale_spike_exists_sum) + (dst_negative_scale_spike_exists_sum)))))) /\ (((exists fs_u_dst_spike_exists_sumpositive fs_v_dst_spike_exists_sumpositive. ((((exists fs_h_dst_spike_exists_sumpositive_body_start. fs_h_dst_spike_exists_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_spike_exists_sumpositive)) /\ exists fs_q_dst_spike_exists_sumpositive_body_start. fs_u_dst_spike_exists_sumpositive = fs_q_dst_spike_exists_sumpositive_body_start * S ((S (0)) * fs_v_dst_spike_exists_sumpositive) + (0))) /\ ((((exists fs_h_dst_spike_exists_sumpositive_body_terminal. fs_h_dst_spike_exists_sumpositive_body_terminal + S (dst_positive_sum_spike_exists_sum) = S ((S (l)) * fs_v_dst_spike_exists_sumpositive)) /\ exists fs_q_dst_spike_exists_sumpositive_body_terminal. fs_u_dst_spike_exists_sumpositive = fs_q_dst_spike_exists_sumpositive_body_terminal * S ((S (l)) * fs_v_dst_spike_exists_sumpositive) + (dst_positive_sum_spike_exists_sum))) /\ forall fs_i_dst_spike_exists_sumpositive_body_steps. (exists fs_lt_dst_spike_exists_sumpositive_body_steps_bound. fs_lt_dst_spike_exists_sumpositive_body_steps_bound + S fs_i_dst_spike_exists_sumpositive_body_steps = l) -> exists fs_a_dst_spike_exists_sumpositive_body_steps fs_r_dst_spike_exists_sumpositive_body_steps fs_s_dst_spike_exists_sumpositive_body_steps. ((((exists fs_h_dst_spike_exists_sumpositive_body_steps_summand. fs_h_dst_spike_exists_sumpositive_body_steps_summand + S (fs_a_dst_spike_exists_sumpositive_body_steps) = S ((S (fs_i_dst_spike_exists_sumpositive_body_steps)) * dst_positive_scale_spike_exists_sum)) /\ exists fs_q_dst_spike_exists_sumpositive_body_steps_summand. dst_positive_code_spike_exists_sum = fs_q_dst_spike_exists_sumpositive_body_steps_summand * S ((S (fs_i_dst_spike_exists_sumpositive_body_steps)) * dst_positive_scale_spike_exists_sum) + (fs_a_dst_spike_exists_sumpositive_body_steps))) /\ ((((exists fs_h_dst_spike_exists_sumpositive_body_steps_partial. fs_h_dst_spike_exists_sumpositive_body_steps_partial + S (fs_r_dst_spike_exists_sumpositive_body_steps) = S ((S (fs_i_dst_spike_exists_sumpositive_body_steps)) * fs_v_dst_spike_exists_sumpositive)) /\ exists fs_q_dst_spike_exists_sumpositive_body_steps_partial. fs_u_dst_spike_exists_sumpositive = fs_q_dst_spike_exists_sumpositive_body_steps_partial * S ((S (fs_i_dst_spike_exists_sumpositive_body_steps)) * fs_v_dst_spike_exists_sumpositive) + (fs_r_dst_spike_exists_sumpositive_body_steps))) /\ ((((exists fs_h_dst_spike_exists_sumpositive_body_steps_successor. fs_h_dst_spike_exists_sumpositive_body_steps_successor + S (fs_s_dst_spike_exists_sumpositive_body_steps) = S ((S (S fs_i_dst_spike_exists_sumpositive_body_steps)) * fs_v_dst_spike_exists_sumpositive)) /\ exists fs_q_dst_spike_exists_sumpositive_body_steps_successor. fs_u_dst_spike_exists_sumpositive = fs_q_dst_spike_exists_sumpositive_body_steps_successor * S ((S (S fs_i_dst_spike_exists_sumpositive_body_steps)) * fs_v_dst_spike_exists_sumpositive) + (fs_s_dst_spike_exists_sumpositive_body_steps))) /\ fs_s_dst_spike_exists_sumpositive_body_steps = fs_r_dst_spike_exists_sumpositive_body_steps + fs_a_dst_spike_exists_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_spike_exists_sumnegative fs_v_dst_spike_exists_sumnegative. ((((exists fs_h_dst_spike_exists_sumnegative_body_start. fs_h_dst_spike_exists_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_spike_exists_sumnegative)) /\ exists fs_q_dst_spike_exists_sumnegative_body_start. fs_u_dst_spike_exists_sumnegative = fs_q_dst_spike_exists_sumnegative_body_start * S ((S (0)) * fs_v_dst_spike_exists_sumnegative) + (0))) /\ ((((exists fs_h_dst_spike_exists_sumnegative_body_terminal. fs_h_dst_spike_exists_sumnegative_body_terminal + S (dst_negative_sum_spike_exists_sum) = S ((S (l)) * fs_v_dst_spike_exists_sumnegative)) /\ exists fs_q_dst_spike_exists_sumnegative_body_terminal. fs_u_dst_spike_exists_sumnegative = fs_q_dst_spike_exists_sumnegative_body_terminal * S ((S (l)) * fs_v_dst_spike_exists_sumnegative) + (dst_negative_sum_spike_exists_sum))) /\ forall fs_i_dst_spike_exists_sumnegative_body_steps. (exists fs_lt_dst_spike_exists_sumnegative_body_steps_bound. fs_lt_dst_spike_exists_sumnegative_body_steps_bound + S fs_i_dst_spike_exists_sumnegative_body_steps = l) -> exists fs_a_dst_spike_exists_sumnegative_body_steps fs_r_dst_spike_exists_sumnegative_body_steps fs_s_dst_spike_exists_sumnegative_body_steps. ((((exists fs_h_dst_spike_exists_sumnegative_body_steps_summand. fs_h_dst_spike_exists_sumnegative_body_steps_summand + S (fs_a_dst_spike_exists_sumnegative_body_steps) = S ((S (fs_i_dst_spike_exists_sumnegative_body_steps)) * dst_negative_scale_spike_exists_sum)) /\ exists fs_q_dst_spike_exists_sumnegative_body_steps_summand. dst_negative_code_spike_exists_sum = fs_q_dst_spike_exists_sumnegative_body_steps_summand * S ((S (fs_i_dst_spike_exists_sumnegative_body_steps)) * dst_negative_scale_spike_exists_sum) + (fs_a_dst_spike_exists_sumnegative_body_steps))) /\ ((((exists fs_h_dst_spike_exists_sumnegative_body_steps_partial. fs_h_dst_spike_exists_sumnegative_body_steps_partial + S (fs_r_dst_spike_exists_sumnegative_body_steps) = S ((S (fs_i_dst_spike_exists_sumnegative_body_steps)) * fs_v_dst_spike_exists_sumnegative)) /\ exists fs_q_dst_spike_exists_sumnegative_body_steps_partial. fs_u_dst_spike_exists_sumnegative = fs_q_dst_spike_exists_sumnegative_body_steps_partial * S ((S (fs_i_dst_spike_exists_sumnegative_body_steps)) * fs_v_dst_spike_exists_sumnegative) + (fs_r_dst_spike_exists_sumnegative_body_steps))) /\ ((((exists fs_h_dst_spike_exists_sumnegative_body_steps_successor. fs_h_dst_spike_exists_sumnegative_body_steps_successor + S (fs_s_dst_spike_exists_sumnegative_body_steps) = S ((S (S fs_i_dst_spike_exists_sumnegative_body_steps)) * fs_v_dst_spike_exists_sumnegative)) /\ exists fs_q_dst_spike_exists_sumnegative_body_steps_successor. fs_u_dst_spike_exists_sumnegative = fs_q_dst_spike_exists_sumnegative_body_steps_successor * S ((S (S fs_i_dst_spike_exists_sumnegative_body_steps)) * fs_v_dst_spike_exists_sumnegative) + (fs_s_dst_spike_exists_sumnegative_body_steps))) /\ fs_s_dst_spike_exists_sumnegative_body_steps = fs_r_dst_spike_exists_sumnegative_body_steps + fs_a_dst_spike_exists_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_spike_exists_sumresult ge_balance_negative_spike_exists_sumresult. (((((a) = 2 * (ge_balance_positive_spike_exists_sumresult) /\ (ge_balance_negative_spike_exists_sumresult) = 0) \/ exists ge_signed_half_spike_exists_sumresultdecode. (((a) = 2 * ge_signed_half_spike_exists_sumresultdecode + 1 /\ (ge_balance_positive_spike_exists_sumresult) = 0) /\ (ge_balance_negative_spike_exists_sumresult) = S ge_signed_half_spike_exists_sumresultdecode))) /\ ((dst_positive_sum_spike_exists_sum) + ge_balance_negative_spike_exists_sumresult = (dst_negative_sum_spike_exists_sum) + ge_balance_positive_spike_exists_sumresult)))))))))Constructive proof overview
Generated structural guide
Construct actual fold traces for an arbitrary-position signed spike, including zero and negative values.
The unchanged tactic script uses 2 declared prerequisites and contains 32 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
arithmetic_signed_sum_exists Alpha theorem; checked-use authorized MX0033 signed_prefix_sum_single_spike_valueDirect 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–9
02Establish hsL10–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed sum exists.
03Separate the logical casesL16–16
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L16
cases hs
04Establish heqL17–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed prefix sum single spike value.
- L17
have heq : x=a - L18
specialize signed_prefix_sum_single_spike_value (F) - L19
specialize signed_prefix_sum_single_spike_value (l) - L20
specialize signed_prefix_sum_single_spike_value (p) - L21
specialize signed_prefix_sum_single_spike_value (a) - L22
specialize signed_prefix_sum_single_spike_value (x) - L23
apply signed_prefix_sum_single_spike_value - L24
exact hF - L25
exact hp - L26
exact hz0
05Use earlier factsL27–29
06Calculate and transport equalitiesL30–31
07Use earlier factsL32–32
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L32
exact hs_witness
Original exact command ledger · 32 lines
- 0001
intro F - 0002
intro l - 0003
intro p - 0004
intro a - 0005
intro hF - 0006
intro hp - 0007
intro hz0 - 0008
intro ha - 0009
intro hz1 - 0010
have hs : exists z. (exists dst_positive_code_spike_actual_sum dst_positive_scale_spike_actual_sum dst_negative_code_spike_actual_sum dst_negative_scale_spike_actual_sum dst_positive_sum_spike_actual_sum dst_negative_sum_spike_actual_sum. (((F) = (((((dst_positive_code_spike_actual_sum) + (dst_positive_scale_spike_actual_sum)) * S ((dst_positive_code_spike_actual_sum) + (dst_positive_scale_spike_actual_sum)) + ((dst_positive_scale_spike_actual_sum) + (dst_positive_scale_spike_actual_sum))) + (((dst_negative_code_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)) * S ((dst_negative_code_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)) + ((dst_negative_scale_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)))) * S ((((dst_positive_code_spike_actual_sum) + (dst_positive_scale_spike_actual_sum)) * S ((dst_positive_code_spike_actual_sum) + (dst_positive_scale_spike_actual_sum)) + ((dst_positive_scale_spike_actual_sum) + (dst_positive_scale_spike_actual_sum))) + (((dst_negative_code_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)) * S ((dst_negative_code_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)) + ((dst_negative_scale_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)))) + ((((dst_negative_code_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)) * S ((dst_negative_code_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)) + ((dst_negative_scale_spike_actual_sum) + (dst_negative_scale_spike_actual_sum))) + (((dst_negative_code_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)) * S ((dst_negative_code_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)) + ((dst_negative_scale_spike_actual_sum) + (dst_negative_scale_spike_actual_sum)))))) /\ (((exists fs_u_dst_spike_actual_sumpositive fs_v_dst_spike_actual_sumpositive. ((((exists fs_h_dst_spike_actual_sumpositive_body_start. fs_h_dst_spike_actual_sumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_spike_actual_sumpositive)) /\ exists fs_q_dst_spike_actual_sumpositive_body_start. fs_u_dst_spike_actual_sumpositive = fs_q_dst_spike_actual_sumpositive_body_start * S ((S (0)) * fs_v_dst_spike_actual_sumpositive) + (0))) /\ ((((exists fs_h_dst_spike_actual_sumpositive_body_terminal. fs_h_dst_spike_actual_sumpositive_body_terminal + S (dst_positive_sum_spike_actual_sum) = S ((S (l)) * fs_v_dst_spike_actual_sumpositive)) /\ exists fs_q_dst_spike_actual_sumpositive_body_terminal. fs_u_dst_spike_actual_sumpositive = fs_q_dst_spike_actual_sumpositive_body_terminal * S ((S (l)) * fs_v_dst_spike_actual_sumpositive) + (dst_positive_sum_spike_actual_sum))) /\ forall fs_i_dst_spike_actual_sumpositive_body_steps. (exists fs_lt_dst_spike_actual_sumpositive_body_steps_bound. fs_lt_dst_spike_actual_sumpositive_body_steps_bound + S fs_i_dst_spike_actual_sumpositive_body_steps = l) -> exists fs_a_dst_spike_actual_sumpositive_body_steps fs_r_dst_spike_actual_sumpositive_body_steps fs_s_dst_spike_actual_sumpositive_body_steps. ((((exists fs_h_dst_spike_actual_sumpositive_body_steps_summand. fs_h_dst_spike_actual_sumpositive_body_steps_summand + S (fs_a_dst_spike_actual_sumpositive_body_steps) = S ((S (fs_i_dst_spike_actual_sumpositive_body_steps)) * dst_positive_scale_spike_actual_sum)) /\ exists fs_q_dst_spike_actual_sumpositive_body_steps_summand. dst_positive_code_spike_actual_sum = fs_q_dst_spike_actual_sumpositive_body_steps_summand * S ((S (fs_i_dst_spike_actual_sumpositive_body_steps)) * dst_positive_scale_spike_actual_sum) + (fs_a_dst_spike_actual_sumpositive_body_steps))) /\ ((((exists fs_h_dst_spike_actual_sumpositive_body_steps_partial. fs_h_dst_spike_actual_sumpositive_body_steps_partial + S (fs_r_dst_spike_actual_sumpositive_body_steps) = S ((S (fs_i_dst_spike_actual_sumpositive_body_steps)) * fs_v_dst_spike_actual_sumpositive)) /\ exists fs_q_dst_spike_actual_sumpositive_body_steps_partial. fs_u_dst_spike_actual_sumpositive = fs_q_dst_spike_actual_sumpositive_body_steps_partial * S ((S (fs_i_dst_spike_actual_sumpositive_body_steps)) * fs_v_dst_spike_actual_sumpositive) + (fs_r_dst_spike_actual_sumpositive_body_steps))) /\ ((((exists fs_h_dst_spike_actual_sumpositive_body_steps_successor. fs_h_dst_spike_actual_sumpositive_body_steps_successor + S (fs_s_dst_spike_actual_sumpositive_body_steps) = S ((S (S fs_i_dst_spike_actual_sumpositive_body_steps)) * fs_v_dst_spike_actual_sumpositive)) /\ exists fs_q_dst_spike_actual_sumpositive_body_steps_successor. fs_u_dst_spike_actual_sumpositive = fs_q_dst_spike_actual_sumpositive_body_steps_successor * S ((S (S fs_i_dst_spike_actual_sumpositive_body_steps)) * fs_v_dst_spike_actual_sumpositive) + (fs_s_dst_spike_actual_sumpositive_body_steps))) /\ fs_s_dst_spike_actual_sumpositive_body_steps = fs_r_dst_spike_actual_sumpositive_body_steps + fs_a_dst_spike_actual_sumpositive_body_steps)))))) /\ (((exists fs_u_dst_spike_actual_sumnegative fs_v_dst_spike_actual_sumnegative. ((((exists fs_h_dst_spike_actual_sumnegative_body_start. fs_h_dst_spike_actual_sumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_spike_actual_sumnegative)) /\ exists fs_q_dst_spike_actual_sumnegative_body_start. fs_u_dst_spike_actual_sumnegative = fs_q_dst_spike_actual_sumnegative_body_start * S ((S (0)) * fs_v_dst_spike_actual_sumnegative) + (0))) /\ ((((exists fs_h_dst_spike_actual_sumnegative_body_terminal. fs_h_dst_spike_actual_sumnegative_body_terminal + S (dst_negative_sum_spike_actual_sum) = S ((S (l)) * fs_v_dst_spike_actual_sumnegative)) /\ exists fs_q_dst_spike_actual_sumnegative_body_terminal. fs_u_dst_spike_actual_sumnegative = fs_q_dst_spike_actual_sumnegative_body_terminal * S ((S (l)) * fs_v_dst_spike_actual_sumnegative) + (dst_negative_sum_spike_actual_sum))) /\ forall fs_i_dst_spike_actual_sumnegative_body_steps. (exists fs_lt_dst_spike_actual_sumnegative_body_steps_bound. fs_lt_dst_spike_actual_sumnegative_body_steps_bound + S fs_i_dst_spike_actual_sumnegative_body_steps = l) -> exists fs_a_dst_spike_actual_sumnegative_body_steps fs_r_dst_spike_actual_sumnegative_body_steps fs_s_dst_spike_actual_sumnegative_body_steps. ((((exists fs_h_dst_spike_actual_sumnegative_body_steps_summand. fs_h_dst_spike_actual_sumnegative_body_steps_summand + S (fs_a_dst_spike_actual_sumnegative_body_steps) = S ((S (fs_i_dst_spike_actual_sumnegative_body_steps)) * dst_negative_scale_spike_actual_sum)) /\ exists fs_q_dst_spike_actual_sumnegative_body_steps_summand. dst_negative_code_spike_actual_sum = fs_q_dst_spike_actual_sumnegative_body_steps_summand * S ((S (fs_i_dst_spike_actual_sumnegative_body_steps)) * dst_negative_scale_spike_actual_sum) + (fs_a_dst_spike_actual_sumnegative_body_steps))) /\ ((((exists fs_h_dst_spike_actual_sumnegative_body_steps_partial. fs_h_dst_spike_actual_sumnegative_body_steps_partial + S (fs_r_dst_spike_actual_sumnegative_body_steps) = S ((S (fs_i_dst_spike_actual_sumnegative_body_steps)) * fs_v_dst_spike_actual_sumnegative)) /\ exists fs_q_dst_spike_actual_sumnegative_body_steps_partial. fs_u_dst_spike_actual_sumnegative = fs_q_dst_spike_actual_sumnegative_body_steps_partial * S ((S (fs_i_dst_spike_actual_sumnegative_body_steps)) * fs_v_dst_spike_actual_sumnegative) + (fs_r_dst_spike_actual_sumnegative_body_steps))) /\ ((((exists fs_h_dst_spike_actual_sumnegative_body_steps_successor. fs_h_dst_spike_actual_sumnegative_body_steps_successor + S (fs_s_dst_spike_actual_sumnegative_body_steps) = S ((S (S fs_i_dst_spike_actual_sumnegative_body_steps)) * fs_v_dst_spike_actual_sumnegative)) /\ exists fs_q_dst_spike_actual_sumnegative_body_steps_successor. fs_u_dst_spike_actual_sumnegative = fs_q_dst_spike_actual_sumnegative_body_steps_successor * S ((S (S fs_i_dst_spike_actual_sumnegative_body_steps)) * fs_v_dst_spike_actual_sumnegative) + (fs_s_dst_spike_actual_sumnegative_body_steps))) /\ fs_s_dst_spike_actual_sumnegative_body_steps = fs_r_dst_spike_actual_sumnegative_body_steps + fs_a_dst_spike_actual_sumnegative_body_steps)))))) /\ (exists ge_balance_positive_spike_actual_sumresult ge_balance_negative_spike_actual_sumresult. (((((z) = 2 * (ge_balance_positive_spike_actual_sumresult) /\ (ge_balance_negative_spike_actual_sumresult) = 0) \/ exists ge_signed_half_spike_actual_sumresultdecode. (((z) = 2 * ge_signed_half_spike_actual_sumresultdecode + 1 /\ (ge_balance_positive_spike_actual_sumresult) = 0) /\ (ge_balance_negative_spike_actual_sumresult) = S ge_signed_half_spike_actual_sumresultdecode))) /\ ((dst_positive_sum_spike_actual_sum) + ge_balance_negative_spike_actual_sumresult = (dst_negative_sum_spike_actual_sum) + ge_balance_positive_spike_actual_sumresult))))))))) - 0011
specialize arithmetic_signed_sum_exists (0) - 0012
specialize arithmetic_signed_sum_exists (F) - 0013
specialize arithmetic_signed_sum_exists (l) - 0014
apply arithmetic_signed_sum_exists - 0015
exact hF - 0016
cases hs - 0017
have heq : x=a - 0018
specialize signed_prefix_sum_single_spike_value (F) - 0019
specialize signed_prefix_sum_single_spike_value (l) - 0020
specialize signed_prefix_sum_single_spike_value (p) - 0021
specialize signed_prefix_sum_single_spike_value (a) - 0022
specialize signed_prefix_sum_single_spike_value (x) - 0023
apply signed_prefix_sum_single_spike_value - 0024
exact hF - 0025
exact hp - 0026
exact hz0 - 0027
exact ha - 0028
exact hz1 - 0029
exact hs_witness - 0030
rewrite heq at hs_witness - 0031
rewrite heq at hs_witness - 0032
exact hs_witness