Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Exact expanded first-order arithmetic statement
forall F G m n. (exists dst_positive_code_exists_F dst_positive_scale_exists_F dst_negative_code_exists_F dst_negative_scale_exists_F. (((F) = (((((dst_positive_code_exists_F) + (dst_positive_scale_exists_F)) * S ((dst_positive_code_exists_F) + (dst_positive_scale_exists_F)) + ((dst_positive_scale_exists_F) + (dst_positive_scale_exists_F))) + (((dst_negative_code_exists_F) + (dst_negative_scale_exists_F)) * S ((dst_negative_code_exists_F) + (dst_negative_scale_exists_F)) + ((dst_negative_scale_exists_F) + (dst_negative_scale_exists_F)))) * S ((((dst_positive_code_exists_F) + (dst_positive_scale_exists_F)) * S ((dst_positive_code_exists_F) + (dst_positive_scale_exists_F)) + ((dst_positive_scale_exists_F) + (dst_positive_scale_exists_F))) + (((dst_negative_code_exists_F) + (dst_negative_scale_exists_F)) * S ((dst_negative_code_exists_F) + (dst_negative_scale_exists_F)) + ((dst_negative_scale_exists_F) + (dst_negative_scale_exists_F)))) + ((((dst_negative_code_exists_F) + (dst_negative_scale_exists_F)) * S ((dst_negative_code_exists_F) + (dst_negative_scale_exists_F)) + ((dst_negative_scale_exists_F) + (dst_negative_scale_exists_F))) + (((dst_negative_code_exists_F) + (dst_negative_scale_exists_F)) * S ((dst_negative_code_exists_F) + (dst_negative_scale_exists_F)) + ((dst_negative_scale_exists_F) + (dst_negative_scale_exists_F)))))) /\ (forall dst_index_exists_F. (exists pvs_le_gap_exists_Fdomain. pvs_le_gap_exists_Fdomain + (dst_index_exists_F) = (0)) -> exists dst_positive_exists_F dst_negative_exists_F dst_value_exists_F. ((((exists ff_h_pvs_exists_Fentrypositive. ff_h_pvs_exists_Fentrypositive + S (dst_positive_exists_F) = S ((S (dst_index_exists_F)) * dst_positive_scale_exists_F)) /\ exists ff_q_pvs_exists_Fentrypositive. dst_positive_code_exists_F = ff_q_pvs_exists_Fentrypositive * S ((S (dst_index_exists_F)) * dst_positive_scale_exists_F) + (dst_positive_exists_F))) /\ (((((exists ff_h_pvs_exists_Fentrynegative. ff_h_pvs_exists_Fentrynegative + S (dst_negative_exists_F) = S ((S (dst_index_exists_F)) * dst_negative_scale_exists_F)) /\ exists ff_q_pvs_exists_Fentrynegative. dst_negative_code_exists_F = ff_q_pvs_exists_Fentrynegative * S ((S (dst_index_exists_F)) * dst_negative_scale_exists_F) + (dst_negative_exists_F))) /\ (exists ge_balance_positive_exists_Fentryvalue ge_balance_negative_exists_Fentryvalue. (((((dst_value_exists_F) = 2 * (ge_balance_positive_exists_Fentryvalue) /\ (ge_balance_negative_exists_Fentryvalue) = 0) \/ exists ge_signed_half_exists_Fentryvaluedecode. (((dst_value_exists_F) = 2 * ge_signed_half_exists_Fentryvaluedecode + 1 /\ (ge_balance_positive_exists_Fentryvalue) = 0) /\ (ge_balance_negative_exists_Fentryvalue) = S ge_signed_half_exists_Fentryvaluedecode))) /\ ((dst_positive_exists_F) + ge_balance_negative_exists_Fentryvalue = (dst_negative_exists_F) + ge_balance_positive_exists_Fentryvalue))))))))) -> (exists dst_positive_code_exists_G dst_positive_scale_exists_G dst_negative_code_exists_G dst_negative_scale_exists_G. (((G) = (((((dst_positive_code_exists_G) + (dst_positive_scale_exists_G)) * S ((dst_positive_code_exists_G) + (dst_positive_scale_exists_G)) + ((dst_positive_scale_exists_G) + (dst_positive_scale_exists_G))) + (((dst_negative_code_exists_G) + (dst_negative_scale_exists_G)) * S ((dst_negative_code_exists_G) + (dst_negative_scale_exists_G)) + ((dst_negative_scale_exists_G) + (dst_negative_scale_exists_G)))) * S ((((dst_positive_code_exists_G) + (dst_positive_scale_exists_G)) * S ((dst_positive_code_exists_G) + (dst_positive_scale_exists_G)) + ((dst_positive_scale_exists_G) + (dst_positive_scale_exists_G))) + (((dst_negative_code_exists_G) + (dst_negative_scale_exists_G)) * S ((dst_negative_code_exists_G) + (dst_negative_scale_exists_G)) + ((dst_negative_scale_exists_G) + (dst_negative_scale_exists_G)))) + ((((dst_negative_code_exists_G) + (dst_negative_scale_exists_G)) * S ((dst_negative_code_exists_G) + (dst_negative_scale_exists_G)) + ((dst_negative_scale_exists_G) + (dst_negative_scale_exists_G))) + (((dst_negative_code_exists_G) + (dst_negative_scale_exists_G)) * S ((dst_negative_code_exists_G) + (dst_negative_scale_exists_G)) + ((dst_negative_scale_exists_G) + (dst_negative_scale_exists_G)))))) /\ (forall dst_index_exists_G. (exists pvs_le_gap_exists_Gdomain. pvs_le_gap_exists_Gdomain + (dst_index_exists_G) = (0)) -> exists dst_positive_exists_G dst_negative_exists_G dst_value_exists_G. ((((exists ff_h_pvs_exists_Gentrypositive. ff_h_pvs_exists_Gentrypositive + S (dst_positive_exists_G) = S ((S (dst_index_exists_G)) * dst_positive_scale_exists_G)) /\ exists ff_q_pvs_exists_Gentrypositive. dst_positive_code_exists_G = ff_q_pvs_exists_Gentrypositive * S ((S (dst_index_exists_G)) * dst_positive_scale_exists_G) + (dst_positive_exists_G))) /\ (((((exists ff_h_pvs_exists_Gentrynegative. ff_h_pvs_exists_Gentrynegative + S (dst_negative_exists_G) = S ((S (dst_index_exists_G)) * dst_negative_scale_exists_G)) /\ exists ff_q_pvs_exists_Gentrynegative. dst_negative_code_exists_G = ff_q_pvs_exists_Gentrynegative * S ((S (dst_index_exists_G)) * dst_negative_scale_exists_G) + (dst_negative_exists_G))) /\ (exists ge_balance_positive_exists_Gentryvalue ge_balance_negative_exists_Gentryvalue. (((((dst_value_exists_G) = 2 * (ge_balance_positive_exists_Gentryvalue) /\ (ge_balance_negative_exists_Gentryvalue) = 0) \/ exists ge_signed_half_exists_Gentryvaluedecode. (((dst_value_exists_G) = 2 * ge_signed_half_exists_Gentryvaluedecode + 1 /\ (ge_balance_positive_exists_Gentryvalue) = 0) /\ (ge_balance_negative_exists_Gentryvalue) = S ge_signed_half_exists_Gentryvaluedecode))) /\ ((dst_positive_exists_G) + ge_balance_negative_exists_Gentryvalue = (dst_negative_exists_G) + ge_balance_positive_exists_Gentryvalue))))))))) -> exists T. (((exists dst_positive_code_exists_resultF dst_positive_scale_exists_resultF dst_negative_code_exists_resultF dst_negative_scale_exists_resultF. (((F) = (((((dst_positive_code_exists_resultF) + (dst_positive_scale_exists_resultF)) * S ((dst_positive_code_exists_resultF) + (dst_positive_scale_exists_resultF)) + ((dst_positive_scale_exists_resultF) + (dst_positive_scale_exists_resultF))) + (((dst_negative_code_exists_resultF) + (dst_negative_scale_exists_resultF)) * S ((dst_negative_code_exists_resultF) + (dst_negative_scale_exists_resultF)) + ((dst_negative_scale_exists_resultF) + (dst_negative_scale_exists_resultF)))) * S ((((dst_positive_code_exists_resultF) + (dst_positive_scale_exists_resultF)) * S ((dst_positive_code_exists_resultF) + (dst_positive_scale_exists_resultF)) + ((dst_positive_scale_exists_resultF) + (dst_positive_scale_exists_resultF))) + (((dst_negative_code_exists_resultF) + (dst_negative_scale_exists_resultF)) * S ((dst_negative_code_exists_resultF) + (dst_negative_scale_exists_resultF)) + ((dst_negative_scale_exists_resultF) + (dst_negative_scale_exists_resultF)))) + ((((dst_negative_code_exists_resultF) + (dst_negative_scale_exists_resultF)) * S ((dst_negative_code_exists_resultF) + (dst_negative_scale_exists_resultF)) + ((dst_negative_scale_exists_resultF) + (dst_negative_scale_exists_resultF))) + (((dst_negative_code_exists_resultF) + (dst_negative_scale_exists_resultF)) * S ((dst_negative_code_exists_resultF) + (dst_negative_scale_exists_resultF)) + ((dst_negative_scale_exists_resultF) + (dst_negative_scale_exists_resultF)))))) /\ (forall dst_index_exists_resultF. (exists pvs_le_gap_exists_resultFdomain. pvs_le_gap_exists_resultFdomain + (dst_index_exists_resultF) = (0)) -> exists dst_positive_exists_resultF dst_negative_exists_resultF dst_value_exists_resultF. ((((exists ff_h_pvs_exists_resultFentrypositive. ff_h_pvs_exists_resultFentrypositive + S (dst_positive_exists_resultF) = S ((S (dst_index_exists_resultF)) * dst_positive_scale_exists_resultF)) /\ exists ff_q_pvs_exists_resultFentrypositive. dst_positive_code_exists_resultF = ff_q_pvs_exists_resultFentrypositive * S ((S (dst_index_exists_resultF)) * dst_positive_scale_exists_resultF) + (dst_positive_exists_resultF))) /\ (((((exists ff_h_pvs_exists_resultFentrynegative. ff_h_pvs_exists_resultFentrynegative + S (dst_negative_exists_resultF) = S ((S (dst_index_exists_resultF)) * dst_negative_scale_exists_resultF)) /\ exists ff_q_pvs_exists_resultFentrynegative. dst_negative_code_exists_resultF = ff_q_pvs_exists_resultFentrynegative * S ((S (dst_index_exists_resultF)) * dst_negative_scale_exists_resultF) + (dst_negative_exists_resultF))) /\ (exists ge_balance_positive_exists_resultFentryvalue ge_balance_negative_exists_resultFentryvalue. (((((dst_value_exists_resultF) = 2 * (ge_balance_positive_exists_resultFentryvalue) /\ (ge_balance_negative_exists_resultFentryvalue) = 0) \/ exists ge_signed_half_exists_resultFentryvaluedecode. (((dst_value_exists_resultF) = 2 * ge_signed_half_exists_resultFentryvaluedecode + 1 /\ (ge_balance_positive_exists_resultFentryvalue) = 0) /\ (ge_balance_negative_exists_resultFentryvalue) = S ge_signed_half_exists_resultFentryvaluedecode))) /\ ((dst_positive_exists_resultF) + ge_balance_negative_exists_resultFentryvalue = (dst_negative_exists_resultF) + ge_balance_positive_exists_resultFentryvalue))))))))) /\ (((exists dst_positive_code_exists_resultG dst_positive_scale_exists_resultG dst_negative_code_exists_resultG dst_negative_scale_exists_resultG. (((G) = (((((dst_positive_code_exists_resultG) + (dst_positive_scale_exists_resultG)) * S ((dst_positive_code_exists_resultG) + (dst_positive_scale_exists_resultG)) + ((dst_positive_scale_exists_resultG) + (dst_positive_scale_exists_resultG))) + (((dst_negative_code_exists_resultG) + (dst_negative_scale_exists_resultG)) * S ((dst_negative_code_exists_resultG) + (dst_negative_scale_exists_resultG)) + ((dst_negative_scale_exists_resultG) + (dst_negative_scale_exists_resultG)))) * S ((((dst_positive_code_exists_resultG) + (dst_positive_scale_exists_resultG)) * S ((dst_positive_code_exists_resultG) + (dst_positive_scale_exists_resultG)) + ((dst_positive_scale_exists_resultG) + (dst_positive_scale_exists_resultG))) + (((dst_negative_code_exists_resultG) + (dst_negative_scale_exists_resultG)) * S ((dst_negative_code_exists_resultG) + (dst_negative_scale_exists_resultG)) + ((dst_negative_scale_exists_resultG) + (dst_negative_scale_exists_resultG)))) + ((((dst_negative_code_exists_resultG) + (dst_negative_scale_exists_resultG)) * S ((dst_negative_code_exists_resultG) + (dst_negative_scale_exists_resultG)) + ((dst_negative_scale_exists_resultG) + (dst_negative_scale_exists_resultG))) + (((dst_negative_code_exists_resultG) + (dst_negative_scale_exists_resultG)) * S ((dst_negative_code_exists_resultG) + (dst_negative_scale_exists_resultG)) + ((dst_negative_scale_exists_resultG) + (dst_negative_scale_exists_resultG)))))) /\ (forall dst_index_exists_resultG. (exists pvs_le_gap_exists_resultGdomain. pvs_le_gap_exists_resultGdomain + (dst_index_exists_resultG) = (0)) -> exists dst_positive_exists_resultG dst_negative_exists_resultG dst_value_exists_resultG. ((((exists ff_h_pvs_exists_resultGentrypositive. ff_h_pvs_exists_resultGentrypositive + S (dst_positive_exists_resultG) = S ((S (dst_index_exists_resultG)) * dst_positive_scale_exists_resultG)) /\ exists ff_q_pvs_exists_resultGentrypositive. dst_positive_code_exists_resultG = ff_q_pvs_exists_resultGentrypositive * S ((S (dst_index_exists_resultG)) * dst_positive_scale_exists_resultG) + (dst_positive_exists_resultG))) /\ (((((exists ff_h_pvs_exists_resultGentrynegative. ff_h_pvs_exists_resultGentrynegative + S (dst_negative_exists_resultG) = S ((S (dst_index_exists_resultG)) * dst_negative_scale_exists_resultG)) /\ exists ff_q_pvs_exists_resultGentrynegative. dst_negative_code_exists_resultG = ff_q_pvs_exists_resultGentrynegative * S ((S (dst_index_exists_resultG)) * dst_negative_scale_exists_resultG) + (dst_negative_exists_resultG))) /\ (exists ge_balance_positive_exists_resultGentryvalue ge_balance_negative_exists_resultGentryvalue. (((((dst_value_exists_resultG) = 2 * (ge_balance_positive_exists_resultGentryvalue) /\ (ge_balance_negative_exists_resultGentryvalue) = 0) \/ exists ge_signed_half_exists_resultGentryvaluedecode. (((dst_value_exists_resultG) = 2 * ge_signed_half_exists_resultGentryvaluedecode + 1 /\ (ge_balance_positive_exists_resultGentryvalue) = 0) /\ (ge_balance_negative_exists_resultGentryvalue) = S ge_signed_half_exists_resultGentryvaluedecode))) /\ ((dst_positive_exists_resultG) + ge_balance_negative_exists_resultGentryvalue = (dst_negative_exists_resultG) + ge_balance_positive_exists_resultGentryvalue))))))))) /\ (((exists dst_positive_code_exists_resultT dst_positive_scale_exists_resultT dst_negative_code_exists_resultT dst_negative_scale_exists_resultT. (((T) = (((((dst_positive_code_exists_resultT) + (dst_positive_scale_exists_resultT)) * S ((dst_positive_code_exists_resultT) + (dst_positive_scale_exists_resultT)) + ((dst_positive_scale_exists_resultT) + (dst_positive_scale_exists_resultT))) + (((dst_negative_code_exists_resultT) + (dst_negative_scale_exists_resultT)) * S ((dst_negative_code_exists_resultT) + (dst_negative_scale_exists_resultT)) + ((dst_negative_scale_exists_resultT) + (dst_negative_scale_exists_resultT)))) * S ((((dst_positive_code_exists_resultT) + (dst_positive_scale_exists_resultT)) * S ((dst_positive_code_exists_resultT) + (dst_positive_scale_exists_resultT)) + ((dst_positive_scale_exists_resultT) + (dst_positive_scale_exists_resultT))) + (((dst_negative_code_exists_resultT) + (dst_negative_scale_exists_resultT)) * S ((dst_negative_code_exists_resultT) + (dst_negative_scale_exists_resultT)) + ((dst_negative_scale_exists_resultT) + (dst_negative_scale_exists_resultT)))) + ((((dst_negative_code_exists_resultT) + (dst_negative_scale_exists_resultT)) * S ((dst_negative_code_exists_resultT) + (dst_negative_scale_exists_resultT)) + ((dst_negative_scale_exists_resultT) + (dst_negative_scale_exists_resultT))) + (((dst_negative_code_exists_resultT) + (dst_negative_scale_exists_resultT)) * S ((dst_negative_code_exists_resultT) + (dst_negative_scale_exists_resultT)) + ((dst_negative_scale_exists_resultT) + (dst_negative_scale_exists_resultT)))))) /\ (forall dst_index_exists_resultT. (exists pvs_le_gap_exists_resultTdomain. pvs_le_gap_exists_resultTdomain + (dst_index_exists_resultT) = ((m)*(n))) -> exists dst_positive_exists_resultT dst_negative_exists_resultT dst_value_exists_resultT. ((((exists ff_h_pvs_exists_resultTentrypositive. ff_h_pvs_exists_resultTentrypositive + S (dst_positive_exists_resultT) = S ((S (dst_index_exists_resultT)) * dst_positive_scale_exists_resultT)) /\ exists ff_q_pvs_exists_resultTentrypositive. dst_positive_code_exists_resultT = ff_q_pvs_exists_resultTentrypositive * S ((S (dst_index_exists_resultT)) * dst_positive_scale_exists_resultT) + (dst_positive_exists_resultT))) /\ (((((exists ff_h_pvs_exists_resultTentrynegative. ff_h_pvs_exists_resultTentrynegative + S (dst_negative_exists_resultT) = S ((S (dst_index_exists_resultT)) * dst_negative_scale_exists_resultT)) /\ exists ff_q_pvs_exists_resultTentrynegative. dst_negative_code_exists_resultT = ff_q_pvs_exists_resultTentrynegative * S ((S (dst_index_exists_resultT)) * dst_negative_scale_exists_resultT) + (dst_negative_exists_resultT))) /\ (exists ge_balance_positive_exists_resultTentryvalue ge_balance_negative_exists_resultTentryvalue. (((((dst_value_exists_resultT) = 2 * (ge_balance_positive_exists_resultTentryvalue) /\ (ge_balance_negative_exists_resultTentryvalue) = 0) \/ exists ge_signed_half_exists_resultTentryvaluedecode. (((dst_value_exists_resultT) = 2 * ge_signed_half_exists_resultTentryvaluedecode + 1 /\ (ge_balance_positive_exists_resultTentryvalue) = 0) /\ (ge_balance_negative_exists_resultTentryvalue) = S ge_signed_half_exists_resultTentryvaluedecode))) /\ ((dst_positive_exists_resultT) + ge_balance_negative_exists_resultTentryvalue = (dst_negative_exists_resultT) + ge_balance_positive_exists_resultTentryvalue))))))))) /\ (forall scp_row_exists_result scp_column_exists_result scp_first_exists_result scp_second_exists_result scp_value_exists_result. (exists pvs_gap_exists_resultrows. pvs_gap_exists_resultrows + S (scp_row_exists_result) = (m)) -> (exists pvs_gap_exists_resultcolumns. pvs_gap_exists_resultcolumns + S (scp_column_exists_result) = (n)) -> (exists dst_positive_code_exists_resultfirst dst_positive_scale_exists_resultfirst dst_negative_code_exists_resultfirst dst_negative_scale_exists_resultfirst dst_positive_exists_resultfirst dst_negative_exists_resultfirst. (((F) = (((((dst_positive_code_exists_resultfirst) + (dst_positive_scale_exists_resultfirst)) * S ((dst_positive_code_exists_resultfirst) + (dst_positive_scale_exists_resultfirst)) + ((dst_positive_scale_exists_resultfirst) + (dst_positive_scale_exists_resultfirst))) + (((dst_negative_code_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)) * S ((dst_negative_code_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)) + ((dst_negative_scale_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)))) * S ((((dst_positive_code_exists_resultfirst) + (dst_positive_scale_exists_resultfirst)) * S ((dst_positive_code_exists_resultfirst) + (dst_positive_scale_exists_resultfirst)) + ((dst_positive_scale_exists_resultfirst) + (dst_positive_scale_exists_resultfirst))) + (((dst_negative_code_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)) * S ((dst_negative_code_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)) + ((dst_negative_scale_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)))) + ((((dst_negative_code_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)) * S ((dst_negative_code_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)) + ((dst_negative_scale_exists_resultfirst) + (dst_negative_scale_exists_resultfirst))) + (((dst_negative_code_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)) * S ((dst_negative_code_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)) + ((dst_negative_scale_exists_resultfirst) + (dst_negative_scale_exists_resultfirst)))))) /\ (((((exists ff_h_pvs_exists_resultfirstpositive. ff_h_pvs_exists_resultfirstpositive + S (dst_positive_exists_resultfirst) = S ((S (scp_row_exists_result)) * dst_positive_scale_exists_resultfirst)) /\ exists ff_q_pvs_exists_resultfirstpositive. dst_positive_code_exists_resultfirst = ff_q_pvs_exists_resultfirstpositive * S ((S (scp_row_exists_result)) * dst_positive_scale_exists_resultfirst) + (dst_positive_exists_resultfirst))) /\ (((((exists ff_h_pvs_exists_resultfirstnegative. ff_h_pvs_exists_resultfirstnegative + S (dst_negative_exists_resultfirst) = S ((S (scp_row_exists_result)) * dst_negative_scale_exists_resultfirst)) /\ exists ff_q_pvs_exists_resultfirstnegative. dst_negative_code_exists_resultfirst = ff_q_pvs_exists_resultfirstnegative * S ((S (scp_row_exists_result)) * dst_negative_scale_exists_resultfirst) + (dst_negative_exists_resultfirst))) /\ (exists ge_balance_positive_exists_resultfirstvalue ge_balance_negative_exists_resultfirstvalue. (((((scp_first_exists_result) = 2 * (ge_balance_positive_exists_resultfirstvalue) /\ (ge_balance_negative_exists_resultfirstvalue) = 0) \/ exists ge_signed_half_exists_resultfirstvaluedecode. (((scp_first_exists_result) = 2 * ge_signed_half_exists_resultfirstvaluedecode + 1 /\ (ge_balance_positive_exists_resultfirstvalue) = 0) /\ (ge_balance_negative_exists_resultfirstvalue) = S ge_signed_half_exists_resultfirstvaluedecode))) /\ ((dst_positive_exists_resultfirst) + ge_balance_negative_exists_resultfirstvalue = (dst_negative_exists_resultfirst) + ge_balance_positive_exists_resultfirstvalue))))))))) -> (exists dst_positive_code_exists_resultsecond dst_positive_scale_exists_resultsecond dst_negative_code_exists_resultsecond dst_negative_scale_exists_resultsecond dst_positive_exists_resultsecond dst_negative_exists_resultsecond. (((G) = (((((dst_positive_code_exists_resultsecond) + (dst_positive_scale_exists_resultsecond)) * S ((dst_positive_code_exists_resultsecond) + (dst_positive_scale_exists_resultsecond)) + ((dst_positive_scale_exists_resultsecond) + (dst_positive_scale_exists_resultsecond))) + (((dst_negative_code_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)) * S ((dst_negative_code_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)) + ((dst_negative_scale_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)))) * S ((((dst_positive_code_exists_resultsecond) + (dst_positive_scale_exists_resultsecond)) * S ((dst_positive_code_exists_resultsecond) + (dst_positive_scale_exists_resultsecond)) + ((dst_positive_scale_exists_resultsecond) + (dst_positive_scale_exists_resultsecond))) + (((dst_negative_code_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)) * S ((dst_negative_code_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)) + ((dst_negative_scale_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)))) + ((((dst_negative_code_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)) * S ((dst_negative_code_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)) + ((dst_negative_scale_exists_resultsecond) + (dst_negative_scale_exists_resultsecond))) + (((dst_negative_code_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)) * S ((dst_negative_code_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)) + ((dst_negative_scale_exists_resultsecond) + (dst_negative_scale_exists_resultsecond)))))) /\ (((((exists ff_h_pvs_exists_resultsecondpositive. ff_h_pvs_exists_resultsecondpositive + S (dst_positive_exists_resultsecond) = S ((S (scp_column_exists_result)) * dst_positive_scale_exists_resultsecond)) /\ exists ff_q_pvs_exists_resultsecondpositive. dst_positive_code_exists_resultsecond = ff_q_pvs_exists_resultsecondpositive * S ((S (scp_column_exists_result)) * dst_positive_scale_exists_resultsecond) + (dst_positive_exists_resultsecond))) /\ (((((exists ff_h_pvs_exists_resultsecondnegative. ff_h_pvs_exists_resultsecondnegative + S (dst_negative_exists_resultsecond) = S ((S (scp_column_exists_result)) * dst_negative_scale_exists_resultsecond)) /\ exists ff_q_pvs_exists_resultsecondnegative. dst_negative_code_exists_resultsecond = ff_q_pvs_exists_resultsecondnegative * S ((S (scp_column_exists_result)) * dst_negative_scale_exists_resultsecond) + (dst_negative_exists_resultsecond))) /\ (exists ge_balance_positive_exists_resultsecondvalue ge_balance_negative_exists_resultsecondvalue. (((((scp_second_exists_result) = 2 * (ge_balance_positive_exists_resultsecondvalue) /\ (ge_balance_negative_exists_resultsecondvalue) = 0) \/ exists ge_signed_half_exists_resultsecondvaluedecode. (((scp_second_exists_result) = 2 * ge_signed_half_exists_resultsecondvaluedecode + 1 /\ (ge_balance_positive_exists_resultsecondvalue) = 0) /\ (ge_balance_negative_exists_resultsecondvalue) = S ge_signed_half_exists_resultsecondvaluedecode))) /\ ((dst_positive_exists_resultsecond) + ge_balance_negative_exists_resultsecondvalue = (dst_negative_exists_resultsecond) + ge_balance_positive_exists_resultsecondvalue))))))))) -> (exists dst_positive_code_exists_resultentry dst_positive_scale_exists_resultentry dst_negative_code_exists_resultentry dst_negative_scale_exists_resultentry dst_positive_exists_resultentry dst_negative_exists_resultentry. (((T) = (((((dst_positive_code_exists_resultentry) + (dst_positive_scale_exists_resultentry)) * S ((dst_positive_code_exists_resultentry) + (dst_positive_scale_exists_resultentry)) + ((dst_positive_scale_exists_resultentry) + (dst_positive_scale_exists_resultentry))) + (((dst_negative_code_exists_resultentry) + (dst_negative_scale_exists_resultentry)) * S ((dst_negative_code_exists_resultentry) + (dst_negative_scale_exists_resultentry)) + ((dst_negative_scale_exists_resultentry) + (dst_negative_scale_exists_resultentry)))) * S ((((dst_positive_code_exists_resultentry) + (dst_positive_scale_exists_resultentry)) * S ((dst_positive_code_exists_resultentry) + (dst_positive_scale_exists_resultentry)) + ((dst_positive_scale_exists_resultentry) + (dst_positive_scale_exists_resultentry))) + (((dst_negative_code_exists_resultentry) + (dst_negative_scale_exists_resultentry)) * S ((dst_negative_code_exists_resultentry) + (dst_negative_scale_exists_resultentry)) + ((dst_negative_scale_exists_resultentry) + (dst_negative_scale_exists_resultentry)))) + ((((dst_negative_code_exists_resultentry) + (dst_negative_scale_exists_resultentry)) * S ((dst_negative_code_exists_resultentry) + (dst_negative_scale_exists_resultentry)) + ((dst_negative_scale_exists_resultentry) + (dst_negative_scale_exists_resultentry))) + (((dst_negative_code_exists_resultentry) + (dst_negative_scale_exists_resultentry)) * S ((dst_negative_code_exists_resultentry) + (dst_negative_scale_exists_resultentry)) + ((dst_negative_scale_exists_resultentry) + (dst_negative_scale_exists_resultentry)))))) /\ (((((exists ff_h_pvs_exists_resultentrypositive. ff_h_pvs_exists_resultentrypositive + S (dst_positive_exists_resultentry) = S ((S (((n)*(scp_row_exists_result)+(scp_column_exists_result)))) * dst_positive_scale_exists_resultentry)) /\ exists ff_q_pvs_exists_resultentrypositive. dst_positive_code_exists_resultentry = ff_q_pvs_exists_resultentrypositive * S ((S (((n)*(scp_row_exists_result)+(scp_column_exists_result)))) * dst_positive_scale_exists_resultentry) + (dst_positive_exists_resultentry))) /\ (((((exists ff_h_pvs_exists_resultentrynegative. ff_h_pvs_exists_resultentrynegative + S (dst_negative_exists_resultentry) = S ((S (((n)*(scp_row_exists_result)+(scp_column_exists_result)))) * dst_negative_scale_exists_resultentry)) /\ exists ff_q_pvs_exists_resultentrynegative. dst_negative_code_exists_resultentry = ff_q_pvs_exists_resultentrynegative * S ((S (((n)*(scp_row_exists_result)+(scp_column_exists_result)))) * dst_negative_scale_exists_resultentry) + (dst_negative_exists_resultentry))) /\ (exists ge_balance_positive_exists_resultentryvalue ge_balance_negative_exists_resultentryvalue. (((((scp_value_exists_result) = 2 * (ge_balance_positive_exists_resultentryvalue) /\ (ge_balance_negative_exists_resultentryvalue) = 0) \/ exists ge_signed_half_exists_resultentryvaluedecode. (((scp_value_exists_result) = 2 * ge_signed_half_exists_resultentryvaluedecode + 1 /\ (ge_balance_positive_exists_resultentryvalue) = 0) /\ (ge_balance_negative_exists_resultentryvalue) = S ge_signed_half_exists_resultentryvaluedecode))) /\ ((dst_positive_exists_resultentry) + ge_balance_negative_exists_resultentryvalue = (dst_negative_exists_resultentry) + ge_balance_positive_exists_resultentryvalue))))))))) -> (exists sto_ap_exists_resultmultiply sto_an_exists_resultmultiply sto_bp_exists_resultmultiply sto_bn_exists_resultmultiply sto_cp_exists_resultmultiply sto_cn_exists_resultmultiply. (((((scp_first_exists_result) = 2 * (sto_ap_exists_resultmultiply) /\ (sto_an_exists_resultmultiply) = 0) \/ exists ge_signed_half_exists_resultmultiplyleft. (((scp_first_exists_result) = 2 * ge_signed_half_exists_resultmultiplyleft + 1 /\ (sto_ap_exists_resultmultiply) = 0) /\ (sto_an_exists_resultmultiply) = S ge_signed_half_exists_resultmultiplyleft))) /\ ((((((scp_second_exists_result) = 2 * (sto_bp_exists_resultmultiply) /\ (sto_bn_exists_resultmultiply) = 0) \/ exists ge_signed_half_exists_resultmultiplyright. (((scp_second_exists_result) = 2 * ge_signed_half_exists_resultmultiplyright + 1 /\ (sto_bp_exists_resultmultiply) = 0) /\ (sto_bn_exists_resultmultiply) = S ge_signed_half_exists_resultmultiplyright))) /\ ((((((scp_value_exists_result) = 2 * (sto_cp_exists_resultmultiply) /\ (sto_cn_exists_resultmultiply) = 0) \/ exists ge_signed_half_exists_resultmultiplyoutput. (((scp_value_exists_result) = 2 * ge_signed_half_exists_resultmultiplyoutput + 1 /\ (sto_cp_exists_resultmultiply) = 0) /\ (sto_cn_exists_resultmultiply) = S ge_signed_half_exists_resultmultiplyoutput))) /\ ((sto_ap_exists_resultmultiply * sto_bp_exists_resultmultiply + sto_an_exists_resultmultiply * sto_bn_exists_resultmultiply) + sto_cn_exists_resultmultiply = (sto_ap_exists_resultmultiply * sto_bn_exists_resultmultiply + sto_an_exists_resultmultiply * sto_bp_exists_resultmultiply) + sto_cp_exists_resultmultiply))))))))))))))Constructive proof overview
Generated structural guide
Construct an actual finite signed outer-product beta table for arbitrary dimensions, explicitly including zero width and zero height.
The unchanged tactic script uses 5 declared prerequisites and contains 51 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
eq_decidable Stable theorem; checked-use authorized arithmetic_signed_table_singleton Alpha theorem; checked-use authorized MX0025 signed_cartesian_product_empty_columns MX0023 signed_cartesian_flat_prefix_exists MX0024 signed_cartesian_product_from_flat_prefixDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (3)
01Fix variables and assumptionsL1–6
02Establish hnL7–10
03Separate the logical casesL11–11
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L11
cases hn
04Calculate and transport equalitiesL12–17
05Establish htL18–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed table singleton.
- L18
have ht : ∃ T. ArithTable(0,T) ∧ ArithAt(T,0,0)Definitions: ArithTableArithAt - L19
specialize arithmetic_signed_table_singleton (0) - L20
apply arithmetic_signed_table_singleton
06Separate the logical casesL21–22
07Construct an explicit witnessL23–23
Supply the displayed value, then prove that it has the required property.
- L23
exists x
08Use earlier factsL24–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
specialize signed_cartesian_product_empty_columns (F) - L25
specialize signed_cartesian_product_empty_columns (G) - L26
specialize signed_cartesian_product_empty_columns (x) - L27
specialize signed_cartesian_product_empty_columns (m) - L28
apply signed_cartesian_product_empty_columns - L29
exact hF - L30
exact hG - L31
exact ht_witness_left
09Establish hpL32–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed cartesian flat prefix exists.
- L32
have hp : ∃ T. ArithTable(m · n,T) ∧ (∀ x. ∀ y. Le(x,m · n) → ArithAt(T,x,y) → ∃ z. ∃ k. ∃ i. ∃ j. x = n · z + k ∧ (Lt(k,n) ∧ (ArithAt(F,z,i) ∧ (ArithAt(G,k,j) ∧ SignedMul(i,j,y)))))Definitions: SignedMulArithTableArithAtLeLt - L33
specialize signed_cartesian_flat_prefix_exists (F) - L34
specialize signed_cartesian_flat_prefix_exists (G) - L35
specialize signed_cartesian_flat_prefix_exists (n) - L36
specialize signed_cartesian_flat_prefix_exists (m*n) - L37
apply signed_cartesian_flat_prefix_exists - L38
exact hF - L39
exact hG - L40
exact hn_right
10Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
cases hp
11Construct an explicit witnessL42–42
Supply the displayed value, then prove that it has the required property.
- L42
exists x
12Use earlier factsL43–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
specialize signed_cartesian_product_from_flat_prefix (F) - L44
specialize signed_cartesian_product_from_flat_prefix (G) - L45
specialize signed_cartesian_product_from_flat_prefix (x) - L46
specialize signed_cartesian_product_from_flat_prefix (m) - L47
specialize signed_cartesian_product_from_flat_prefix (n) - L48
apply signed_cartesian_product_from_flat_prefix - L49
exact hF - L50
exact hG - L51
exact hp_witness
Original exact command ledger · 51 lines
- 0001
intro F - 0002
intro G - 0003
intro m - 0004
intro n - 0005
intro hF - 0006
intro hG - 0007
have hn : n=0 \/ ~(n=0) - 0008
specialize eq_decidable (n) - 0009
specialize eq_decidable (0) - 0010
apply eq_decidable - 0011
cases hn - 0012
rewrite hn_left - 0013
rewrite hn_left - 0014
rewrite hn_left - 0015
rewrite hn_left - 0016
rewrite hn_left - 0017
rewrite hn_left - 0018
have ht : exists T. (((exists dst_positive_code_construct_zero_table dst_positive_scale_construct_zero_table dst_negative_code_construct_zero_table dst_negative_scale_construct_zero_table. (((T) = (((((dst_positive_code_construct_zero_table) + (dst_positive_scale_construct_zero_table)) * S ((dst_positive_code_construct_zero_table) + (dst_positive_scale_construct_zero_table)) + ((dst_positive_scale_construct_zero_table) + (dst_positive_scale_construct_zero_table))) + (((dst_negative_code_construct_zero_table) + (dst_negative_scale_construct_zero_table)) * S ((dst_negative_code_construct_zero_table) + (dst_negative_scale_construct_zero_table)) + ((dst_negative_scale_construct_zero_table) + (dst_negative_scale_construct_zero_table)))) * S ((((dst_positive_code_construct_zero_table) + (dst_positive_scale_construct_zero_table)) * S ((dst_positive_code_construct_zero_table) + (dst_positive_scale_construct_zero_table)) + ((dst_positive_scale_construct_zero_table) + (dst_positive_scale_construct_zero_table))) + (((dst_negative_code_construct_zero_table) + (dst_negative_scale_construct_zero_table)) * S ((dst_negative_code_construct_zero_table) + (dst_negative_scale_construct_zero_table)) + ((dst_negative_scale_construct_zero_table) + (dst_negative_scale_construct_zero_table)))) + ((((dst_negative_code_construct_zero_table) + (dst_negative_scale_construct_zero_table)) * S ((dst_negative_code_construct_zero_table) + (dst_negative_scale_construct_zero_table)) + ((dst_negative_scale_construct_zero_table) + (dst_negative_scale_construct_zero_table))) + (((dst_negative_code_construct_zero_table) + (dst_negative_scale_construct_zero_table)) * S ((dst_negative_code_construct_zero_table) + (dst_negative_scale_construct_zero_table)) + ((dst_negative_scale_construct_zero_table) + (dst_negative_scale_construct_zero_table)))))) /\ (forall dst_index_construct_zero_table. (exists pvs_le_gap_construct_zero_tabledomain. pvs_le_gap_construct_zero_tabledomain + (dst_index_construct_zero_table) = (0)) -> exists dst_positive_construct_zero_table dst_negative_construct_zero_table dst_value_construct_zero_table. ((((exists ff_h_pvs_construct_zero_tableentrypositive. ff_h_pvs_construct_zero_tableentrypositive + S (dst_positive_construct_zero_table) = S ((S (dst_index_construct_zero_table)) * dst_positive_scale_construct_zero_table)) /\ exists ff_q_pvs_construct_zero_tableentrypositive. dst_positive_code_construct_zero_table = ff_q_pvs_construct_zero_tableentrypositive * S ((S (dst_index_construct_zero_table)) * dst_positive_scale_construct_zero_table) + (dst_positive_construct_zero_table))) /\ (((((exists ff_h_pvs_construct_zero_tableentrynegative. ff_h_pvs_construct_zero_tableentrynegative + S (dst_negative_construct_zero_table) = S ((S (dst_index_construct_zero_table)) * dst_negative_scale_construct_zero_table)) /\ exists ff_q_pvs_construct_zero_tableentrynegative. dst_negative_code_construct_zero_table = ff_q_pvs_construct_zero_tableentrynegative * S ((S (dst_index_construct_zero_table)) * dst_negative_scale_construct_zero_table) + (dst_negative_construct_zero_table))) /\ (exists ge_balance_positive_construct_zero_tableentryvalue ge_balance_negative_construct_zero_tableentryvalue. (((((dst_value_construct_zero_table) = 2 * (ge_balance_positive_construct_zero_tableentryvalue) /\ (ge_balance_negative_construct_zero_tableentryvalue) = 0) \/ exists ge_signed_half_construct_zero_tableentryvaluedecode. (((dst_value_construct_zero_table) = 2 * ge_signed_half_construct_zero_tableentryvaluedecode + 1 /\ (ge_balance_positive_construct_zero_tableentryvalue) = 0) /\ (ge_balance_negative_construct_zero_tableentryvalue) = S ge_signed_half_construct_zero_tableentryvaluedecode))) /\ ((dst_positive_construct_zero_table) + ge_balance_negative_construct_zero_tableentryvalue = (dst_negative_construct_zero_table) + ge_balance_positive_construct_zero_tableentryvalue))))))))) /\ (exists dst_positive_code_construct_zero_entry dst_positive_scale_construct_zero_entry dst_negative_code_construct_zero_entry dst_negative_scale_construct_zero_entry dst_positive_construct_zero_entry dst_negative_construct_zero_entry. (((T) = (((((dst_positive_code_construct_zero_entry) + (dst_positive_scale_construct_zero_entry)) * S ((dst_positive_code_construct_zero_entry) + (dst_positive_scale_construct_zero_entry)) + ((dst_positive_scale_construct_zero_entry) + (dst_positive_scale_construct_zero_entry))) + (((dst_negative_code_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)) * S ((dst_negative_code_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)) + ((dst_negative_scale_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)))) * S ((((dst_positive_code_construct_zero_entry) + (dst_positive_scale_construct_zero_entry)) * S ((dst_positive_code_construct_zero_entry) + (dst_positive_scale_construct_zero_entry)) + ((dst_positive_scale_construct_zero_entry) + (dst_positive_scale_construct_zero_entry))) + (((dst_negative_code_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)) * S ((dst_negative_code_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)) + ((dst_negative_scale_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)))) + ((((dst_negative_code_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)) * S ((dst_negative_code_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)) + ((dst_negative_scale_construct_zero_entry) + (dst_negative_scale_construct_zero_entry))) + (((dst_negative_code_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)) * S ((dst_negative_code_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)) + ((dst_negative_scale_construct_zero_entry) + (dst_negative_scale_construct_zero_entry)))))) /\ (((((exists ff_h_pvs_construct_zero_entrypositive. ff_h_pvs_construct_zero_entrypositive + S (dst_positive_construct_zero_entry) = S ((S (0)) * dst_positive_scale_construct_zero_entry)) /\ exists ff_q_pvs_construct_zero_entrypositive. dst_positive_code_construct_zero_entry = ff_q_pvs_construct_zero_entrypositive * S ((S (0)) * dst_positive_scale_construct_zero_entry) + (dst_positive_construct_zero_entry))) /\ (((((exists ff_h_pvs_construct_zero_entrynegative. ff_h_pvs_construct_zero_entrynegative + S (dst_negative_construct_zero_entry) = S ((S (0)) * dst_negative_scale_construct_zero_entry)) /\ exists ff_q_pvs_construct_zero_entrynegative. dst_negative_code_construct_zero_entry = ff_q_pvs_construct_zero_entrynegative * S ((S (0)) * dst_negative_scale_construct_zero_entry) + (dst_negative_construct_zero_entry))) /\ (exists ge_balance_positive_construct_zero_entryvalue ge_balance_negative_construct_zero_entryvalue. (((((0) = 2 * (ge_balance_positive_construct_zero_entryvalue) /\ (ge_balance_negative_construct_zero_entryvalue) = 0) \/ exists ge_signed_half_construct_zero_entryvaluedecode. (((0) = 2 * ge_signed_half_construct_zero_entryvaluedecode + 1 /\ (ge_balance_positive_construct_zero_entryvalue) = 0) /\ (ge_balance_negative_construct_zero_entryvalue) = S ge_signed_half_construct_zero_entryvaluedecode))) /\ ((dst_positive_construct_zero_entry) + ge_balance_negative_construct_zero_entryvalue = (dst_negative_construct_zero_entry) + ge_balance_positive_construct_zero_entryvalue))))))))))) - 0019
specialize arithmetic_signed_table_singleton (0) - 0020
apply arithmetic_signed_table_singleton - 0021
cases ht - 0022
cases ht_witness - 0023
exists x - 0024
specialize signed_cartesian_product_empty_columns (F) - 0025
specialize signed_cartesian_product_empty_columns (G) - 0026
specialize signed_cartesian_product_empty_columns (x) - 0027
specialize signed_cartesian_product_empty_columns (m) - 0028
apply signed_cartesian_product_empty_columns - 0029
exact hF - 0030
exact hG - 0031
exact ht_witness_left - 0032
have hp : exists T. (((exists dst_positive_code_construct_flattable dst_positive_scale_construct_flattable dst_negative_code_construct_flattable dst_negative_scale_construct_flattable. (((T) = (((((dst_positive_code_construct_flattable) + (dst_positive_scale_construct_flattable)) * S ((dst_positive_code_construct_flattable) + (dst_positive_scale_construct_flattable)) + ((dst_positive_scale_construct_flattable) + (dst_positive_scale_construct_flattable))) + (((dst_negative_code_construct_flattable) + (dst_negative_scale_construct_flattable)) * S ((dst_negative_code_construct_flattable) + (dst_negative_scale_construct_flattable)) + ((dst_negative_scale_construct_flattable) + (dst_negative_scale_construct_flattable)))) * S ((((dst_positive_code_construct_flattable) + (dst_positive_scale_construct_flattable)) * S ((dst_positive_code_construct_flattable) + (dst_positive_scale_construct_flattable)) + ((dst_positive_scale_construct_flattable) + (dst_positive_scale_construct_flattable))) + (((dst_negative_code_construct_flattable) + (dst_negative_scale_construct_flattable)) * S ((dst_negative_code_construct_flattable) + (dst_negative_scale_construct_flattable)) + ((dst_negative_scale_construct_flattable) + (dst_negative_scale_construct_flattable)))) + ((((dst_negative_code_construct_flattable) + (dst_negative_scale_construct_flattable)) * S ((dst_negative_code_construct_flattable) + (dst_negative_scale_construct_flattable)) + ((dst_negative_scale_construct_flattable) + (dst_negative_scale_construct_flattable))) + (((dst_negative_code_construct_flattable) + (dst_negative_scale_construct_flattable)) * S ((dst_negative_code_construct_flattable) + (dst_negative_scale_construct_flattable)) + ((dst_negative_scale_construct_flattable) + (dst_negative_scale_construct_flattable)))))) /\ (forall dst_index_construct_flattable. (exists pvs_le_gap_construct_flattabledomain. pvs_le_gap_construct_flattabledomain + (dst_index_construct_flattable) = (m*n)) -> exists dst_positive_construct_flattable dst_negative_construct_flattable dst_value_construct_flattable. ((((exists ff_h_pvs_construct_flattableentrypositive. ff_h_pvs_construct_flattableentrypositive + S (dst_positive_construct_flattable) = S ((S (dst_index_construct_flattable)) * dst_positive_scale_construct_flattable)) /\ exists ff_q_pvs_construct_flattableentrypositive. dst_positive_code_construct_flattable = ff_q_pvs_construct_flattableentrypositive * S ((S (dst_index_construct_flattable)) * dst_positive_scale_construct_flattable) + (dst_positive_construct_flattable))) /\ (((((exists ff_h_pvs_construct_flattableentrynegative. ff_h_pvs_construct_flattableentrynegative + S (dst_negative_construct_flattable) = S ((S (dst_index_construct_flattable)) * dst_negative_scale_construct_flattable)) /\ exists ff_q_pvs_construct_flattableentrynegative. dst_negative_code_construct_flattable = ff_q_pvs_construct_flattableentrynegative * S ((S (dst_index_construct_flattable)) * dst_negative_scale_construct_flattable) + (dst_negative_construct_flattable))) /\ (exists ge_balance_positive_construct_flattableentryvalue ge_balance_negative_construct_flattableentryvalue. (((((dst_value_construct_flattable) = 2 * (ge_balance_positive_construct_flattableentryvalue) /\ (ge_balance_negative_construct_flattableentryvalue) = 0) \/ exists ge_signed_half_construct_flattableentryvaluedecode. (((dst_value_construct_flattable) = 2 * ge_signed_half_construct_flattableentryvaluedecode + 1 /\ (ge_balance_positive_construct_flattableentryvalue) = 0) /\ (ge_balance_negative_construct_flattableentryvalue) = S ge_signed_half_construct_flattableentryvaluedecode))) /\ ((dst_positive_construct_flattable) + ge_balance_negative_construct_flattableentryvalue = (dst_negative_construct_flattable) + ge_balance_positive_construct_flattableentryvalue))))))))) /\ (forall scp_flat_index_construct_flat scp_flat_value_construct_flat. (exists pvs_le_gap_construct_flatbound. pvs_le_gap_construct_flatbound + (scp_flat_index_construct_flat) = (m*n)) -> (exists dst_positive_code_construct_flatentry dst_positive_scale_construct_flatentry dst_negative_code_construct_flatentry dst_negative_scale_construct_flatentry dst_positive_construct_flatentry dst_negative_construct_flatentry. (((T) = (((((dst_positive_code_construct_flatentry) + (dst_positive_scale_construct_flatentry)) * S ((dst_positive_code_construct_flatentry) + (dst_positive_scale_construct_flatentry)) + ((dst_positive_scale_construct_flatentry) + (dst_positive_scale_construct_flatentry))) + (((dst_negative_code_construct_flatentry) + (dst_negative_scale_construct_flatentry)) * S ((dst_negative_code_construct_flatentry) + (dst_negative_scale_construct_flatentry)) + ((dst_negative_scale_construct_flatentry) + (dst_negative_scale_construct_flatentry)))) * S ((((dst_positive_code_construct_flatentry) + (dst_positive_scale_construct_flatentry)) * S ((dst_positive_code_construct_flatentry) + (dst_positive_scale_construct_flatentry)) + ((dst_positive_scale_construct_flatentry) + (dst_positive_scale_construct_flatentry))) + (((dst_negative_code_construct_flatentry) + (dst_negative_scale_construct_flatentry)) * S ((dst_negative_code_construct_flatentry) + (dst_negative_scale_construct_flatentry)) + ((dst_negative_scale_construct_flatentry) + (dst_negative_scale_construct_flatentry)))) + ((((dst_negative_code_construct_flatentry) + (dst_negative_scale_construct_flatentry)) * S ((dst_negative_code_construct_flatentry) + (dst_negative_scale_construct_flatentry)) + ((dst_negative_scale_construct_flatentry) + (dst_negative_scale_construct_flatentry))) + (((dst_negative_code_construct_flatentry) + (dst_negative_scale_construct_flatentry)) * S ((dst_negative_code_construct_flatentry) + (dst_negative_scale_construct_flatentry)) + ((dst_negative_scale_construct_flatentry) + (dst_negative_scale_construct_flatentry)))))) /\ (((((exists ff_h_pvs_construct_flatentrypositive. ff_h_pvs_construct_flatentrypositive + S (dst_positive_construct_flatentry) = S ((S (scp_flat_index_construct_flat)) * dst_positive_scale_construct_flatentry)) /\ exists ff_q_pvs_construct_flatentrypositive. dst_positive_code_construct_flatentry = ff_q_pvs_construct_flatentrypositive * S ((S (scp_flat_index_construct_flat)) * dst_positive_scale_construct_flatentry) + (dst_positive_construct_flatentry))) /\ (((((exists ff_h_pvs_construct_flatentrynegative. ff_h_pvs_construct_flatentrynegative + S (dst_negative_construct_flatentry) = S ((S (scp_flat_index_construct_flat)) * dst_negative_scale_construct_flatentry)) /\ exists ff_q_pvs_construct_flatentrynegative. dst_negative_code_construct_flatentry = ff_q_pvs_construct_flatentrynegative * S ((S (scp_flat_index_construct_flat)) * dst_negative_scale_construct_flatentry) + (dst_negative_construct_flatentry))) /\ (exists ge_balance_positive_construct_flatentryvalue ge_balance_negative_construct_flatentryvalue. (((((scp_flat_value_construct_flat) = 2 * (ge_balance_positive_construct_flatentryvalue) /\ (ge_balance_negative_construct_flatentryvalue) = 0) \/ exists ge_signed_half_construct_flatentryvaluedecode. (((scp_flat_value_construct_flat) = 2 * ge_signed_half_construct_flatentryvaluedecode + 1 /\ (ge_balance_positive_construct_flatentryvalue) = 0) /\ (ge_balance_negative_construct_flatentryvalue) = S ge_signed_half_construct_flatentryvaluedecode))) /\ ((dst_positive_construct_flatentry) + ge_balance_negative_construct_flatentryvalue = (dst_negative_construct_flatentry) + ge_balance_positive_construct_flatentryvalue))))))))) -> (exists scp_flat_row_construct_flatproduct scp_flat_column_construct_flatproduct scp_flat_first_construct_flatproduct scp_flat_second_construct_flatproduct. (((scp_flat_index_construct_flat)=((n)*(scp_flat_row_construct_flatproduct)+(scp_flat_column_construct_flatproduct))) /\ (((exists pvs_gap_construct_flatproductremainder. pvs_gap_construct_flatproductremainder + S (scp_flat_column_construct_flatproduct) = (n)) /\ (((exists dst_positive_code_construct_flatproductF dst_positive_scale_construct_flatproductF dst_negative_code_construct_flatproductF dst_negative_scale_construct_flatproductF dst_positive_construct_flatproductF dst_negative_construct_flatproductF. (((F) = (((((dst_positive_code_construct_flatproductF) + (dst_positive_scale_construct_flatproductF)) * S ((dst_positive_code_construct_flatproductF) + (dst_positive_scale_construct_flatproductF)) + ((dst_positive_scale_construct_flatproductF) + (dst_positive_scale_construct_flatproductF))) + (((dst_negative_code_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)) * S ((dst_negative_code_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)) + ((dst_negative_scale_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)))) * S ((((dst_positive_code_construct_flatproductF) + (dst_positive_scale_construct_flatproductF)) * S ((dst_positive_code_construct_flatproductF) + (dst_positive_scale_construct_flatproductF)) + ((dst_positive_scale_construct_flatproductF) + (dst_positive_scale_construct_flatproductF))) + (((dst_negative_code_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)) * S ((dst_negative_code_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)) + ((dst_negative_scale_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)))) + ((((dst_negative_code_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)) * S ((dst_negative_code_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)) + ((dst_negative_scale_construct_flatproductF) + (dst_negative_scale_construct_flatproductF))) + (((dst_negative_code_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)) * S ((dst_negative_code_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)) + ((dst_negative_scale_construct_flatproductF) + (dst_negative_scale_construct_flatproductF)))))) /\ (((((exists ff_h_pvs_construct_flatproductFpositive. ff_h_pvs_construct_flatproductFpositive + S (dst_positive_construct_flatproductF) = S ((S (scp_flat_row_construct_flatproduct)) * dst_positive_scale_construct_flatproductF)) /\ exists ff_q_pvs_construct_flatproductFpositive. dst_positive_code_construct_flatproductF = ff_q_pvs_construct_flatproductFpositive * S ((S (scp_flat_row_construct_flatproduct)) * dst_positive_scale_construct_flatproductF) + (dst_positive_construct_flatproductF))) /\ (((((exists ff_h_pvs_construct_flatproductFnegative. ff_h_pvs_construct_flatproductFnegative + S (dst_negative_construct_flatproductF) = S ((S (scp_flat_row_construct_flatproduct)) * dst_negative_scale_construct_flatproductF)) /\ exists ff_q_pvs_construct_flatproductFnegative. dst_negative_code_construct_flatproductF = ff_q_pvs_construct_flatproductFnegative * S ((S (scp_flat_row_construct_flatproduct)) * dst_negative_scale_construct_flatproductF) + (dst_negative_construct_flatproductF))) /\ (exists ge_balance_positive_construct_flatproductFvalue ge_balance_negative_construct_flatproductFvalue. (((((scp_flat_first_construct_flatproduct) = 2 * (ge_balance_positive_construct_flatproductFvalue) /\ (ge_balance_negative_construct_flatproductFvalue) = 0) \/ exists ge_signed_half_construct_flatproductFvaluedecode. (((scp_flat_first_construct_flatproduct) = 2 * ge_signed_half_construct_flatproductFvaluedecode + 1 /\ (ge_balance_positive_construct_flatproductFvalue) = 0) /\ (ge_balance_negative_construct_flatproductFvalue) = S ge_signed_half_construct_flatproductFvaluedecode))) /\ ((dst_positive_construct_flatproductF) + ge_balance_negative_construct_flatproductFvalue = (dst_negative_construct_flatproductF) + ge_balance_positive_construct_flatproductFvalue))))))))) /\ (((exists dst_positive_code_construct_flatproductG dst_positive_scale_construct_flatproductG dst_negative_code_construct_flatproductG dst_negative_scale_construct_flatproductG dst_positive_construct_flatproductG dst_negative_construct_flatproductG. (((G) = (((((dst_positive_code_construct_flatproductG) + (dst_positive_scale_construct_flatproductG)) * S ((dst_positive_code_construct_flatproductG) + (dst_positive_scale_construct_flatproductG)) + ((dst_positive_scale_construct_flatproductG) + (dst_positive_scale_construct_flatproductG))) + (((dst_negative_code_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)) * S ((dst_negative_code_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)) + ((dst_negative_scale_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)))) * S ((((dst_positive_code_construct_flatproductG) + (dst_positive_scale_construct_flatproductG)) * S ((dst_positive_code_construct_flatproductG) + (dst_positive_scale_construct_flatproductG)) + ((dst_positive_scale_construct_flatproductG) + (dst_positive_scale_construct_flatproductG))) + (((dst_negative_code_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)) * S ((dst_negative_code_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)) + ((dst_negative_scale_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)))) + ((((dst_negative_code_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)) * S ((dst_negative_code_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)) + ((dst_negative_scale_construct_flatproductG) + (dst_negative_scale_construct_flatproductG))) + (((dst_negative_code_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)) * S ((dst_negative_code_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)) + ((dst_negative_scale_construct_flatproductG) + (dst_negative_scale_construct_flatproductG)))))) /\ (((((exists ff_h_pvs_construct_flatproductGpositive. ff_h_pvs_construct_flatproductGpositive + S (dst_positive_construct_flatproductG) = S ((S (scp_flat_column_construct_flatproduct)) * dst_positive_scale_construct_flatproductG)) /\ exists ff_q_pvs_construct_flatproductGpositive. dst_positive_code_construct_flatproductG = ff_q_pvs_construct_flatproductGpositive * S ((S (scp_flat_column_construct_flatproduct)) * dst_positive_scale_construct_flatproductG) + (dst_positive_construct_flatproductG))) /\ (((((exists ff_h_pvs_construct_flatproductGnegative. ff_h_pvs_construct_flatproductGnegative + S (dst_negative_construct_flatproductG) = S ((S (scp_flat_column_construct_flatproduct)) * dst_negative_scale_construct_flatproductG)) /\ exists ff_q_pvs_construct_flatproductGnegative. dst_negative_code_construct_flatproductG = ff_q_pvs_construct_flatproductGnegative * S ((S (scp_flat_column_construct_flatproduct)) * dst_negative_scale_construct_flatproductG) + (dst_negative_construct_flatproductG))) /\ (exists ge_balance_positive_construct_flatproductGvalue ge_balance_negative_construct_flatproductGvalue. (((((scp_flat_second_construct_flatproduct) = 2 * (ge_balance_positive_construct_flatproductGvalue) /\ (ge_balance_negative_construct_flatproductGvalue) = 0) \/ exists ge_signed_half_construct_flatproductGvaluedecode. (((scp_flat_second_construct_flatproduct) = 2 * ge_signed_half_construct_flatproductGvaluedecode + 1 /\ (ge_balance_positive_construct_flatproductGvalue) = 0) /\ (ge_balance_negative_construct_flatproductGvalue) = S ge_signed_half_construct_flatproductGvaluedecode))) /\ ((dst_positive_construct_flatproductG) + ge_balance_negative_construct_flatproductGvalue = (dst_negative_construct_flatproductG) + ge_balance_positive_construct_flatproductGvalue))))))))) /\ (exists sto_ap_construct_flatproductvalue sto_an_construct_flatproductvalue sto_bp_construct_flatproductvalue sto_bn_construct_flatproductvalue sto_cp_construct_flatproductvalue sto_cn_construct_flatproductvalue. (((((scp_flat_first_construct_flatproduct) = 2 * (sto_ap_construct_flatproductvalue) /\ (sto_an_construct_flatproductvalue) = 0) \/ exists ge_signed_half_construct_flatproductvalueleft. (((scp_flat_first_construct_flatproduct) = 2 * ge_signed_half_construct_flatproductvalueleft + 1 /\ (sto_ap_construct_flatproductvalue) = 0) /\ (sto_an_construct_flatproductvalue) = S ge_signed_half_construct_flatproductvalueleft))) /\ ((((((scp_flat_second_construct_flatproduct) = 2 * (sto_bp_construct_flatproductvalue) /\ (sto_bn_construct_flatproductvalue) = 0) \/ exists ge_signed_half_construct_flatproductvalueright. (((scp_flat_second_construct_flatproduct) = 2 * ge_signed_half_construct_flatproductvalueright + 1 /\ (sto_bp_construct_flatproductvalue) = 0) /\ (sto_bn_construct_flatproductvalue) = S ge_signed_half_construct_flatproductvalueright))) /\ ((((((scp_flat_value_construct_flat) = 2 * (sto_cp_construct_flatproductvalue) /\ (sto_cn_construct_flatproductvalue) = 0) \/ exists ge_signed_half_construct_flatproductvalueoutput. (((scp_flat_value_construct_flat) = 2 * ge_signed_half_construct_flatproductvalueoutput + 1 /\ (sto_cp_construct_flatproductvalue) = 0) /\ (sto_cn_construct_flatproductvalue) = S ge_signed_half_construct_flatproductvalueoutput))) /\ ((sto_ap_construct_flatproductvalue * sto_bp_construct_flatproductvalue + sto_an_construct_flatproductvalue * sto_bn_construct_flatproductvalue) + sto_cn_construct_flatproductvalue = (sto_ap_construct_flatproductvalue * sto_bn_construct_flatproductvalue + sto_an_construct_flatproductvalue * sto_bp_construct_flatproductvalue) + sto_cp_construct_flatproductvalue)))))))))))))))))) - 0033
specialize signed_cartesian_flat_prefix_exists (F) - 0034
specialize signed_cartesian_flat_prefix_exists (G) - 0035
specialize signed_cartesian_flat_prefix_exists (n) - 0036
specialize signed_cartesian_flat_prefix_exists (m*n) - 0037
apply signed_cartesian_flat_prefix_exists - 0038
exact hF - 0039
exact hG - 0040
exact hn_right - 0041
cases hp - 0042
exists x - 0043
specialize signed_cartesian_product_from_flat_prefix (F) - 0044
specialize signed_cartesian_product_from_flat_prefix (G) - 0045
specialize signed_cartesian_product_from_flat_prefix (x) - 0046
specialize signed_cartesian_product_from_flat_prefix (m) - 0047
specialize signed_cartesian_product_from_flat_prefix (n) - 0048
apply signed_cartesian_product_from_flat_prefix - 0049
exact hF - 0050
exact hG - 0051
exact hp_witness