RS0008

signed_rectangular_slice_sum_exists

Construct an actual affine slice and actual positive/negative prefix-sum traces; the result is not a supplied sum oracle.

Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.

Every slice, row table, column table and signed sum is an actual beta-coded witness. Entries are F((o+s*i)+t*j), for i<m and j<n. Zero dimensions and zero strides are allowed; separately certified endpoints are unused. Table uniqueness concerns values, not codes. No infinite-sum assertion is made.

Exact theorem in conservative defined notation

∀ F. ∀ o. ∀ s. ∀ l. ArithTable(0,F) → ∃ x. SignedSliceSum(F,o,s,l,x)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall F o s l. (exists dst_positive_code_sum_exists_input dst_positive_scale_sum_exists_input dst_negative_code_sum_exists_input dst_negative_scale_sum_exists_input. (((F) = (((((dst_positive_code_sum_exists_input) + (dst_positive_scale_sum_exists_input)) * S ((dst_positive_code_sum_exists_input) + (dst_positive_scale_sum_exists_input)) + ((dst_positive_scale_sum_exists_input) + (dst_positive_scale_sum_exists_input))) + (((dst_negative_code_sum_exists_input) + (dst_negative_scale_sum_exists_input)) * S ((dst_negative_code_sum_exists_input) + (dst_negative_scale_sum_exists_input)) + ((dst_negative_scale_sum_exists_input) + (dst_negative_scale_sum_exists_input)))) * S ((((dst_positive_code_sum_exists_input) + (dst_positive_scale_sum_exists_input)) * S ((dst_positive_code_sum_exists_input) + (dst_positive_scale_sum_exists_input)) + ((dst_positive_scale_sum_exists_input) + (dst_positive_scale_sum_exists_input))) + (((dst_negative_code_sum_exists_input) + (dst_negative_scale_sum_exists_input)) * S ((dst_negative_code_sum_exists_input) + (dst_negative_scale_sum_exists_input)) + ((dst_negative_scale_sum_exists_input) + (dst_negative_scale_sum_exists_input)))) + ((((dst_negative_code_sum_exists_input) + (dst_negative_scale_sum_exists_input)) * S ((dst_negative_code_sum_exists_input) + (dst_negative_scale_sum_exists_input)) + ((dst_negative_scale_sum_exists_input) + (dst_negative_scale_sum_exists_input))) + (((dst_negative_code_sum_exists_input) + (dst_negative_scale_sum_exists_input)) * S ((dst_negative_code_sum_exists_input) + (dst_negative_scale_sum_exists_input)) + ((dst_negative_scale_sum_exists_input) + (dst_negative_scale_sum_exists_input)))))) /\ (forall dst_index_sum_exists_input. (exists pvs_le_gap_sum_exists_inputdomain. pvs_le_gap_sum_exists_inputdomain + (dst_index_sum_exists_input) = (0)) -> exists dst_positive_sum_exists_input dst_negative_sum_exists_input dst_value_sum_exists_input. ((((exists ff_h_pvs_sum_exists_inputentrypositive. ff_h_pvs_sum_exists_inputentrypositive + S (dst_positive_sum_exists_input) = S ((S (dst_index_sum_exists_input)) * dst_positive_scale_sum_exists_input)) /\ exists ff_q_pvs_sum_exists_inputentrypositive. dst_positive_code_sum_exists_input = ff_q_pvs_sum_exists_inputentrypositive * S ((S (dst_index_sum_exists_input)) * dst_positive_scale_sum_exists_input) + (dst_positive_sum_exists_input))) /\ (((((exists ff_h_pvs_sum_exists_inputentrynegative. ff_h_pvs_sum_exists_inputentrynegative + S (dst_negative_sum_exists_input) = S ((S (dst_index_sum_exists_input)) * dst_negative_scale_sum_exists_input)) /\ exists ff_q_pvs_sum_exists_inputentrynegative. dst_negative_code_sum_exists_input = ff_q_pvs_sum_exists_inputentrynegative * S ((S (dst_index_sum_exists_input)) * dst_negative_scale_sum_exists_input) + (dst_negative_sum_exists_input))) /\ (exists ge_balance_positive_sum_exists_inputentryvalue ge_balance_negative_sum_exists_inputentryvalue. (((((dst_value_sum_exists_input) = 2 * (ge_balance_positive_sum_exists_inputentryvalue) /\ (ge_balance_negative_sum_exists_inputentryvalue) = 0) \/ exists ge_signed_half_sum_exists_inputentryvaluedecode. (((dst_value_sum_exists_input) = 2 * ge_signed_half_sum_exists_inputentryvaluedecode + 1 /\ (ge_balance_positive_sum_exists_inputentryvalue) = 0) /\ (ge_balance_negative_sum_exists_inputentryvalue) = S ge_signed_half_sum_exists_inputentryvaluedecode))) /\ ((dst_positive_sum_exists_input) + ge_balance_negative_sum_exists_inputentryvalue = (dst_negative_sum_exists_input) + ge_balance_positive_sum_exists_inputentryvalue))))))))) -> exists z. (exists srs_slice_sum_exists_result. ((((exists dst_positive_code_sum_exists_resultslicesource_table dst_positive_scale_sum_exists_resultslicesource_table dst_negative_code_sum_exists_resultslicesource_table dst_negative_scale_sum_exists_resultslicesource_table. (((F) = (((((dst_positive_code_sum_exists_resultslicesource_table) + (dst_positive_scale_sum_exists_resultslicesource_table)) * S ((dst_positive_code_sum_exists_resultslicesource_table) + (dst_positive_scale_sum_exists_resultslicesource_table)) + ((dst_positive_scale_sum_exists_resultslicesource_table) + (dst_positive_scale_sum_exists_resultslicesource_table))) + (((dst_negative_code_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)) * S ((dst_negative_code_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)) + ((dst_negative_scale_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)))) * S ((((dst_positive_code_sum_exists_resultslicesource_table) + (dst_positive_scale_sum_exists_resultslicesource_table)) * S ((dst_positive_code_sum_exists_resultslicesource_table) + (dst_positive_scale_sum_exists_resultslicesource_table)) + ((dst_positive_scale_sum_exists_resultslicesource_table) + (dst_positive_scale_sum_exists_resultslicesource_table))) + (((dst_negative_code_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)) * S ((dst_negative_code_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)) + ((dst_negative_scale_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)))) + ((((dst_negative_code_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)) * S ((dst_negative_code_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)) + ((dst_negative_scale_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table))) + (((dst_negative_code_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)) * S ((dst_negative_code_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)) + ((dst_negative_scale_sum_exists_resultslicesource_table) + (dst_negative_scale_sum_exists_resultslicesource_table)))))) /\ (forall dst_index_sum_exists_resultslicesource_table. (exists pvs_le_gap_sum_exists_resultslicesource_tabledomain. pvs_le_gap_sum_exists_resultslicesource_tabledomain + (dst_index_sum_exists_resultslicesource_table) = (0)) -> exists dst_positive_sum_exists_resultslicesource_table dst_negative_sum_exists_resultslicesource_table dst_value_sum_exists_resultslicesource_table. ((((exists ff_h_pvs_sum_exists_resultslicesource_tableentrypositive. ff_h_pvs_sum_exists_resultslicesource_tableentrypositive + S (dst_positive_sum_exists_resultslicesource_table) = S ((S (dst_index_sum_exists_resultslicesource_table)) * dst_positive_scale_sum_exists_resultslicesource_table)) /\ exists ff_q_pvs_sum_exists_resultslicesource_tableentrypositive. dst_positive_code_sum_exists_resultslicesource_table = ff_q_pvs_sum_exists_resultslicesource_tableentrypositive * S ((S (dst_index_sum_exists_resultslicesource_table)) * dst_positive_scale_sum_exists_resultslicesource_table) + (dst_positive_sum_exists_resultslicesource_table))) /\ (((((exists ff_h_pvs_sum_exists_resultslicesource_tableentrynegative. ff_h_pvs_sum_exists_resultslicesource_tableentrynegative + S (dst_negative_sum_exists_resultslicesource_table) = S ((S (dst_index_sum_exists_resultslicesource_table)) * dst_negative_scale_sum_exists_resultslicesource_table)) /\ exists ff_q_pvs_sum_exists_resultslicesource_tableentrynegative. dst_negative_code_sum_exists_resultslicesource_table = ff_q_pvs_sum_exists_resultslicesource_tableentrynegative * S ((S (dst_index_sum_exists_resultslicesource_table)) * dst_negative_scale_sum_exists_resultslicesource_table) + (dst_negative_sum_exists_resultslicesource_table))) /\ (exists ge_balance_positive_sum_exists_resultslicesource_tableentryvalue ge_balance_negative_sum_exists_resultslicesource_tableentryvalue. (((((dst_value_sum_exists_resultslicesource_table) = 2 * (ge_balance_positive_sum_exists_resultslicesource_tableentryvalue) /\ (ge_balance_negative_sum_exists_resultslicesource_tableentryvalue) = 0) \/ exists ge_signed_half_sum_exists_resultslicesource_tableentryvaluedecode. (((dst_value_sum_exists_resultslicesource_table) = 2 * ge_signed_half_sum_exists_resultslicesource_tableentryvaluedecode + 1 /\ (ge_balance_positive_sum_exists_resultslicesource_tableentryvalue) = 0) /\ (ge_balance_negative_sum_exists_resultslicesource_tableentryvalue) = S ge_signed_half_sum_exists_resultslicesource_tableentryvaluedecode))) /\ ((dst_positive_sum_exists_resultslicesource_table) + ge_balance_negative_sum_exists_resultslicesource_tableentryvalue = (dst_negative_sum_exists_resultslicesource_table) + ge_balance_positive_sum_exists_resultslicesource_tableentryvalue))))))))) /\ (((exists dst_positive_code_sum_exists_resultsliceoutput_table dst_positive_scale_sum_exists_resultsliceoutput_table dst_negative_code_sum_exists_resultsliceoutput_table dst_negative_scale_sum_exists_resultsliceoutput_table. (((srs_slice_sum_exists_result) = (((((dst_positive_code_sum_exists_resultsliceoutput_table) + (dst_positive_scale_sum_exists_resultsliceoutput_table)) * S ((dst_positive_code_sum_exists_resultsliceoutput_table) + (dst_positive_scale_sum_exists_resultsliceoutput_table)) + ((dst_positive_scale_sum_exists_resultsliceoutput_table) + (dst_positive_scale_sum_exists_resultsliceoutput_table))) + (((dst_negative_code_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)) * S ((dst_negative_code_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)) + ((dst_negative_scale_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)))) * S ((((dst_positive_code_sum_exists_resultsliceoutput_table) + (dst_positive_scale_sum_exists_resultsliceoutput_table)) * S ((dst_positive_code_sum_exists_resultsliceoutput_table) + (dst_positive_scale_sum_exists_resultsliceoutput_table)) + ((dst_positive_scale_sum_exists_resultsliceoutput_table) + (dst_positive_scale_sum_exists_resultsliceoutput_table))) + (((dst_negative_code_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)) * S ((dst_negative_code_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)) + ((dst_negative_scale_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)))) + ((((dst_negative_code_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)) * S ((dst_negative_code_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)) + ((dst_negative_scale_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table))) + (((dst_negative_code_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)) * S ((dst_negative_code_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)) + ((dst_negative_scale_sum_exists_resultsliceoutput_table) + (dst_negative_scale_sum_exists_resultsliceoutput_table)))))) /\ (forall dst_index_sum_exists_resultsliceoutput_table. (exists pvs_le_gap_sum_exists_resultsliceoutput_tabledomain. pvs_le_gap_sum_exists_resultsliceoutput_tabledomain + (dst_index_sum_exists_resultsliceoutput_table) = (l)) -> exists dst_positive_sum_exists_resultsliceoutput_table dst_negative_sum_exists_resultsliceoutput_table dst_value_sum_exists_resultsliceoutput_table. ((((exists ff_h_pvs_sum_exists_resultsliceoutput_tableentrypositive. ff_h_pvs_sum_exists_resultsliceoutput_tableentrypositive + S (dst_positive_sum_exists_resultsliceoutput_table) = S ((S (dst_index_sum_exists_resultsliceoutput_table)) * dst_positive_scale_sum_exists_resultsliceoutput_table)) /\ exists ff_q_pvs_sum_exists_resultsliceoutput_tableentrypositive. dst_positive_code_sum_exists_resultsliceoutput_table = ff_q_pvs_sum_exists_resultsliceoutput_tableentrypositive * S ((S (dst_index_sum_exists_resultsliceoutput_table)) * dst_positive_scale_sum_exists_resultsliceoutput_table) + (dst_positive_sum_exists_resultsliceoutput_table))) /\ (((((exists ff_h_pvs_sum_exists_resultsliceoutput_tableentrynegative. ff_h_pvs_sum_exists_resultsliceoutput_tableentrynegative + S (dst_negative_sum_exists_resultsliceoutput_table) = S ((S (dst_index_sum_exists_resultsliceoutput_table)) * dst_negative_scale_sum_exists_resultsliceoutput_table)) /\ exists ff_q_pvs_sum_exists_resultsliceoutput_tableentrynegative. dst_negative_code_sum_exists_resultsliceoutput_table = ff_q_pvs_sum_exists_resultsliceoutput_tableentrynegative * S ((S (dst_index_sum_exists_resultsliceoutput_table)) * dst_negative_scale_sum_exists_resultsliceoutput_table) + (dst_negative_sum_exists_resultsliceoutput_table))) /\ (exists ge_balance_positive_sum_exists_resultsliceoutput_tableentryvalue ge_balance_negative_sum_exists_resultsliceoutput_tableentryvalue. (((((dst_value_sum_exists_resultsliceoutput_table) = 2 * (ge_balance_positive_sum_exists_resultsliceoutput_tableentryvalue) /\ (ge_balance_negative_sum_exists_resultsliceoutput_tableentryvalue) = 0) \/ exists ge_signed_half_sum_exists_resultsliceoutput_tableentryvaluedecode. (((dst_value_sum_exists_resultsliceoutput_table) = 2 * ge_signed_half_sum_exists_resultsliceoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_sum_exists_resultsliceoutput_tableentryvalue) = 0) /\ (ge_balance_negative_sum_exists_resultsliceoutput_tableentryvalue) = S ge_signed_half_sum_exists_resultsliceoutput_tableentryvaluedecode))) /\ ((dst_positive_sum_exists_resultsliceoutput_table) + ge_balance_negative_sum_exists_resultsliceoutput_tableentryvalue = (dst_negative_sum_exists_resultsliceoutput_table) + ge_balance_positive_sum_exists_resultsliceoutput_tableentryvalue))))))))) /\ (forall srs_index_sum_exists_resultslice. (exists pvs_gap_sum_exists_resultslicebound. pvs_gap_sum_exists_resultslicebound + S (srs_index_sum_exists_resultslice) = (l)) -> exists srs_value_sum_exists_resultslice. (((exists dst_positive_code_sum_exists_resultsliceentrysource dst_positive_scale_sum_exists_resultsliceentrysource dst_negative_code_sum_exists_resultsliceentrysource dst_negative_scale_sum_exists_resultsliceentrysource dst_positive_sum_exists_resultsliceentrysource dst_negative_sum_exists_resultsliceentrysource. (((F) = (((((dst_positive_code_sum_exists_resultsliceentrysource) + (dst_positive_scale_sum_exists_resultsliceentrysource)) * S ((dst_positive_code_sum_exists_resultsliceentrysource) + (dst_positive_scale_sum_exists_resultsliceentrysource)) + ((dst_positive_scale_sum_exists_resultsliceentrysource) + (dst_positive_scale_sum_exists_resultsliceentrysource))) + (((dst_negative_code_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)) * S ((dst_negative_code_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)) + ((dst_negative_scale_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)))) * S ((((dst_positive_code_sum_exists_resultsliceentrysource) + (dst_positive_scale_sum_exists_resultsliceentrysource)) * S ((dst_positive_code_sum_exists_resultsliceentrysource) + (dst_positive_scale_sum_exists_resultsliceentrysource)) + ((dst_positive_scale_sum_exists_resultsliceentrysource) + (dst_positive_scale_sum_exists_resultsliceentrysource))) + (((dst_negative_code_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)) * S ((dst_negative_code_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)) + ((dst_negative_scale_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)))) + ((((dst_negative_code_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)) * S ((dst_negative_code_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)) + ((dst_negative_scale_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource))) + (((dst_negative_code_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)) * S ((dst_negative_code_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)) + ((dst_negative_scale_sum_exists_resultsliceentrysource) + (dst_negative_scale_sum_exists_resultsliceentrysource)))))) /\ (((((exists ff_h_pvs_sum_exists_resultsliceentrysourcepositive. ff_h_pvs_sum_exists_resultsliceentrysourcepositive + S (dst_positive_sum_exists_resultsliceentrysource) = S ((S (((o) + ((s) * (srs_index_sum_exists_resultslice))))) * dst_positive_scale_sum_exists_resultsliceentrysource)) /\ exists ff_q_pvs_sum_exists_resultsliceentrysourcepositive. dst_positive_code_sum_exists_resultsliceentrysource = ff_q_pvs_sum_exists_resultsliceentrysourcepositive * S ((S (((o) + ((s) * (srs_index_sum_exists_resultslice))))) * dst_positive_scale_sum_exists_resultsliceentrysource) + (dst_positive_sum_exists_resultsliceentrysource))) /\ (((((exists ff_h_pvs_sum_exists_resultsliceentrysourcenegative. ff_h_pvs_sum_exists_resultsliceentrysourcenegative + S (dst_negative_sum_exists_resultsliceentrysource) = S ((S (((o) + ((s) * (srs_index_sum_exists_resultslice))))) * dst_negative_scale_sum_exists_resultsliceentrysource)) /\ exists ff_q_pvs_sum_exists_resultsliceentrysourcenegative. dst_negative_code_sum_exists_resultsliceentrysource = ff_q_pvs_sum_exists_resultsliceentrysourcenegative * S ((S (((o) + ((s) * (srs_index_sum_exists_resultslice))))) * dst_negative_scale_sum_exists_resultsliceentrysource) + (dst_negative_sum_exists_resultsliceentrysource))) /\ (exists ge_balance_positive_sum_exists_resultsliceentrysourcevalue ge_balance_negative_sum_exists_resultsliceentrysourcevalue. (((((srs_value_sum_exists_resultslice) = 2 * (ge_balance_positive_sum_exists_resultsliceentrysourcevalue) /\ (ge_balance_negative_sum_exists_resultsliceentrysourcevalue) = 0) \/ exists ge_signed_half_sum_exists_resultsliceentrysourcevaluedecode. (((srs_value_sum_exists_resultslice) = 2 * ge_signed_half_sum_exists_resultsliceentrysourcevaluedecode + 1 /\ (ge_balance_positive_sum_exists_resultsliceentrysourcevalue) = 0) /\ (ge_balance_negative_sum_exists_resultsliceentrysourcevalue) = S ge_signed_half_sum_exists_resultsliceentrysourcevaluedecode))) /\ ((dst_positive_sum_exists_resultsliceentrysource) + ge_balance_negative_sum_exists_resultsliceentrysourcevalue = (dst_negative_sum_exists_resultsliceentrysource) + ge_balance_positive_sum_exists_resultsliceentrysourcevalue))))))))) /\ (exists dst_positive_code_sum_exists_resultsliceentryoutput dst_positive_scale_sum_exists_resultsliceentryoutput dst_negative_code_sum_exists_resultsliceentryoutput dst_negative_scale_sum_exists_resultsliceentryoutput dst_positive_sum_exists_resultsliceentryoutput dst_negative_sum_exists_resultsliceentryoutput. (((srs_slice_sum_exists_result) = (((((dst_positive_code_sum_exists_resultsliceentryoutput) + (dst_positive_scale_sum_exists_resultsliceentryoutput)) * S ((dst_positive_code_sum_exists_resultsliceentryoutput) + (dst_positive_scale_sum_exists_resultsliceentryoutput)) + ((dst_positive_scale_sum_exists_resultsliceentryoutput) + (dst_positive_scale_sum_exists_resultsliceentryoutput))) + (((dst_negative_code_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)) * S ((dst_negative_code_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)) + ((dst_negative_scale_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)))) * S ((((dst_positive_code_sum_exists_resultsliceentryoutput) + (dst_positive_scale_sum_exists_resultsliceentryoutput)) * S ((dst_positive_code_sum_exists_resultsliceentryoutput) + (dst_positive_scale_sum_exists_resultsliceentryoutput)) + ((dst_positive_scale_sum_exists_resultsliceentryoutput) + (dst_positive_scale_sum_exists_resultsliceentryoutput))) + (((dst_negative_code_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)) * S ((dst_negative_code_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)) + ((dst_negative_scale_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)))) + ((((dst_negative_code_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)) * S ((dst_negative_code_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)) + ((dst_negative_scale_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput))) + (((dst_negative_code_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)) * S ((dst_negative_code_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)) + ((dst_negative_scale_sum_exists_resultsliceentryoutput) + (dst_negative_scale_sum_exists_resultsliceentryoutput)))))) /\ (((((exists ff_h_pvs_sum_exists_resultsliceentryoutputpositive. ff_h_pvs_sum_exists_resultsliceentryoutputpositive + S (dst_positive_sum_exists_resultsliceentryoutput) = S ((S (srs_index_sum_exists_resultslice)) * dst_positive_scale_sum_exists_resultsliceentryoutput)) /\ exists ff_q_pvs_sum_exists_resultsliceentryoutputpositive. dst_positive_code_sum_exists_resultsliceentryoutput = ff_q_pvs_sum_exists_resultsliceentryoutputpositive * S ((S (srs_index_sum_exists_resultslice)) * dst_positive_scale_sum_exists_resultsliceentryoutput) + (dst_positive_sum_exists_resultsliceentryoutput))) /\ (((((exists ff_h_pvs_sum_exists_resultsliceentryoutputnegative. ff_h_pvs_sum_exists_resultsliceentryoutputnegative + S (dst_negative_sum_exists_resultsliceentryoutput) = S ((S (srs_index_sum_exists_resultslice)) * dst_negative_scale_sum_exists_resultsliceentryoutput)) /\ exists ff_q_pvs_sum_exists_resultsliceentryoutputnegative. dst_negative_code_sum_exists_resultsliceentryoutput = ff_q_pvs_sum_exists_resultsliceentryoutputnegative * S ((S (srs_index_sum_exists_resultslice)) * dst_negative_scale_sum_exists_resultsliceentryoutput) + (dst_negative_sum_exists_resultsliceentryoutput))) /\ (exists ge_balance_positive_sum_exists_resultsliceentryoutputvalue ge_balance_negative_sum_exists_resultsliceentryoutputvalue. (((((srs_value_sum_exists_resultslice) = 2 * (ge_balance_positive_sum_exists_resultsliceentryoutputvalue) /\ (ge_balance_negative_sum_exists_resultsliceentryoutputvalue) = 0) \/ exists ge_signed_half_sum_exists_resultsliceentryoutputvaluedecode. (((srs_value_sum_exists_resultslice) = 2 * ge_signed_half_sum_exists_resultsliceentryoutputvaluedecode + 1 /\ (ge_balance_positive_sum_exists_resultsliceentryoutputvalue) = 0) /\ (ge_balance_negative_sum_exists_resultsliceentryoutputvalue) = S ge_signed_half_sum_exists_resultsliceentryoutputvaluedecode))) /\ ((dst_positive_sum_exists_resultsliceentryoutput) + ge_balance_negative_sum_exists_resultsliceentryoutputvalue = (dst_negative_sum_exists_resultsliceentryoutput) + ge_balance_positive_sum_exists_resultsliceentryoutputvalue)))))))))))))))) /\ (exists dst_positive_code_sum_exists_resultsum dst_positive_scale_sum_exists_resultsum dst_negative_code_sum_exists_resultsum dst_negative_scale_sum_exists_resultsum dst_positive_sum_sum_exists_resultsum dst_negative_sum_sum_exists_resultsum. (((srs_slice_sum_exists_result) = (((((dst_positive_code_sum_exists_resultsum) + (dst_positive_scale_sum_exists_resultsum)) * S ((dst_positive_code_sum_exists_resultsum) + (dst_positive_scale_sum_exists_resultsum)) + ((dst_positive_scale_sum_exists_resultsum) + (dst_positive_scale_sum_exists_resultsum))) + (((dst_negative_code_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)) * S ((dst_negative_code_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)) + ((dst_negative_scale_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)))) * S ((((dst_positive_code_sum_exists_resultsum) + (dst_positive_scale_sum_exists_resultsum)) * S ((dst_positive_code_sum_exists_resultsum) + (dst_positive_scale_sum_exists_resultsum)) + ((dst_positive_scale_sum_exists_resultsum) + (dst_positive_scale_sum_exists_resultsum))) + (((dst_negative_code_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)) * S ((dst_negative_code_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)) + ((dst_negative_scale_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)))) + ((((dst_negative_code_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)) * S ((dst_negative_code_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)) + ((dst_negative_scale_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum))) + (((dst_negative_code_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)) * S ((dst_negative_code_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)) + ((dst_negative_scale_sum_exists_resultsum) + (dst_negative_scale_sum_exists_resultsum)))))) /\ (((exists fs_u_dst_sum_exists_resultsumpositive fs_v_dst_sum_exists_resultsumpositive. ((((exists fs_h_dst_sum_exists_resultsumpositive_body_start. fs_h_dst_sum_exists_resultsumpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_exists_resultsumpositive)) /\ exists fs_q_dst_sum_exists_resultsumpositive_body_start. fs_u_dst_sum_exists_resultsumpositive = fs_q_dst_sum_exists_resultsumpositive_body_start * S ((S (0)) * fs_v_dst_sum_exists_resultsumpositive) + (0))) /\ ((((exists fs_h_dst_sum_exists_resultsumpositive_body_terminal. fs_h_dst_sum_exists_resultsumpositive_body_terminal + S (dst_positive_sum_sum_exists_resultsum) = S ((S (l)) * fs_v_dst_sum_exists_resultsumpositive)) /\ exists fs_q_dst_sum_exists_resultsumpositive_body_terminal. fs_u_dst_sum_exists_resultsumpositive = fs_q_dst_sum_exists_resultsumpositive_body_terminal * S ((S (l)) * fs_v_dst_sum_exists_resultsumpositive) + (dst_positive_sum_sum_exists_resultsum))) /\ forall fs_i_dst_sum_exists_resultsumpositive_body_steps. (exists fs_lt_dst_sum_exists_resultsumpositive_body_steps_bound. fs_lt_dst_sum_exists_resultsumpositive_body_steps_bound + S fs_i_dst_sum_exists_resultsumpositive_body_steps = l) -> exists fs_a_dst_sum_exists_resultsumpositive_body_steps fs_r_dst_sum_exists_resultsumpositive_body_steps fs_s_dst_sum_exists_resultsumpositive_body_steps. ((((exists fs_h_dst_sum_exists_resultsumpositive_body_steps_summand. fs_h_dst_sum_exists_resultsumpositive_body_steps_summand + S (fs_a_dst_sum_exists_resultsumpositive_body_steps) = S ((S (fs_i_dst_sum_exists_resultsumpositive_body_steps)) * dst_positive_scale_sum_exists_resultsum)) /\ exists fs_q_dst_sum_exists_resultsumpositive_body_steps_summand. dst_positive_code_sum_exists_resultsum = fs_q_dst_sum_exists_resultsumpositive_body_steps_summand * S ((S (fs_i_dst_sum_exists_resultsumpositive_body_steps)) * dst_positive_scale_sum_exists_resultsum) + (fs_a_dst_sum_exists_resultsumpositive_body_steps))) /\ ((((exists fs_h_dst_sum_exists_resultsumpositive_body_steps_partial. fs_h_dst_sum_exists_resultsumpositive_body_steps_partial + S (fs_r_dst_sum_exists_resultsumpositive_body_steps) = S ((S (fs_i_dst_sum_exists_resultsumpositive_body_steps)) * fs_v_dst_sum_exists_resultsumpositive)) /\ exists fs_q_dst_sum_exists_resultsumpositive_body_steps_partial. fs_u_dst_sum_exists_resultsumpositive = fs_q_dst_sum_exists_resultsumpositive_body_steps_partial * S ((S (fs_i_dst_sum_exists_resultsumpositive_body_steps)) * fs_v_dst_sum_exists_resultsumpositive) + (fs_r_dst_sum_exists_resultsumpositive_body_steps))) /\ ((((exists fs_h_dst_sum_exists_resultsumpositive_body_steps_successor. fs_h_dst_sum_exists_resultsumpositive_body_steps_successor + S (fs_s_dst_sum_exists_resultsumpositive_body_steps) = S ((S (S fs_i_dst_sum_exists_resultsumpositive_body_steps)) * fs_v_dst_sum_exists_resultsumpositive)) /\ exists fs_q_dst_sum_exists_resultsumpositive_body_steps_successor. fs_u_dst_sum_exists_resultsumpositive = fs_q_dst_sum_exists_resultsumpositive_body_steps_successor * S ((S (S fs_i_dst_sum_exists_resultsumpositive_body_steps)) * fs_v_dst_sum_exists_resultsumpositive) + (fs_s_dst_sum_exists_resultsumpositive_body_steps))) /\ fs_s_dst_sum_exists_resultsumpositive_body_steps = fs_r_dst_sum_exists_resultsumpositive_body_steps + fs_a_dst_sum_exists_resultsumpositive_body_steps)))))) /\ (((exists fs_u_dst_sum_exists_resultsumnegative fs_v_dst_sum_exists_resultsumnegative. ((((exists fs_h_dst_sum_exists_resultsumnegative_body_start. fs_h_dst_sum_exists_resultsumnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_sum_exists_resultsumnegative)) /\ exists fs_q_dst_sum_exists_resultsumnegative_body_start. fs_u_dst_sum_exists_resultsumnegative = fs_q_dst_sum_exists_resultsumnegative_body_start * S ((S (0)) * fs_v_dst_sum_exists_resultsumnegative) + (0))) /\ ((((exists fs_h_dst_sum_exists_resultsumnegative_body_terminal. fs_h_dst_sum_exists_resultsumnegative_body_terminal + S (dst_negative_sum_sum_exists_resultsum) = S ((S (l)) * fs_v_dst_sum_exists_resultsumnegative)) /\ exists fs_q_dst_sum_exists_resultsumnegative_body_terminal. fs_u_dst_sum_exists_resultsumnegative = fs_q_dst_sum_exists_resultsumnegative_body_terminal * S ((S (l)) * fs_v_dst_sum_exists_resultsumnegative) + (dst_negative_sum_sum_exists_resultsum))) /\ forall fs_i_dst_sum_exists_resultsumnegative_body_steps. (exists fs_lt_dst_sum_exists_resultsumnegative_body_steps_bound. fs_lt_dst_sum_exists_resultsumnegative_body_steps_bound + S fs_i_dst_sum_exists_resultsumnegative_body_steps = l) -> exists fs_a_dst_sum_exists_resultsumnegative_body_steps fs_r_dst_sum_exists_resultsumnegative_body_steps fs_s_dst_sum_exists_resultsumnegative_body_steps. ((((exists fs_h_dst_sum_exists_resultsumnegative_body_steps_summand. fs_h_dst_sum_exists_resultsumnegative_body_steps_summand + S (fs_a_dst_sum_exists_resultsumnegative_body_steps) = S ((S (fs_i_dst_sum_exists_resultsumnegative_body_steps)) * dst_negative_scale_sum_exists_resultsum)) /\ exists fs_q_dst_sum_exists_resultsumnegative_body_steps_summand. dst_negative_code_sum_exists_resultsum = fs_q_dst_sum_exists_resultsumnegative_body_steps_summand * S ((S (fs_i_dst_sum_exists_resultsumnegative_body_steps)) * dst_negative_scale_sum_exists_resultsum) + (fs_a_dst_sum_exists_resultsumnegative_body_steps))) /\ ((((exists fs_h_dst_sum_exists_resultsumnegative_body_steps_partial. fs_h_dst_sum_exists_resultsumnegative_body_steps_partial + S (fs_r_dst_sum_exists_resultsumnegative_body_steps) = S ((S (fs_i_dst_sum_exists_resultsumnegative_body_steps)) * fs_v_dst_sum_exists_resultsumnegative)) /\ exists fs_q_dst_sum_exists_resultsumnegative_body_steps_partial. fs_u_dst_sum_exists_resultsumnegative = fs_q_dst_sum_exists_resultsumnegative_body_steps_partial * S ((S (fs_i_dst_sum_exists_resultsumnegative_body_steps)) * fs_v_dst_sum_exists_resultsumnegative) + (fs_r_dst_sum_exists_resultsumnegative_body_steps))) /\ ((((exists fs_h_dst_sum_exists_resultsumnegative_body_steps_successor. fs_h_dst_sum_exists_resultsumnegative_body_steps_successor + S (fs_s_dst_sum_exists_resultsumnegative_body_steps) = S ((S (S fs_i_dst_sum_exists_resultsumnegative_body_steps)) * fs_v_dst_sum_exists_resultsumnegative)) /\ exists fs_q_dst_sum_exists_resultsumnegative_body_steps_successor. fs_u_dst_sum_exists_resultsumnegative = fs_q_dst_sum_exists_resultsumnegative_body_steps_successor * S ((S (S fs_i_dst_sum_exists_resultsumnegative_body_steps)) * fs_v_dst_sum_exists_resultsumnegative) + (fs_s_dst_sum_exists_resultsumnegative_body_steps))) /\ fs_s_dst_sum_exists_resultsumnegative_body_steps = fs_r_dst_sum_exists_resultsumnegative_body_steps + fs_a_dst_sum_exists_resultsumnegative_body_steps)))))) /\ (exists ge_balance_positive_sum_exists_resultsumresult ge_balance_negative_sum_exists_resultsumresult. (((((z) = 2 * (ge_balance_positive_sum_exists_resultsumresult) /\ (ge_balance_negative_sum_exists_resultsumresult) = 0) \/ exists ge_signed_half_sum_exists_resultsumresultdecode. (((z) = 2 * ge_signed_half_sum_exists_resultsumresultdecode + 1 /\ (ge_balance_positive_sum_exists_resultsumresult) = 0) /\ (ge_balance_negative_sum_exists_resultsumresult) = S ge_signed_half_sum_exists_resultsumresultdecode))) /\ ((dst_positive_sum_sum_exists_resultsum) + ge_balance_negative_sum_exists_resultsumresult = (dst_negative_sum_sum_exists_resultsum) + ge_balance_positive_sum_exists_resultsumresult)))))))))))

Complete tactic proof in conservative notation

All 27 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

27 script commands · 10 reading checkpoints · 2 local claims

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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (1)
01Fix variables and assumptionsL1–5

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro F
  2. L2
    intro o
  3. L3
    intro s
  4. L4
    intro l
  5. L5
    intro hF
02Establish hgL6–12

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed rectangular slice exists.

  1. L6
    have hg : ∃ G. ArithSlice(F,G,o,s,l)Definitions: ArithSlice(F,G,o,s,l)Original native command in the exact edition
  2. L7
    specialize signed_rectangular_slice_exists (l)
  3. L8
    specialize signed_rectangular_slice_exists (F)
  4. L9
    specialize signed_rectangular_slice_exists (o)
  5. L10
    specialize signed_rectangular_slice_exists (s)
  6. L11
    apply signed_rectangular_slice_exists
  7. L12
    exact hF
03Separate the logical casesL13–13

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L13
    cases hg
04Establish hzL14–18

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed sum exists.

  1. L14
    have hz : ∃ z. SignedPrefixSum(x,l,z)Definitions: SignedPrefixSum(x,l,z)Original native command in the exact edition
  2. L15
    specialize arithmetic_signed_sum_exists (l)
  3. L16
    specialize arithmetic_signed_sum_exists (x)
  4. L17
    specialize arithmetic_signed_sum_exists (l)
  5. L18
    apply arithmetic_signed_sum_exists
05Separate the logical casesL19–20

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L19
    cases hg_witness
  2. L20
    cases hg_witness_right
06Use earlier factsL21–21

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L21
    exact hg_witness_right_left
07Separate the logical casesL22–22

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L22
    cases hz
08Construct an explicit witnessL23–24

Supply the displayed value, then prove that it has the required property.

  1. L23
    exists x1
  2. L24
    exists x
09Separate the logical casesL25–25

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L25
    split
10Use earlier factsL26–27

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L26
    exact hg_witness
  2. L27
    exact hz_witness

Library-wide reading audit

Original defined command ledger · 27 lines
  1. 0001intro F
  2. 0002intro o
  3. 0003intro s
  4. 0004intro l
  5. 0005intro hF
  6. 0006have hg : ∃ G. ArithSlice(F,G,o,s,l)
  7. 0007specialize signed_rectangular_slice_exists (l)
  8. 0008specialize signed_rectangular_slice_exists (F)
  9. 0009specialize signed_rectangular_slice_exists (o)
  10. 0010specialize signed_rectangular_slice_exists (s)
  11. 0011apply signed_rectangular_slice_exists
  12. 0012exact hF
  13. 0013cases hg
  14. 0014have hz : ∃ z. SignedPrefixSum(x,l,z)
  15. 0015specialize arithmetic_signed_sum_exists (l)
  16. 0016specialize arithmetic_signed_sum_exists (x)
  17. 0017specialize arithmetic_signed_sum_exists (l)
  18. 0018apply arithmetic_signed_sum_exists
  19. 0019cases hg_witness
  20. 0020cases hg_witness_right
  21. 0021exact hg_witness_right_left
  22. 0022cases hz
  23. 0023exists x1
  24. 0024exists x
  25. 0025split
  26. 0026exact hg_witness
  27. 0027exact hz_witness