MX0040

signed_support_incidence_flat_prefix_append

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Constructively append one actual flat cell and preserve every preceding represented value.

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 authorized

Direct 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

78 script commands · 19 reading checkpoints · 6 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.

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–9

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

  1. L1
    intro A
  2. L2
    intro r
  3. L3
    intro s
  4. L4
    intro M
  5. L5
    intro l
  6. L6
    intro T
  7. L7
    intro z
  8. L8
    intro ht
  9. L9
    intro hz
02Separate the logical casesL10–10

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

  1. 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.

  1. L11
    have hx : ∃ U. ArithTable(S l,U) ∧ (ArithTableEqual(T,U,S l) ∧ ArithAt(U,S l,z))Definitions: ArithTableArithAtArithTableEqual
  2. L12
    specialize arithmetic_signed_table_append (l)
  3. L13
    specialize arithmetic_signed_table_append (T)
  4. L14
    specialize arithmetic_signed_table_append (z)
  5. L15
    apply arithmetic_signed_table_append
  6. L16
    exact ht_left
04Separate the logical casesL17–19

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

  1. L17
    cases hx
  2. L18
    cases hx_witness
  3. L19
    cases hx_witness_right
05Construct an explicit witnessL20–20

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

  1. L20
    exists x
06Separate the logical casesL21–22

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

  1. L21
    split
  2. L22
    split
07Use earlier factsL23–23

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

  1. L23
    exact hx_witness_left
08Fix variables and assumptionsL24–27

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

  1. L24
    intro k
  2. L25
    intro u
  3. L26
    intro hk
  4. L27
    intro hu
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.

  1. L28
    have hc : k=S l \/ (exists pvs_gap_append_cases. pvs_gap_append_cases + S (k) = (S l))
  2. L29
    specialize le_eq_or_lt (k)
  3. L30
    specialize le_eq_or_lt (S l)
  4. L31
    apply le_eq_or_lt
  5. L32
    exact hk
10Separate the logical casesL33–33

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

  1. L33
    cases hc
11Calculate and transport equalitiesL34–37

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L34
    rewrite hc_left at hu
  2. L35
    rewrite hc_left at hu
  3. L36
    rewrite hc_left at hu
  4. L37
    rewrite hc_left at hu
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.

  1. L38
    have he : z=u
  2. L39
    specialize divisor_signed_table_at_functional (x)
  3. L40
    specialize divisor_signed_table_at_functional (S l)
  4. L41
    specialize divisor_signed_table_at_functional (z)
  5. L42
    specialize divisor_signed_table_at_functional (u)
  6. L43
    apply divisor_signed_table_at_functional
  7. L44
    exact hx_witness_right_right
  8. L45
    exact hu
  9. L46
    rewrite he at hz
  10. 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.

  1. L48
    rewrite hc_left
14Use earlier factsL49–49

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

  1. 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.

  1. L50
    have hkl : exists pvs_le_gap_append_previous_bound. pvs_le_gap_append_previous_bound + (k) = (l)
  2. L51
    specialize le_of_succ_le_succ (k)
  3. L52
    specialize le_of_succ_le_succ (l)
  4. L53
    apply le_of_succ_le_succ
  5. L54
    exact hc_right
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.

  1. L55
    have hv : ∃ v. ArithAt(T,k,v)Definitions: ArithAt
  2. L56
    specialize divisor_signed_table_lookup (l)
  3. L57
    specialize divisor_signed_table_lookup (T)
  4. L58
    specialize divisor_signed_table_lookup (k)
  5. L59
    apply divisor_signed_table_lookup
  6. L60
    exact ht_left
  7. L61
    exact hkl
17Separate the logical casesL62–62

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

  1. 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.

  1. L63
    have he : x1=u
  2. L64
    specialize hx_witness_right_left (k)
  3. L65
    specialize hx_witness_right_left (x1)
  4. L66
    specialize hx_witness_right_left (u)
  5. L67
    apply hx_witness_right_left
  6. L68
    exact hc_right
  7. L69
    exact hv_witness
  8. L70
    exact hu
  9. L71
    rewrite he at hv_witness
  10. L72
    rewrite he at hv_witness
19Use earlier factsL73–78

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

  1. L73
    specialize ht_right (k)
  2. L74
    specialize ht_right (u)
  3. L75
    apply ht_right
  4. L76
    exact hkl
  5. L77
    exact hv_witness
  6. L78
    exact hx_witness_right_left

Library-wide reading audit

Original exact command ledger · 78 lines
  1. 0001intro A
  2. 0002intro r
  3. 0003intro s
  4. 0004intro M
  5. 0005intro l
  6. 0006intro T
  7. 0007intro z
  8. 0008intro ht
  9. 0009intro hz
  10. 0010cases ht
  11. 0011have 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)))))))))))))
  12. 0012specialize arithmetic_signed_table_append (l)
  13. 0013specialize arithmetic_signed_table_append (T)
  14. 0014specialize arithmetic_signed_table_append (z)
  15. 0015apply arithmetic_signed_table_append
  16. 0016exact ht_left
  17. 0017cases hx
  18. 0018cases hx_witness
  19. 0019cases hx_witness_right
  20. 0020exists x
  21. 0021split
  22. 0022split
  23. 0023exact hx_witness_left
  24. 0024intro k
  25. 0025intro u
  26. 0026intro hk
  27. 0027intro hu
  28. 0028have hc : k=S l \/ (exists pvs_gap_append_cases. pvs_gap_append_cases + S (k) = (S l))
  29. 0029specialize le_eq_or_lt (k)
  30. 0030specialize le_eq_or_lt (S l)
  31. 0031apply le_eq_or_lt
  32. 0032exact hk
  33. 0033cases hc
  34. 0034rewrite hc_left at hu
  35. 0035rewrite hc_left at hu
  36. 0036rewrite hc_left at hu
  37. 0037rewrite hc_left at hu
  38. 0038have he : z=u
  39. 0039specialize divisor_signed_table_at_functional (x)
  40. 0040specialize divisor_signed_table_at_functional (S l)
  41. 0041specialize divisor_signed_table_at_functional (z)
  42. 0042specialize divisor_signed_table_at_functional (u)
  43. 0043apply divisor_signed_table_at_functional
  44. 0044exact hx_witness_right_right
  45. 0045exact hu
  46. 0046rewrite he at hz
  47. 0047rewrite he at hz
  48. 0048rewrite hc_left
  49. 0049exact hz
  50. 0050have hkl : exists pvs_le_gap_append_previous_bound. pvs_le_gap_append_previous_bound + (k) = (l)
  51. 0051specialize le_of_succ_le_succ (k)
  52. 0052specialize le_of_succ_le_succ (l)
  53. 0053apply le_of_succ_le_succ
  54. 0054exact hc_right
  55. 0055have 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)))))))))
  56. 0056specialize divisor_signed_table_lookup (l)
  57. 0057specialize divisor_signed_table_lookup (T)
  58. 0058specialize divisor_signed_table_lookup (k)
  59. 0059apply divisor_signed_table_lookup
  60. 0060exact ht_left
  61. 0061exact hkl
  62. 0062cases hv
  63. 0063have he : x1=u
  64. 0064specialize hx_witness_right_left (k)
  65. 0065specialize hx_witness_right_left (x1)
  66. 0066specialize hx_witness_right_left (u)
  67. 0067apply hx_witness_right_left
  68. 0068exact hc_right
  69. 0069exact hv_witness
  70. 0070exact hu
  71. 0071rewrite he at hv_witness
  72. 0072rewrite he at hv_witness
  73. 0073specialize ht_right (k)
  74. 0074specialize ht_right (u)
  75. 0075apply ht_right
  76. 0076exact hkl
  77. 0077exact hv_witness
  78. 0078exact hx_witness_right_left