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 A r s M l T z. (((exists dst_positive_code_prefix_append_inputtable dst_positive_scale_prefix_append_inputtable dst_negative_code_prefix_append_inputtable dst_negative_scale_prefix_append_inputtable. (((T) = (((((dst_positive_code_prefix_append_inputtable) + (dst_positive_scale_prefix_append_inputtable)) * S ((dst_positive_code_prefix_append_inputtable) + (dst_positive_scale_prefix_append_inputtable)) + ((dst_positive_scale_prefix_append_inputtable) + (dst_positive_scale_prefix_append_inputtable))) + (((dst_negative_code_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)) * S ((dst_negative_code_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)) + ((dst_negative_scale_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)))) * S ((((dst_positive_code_prefix_append_inputtable) + (dst_positive_scale_prefix_append_inputtable)) * S ((dst_positive_code_prefix_append_inputtable) + (dst_positive_scale_prefix_append_inputtable)) + ((dst_positive_scale_prefix_append_inputtable) + (dst_positive_scale_prefix_append_inputtable))) + (((dst_negative_code_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)) * S ((dst_negative_code_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)) + ((dst_negative_scale_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)))) + ((((dst_negative_code_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)) * S ((dst_negative_code_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)) + ((dst_negative_scale_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable))) + (((dst_negative_code_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)) * S ((dst_negative_code_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)) + ((dst_negative_scale_prefix_append_inputtable) + (dst_negative_scale_prefix_append_inputtable)))))) /\ (forall dst_index_prefix_append_inputtable. (exists pvs_le_gap_prefix_append_inputtabledomain. pvs_le_gap_prefix_append_inputtabledomain + (dst_index_prefix_append_inputtable) = (l)) -> exists dst_positive_prefix_append_inputtable dst_negative_prefix_append_inputtable dst_value_prefix_append_inputtable. ((((exists ff_h_pvs_prefix_append_inputtableentrypositive. ff_h_pvs_prefix_append_inputtableentrypositive + S (dst_positive_prefix_append_inputtable) = S ((S (dst_index_prefix_append_inputtable)) * dst_positive_scale_prefix_append_inputtable)) /\ exists ff_q_pvs_prefix_append_inputtableentrypositive. dst_positive_code_prefix_append_inputtable = ff_q_pvs_prefix_append_inputtableentrypositive * S ((S (dst_index_prefix_append_inputtable)) * dst_positive_scale_prefix_append_inputtable) + (dst_positive_prefix_append_inputtable))) /\ (((((exists ff_h_pvs_prefix_append_inputtableentrynegative. ff_h_pvs_prefix_append_inputtableentrynegative + S (dst_negative_prefix_append_inputtable) = S ((S (dst_index_prefix_append_inputtable)) * dst_negative_scale_prefix_append_inputtable)) /\ exists ff_q_pvs_prefix_append_inputtableentrynegative. dst_negative_code_prefix_append_inputtable = ff_q_pvs_prefix_append_inputtableentrynegative * S ((S (dst_index_prefix_append_inputtable)) * dst_negative_scale_prefix_append_inputtable) + (dst_negative_prefix_append_inputtable))) /\ (exists ge_balance_positive_prefix_append_inputtableentryvalue ge_balance_negative_prefix_append_inputtableentryvalue. (((((dst_value_prefix_append_inputtable) = 2 * (ge_balance_positive_prefix_append_inputtableentryvalue) /\ (ge_balance_negative_prefix_append_inputtableentryvalue) = 0) \/ exists ge_signed_half_prefix_append_inputtableentryvaluedecode. (((dst_value_prefix_append_inputtable) = 2 * ge_signed_half_prefix_append_inputtableentryvaluedecode + 1 /\ (ge_balance_positive_prefix_append_inputtableentryvalue) = 0) /\ (ge_balance_negative_prefix_append_inputtableentryvalue) = S ge_signed_half_prefix_append_inputtableentryvaluedecode))) /\ ((dst_positive_prefix_append_inputtable) + ge_balance_negative_prefix_append_inputtableentryvalue = (dst_negative_prefix_append_inputtable) + ge_balance_positive_prefix_append_inputtableentryvalue))))))))) /\ (forall ssr_prefix_index_prefix_append_input ssr_prefix_value_prefix_append_input. (exists pvs_le_gap_prefix_append_inputbound. pvs_le_gap_prefix_append_inputbound + (ssr_prefix_index_prefix_append_input) = (l)) -> (exists dst_positive_code_prefix_append_inputlookup dst_positive_scale_prefix_append_inputlookup dst_negative_code_prefix_append_inputlookup dst_negative_scale_prefix_append_inputlookup dst_positive_prefix_append_inputlookup dst_negative_prefix_append_inputlookup. (((T) = (((((dst_positive_code_prefix_append_inputlookup) + (dst_positive_scale_prefix_append_inputlookup)) * S ((dst_positive_code_prefix_append_inputlookup) + (dst_positive_scale_prefix_append_inputlookup)) + ((dst_positive_scale_prefix_append_inputlookup) + (dst_positive_scale_prefix_append_inputlookup))) + (((dst_negative_code_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)) * S ((dst_negative_code_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)) + ((dst_negative_scale_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)))) * S ((((dst_positive_code_prefix_append_inputlookup) + (dst_positive_scale_prefix_append_inputlookup)) * S ((dst_positive_code_prefix_append_inputlookup) + (dst_positive_scale_prefix_append_inputlookup)) + ((dst_positive_scale_prefix_append_inputlookup) + (dst_positive_scale_prefix_append_inputlookup))) + (((dst_negative_code_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)) * S ((dst_negative_code_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)) + ((dst_negative_scale_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)))) + ((((dst_negative_code_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)) * S ((dst_negative_code_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)) + ((dst_negative_scale_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup))) + (((dst_negative_code_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)) * S ((dst_negative_code_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)) + ((dst_negative_scale_prefix_append_inputlookup) + (dst_negative_scale_prefix_append_inputlookup)))))) /\ (((((exists ff_h_pvs_prefix_append_inputlookuppositive. ff_h_pvs_prefix_append_inputlookuppositive + S (dst_positive_prefix_append_inputlookup) = S ((S (ssr_prefix_index_prefix_append_input)) * dst_positive_scale_prefix_append_inputlookup)) /\ exists ff_q_pvs_prefix_append_inputlookuppositive. dst_positive_code_prefix_append_inputlookup = ff_q_pvs_prefix_append_inputlookuppositive * S ((S (ssr_prefix_index_prefix_append_input)) * dst_positive_scale_prefix_append_inputlookup) + (dst_positive_prefix_append_inputlookup))) /\ (((((exists ff_h_pvs_prefix_append_inputlookupnegative. ff_h_pvs_prefix_append_inputlookupnegative + S (dst_negative_prefix_append_inputlookup) = S ((S (ssr_prefix_index_prefix_append_input)) * dst_negative_scale_prefix_append_inputlookup)) /\ exists ff_q_pvs_prefix_append_inputlookupnegative. dst_negative_code_prefix_append_inputlookup = ff_q_pvs_prefix_append_inputlookupnegative * S ((S (ssr_prefix_index_prefix_append_input)) * dst_negative_scale_prefix_append_inputlookup) + (dst_negative_prefix_append_inputlookup))) /\ (exists ge_balance_positive_prefix_append_inputlookupvalue ge_balance_negative_prefix_append_inputlookupvalue. (((((ssr_prefix_value_prefix_append_input) = 2 * (ge_balance_positive_prefix_append_inputlookupvalue) /\ (ge_balance_negative_prefix_append_inputlookupvalue) = 0) \/ exists ge_signed_half_prefix_append_inputlookupvaluedecode. (((ssr_prefix_value_prefix_append_input) = 2 * ge_signed_half_prefix_append_inputlookupvaluedecode + 1 /\ (ge_balance_positive_prefix_append_inputlookupvalue) = 0) /\ (ge_balance_negative_prefix_append_inputlookupvalue) = S ge_signed_half_prefix_append_inputlookupvaluedecode))) /\ ((dst_positive_prefix_append_inputlookup) + ge_balance_negative_prefix_append_inputlookupvalue = (dst_negative_prefix_append_inputlookup) + ge_balance_positive_prefix_append_inputlookupvalue))))))))) -> (exists ssr_flat_row_prefix_append_inputentry ssr_flat_column_prefix_append_inputentry. (((ssr_prefix_index_prefix_append_input)=(((S (M))*(ssr_flat_row_prefix_append_inputentry)+(ssr_flat_column_prefix_append_inputentry)))) /\ (((exists pvs_gap_prefix_append_inputentryremainder. pvs_gap_prefix_append_inputentryremainder + S (ssr_flat_column_prefix_append_inputentry) = (S (M))) /\ (exists ssr_entry_value_prefix_append_inputentryentry ssr_entry_image_prefix_append_inputentryentry. ((exists dst_positive_code_prefix_append_inputentryentrysource dst_positive_scale_prefix_append_inputentryentrysource dst_negative_code_prefix_append_inputentryentrysource dst_negative_scale_prefix_append_inputentryentrysource dst_positive_prefix_append_inputentryentrysource dst_negative_prefix_append_inputentryentrysource. (((A) = (((((dst_positive_code_prefix_append_inputentryentrysource) + (dst_positive_scale_prefix_append_inputentryentrysource)) * S ((dst_positive_code_prefix_append_inputentryentrysource) + (dst_positive_scale_prefix_append_inputentryentrysource)) + ((dst_positive_scale_prefix_append_inputentryentrysource) + (dst_positive_scale_prefix_append_inputentryentrysource))) + (((dst_negative_code_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)) * S ((dst_negative_code_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)) + ((dst_negative_scale_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)))) * S ((((dst_positive_code_prefix_append_inputentryentrysource) + (dst_positive_scale_prefix_append_inputentryentrysource)) * S ((dst_positive_code_prefix_append_inputentryentrysource) + (dst_positive_scale_prefix_append_inputentryentrysource)) + ((dst_positive_scale_prefix_append_inputentryentrysource) + (dst_positive_scale_prefix_append_inputentryentrysource))) + (((dst_negative_code_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)) * S ((dst_negative_code_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)) + ((dst_negative_scale_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)))) + ((((dst_negative_code_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)) * S ((dst_negative_code_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)) + ((dst_negative_scale_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource))) + (((dst_negative_code_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)) * S ((dst_negative_code_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)) + ((dst_negative_scale_prefix_append_inputentryentrysource) + (dst_negative_scale_prefix_append_inputentryentrysource)))))) /\ (((((exists ff_h_pvs_prefix_append_inputentryentrysourcepositive. ff_h_pvs_prefix_append_inputentryentrysourcepositive + S (dst_positive_prefix_append_inputentryentrysource) = S ((S (ssr_flat_row_prefix_append_inputentry)) * dst_positive_scale_prefix_append_inputentryentrysource)) /\ exists ff_q_pvs_prefix_append_inputentryentrysourcepositive. dst_positive_code_prefix_append_inputentryentrysource = ff_q_pvs_prefix_append_inputentryentrysourcepositive * S ((S (ssr_flat_row_prefix_append_inputentry)) * dst_positive_scale_prefix_append_inputentryentrysource) + (dst_positive_prefix_append_inputentryentrysource))) /\ (((((exists ff_h_pvs_prefix_append_inputentryentrysourcenegative. ff_h_pvs_prefix_append_inputentryentrysourcenegative + S (dst_negative_prefix_append_inputentryentrysource) = S ((S (ssr_flat_row_prefix_append_inputentry)) * dst_negative_scale_prefix_append_inputentryentrysource)) /\ exists ff_q_pvs_prefix_append_inputentryentrysourcenegative. dst_negative_code_prefix_append_inputentryentrysource = ff_q_pvs_prefix_append_inputentryentrysourcenegative * S ((S (ssr_flat_row_prefix_append_inputentry)) * dst_negative_scale_prefix_append_inputentryentrysource) + (dst_negative_prefix_append_inputentryentrysource))) /\ (exists ge_balance_positive_prefix_append_inputentryentrysourcevalue ge_balance_negative_prefix_append_inputentryentrysourcevalue. (((((ssr_entry_value_prefix_append_inputentryentry) = 2 * (ge_balance_positive_prefix_append_inputentryentrysourcevalue) /\ (ge_balance_negative_prefix_append_inputentryentrysourcevalue) = 0) \/ exists ge_signed_half_prefix_append_inputentryentrysourcevaluedecode. (((ssr_entry_value_prefix_append_inputentryentry) = 2 * ge_signed_half_prefix_append_inputentryentrysourcevaluedecode + 1 /\ (ge_balance_positive_prefix_append_inputentryentrysourcevalue) = 0) /\ (ge_balance_negative_prefix_append_inputentryentrysourcevalue) = S ge_signed_half_prefix_append_inputentryentrysourcevaluedecode))) /\ ((dst_positive_prefix_append_inputentryentrysource) + ge_balance_negative_prefix_append_inputentryentrysourcevalue = (dst_negative_prefix_append_inputentryentrysource) + ge_balance_positive_prefix_append_inputentryentrysourcevalue))))))))) /\ (((((exists ff_h_pvs_prefix_append_inputentryentrymap. ff_h_pvs_prefix_append_inputentryentrymap + S (ssr_entry_image_prefix_append_inputentryentry) = S ((S (ssr_flat_row_prefix_append_inputentry)) * s)) /\ exists ff_q_pvs_prefix_append_inputentryentrymap. r = ff_q_pvs_prefix_append_inputentryentrymap * S ((S (ssr_flat_row_prefix_append_inputentry)) * s) + (ssr_entry_image_prefix_append_inputentryentry))) /\ (((((ssr_flat_column_prefix_append_inputentry)=(ssr_entry_image_prefix_append_inputentryentry)) /\ ((ssr_prefix_value_prefix_append_input)=(ssr_entry_value_prefix_append_inputentryentry)))) \/ (((~((ssr_flat_column_prefix_append_inputentry)=(ssr_entry_image_prefix_append_inputentryentry))) /\ ((ssr_prefix_value_prefix_append_input)=0))))))))))))))) -> (exists ssr_flat_row_prefix_append_value ssr_flat_column_prefix_append_value. (((S l)=(((S (M))*(ssr_flat_row_prefix_append_value)+(ssr_flat_column_prefix_append_value)))) /\ (((exists pvs_gap_prefix_append_valueremainder. pvs_gap_prefix_append_valueremainder + S (ssr_flat_column_prefix_append_value) = (S (M))) /\ (exists ssr_entry_value_prefix_append_valueentry ssr_entry_image_prefix_append_valueentry. ((exists dst_positive_code_prefix_append_valueentrysource dst_positive_scale_prefix_append_valueentrysource dst_negative_code_prefix_append_valueentrysource dst_negative_scale_prefix_append_valueentrysource dst_positive_prefix_append_valueentrysource dst_negative_prefix_append_valueentrysource. (((A) = (((((dst_positive_code_prefix_append_valueentrysource) + (dst_positive_scale_prefix_append_valueentrysource)) * S ((dst_positive_code_prefix_append_valueentrysource) + (dst_positive_scale_prefix_append_valueentrysource)) + ((dst_positive_scale_prefix_append_valueentrysource) + (dst_positive_scale_prefix_append_valueentrysource))) + (((dst_negative_code_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)) * S ((dst_negative_code_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)) + ((dst_negative_scale_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)))) * S ((((dst_positive_code_prefix_append_valueentrysource) + (dst_positive_scale_prefix_append_valueentrysource)) * S ((dst_positive_code_prefix_append_valueentrysource) + (dst_positive_scale_prefix_append_valueentrysource)) + ((dst_positive_scale_prefix_append_valueentrysource) + (dst_positive_scale_prefix_append_valueentrysource))) + (((dst_negative_code_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)) * S ((dst_negative_code_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)) + ((dst_negative_scale_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)))) + ((((dst_negative_code_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)) * S ((dst_negative_code_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)) + ((dst_negative_scale_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource))) + (((dst_negative_code_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)) * S ((dst_negative_code_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)) + ((dst_negative_scale_prefix_append_valueentrysource) + (dst_negative_scale_prefix_append_valueentrysource)))))) /\ (((((exists ff_h_pvs_prefix_append_valueentrysourcepositive. ff_h_pvs_prefix_append_valueentrysourcepositive + S (dst_positive_prefix_append_valueentrysource) = S ((S (ssr_flat_row_prefix_append_value)) * dst_positive_scale_prefix_append_valueentrysource)) /\ exists ff_q_pvs_prefix_append_valueentrysourcepositive. dst_positive_code_prefix_append_valueentrysource = ff_q_pvs_prefix_append_valueentrysourcepositive * S ((S (ssr_flat_row_prefix_append_value)) * dst_positive_scale_prefix_append_valueentrysource) + (dst_positive_prefix_append_valueentrysource))) /\ (((((exists ff_h_pvs_prefix_append_valueentrysourcenegative. ff_h_pvs_prefix_append_valueentrysourcenegative + S (dst_negative_prefix_append_valueentrysource) = S ((S (ssr_flat_row_prefix_append_value)) * dst_negative_scale_prefix_append_valueentrysource)) /\ exists ff_q_pvs_prefix_append_valueentrysourcenegative. dst_negative_code_prefix_append_valueentrysource = ff_q_pvs_prefix_append_valueentrysourcenegative * S ((S (ssr_flat_row_prefix_append_value)) * dst_negative_scale_prefix_append_valueentrysource) + (dst_negative_prefix_append_valueentrysource))) /\ (exists ge_balance_positive_prefix_append_valueentrysourcevalue ge_balance_negative_prefix_append_valueentrysourcevalue. (((((ssr_entry_value_prefix_append_valueentry) = 2 * (ge_balance_positive_prefix_append_valueentrysourcevalue) /\ (ge_balance_negative_prefix_append_valueentrysourcevalue) = 0) \/ exists ge_signed_half_prefix_append_valueentrysourcevaluedecode. (((ssr_entry_value_prefix_append_valueentry) = 2 * ge_signed_half_prefix_append_valueentrysourcevaluedecode + 1 /\ (ge_balance_positive_prefix_append_valueentrysourcevalue) = 0) /\ (ge_balance_negative_prefix_append_valueentrysourcevalue) = S ge_signed_half_prefix_append_valueentrysourcevaluedecode))) /\ ((dst_positive_prefix_append_valueentrysource) + ge_balance_negative_prefix_append_valueentrysourcevalue = (dst_negative_prefix_append_valueentrysource) + ge_balance_positive_prefix_append_valueentrysourcevalue))))))))) /\ (((((exists ff_h_pvs_prefix_append_valueentrymap. ff_h_pvs_prefix_append_valueentrymap + S (ssr_entry_image_prefix_append_valueentry) = S ((S (ssr_flat_row_prefix_append_value)) * s)) /\ exists ff_q_pvs_prefix_append_valueentrymap. r = ff_q_pvs_prefix_append_valueentrymap * S ((S (ssr_flat_row_prefix_append_value)) * s) + (ssr_entry_image_prefix_append_valueentry))) /\ (((((ssr_flat_column_prefix_append_value)=(ssr_entry_image_prefix_append_valueentry)) /\ ((z)=(ssr_entry_value_prefix_append_valueentry)))) \/ (((~((ssr_flat_column_prefix_append_value)=(ssr_entry_image_prefix_append_valueentry))) /\ ((z)=0)))))))))))) -> exists U. ((((exists dst_positive_code_prefix_append_resulttable dst_positive_scale_prefix_append_resulttable dst_negative_code_prefix_append_resulttable dst_negative_scale_prefix_append_resulttable. (((U) = (((((dst_positive_code_prefix_append_resulttable) + (dst_positive_scale_prefix_append_resulttable)) * S ((dst_positive_code_prefix_append_resulttable) + (dst_positive_scale_prefix_append_resulttable)) + ((dst_positive_scale_prefix_append_resulttable) + (dst_positive_scale_prefix_append_resulttable))) + (((dst_negative_code_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)) * S ((dst_negative_code_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)) + ((dst_negative_scale_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)))) * S ((((dst_positive_code_prefix_append_resulttable) + (dst_positive_scale_prefix_append_resulttable)) * S ((dst_positive_code_prefix_append_resulttable) + (dst_positive_scale_prefix_append_resulttable)) + ((dst_positive_scale_prefix_append_resulttable) + (dst_positive_scale_prefix_append_resulttable))) + (((dst_negative_code_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)) * S ((dst_negative_code_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)) + ((dst_negative_scale_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)))) + ((((dst_negative_code_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)) * S ((dst_negative_code_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)) + ((dst_negative_scale_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable))) + (((dst_negative_code_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)) * S ((dst_negative_code_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)) + ((dst_negative_scale_prefix_append_resulttable) + (dst_negative_scale_prefix_append_resulttable)))))) /\ (forall dst_index_prefix_append_resulttable. (exists pvs_le_gap_prefix_append_resulttabledomain. pvs_le_gap_prefix_append_resulttabledomain + (dst_index_prefix_append_resulttable) = (S l)) -> exists dst_positive_prefix_append_resulttable dst_negative_prefix_append_resulttable dst_value_prefix_append_resulttable. ((((exists ff_h_pvs_prefix_append_resulttableentrypositive. ff_h_pvs_prefix_append_resulttableentrypositive + S (dst_positive_prefix_append_resulttable) = S ((S (dst_index_prefix_append_resulttable)) * dst_positive_scale_prefix_append_resulttable)) /\ exists ff_q_pvs_prefix_append_resulttableentrypositive. dst_positive_code_prefix_append_resulttable = ff_q_pvs_prefix_append_resulttableentrypositive * S ((S (dst_index_prefix_append_resulttable)) * dst_positive_scale_prefix_append_resulttable) + (dst_positive_prefix_append_resulttable))) /\ (((((exists ff_h_pvs_prefix_append_resulttableentrynegative. ff_h_pvs_prefix_append_resulttableentrynegative + S (dst_negative_prefix_append_resulttable) = S ((S (dst_index_prefix_append_resulttable)) * dst_negative_scale_prefix_append_resulttable)) /\ exists ff_q_pvs_prefix_append_resulttableentrynegative. dst_negative_code_prefix_append_resulttable = ff_q_pvs_prefix_append_resulttableentrynegative * S ((S (dst_index_prefix_append_resulttable)) * dst_negative_scale_prefix_append_resulttable) + (dst_negative_prefix_append_resulttable))) /\ (exists ge_balance_positive_prefix_append_resulttableentryvalue ge_balance_negative_prefix_append_resulttableentryvalue. (((((dst_value_prefix_append_resulttable) = 2 * (ge_balance_positive_prefix_append_resulttableentryvalue) /\ (ge_balance_negative_prefix_append_resulttableentryvalue) = 0) \/ exists ge_signed_half_prefix_append_resulttableentryvaluedecode. (((dst_value_prefix_append_resulttable) = 2 * ge_signed_half_prefix_append_resulttableentryvaluedecode + 1 /\ (ge_balance_positive_prefix_append_resulttableentryvalue) = 0) /\ (ge_balance_negative_prefix_append_resulttableentryvalue) = S ge_signed_half_prefix_append_resulttableentryvaluedecode))) /\ ((dst_positive_prefix_append_resulttable) + ge_balance_negative_prefix_append_resulttableentryvalue = (dst_negative_prefix_append_resulttable) + ge_balance_positive_prefix_append_resulttableentryvalue))))))))) /\ (forall ssr_prefix_index_prefix_append_result ssr_prefix_value_prefix_append_result. (exists pvs_le_gap_prefix_append_resultbound. pvs_le_gap_prefix_append_resultbound + (ssr_prefix_index_prefix_append_result) = (S l)) -> (exists dst_positive_code_prefix_append_resultlookup dst_positive_scale_prefix_append_resultlookup dst_negative_code_prefix_append_resultlookup dst_negative_scale_prefix_append_resultlookup dst_positive_prefix_append_resultlookup dst_negative_prefix_append_resultlookup. (((U) = (((((dst_positive_code_prefix_append_resultlookup) + (dst_positive_scale_prefix_append_resultlookup)) * S ((dst_positive_code_prefix_append_resultlookup) + (dst_positive_scale_prefix_append_resultlookup)) + ((dst_positive_scale_prefix_append_resultlookup) + (dst_positive_scale_prefix_append_resultlookup))) + (((dst_negative_code_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)) * S ((dst_negative_code_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)) + ((dst_negative_scale_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)))) * S ((((dst_positive_code_prefix_append_resultlookup) + (dst_positive_scale_prefix_append_resultlookup)) * S ((dst_positive_code_prefix_append_resultlookup) + (dst_positive_scale_prefix_append_resultlookup)) + ((dst_positive_scale_prefix_append_resultlookup) + (dst_positive_scale_prefix_append_resultlookup))) + (((dst_negative_code_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)) * S ((dst_negative_code_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)) + ((dst_negative_scale_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)))) + ((((dst_negative_code_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)) * S ((dst_negative_code_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)) + ((dst_negative_scale_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup))) + (((dst_negative_code_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)) * S ((dst_negative_code_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)) + ((dst_negative_scale_prefix_append_resultlookup) + (dst_negative_scale_prefix_append_resultlookup)))))) /\ (((((exists ff_h_pvs_prefix_append_resultlookuppositive. ff_h_pvs_prefix_append_resultlookuppositive + S (dst_positive_prefix_append_resultlookup) = S ((S (ssr_prefix_index_prefix_append_result)) * dst_positive_scale_prefix_append_resultlookup)) /\ exists ff_q_pvs_prefix_append_resultlookuppositive. dst_positive_code_prefix_append_resultlookup = ff_q_pvs_prefix_append_resultlookuppositive * S ((S (ssr_prefix_index_prefix_append_result)) * dst_positive_scale_prefix_append_resultlookup) + (dst_positive_prefix_append_resultlookup))) /\ (((((exists ff_h_pvs_prefix_append_resultlookupnegative. ff_h_pvs_prefix_append_resultlookupnegative + S (dst_negative_prefix_append_resultlookup) = S ((S (ssr_prefix_index_prefix_append_result)) * dst_negative_scale_prefix_append_resultlookup)) /\ exists ff_q_pvs_prefix_append_resultlookupnegative. dst_negative_code_prefix_append_resultlookup = ff_q_pvs_prefix_append_resultlookupnegative * S ((S (ssr_prefix_index_prefix_append_result)) * dst_negative_scale_prefix_append_resultlookup) + (dst_negative_prefix_append_resultlookup))) /\ (exists ge_balance_positive_prefix_append_resultlookupvalue ge_balance_negative_prefix_append_resultlookupvalue. (((((ssr_prefix_value_prefix_append_result) = 2 * (ge_balance_positive_prefix_append_resultlookupvalue) /\ (ge_balance_negative_prefix_append_resultlookupvalue) = 0) \/ exists ge_signed_half_prefix_append_resultlookupvaluedecode. (((ssr_prefix_value_prefix_append_result) = 2 * ge_signed_half_prefix_append_resultlookupvaluedecode + 1 /\ (ge_balance_positive_prefix_append_resultlookupvalue) = 0) /\ (ge_balance_negative_prefix_append_resultlookupvalue) = S ge_signed_half_prefix_append_resultlookupvaluedecode))) /\ ((dst_positive_prefix_append_resultlookup) + ge_balance_negative_prefix_append_resultlookupvalue = (dst_negative_prefix_append_resultlookup) + ge_balance_positive_prefix_append_resultlookupvalue))))))))) -> (exists ssr_flat_row_prefix_append_resultentry ssr_flat_column_prefix_append_resultentry. (((ssr_prefix_index_prefix_append_result)=(((S (M))*(ssr_flat_row_prefix_append_resultentry)+(ssr_flat_column_prefix_append_resultentry)))) /\ (((exists pvs_gap_prefix_append_resultentryremainder. pvs_gap_prefix_append_resultentryremainder + S (ssr_flat_column_prefix_append_resultentry) = (S (M))) /\ (exists ssr_entry_value_prefix_append_resultentryentry ssr_entry_image_prefix_append_resultentryentry. ((exists dst_positive_code_prefix_append_resultentryentrysource dst_positive_scale_prefix_append_resultentryentrysource dst_negative_code_prefix_append_resultentryentrysource dst_negative_scale_prefix_append_resultentryentrysource dst_positive_prefix_append_resultentryentrysource dst_negative_prefix_append_resultentryentrysource. (((A) = (((((dst_positive_code_prefix_append_resultentryentrysource) + (dst_positive_scale_prefix_append_resultentryentrysource)) * S ((dst_positive_code_prefix_append_resultentryentrysource) + (dst_positive_scale_prefix_append_resultentryentrysource)) + ((dst_positive_scale_prefix_append_resultentryentrysource) + (dst_positive_scale_prefix_append_resultentryentrysource))) + (((dst_negative_code_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)) * S ((dst_negative_code_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)) + ((dst_negative_scale_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)))) * S ((((dst_positive_code_prefix_append_resultentryentrysource) + (dst_positive_scale_prefix_append_resultentryentrysource)) * S ((dst_positive_code_prefix_append_resultentryentrysource) + (dst_positive_scale_prefix_append_resultentryentrysource)) + ((dst_positive_scale_prefix_append_resultentryentrysource) + (dst_positive_scale_prefix_append_resultentryentrysource))) + (((dst_negative_code_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)) * S ((dst_negative_code_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)) + ((dst_negative_scale_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)))) + ((((dst_negative_code_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)) * S ((dst_negative_code_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)) + ((dst_negative_scale_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource))) + (((dst_negative_code_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)) * S ((dst_negative_code_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)) + ((dst_negative_scale_prefix_append_resultentryentrysource) + (dst_negative_scale_prefix_append_resultentryentrysource)))))) /\ (((((exists ff_h_pvs_prefix_append_resultentryentrysourcepositive. ff_h_pvs_prefix_append_resultentryentrysourcepositive + S (dst_positive_prefix_append_resultentryentrysource) = S ((S (ssr_flat_row_prefix_append_resultentry)) * dst_positive_scale_prefix_append_resultentryentrysource)) /\ exists ff_q_pvs_prefix_append_resultentryentrysourcepositive. dst_positive_code_prefix_append_resultentryentrysource = ff_q_pvs_prefix_append_resultentryentrysourcepositive * S ((S (ssr_flat_row_prefix_append_resultentry)) * dst_positive_scale_prefix_append_resultentryentrysource) + (dst_positive_prefix_append_resultentryentrysource))) /\ (((((exists ff_h_pvs_prefix_append_resultentryentrysourcenegative. ff_h_pvs_prefix_append_resultentryentrysourcenegative + S (dst_negative_prefix_append_resultentryentrysource) = S ((S (ssr_flat_row_prefix_append_resultentry)) * dst_negative_scale_prefix_append_resultentryentrysource)) /\ exists ff_q_pvs_prefix_append_resultentryentrysourcenegative. dst_negative_code_prefix_append_resultentryentrysource = ff_q_pvs_prefix_append_resultentryentrysourcenegative * S ((S (ssr_flat_row_prefix_append_resultentry)) * dst_negative_scale_prefix_append_resultentryentrysource) + (dst_negative_prefix_append_resultentryentrysource))) /\ (exists ge_balance_positive_prefix_append_resultentryentrysourcevalue ge_balance_negative_prefix_append_resultentryentrysourcevalue. (((((ssr_entry_value_prefix_append_resultentryentry) = 2 * (ge_balance_positive_prefix_append_resultentryentrysourcevalue) /\ (ge_balance_negative_prefix_append_resultentryentrysourcevalue) = 0) \/ exists ge_signed_half_prefix_append_resultentryentrysourcevaluedecode. (((ssr_entry_value_prefix_append_resultentryentry) = 2 * ge_signed_half_prefix_append_resultentryentrysourcevaluedecode + 1 /\ (ge_balance_positive_prefix_append_resultentryentrysourcevalue) = 0) /\ (ge_balance_negative_prefix_append_resultentryentrysourcevalue) = S ge_signed_half_prefix_append_resultentryentrysourcevaluedecode))) /\ ((dst_positive_prefix_append_resultentryentrysource) + ge_balance_negative_prefix_append_resultentryentrysourcevalue = (dst_negative_prefix_append_resultentryentrysource) + ge_balance_positive_prefix_append_resultentryentrysourcevalue))))))))) /\ (((((exists ff_h_pvs_prefix_append_resultentryentrymap. ff_h_pvs_prefix_append_resultentryentrymap + S (ssr_entry_image_prefix_append_resultentryentry) = S ((S (ssr_flat_row_prefix_append_resultentry)) * s)) /\ exists ff_q_pvs_prefix_append_resultentryentrymap. r = ff_q_pvs_prefix_append_resultentryentrymap * S ((S (ssr_flat_row_prefix_append_resultentry)) * s) + (ssr_entry_image_prefix_append_resultentryentry))) /\ (((((ssr_flat_column_prefix_append_resultentry)=(ssr_entry_image_prefix_append_resultentryentry)) /\ ((ssr_prefix_value_prefix_append_result)=(ssr_entry_value_prefix_append_resultentryentry)))) \/ (((~((ssr_flat_column_prefix_append_resultentry)=(ssr_entry_image_prefix_append_resultentryentry))) /\ ((ssr_prefix_value_prefix_append_result)=0))))))))))))))) /\ (forall dst_index_prefix_append_equal dst_first_prefix_append_equal dst_second_prefix_append_equal. (exists pvs_gap_prefix_append_equalbound. pvs_gap_prefix_append_equalbound + S (dst_index_prefix_append_equal) = (S l)) -> (exists dst_positive_code_prefix_append_equalfirst dst_positive_scale_prefix_append_equalfirst dst_negative_code_prefix_append_equalfirst dst_negative_scale_prefix_append_equalfirst dst_positive_prefix_append_equalfirst dst_negative_prefix_append_equalfirst. (((T) = (((((dst_positive_code_prefix_append_equalfirst) + (dst_positive_scale_prefix_append_equalfirst)) * S ((dst_positive_code_prefix_append_equalfirst) + (dst_positive_scale_prefix_append_equalfirst)) + ((dst_positive_scale_prefix_append_equalfirst) + (dst_positive_scale_prefix_append_equalfirst))) + (((dst_negative_code_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)) * S ((dst_negative_code_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)) + ((dst_negative_scale_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)))) * S ((((dst_positive_code_prefix_append_equalfirst) + (dst_positive_scale_prefix_append_equalfirst)) * S ((dst_positive_code_prefix_append_equalfirst) + (dst_positive_scale_prefix_append_equalfirst)) + ((dst_positive_scale_prefix_append_equalfirst) + (dst_positive_scale_prefix_append_equalfirst))) + (((dst_negative_code_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)) * S ((dst_negative_code_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)) + ((dst_negative_scale_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)))) + ((((dst_negative_code_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)) * S ((dst_negative_code_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)) + ((dst_negative_scale_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst))) + (((dst_negative_code_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)) * S ((dst_negative_code_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)) + ((dst_negative_scale_prefix_append_equalfirst) + (dst_negative_scale_prefix_append_equalfirst)))))) /\ (((((exists ff_h_pvs_prefix_append_equalfirstpositive. ff_h_pvs_prefix_append_equalfirstpositive + S (dst_positive_prefix_append_equalfirst) = S ((S (dst_index_prefix_append_equal)) * dst_positive_scale_prefix_append_equalfirst)) /\ exists ff_q_pvs_prefix_append_equalfirstpositive. dst_positive_code_prefix_append_equalfirst = ff_q_pvs_prefix_append_equalfirstpositive * S ((S (dst_index_prefix_append_equal)) * dst_positive_scale_prefix_append_equalfirst) + (dst_positive_prefix_append_equalfirst))) /\ (((((exists ff_h_pvs_prefix_append_equalfirstnegative. ff_h_pvs_prefix_append_equalfirstnegative + S (dst_negative_prefix_append_equalfirst) = S ((S (dst_index_prefix_append_equal)) * dst_negative_scale_prefix_append_equalfirst)) /\ exists ff_q_pvs_prefix_append_equalfirstnegative. dst_negative_code_prefix_append_equalfirst = ff_q_pvs_prefix_append_equalfirstnegative * S ((S (dst_index_prefix_append_equal)) * dst_negative_scale_prefix_append_equalfirst) + (dst_negative_prefix_append_equalfirst))) /\ (exists ge_balance_positive_prefix_append_equalfirstvalue ge_balance_negative_prefix_append_equalfirstvalue. (((((dst_first_prefix_append_equal) = 2 * (ge_balance_positive_prefix_append_equalfirstvalue) /\ (ge_balance_negative_prefix_append_equalfirstvalue) = 0) \/ exists ge_signed_half_prefix_append_equalfirstvaluedecode. (((dst_first_prefix_append_equal) = 2 * ge_signed_half_prefix_append_equalfirstvaluedecode + 1 /\ (ge_balance_positive_prefix_append_equalfirstvalue) = 0) /\ (ge_balance_negative_prefix_append_equalfirstvalue) = S ge_signed_half_prefix_append_equalfirstvaluedecode))) /\ ((dst_positive_prefix_append_equalfirst) + ge_balance_negative_prefix_append_equalfirstvalue = (dst_negative_prefix_append_equalfirst) + ge_balance_positive_prefix_append_equalfirstvalue))))))))) -> (exists dst_positive_code_prefix_append_equalsecond dst_positive_scale_prefix_append_equalsecond dst_negative_code_prefix_append_equalsecond dst_negative_scale_prefix_append_equalsecond dst_positive_prefix_append_equalsecond dst_negative_prefix_append_equalsecond. (((U) = (((((dst_positive_code_prefix_append_equalsecond) + (dst_positive_scale_prefix_append_equalsecond)) * S ((dst_positive_code_prefix_append_equalsecond) + (dst_positive_scale_prefix_append_equalsecond)) + ((dst_positive_scale_prefix_append_equalsecond) + (dst_positive_scale_prefix_append_equalsecond))) + (((dst_negative_code_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)) * S ((dst_negative_code_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)) + ((dst_negative_scale_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)))) * S ((((dst_positive_code_prefix_append_equalsecond) + (dst_positive_scale_prefix_append_equalsecond)) * S ((dst_positive_code_prefix_append_equalsecond) + (dst_positive_scale_prefix_append_equalsecond)) + ((dst_positive_scale_prefix_append_equalsecond) + (dst_positive_scale_prefix_append_equalsecond))) + (((dst_negative_code_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)) * S ((dst_negative_code_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)) + ((dst_negative_scale_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)))) + ((((dst_negative_code_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)) * S ((dst_negative_code_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)) + ((dst_negative_scale_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond))) + (((dst_negative_code_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)) * S ((dst_negative_code_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)) + ((dst_negative_scale_prefix_append_equalsecond) + (dst_negative_scale_prefix_append_equalsecond)))))) /\ (((((exists ff_h_pvs_prefix_append_equalsecondpositive. ff_h_pvs_prefix_append_equalsecondpositive + S (dst_positive_prefix_append_equalsecond) = S ((S (dst_index_prefix_append_equal)) * dst_positive_scale_prefix_append_equalsecond)) /\ exists ff_q_pvs_prefix_append_equalsecondpositive. dst_positive_code_prefix_append_equalsecond = ff_q_pvs_prefix_append_equalsecondpositive * S ((S (dst_index_prefix_append_equal)) * dst_positive_scale_prefix_append_equalsecond) + (dst_positive_prefix_append_equalsecond))) /\ (((((exists ff_h_pvs_prefix_append_equalsecondnegative. ff_h_pvs_prefix_append_equalsecondnegative + S (dst_negative_prefix_append_equalsecond) = S ((S (dst_index_prefix_append_equal)) * dst_negative_scale_prefix_append_equalsecond)) /\ exists ff_q_pvs_prefix_append_equalsecondnegative. dst_negative_code_prefix_append_equalsecond = ff_q_pvs_prefix_append_equalsecondnegative * S ((S (dst_index_prefix_append_equal)) * dst_negative_scale_prefix_append_equalsecond) + (dst_negative_prefix_append_equalsecond))) /\ (exists ge_balance_positive_prefix_append_equalsecondvalue ge_balance_negative_prefix_append_equalsecondvalue. (((((dst_second_prefix_append_equal) = 2 * (ge_balance_positive_prefix_append_equalsecondvalue) /\ (ge_balance_negative_prefix_append_equalsecondvalue) = 0) \/ exists ge_signed_half_prefix_append_equalsecondvaluedecode. (((dst_second_prefix_append_equal) = 2 * ge_signed_half_prefix_append_equalsecondvaluedecode + 1 /\ (ge_balance_positive_prefix_append_equalsecondvalue) = 0) /\ (ge_balance_negative_prefix_append_equalsecondvalue) = S ge_signed_half_prefix_append_equalsecondvaluedecode))) /\ ((dst_positive_prefix_append_equalsecond) + ge_balance_negative_prefix_append_equalsecondvalue = (dst_negative_prefix_append_equalsecond) + ge_balance_positive_prefix_append_equalsecondvalue))))))))) -> dst_first_prefix_append_equal = dst_second_prefix_append_equal))Constructive proof overview
Generated structural guide
Constructively append one actual flat cell and preserve every preceding represented value.
The unchanged tactic script uses 5 declared prerequisites and contains 78 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
arithmetic_signed_table_append Alpha theorem; checked-use authorized le_eq_or_lt Stable theorem; checked-use authorized le_of_succ_le_succ Stable theorem; checked-use authorized divisor_signed_table_at_functional Alpha theorem; checked-use authorized divisor_signed_table_lookup 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.
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–10
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L10
cases ht
03Establish hxL11–16
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed table append.
- L11
have hx : ∃ U. ArithTable(S l,U) ∧ (ArithTableEqual(T,U,S l) ∧ ArithAt(U,S l,z))Definitions: ArithTableArithAtArithTableEqual - L12
specialize arithmetic_signed_table_append (l) - L13
specialize arithmetic_signed_table_append (T) - L14
specialize arithmetic_signed_table_append (z) - L15
apply arithmetic_signed_table_append - L16
exact ht_left
04Separate the logical casesL17–19
05Construct an explicit witnessL20–20
Supply the displayed value, then prove that it has the required property.
- L20
exists x
06Separate the logical casesL21–22
07Use earlier factsL23–23
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L23
exact hx_witness_left
08Fix variables and assumptionsL24–27
09Establish hcL28–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
10Separate the logical casesL33–33
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L33
cases hc
11Calculate and transport equalitiesL34–37
12Establish heL38–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at functional.
- L38
have he : z=u - L39
specialize divisor_signed_table_at_functional (x) - L40
specialize divisor_signed_table_at_functional (S l) - L41
specialize divisor_signed_table_at_functional (z) - L42
specialize divisor_signed_table_at_functional (u) - L43
apply divisor_signed_table_at_functional - L44
exact hx_witness_right_right - L45
exact hu - L46
rewrite he at hz - L47
rewrite he at hz
13Calculate and transport equalitiesL48–48
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L48
rewrite hc_left
14Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hz
15Establish hklL50–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
16Establish hvL55–61
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table lookup.
17Separate the logical casesL62–62
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L62
cases hv
18Establish heL63–72
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hx witness right left.
Original exact command ledger · 78 lines
- 0001
intro A - 0002
intro r - 0003
intro s - 0004
intro M - 0005
intro l - 0006
intro T - 0007
intro z - 0008
intro ht - 0009
intro hz - 0010
cases ht - 0011
have hx : exists U. (((exists dst_positive_code_append_table dst_positive_scale_append_table dst_negative_code_append_table dst_negative_scale_append_table. (((U) = (((((dst_positive_code_append_table) + (dst_positive_scale_append_table)) * S ((dst_positive_code_append_table) + (dst_positive_scale_append_table)) + ((dst_positive_scale_append_table) + (dst_positive_scale_append_table))) + (((dst_negative_code_append_table) + (dst_negative_scale_append_table)) * S ((dst_negative_code_append_table) + (dst_negative_scale_append_table)) + ((dst_negative_scale_append_table) + (dst_negative_scale_append_table)))) * S ((((dst_positive_code_append_table) + (dst_positive_scale_append_table)) * S ((dst_positive_code_append_table) + (dst_positive_scale_append_table)) + ((dst_positive_scale_append_table) + (dst_positive_scale_append_table))) + (((dst_negative_code_append_table) + (dst_negative_scale_append_table)) * S ((dst_negative_code_append_table) + (dst_negative_scale_append_table)) + ((dst_negative_scale_append_table) + (dst_negative_scale_append_table)))) + ((((dst_negative_code_append_table) + (dst_negative_scale_append_table)) * S ((dst_negative_code_append_table) + (dst_negative_scale_append_table)) + ((dst_negative_scale_append_table) + (dst_negative_scale_append_table))) + (((dst_negative_code_append_table) + (dst_negative_scale_append_table)) * S ((dst_negative_code_append_table) + (dst_negative_scale_append_table)) + ((dst_negative_scale_append_table) + (dst_negative_scale_append_table)))))) /\ (forall dst_index_append_table. (exists pvs_le_gap_append_tabledomain. pvs_le_gap_append_tabledomain + (dst_index_append_table) = (S l)) -> exists dst_positive_append_table dst_negative_append_table dst_value_append_table. ((((exists ff_h_pvs_append_tableentrypositive. ff_h_pvs_append_tableentrypositive + S (dst_positive_append_table) = S ((S (dst_index_append_table)) * dst_positive_scale_append_table)) /\ exists ff_q_pvs_append_tableentrypositive. dst_positive_code_append_table = ff_q_pvs_append_tableentrypositive * S ((S (dst_index_append_table)) * dst_positive_scale_append_table) + (dst_positive_append_table))) /\ (((((exists ff_h_pvs_append_tableentrynegative. ff_h_pvs_append_tableentrynegative + S (dst_negative_append_table) = S ((S (dst_index_append_table)) * dst_negative_scale_append_table)) /\ exists ff_q_pvs_append_tableentrynegative. dst_negative_code_append_table = ff_q_pvs_append_tableentrynegative * S ((S (dst_index_append_table)) * dst_negative_scale_append_table) + (dst_negative_append_table))) /\ (exists ge_balance_positive_append_tableentryvalue ge_balance_negative_append_tableentryvalue. (((((dst_value_append_table) = 2 * (ge_balance_positive_append_tableentryvalue) /\ (ge_balance_negative_append_tableentryvalue) = 0) \/ exists ge_signed_half_append_tableentryvaluedecode. (((dst_value_append_table) = 2 * ge_signed_half_append_tableentryvaluedecode + 1 /\ (ge_balance_positive_append_tableentryvalue) = 0) /\ (ge_balance_negative_append_tableentryvalue) = S ge_signed_half_append_tableentryvaluedecode))) /\ ((dst_positive_append_table) + ge_balance_negative_append_tableentryvalue = (dst_negative_append_table) + ge_balance_positive_append_tableentryvalue))))))))) /\ (((forall dst_index_append_equal dst_first_append_equal dst_second_append_equal. (exists pvs_gap_append_equalbound. pvs_gap_append_equalbound + S (dst_index_append_equal) = (S l)) -> (exists dst_positive_code_append_equalfirst dst_positive_scale_append_equalfirst dst_negative_code_append_equalfirst dst_negative_scale_append_equalfirst dst_positive_append_equalfirst dst_negative_append_equalfirst. (((T) = (((((dst_positive_code_append_equalfirst) + (dst_positive_scale_append_equalfirst)) * S ((dst_positive_code_append_equalfirst) + (dst_positive_scale_append_equalfirst)) + ((dst_positive_scale_append_equalfirst) + (dst_positive_scale_append_equalfirst))) + (((dst_negative_code_append_equalfirst) + (dst_negative_scale_append_equalfirst)) * S ((dst_negative_code_append_equalfirst) + (dst_negative_scale_append_equalfirst)) + ((dst_negative_scale_append_equalfirst) + (dst_negative_scale_append_equalfirst)))) * S ((((dst_positive_code_append_equalfirst) + (dst_positive_scale_append_equalfirst)) * S ((dst_positive_code_append_equalfirst) + (dst_positive_scale_append_equalfirst)) + ((dst_positive_scale_append_equalfirst) + (dst_positive_scale_append_equalfirst))) + (((dst_negative_code_append_equalfirst) + (dst_negative_scale_append_equalfirst)) * S ((dst_negative_code_append_equalfirst) + (dst_negative_scale_append_equalfirst)) + ((dst_negative_scale_append_equalfirst) + (dst_negative_scale_append_equalfirst)))) + ((((dst_negative_code_append_equalfirst) + (dst_negative_scale_append_equalfirst)) * S ((dst_negative_code_append_equalfirst) + (dst_negative_scale_append_equalfirst)) + ((dst_negative_scale_append_equalfirst) + (dst_negative_scale_append_equalfirst))) + (((dst_negative_code_append_equalfirst) + (dst_negative_scale_append_equalfirst)) * S ((dst_negative_code_append_equalfirst) + (dst_negative_scale_append_equalfirst)) + ((dst_negative_scale_append_equalfirst) + (dst_negative_scale_append_equalfirst)))))) /\ (((((exists ff_h_pvs_append_equalfirstpositive. ff_h_pvs_append_equalfirstpositive + S (dst_positive_append_equalfirst) = S ((S (dst_index_append_equal)) * dst_positive_scale_append_equalfirst)) /\ exists ff_q_pvs_append_equalfirstpositive. dst_positive_code_append_equalfirst = ff_q_pvs_append_equalfirstpositive * S ((S (dst_index_append_equal)) * dst_positive_scale_append_equalfirst) + (dst_positive_append_equalfirst))) /\ (((((exists ff_h_pvs_append_equalfirstnegative. ff_h_pvs_append_equalfirstnegative + S (dst_negative_append_equalfirst) = S ((S (dst_index_append_equal)) * dst_negative_scale_append_equalfirst)) /\ exists ff_q_pvs_append_equalfirstnegative. dst_negative_code_append_equalfirst = ff_q_pvs_append_equalfirstnegative * S ((S (dst_index_append_equal)) * dst_negative_scale_append_equalfirst) + (dst_negative_append_equalfirst))) /\ (exists ge_balance_positive_append_equalfirstvalue ge_balance_negative_append_equalfirstvalue. (((((dst_first_append_equal) = 2 * (ge_balance_positive_append_equalfirstvalue) /\ (ge_balance_negative_append_equalfirstvalue) = 0) \/ exists ge_signed_half_append_equalfirstvaluedecode. (((dst_first_append_equal) = 2 * ge_signed_half_append_equalfirstvaluedecode + 1 /\ (ge_balance_positive_append_equalfirstvalue) = 0) /\ (ge_balance_negative_append_equalfirstvalue) = S ge_signed_half_append_equalfirstvaluedecode))) /\ ((dst_positive_append_equalfirst) + ge_balance_negative_append_equalfirstvalue = (dst_negative_append_equalfirst) + ge_balance_positive_append_equalfirstvalue))))))))) -> (exists dst_positive_code_append_equalsecond dst_positive_scale_append_equalsecond dst_negative_code_append_equalsecond dst_negative_scale_append_equalsecond dst_positive_append_equalsecond dst_negative_append_equalsecond. (((U) = (((((dst_positive_code_append_equalsecond) + (dst_positive_scale_append_equalsecond)) * S ((dst_positive_code_append_equalsecond) + (dst_positive_scale_append_equalsecond)) + ((dst_positive_scale_append_equalsecond) + (dst_positive_scale_append_equalsecond))) + (((dst_negative_code_append_equalsecond) + (dst_negative_scale_append_equalsecond)) * S ((dst_negative_code_append_equalsecond) + (dst_negative_scale_append_equalsecond)) + ((dst_negative_scale_append_equalsecond) + (dst_negative_scale_append_equalsecond)))) * S ((((dst_positive_code_append_equalsecond) + (dst_positive_scale_append_equalsecond)) * S ((dst_positive_code_append_equalsecond) + (dst_positive_scale_append_equalsecond)) + ((dst_positive_scale_append_equalsecond) + (dst_positive_scale_append_equalsecond))) + (((dst_negative_code_append_equalsecond) + (dst_negative_scale_append_equalsecond)) * S ((dst_negative_code_append_equalsecond) + (dst_negative_scale_append_equalsecond)) + ((dst_negative_scale_append_equalsecond) + (dst_negative_scale_append_equalsecond)))) + ((((dst_negative_code_append_equalsecond) + (dst_negative_scale_append_equalsecond)) * S ((dst_negative_code_append_equalsecond) + (dst_negative_scale_append_equalsecond)) + ((dst_negative_scale_append_equalsecond) + (dst_negative_scale_append_equalsecond))) + (((dst_negative_code_append_equalsecond) + (dst_negative_scale_append_equalsecond)) * S ((dst_negative_code_append_equalsecond) + (dst_negative_scale_append_equalsecond)) + ((dst_negative_scale_append_equalsecond) + (dst_negative_scale_append_equalsecond)))))) /\ (((((exists ff_h_pvs_append_equalsecondpositive. ff_h_pvs_append_equalsecondpositive + S (dst_positive_append_equalsecond) = S ((S (dst_index_append_equal)) * dst_positive_scale_append_equalsecond)) /\ exists ff_q_pvs_append_equalsecondpositive. dst_positive_code_append_equalsecond = ff_q_pvs_append_equalsecondpositive * S ((S (dst_index_append_equal)) * dst_positive_scale_append_equalsecond) + (dst_positive_append_equalsecond))) /\ (((((exists ff_h_pvs_append_equalsecondnegative. ff_h_pvs_append_equalsecondnegative + S (dst_negative_append_equalsecond) = S ((S (dst_index_append_equal)) * dst_negative_scale_append_equalsecond)) /\ exists ff_q_pvs_append_equalsecondnegative. dst_negative_code_append_equalsecond = ff_q_pvs_append_equalsecondnegative * S ((S (dst_index_append_equal)) * dst_negative_scale_append_equalsecond) + (dst_negative_append_equalsecond))) /\ (exists ge_balance_positive_append_equalsecondvalue ge_balance_negative_append_equalsecondvalue. (((((dst_second_append_equal) = 2 * (ge_balance_positive_append_equalsecondvalue) /\ (ge_balance_negative_append_equalsecondvalue) = 0) \/ exists ge_signed_half_append_equalsecondvaluedecode. (((dst_second_append_equal) = 2 * ge_signed_half_append_equalsecondvaluedecode + 1 /\ (ge_balance_positive_append_equalsecondvalue) = 0) /\ (ge_balance_negative_append_equalsecondvalue) = S ge_signed_half_append_equalsecondvaluedecode))) /\ ((dst_positive_append_equalsecond) + ge_balance_negative_append_equalsecondvalue = (dst_negative_append_equalsecond) + ge_balance_positive_append_equalsecondvalue))))))))) -> dst_first_append_equal = dst_second_append_equal) /\ (exists dst_positive_code_append_last dst_positive_scale_append_last dst_negative_code_append_last dst_negative_scale_append_last dst_positive_append_last dst_negative_append_last. (((U) = (((((dst_positive_code_append_last) + (dst_positive_scale_append_last)) * S ((dst_positive_code_append_last) + (dst_positive_scale_append_last)) + ((dst_positive_scale_append_last) + (dst_positive_scale_append_last))) + (((dst_negative_code_append_last) + (dst_negative_scale_append_last)) * S ((dst_negative_code_append_last) + (dst_negative_scale_append_last)) + ((dst_negative_scale_append_last) + (dst_negative_scale_append_last)))) * S ((((dst_positive_code_append_last) + (dst_positive_scale_append_last)) * S ((dst_positive_code_append_last) + (dst_positive_scale_append_last)) + ((dst_positive_scale_append_last) + (dst_positive_scale_append_last))) + (((dst_negative_code_append_last) + (dst_negative_scale_append_last)) * S ((dst_negative_code_append_last) + (dst_negative_scale_append_last)) + ((dst_negative_scale_append_last) + (dst_negative_scale_append_last)))) + ((((dst_negative_code_append_last) + (dst_negative_scale_append_last)) * S ((dst_negative_code_append_last) + (dst_negative_scale_append_last)) + ((dst_negative_scale_append_last) + (dst_negative_scale_append_last))) + (((dst_negative_code_append_last) + (dst_negative_scale_append_last)) * S ((dst_negative_code_append_last) + (dst_negative_scale_append_last)) + ((dst_negative_scale_append_last) + (dst_negative_scale_append_last)))))) /\ (((((exists ff_h_pvs_append_lastpositive. ff_h_pvs_append_lastpositive + S (dst_positive_append_last) = S ((S (S l)) * dst_positive_scale_append_last)) /\ exists ff_q_pvs_append_lastpositive. dst_positive_code_append_last = ff_q_pvs_append_lastpositive * S ((S (S l)) * dst_positive_scale_append_last) + (dst_positive_append_last))) /\ (((((exists ff_h_pvs_append_lastnegative. ff_h_pvs_append_lastnegative + S (dst_negative_append_last) = S ((S (S l)) * dst_negative_scale_append_last)) /\ exists ff_q_pvs_append_lastnegative. dst_negative_code_append_last = ff_q_pvs_append_lastnegative * S ((S (S l)) * dst_negative_scale_append_last) + (dst_negative_append_last))) /\ (exists ge_balance_positive_append_lastvalue ge_balance_negative_append_lastvalue. (((((z) = 2 * (ge_balance_positive_append_lastvalue) /\ (ge_balance_negative_append_lastvalue) = 0) \/ exists ge_signed_half_append_lastvaluedecode. (((z) = 2 * ge_signed_half_append_lastvaluedecode + 1 /\ (ge_balance_positive_append_lastvalue) = 0) /\ (ge_balance_negative_append_lastvalue) = S ge_signed_half_append_lastvaluedecode))) /\ ((dst_positive_append_last) + ge_balance_negative_append_lastvalue = (dst_negative_append_last) + ge_balance_positive_append_lastvalue))))))))))))) - 0012
specialize arithmetic_signed_table_append (l) - 0013
specialize arithmetic_signed_table_append (T) - 0014
specialize arithmetic_signed_table_append (z) - 0015
apply arithmetic_signed_table_append - 0016
exact ht_left - 0017
cases hx - 0018
cases hx_witness - 0019
cases hx_witness_right - 0020
exists x - 0021
split - 0022
split - 0023
exact hx_witness_left - 0024
intro k - 0025
intro u - 0026
intro hk - 0027
intro hu - 0028
have hc : k=S l \/ (exists pvs_gap_append_cases. pvs_gap_append_cases + S (k) = (S l)) - 0029
specialize le_eq_or_lt (k) - 0030
specialize le_eq_or_lt (S l) - 0031
apply le_eq_or_lt - 0032
exact hk - 0033
cases hc - 0034
rewrite hc_left at hu - 0035
rewrite hc_left at hu - 0036
rewrite hc_left at hu - 0037
rewrite hc_left at hu - 0038
have he : z=u - 0039
specialize divisor_signed_table_at_functional (x) - 0040
specialize divisor_signed_table_at_functional (S l) - 0041
specialize divisor_signed_table_at_functional (z) - 0042
specialize divisor_signed_table_at_functional (u) - 0043
apply divisor_signed_table_at_functional - 0044
exact hx_witness_right_right - 0045
exact hu - 0046
rewrite he at hz - 0047
rewrite he at hz - 0048
rewrite hc_left - 0049
exact hz - 0050
have hkl : exists pvs_le_gap_append_previous_bound. pvs_le_gap_append_previous_bound + (k) = (l) - 0051
specialize le_of_succ_le_succ (k) - 0052
specialize le_of_succ_le_succ (l) - 0053
apply le_of_succ_le_succ - 0054
exact hc_right - 0055
have hv : exists v. (exists dst_positive_code_append_previous_value dst_positive_scale_append_previous_value dst_negative_code_append_previous_value dst_negative_scale_append_previous_value dst_positive_append_previous_value dst_negative_append_previous_value. (((T) = (((((dst_positive_code_append_previous_value) + (dst_positive_scale_append_previous_value)) * S ((dst_positive_code_append_previous_value) + (dst_positive_scale_append_previous_value)) + ((dst_positive_scale_append_previous_value) + (dst_positive_scale_append_previous_value))) + (((dst_negative_code_append_previous_value) + (dst_negative_scale_append_previous_value)) * S ((dst_negative_code_append_previous_value) + (dst_negative_scale_append_previous_value)) + ((dst_negative_scale_append_previous_value) + (dst_negative_scale_append_previous_value)))) * S ((((dst_positive_code_append_previous_value) + (dst_positive_scale_append_previous_value)) * S ((dst_positive_code_append_previous_value) + (dst_positive_scale_append_previous_value)) + ((dst_positive_scale_append_previous_value) + (dst_positive_scale_append_previous_value))) + (((dst_negative_code_append_previous_value) + (dst_negative_scale_append_previous_value)) * S ((dst_negative_code_append_previous_value) + (dst_negative_scale_append_previous_value)) + ((dst_negative_scale_append_previous_value) + (dst_negative_scale_append_previous_value)))) + ((((dst_negative_code_append_previous_value) + (dst_negative_scale_append_previous_value)) * S ((dst_negative_code_append_previous_value) + (dst_negative_scale_append_previous_value)) + ((dst_negative_scale_append_previous_value) + (dst_negative_scale_append_previous_value))) + (((dst_negative_code_append_previous_value) + (dst_negative_scale_append_previous_value)) * S ((dst_negative_code_append_previous_value) + (dst_negative_scale_append_previous_value)) + ((dst_negative_scale_append_previous_value) + (dst_negative_scale_append_previous_value)))))) /\ (((((exists ff_h_pvs_append_previous_valuepositive. ff_h_pvs_append_previous_valuepositive + S (dst_positive_append_previous_value) = S ((S (k)) * dst_positive_scale_append_previous_value)) /\ exists ff_q_pvs_append_previous_valuepositive. dst_positive_code_append_previous_value = ff_q_pvs_append_previous_valuepositive * S ((S (k)) * dst_positive_scale_append_previous_value) + (dst_positive_append_previous_value))) /\ (((((exists ff_h_pvs_append_previous_valuenegative. ff_h_pvs_append_previous_valuenegative + S (dst_negative_append_previous_value) = S ((S (k)) * dst_negative_scale_append_previous_value)) /\ exists ff_q_pvs_append_previous_valuenegative. dst_negative_code_append_previous_value = ff_q_pvs_append_previous_valuenegative * S ((S (k)) * dst_negative_scale_append_previous_value) + (dst_negative_append_previous_value))) /\ (exists ge_balance_positive_append_previous_valuevalue ge_balance_negative_append_previous_valuevalue. (((((v) = 2 * (ge_balance_positive_append_previous_valuevalue) /\ (ge_balance_negative_append_previous_valuevalue) = 0) \/ exists ge_signed_half_append_previous_valuevaluedecode. (((v) = 2 * ge_signed_half_append_previous_valuevaluedecode + 1 /\ (ge_balance_positive_append_previous_valuevalue) = 0) /\ (ge_balance_negative_append_previous_valuevalue) = S ge_signed_half_append_previous_valuevaluedecode))) /\ ((dst_positive_append_previous_value) + ge_balance_negative_append_previous_valuevalue = (dst_negative_append_previous_value) + ge_balance_positive_append_previous_valuevalue))))))))) - 0056
specialize divisor_signed_table_lookup (l) - 0057
specialize divisor_signed_table_lookup (T) - 0058
specialize divisor_signed_table_lookup (k) - 0059
apply divisor_signed_table_lookup - 0060
exact ht_left - 0061
exact hkl - 0062
cases hv - 0063
have he : x1=u - 0064
specialize hx_witness_right_left (k) - 0065
specialize hx_witness_right_left (x1) - 0066
specialize hx_witness_right_left (u) - 0067
apply hx_witness_right_left - 0068
exact hc_right - 0069
exact hv_witness - 0070
exact hu - 0071
rewrite he at hv_witness - 0072
rewrite he at hv_witness - 0073
specialize ht_right (k) - 0074
specialize ht_right (u) - 0075
apply ht_right - 0076
exact hkl - 0077
exact hv_witness - 0078
exact hx_witness_right_left