MX000B

signed_multiplicative_positive_extensional

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

Multiplicativity depends only on the represented positive prefix, not on table codes, zeroth values or entries outside the product bound.

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 N F G. (((~((N)=0)) /\ (((exists dst_positive_code_extensional_sourcetable dst_positive_scale_extensional_sourcetable dst_negative_code_extensional_sourcetable dst_negative_scale_extensional_sourcetable. (((F) = (((((dst_positive_code_extensional_sourcetable) + (dst_positive_scale_extensional_sourcetable)) * S ((dst_positive_code_extensional_sourcetable) + (dst_positive_scale_extensional_sourcetable)) + ((dst_positive_scale_extensional_sourcetable) + (dst_positive_scale_extensional_sourcetable))) + (((dst_negative_code_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)) * S ((dst_negative_code_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)) + ((dst_negative_scale_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)))) * S ((((dst_positive_code_extensional_sourcetable) + (dst_positive_scale_extensional_sourcetable)) * S ((dst_positive_code_extensional_sourcetable) + (dst_positive_scale_extensional_sourcetable)) + ((dst_positive_scale_extensional_sourcetable) + (dst_positive_scale_extensional_sourcetable))) + (((dst_negative_code_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)) * S ((dst_negative_code_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)) + ((dst_negative_scale_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)))) + ((((dst_negative_code_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)) * S ((dst_negative_code_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)) + ((dst_negative_scale_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable))) + (((dst_negative_code_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)) * S ((dst_negative_code_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)) + ((dst_negative_scale_extensional_sourcetable) + (dst_negative_scale_extensional_sourcetable)))))) /\ (forall dst_index_extensional_sourcetable. (exists pvs_le_gap_extensional_sourcetabledomain. pvs_le_gap_extensional_sourcetabledomain + (dst_index_extensional_sourcetable) = (N)) -> exists dst_positive_extensional_sourcetable dst_negative_extensional_sourcetable dst_value_extensional_sourcetable. ((((exists ff_h_pvs_extensional_sourcetableentrypositive. ff_h_pvs_extensional_sourcetableentrypositive + S (dst_positive_extensional_sourcetable) = S ((S (dst_index_extensional_sourcetable)) * dst_positive_scale_extensional_sourcetable)) /\ exists ff_q_pvs_extensional_sourcetableentrypositive. dst_positive_code_extensional_sourcetable = ff_q_pvs_extensional_sourcetableentrypositive * S ((S (dst_index_extensional_sourcetable)) * dst_positive_scale_extensional_sourcetable) + (dst_positive_extensional_sourcetable))) /\ (((((exists ff_h_pvs_extensional_sourcetableentrynegative. ff_h_pvs_extensional_sourcetableentrynegative + S (dst_negative_extensional_sourcetable) = S ((S (dst_index_extensional_sourcetable)) * dst_negative_scale_extensional_sourcetable)) /\ exists ff_q_pvs_extensional_sourcetableentrynegative. dst_negative_code_extensional_sourcetable = ff_q_pvs_extensional_sourcetableentrynegative * S ((S (dst_index_extensional_sourcetable)) * dst_negative_scale_extensional_sourcetable) + (dst_negative_extensional_sourcetable))) /\ (exists ge_balance_positive_extensional_sourcetableentryvalue ge_balance_negative_extensional_sourcetableentryvalue. (((((dst_value_extensional_sourcetable) = 2 * (ge_balance_positive_extensional_sourcetableentryvalue) /\ (ge_balance_negative_extensional_sourcetableentryvalue) = 0) \/ exists ge_signed_half_extensional_sourcetableentryvaluedecode. (((dst_value_extensional_sourcetable) = 2 * ge_signed_half_extensional_sourcetableentryvaluedecode + 1 /\ (ge_balance_positive_extensional_sourcetableentryvalue) = 0) /\ (ge_balance_negative_extensional_sourcetableentryvalue) = S ge_signed_half_extensional_sourcetableentryvaluedecode))) /\ ((dst_positive_extensional_sourcetable) + ge_balance_negative_extensional_sourcetableentryvalue = (dst_negative_extensional_sourcetable) + ge_balance_positive_extensional_sourcetableentryvalue))))))))) /\ (((exists dst_positive_code_extensional_sourceone dst_positive_scale_extensional_sourceone dst_negative_code_extensional_sourceone dst_negative_scale_extensional_sourceone dst_positive_extensional_sourceone dst_negative_extensional_sourceone. (((F) = (((((dst_positive_code_extensional_sourceone) + (dst_positive_scale_extensional_sourceone)) * S ((dst_positive_code_extensional_sourceone) + (dst_positive_scale_extensional_sourceone)) + ((dst_positive_scale_extensional_sourceone) + (dst_positive_scale_extensional_sourceone))) + (((dst_negative_code_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)) * S ((dst_negative_code_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)) + ((dst_negative_scale_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)))) * S ((((dst_positive_code_extensional_sourceone) + (dst_positive_scale_extensional_sourceone)) * S ((dst_positive_code_extensional_sourceone) + (dst_positive_scale_extensional_sourceone)) + ((dst_positive_scale_extensional_sourceone) + (dst_positive_scale_extensional_sourceone))) + (((dst_negative_code_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)) * S ((dst_negative_code_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)) + ((dst_negative_scale_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)))) + ((((dst_negative_code_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)) * S ((dst_negative_code_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)) + ((dst_negative_scale_extensional_sourceone) + (dst_negative_scale_extensional_sourceone))) + (((dst_negative_code_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)) * S ((dst_negative_code_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)) + ((dst_negative_scale_extensional_sourceone) + (dst_negative_scale_extensional_sourceone)))))) /\ (((((exists ff_h_pvs_extensional_sourceonepositive. ff_h_pvs_extensional_sourceonepositive + S (dst_positive_extensional_sourceone) = S ((S (1)) * dst_positive_scale_extensional_sourceone)) /\ exists ff_q_pvs_extensional_sourceonepositive. dst_positive_code_extensional_sourceone = ff_q_pvs_extensional_sourceonepositive * S ((S (1)) * dst_positive_scale_extensional_sourceone) + (dst_positive_extensional_sourceone))) /\ (((((exists ff_h_pvs_extensional_sourceonenegative. ff_h_pvs_extensional_sourceonenegative + S (dst_negative_extensional_sourceone) = S ((S (1)) * dst_negative_scale_extensional_sourceone)) /\ exists ff_q_pvs_extensional_sourceonenegative. dst_negative_code_extensional_sourceone = ff_q_pvs_extensional_sourceonenegative * S ((S (1)) * dst_negative_scale_extensional_sourceone) + (dst_negative_extensional_sourceone))) /\ (exists ge_balance_positive_extensional_sourceonevalue ge_balance_negative_extensional_sourceonevalue. (((((2) = 2 * (ge_balance_positive_extensional_sourceonevalue) /\ (ge_balance_negative_extensional_sourceonevalue) = 0) \/ exists ge_signed_half_extensional_sourceonevaluedecode. (((2) = 2 * ge_signed_half_extensional_sourceonevaluedecode + 1 /\ (ge_balance_positive_extensional_sourceonevalue) = 0) /\ (ge_balance_negative_extensional_sourceonevalue) = S ge_signed_half_extensional_sourceonevaluedecode))) /\ ((dst_positive_extensional_sourceone) + ge_balance_negative_extensional_sourceonevalue = (dst_negative_extensional_sourceone) + ge_balance_positive_extensional_sourceonevalue))))))))) /\ (forall mp_a_extensional_source mp_b_extensional_source mp_x_extensional_source mp_y_extensional_source mp_z_extensional_source. ~(mp_a_extensional_source=0) -> ~(mp_b_extensional_source=0) -> (exists pvs_le_gap_extensional_sourcebound. pvs_le_gap_extensional_sourcebound + (mp_a_extensional_source*mp_b_extensional_source) = (N)) -> (forall frp_divisor_extensional_sourcecoprime. (exists frp_left_factor_extensional_sourcecoprime. mp_a_extensional_source = frp_divisor_extensional_sourcecoprime * frp_left_factor_extensional_sourcecoprime) -> (exists frp_right_factor_extensional_sourcecoprime. mp_b_extensional_source = frp_divisor_extensional_sourcecoprime * frp_right_factor_extensional_sourcecoprime) -> frp_divisor_extensional_sourcecoprime = 1) -> (exists dst_positive_code_extensional_sourcefirst dst_positive_scale_extensional_sourcefirst dst_negative_code_extensional_sourcefirst dst_negative_scale_extensional_sourcefirst dst_positive_extensional_sourcefirst dst_negative_extensional_sourcefirst. (((F) = (((((dst_positive_code_extensional_sourcefirst) + (dst_positive_scale_extensional_sourcefirst)) * S ((dst_positive_code_extensional_sourcefirst) + (dst_positive_scale_extensional_sourcefirst)) + ((dst_positive_scale_extensional_sourcefirst) + (dst_positive_scale_extensional_sourcefirst))) + (((dst_negative_code_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)) * S ((dst_negative_code_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)) + ((dst_negative_scale_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)))) * S ((((dst_positive_code_extensional_sourcefirst) + (dst_positive_scale_extensional_sourcefirst)) * S ((dst_positive_code_extensional_sourcefirst) + (dst_positive_scale_extensional_sourcefirst)) + ((dst_positive_scale_extensional_sourcefirst) + (dst_positive_scale_extensional_sourcefirst))) + (((dst_negative_code_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)) * S ((dst_negative_code_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)) + ((dst_negative_scale_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)))) + ((((dst_negative_code_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)) * S ((dst_negative_code_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)) + ((dst_negative_scale_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst))) + (((dst_negative_code_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)) * S ((dst_negative_code_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)) + ((dst_negative_scale_extensional_sourcefirst) + (dst_negative_scale_extensional_sourcefirst)))))) /\ (((((exists ff_h_pvs_extensional_sourcefirstpositive. ff_h_pvs_extensional_sourcefirstpositive + S (dst_positive_extensional_sourcefirst) = S ((S (mp_a_extensional_source)) * dst_positive_scale_extensional_sourcefirst)) /\ exists ff_q_pvs_extensional_sourcefirstpositive. dst_positive_code_extensional_sourcefirst = ff_q_pvs_extensional_sourcefirstpositive * S ((S (mp_a_extensional_source)) * dst_positive_scale_extensional_sourcefirst) + (dst_positive_extensional_sourcefirst))) /\ (((((exists ff_h_pvs_extensional_sourcefirstnegative. ff_h_pvs_extensional_sourcefirstnegative + S (dst_negative_extensional_sourcefirst) = S ((S (mp_a_extensional_source)) * dst_negative_scale_extensional_sourcefirst)) /\ exists ff_q_pvs_extensional_sourcefirstnegative. dst_negative_code_extensional_sourcefirst = ff_q_pvs_extensional_sourcefirstnegative * S ((S (mp_a_extensional_source)) * dst_negative_scale_extensional_sourcefirst) + (dst_negative_extensional_sourcefirst))) /\ (exists ge_balance_positive_extensional_sourcefirstvalue ge_balance_negative_extensional_sourcefirstvalue. (((((mp_x_extensional_source) = 2 * (ge_balance_positive_extensional_sourcefirstvalue) /\ (ge_balance_negative_extensional_sourcefirstvalue) = 0) \/ exists ge_signed_half_extensional_sourcefirstvaluedecode. (((mp_x_extensional_source) = 2 * ge_signed_half_extensional_sourcefirstvaluedecode + 1 /\ (ge_balance_positive_extensional_sourcefirstvalue) = 0) /\ (ge_balance_negative_extensional_sourcefirstvalue) = S ge_signed_half_extensional_sourcefirstvaluedecode))) /\ ((dst_positive_extensional_sourcefirst) + ge_balance_negative_extensional_sourcefirstvalue = (dst_negative_extensional_sourcefirst) + ge_balance_positive_extensional_sourcefirstvalue))))))))) -> (exists dst_positive_code_extensional_sourcesecond dst_positive_scale_extensional_sourcesecond dst_negative_code_extensional_sourcesecond dst_negative_scale_extensional_sourcesecond dst_positive_extensional_sourcesecond dst_negative_extensional_sourcesecond. (((F) = (((((dst_positive_code_extensional_sourcesecond) + (dst_positive_scale_extensional_sourcesecond)) * S ((dst_positive_code_extensional_sourcesecond) + (dst_positive_scale_extensional_sourcesecond)) + ((dst_positive_scale_extensional_sourcesecond) + (dst_positive_scale_extensional_sourcesecond))) + (((dst_negative_code_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)) * S ((dst_negative_code_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)) + ((dst_negative_scale_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)))) * S ((((dst_positive_code_extensional_sourcesecond) + (dst_positive_scale_extensional_sourcesecond)) * S ((dst_positive_code_extensional_sourcesecond) + (dst_positive_scale_extensional_sourcesecond)) + ((dst_positive_scale_extensional_sourcesecond) + (dst_positive_scale_extensional_sourcesecond))) + (((dst_negative_code_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)) * S ((dst_negative_code_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)) + ((dst_negative_scale_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)))) + ((((dst_negative_code_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)) * S ((dst_negative_code_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)) + ((dst_negative_scale_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond))) + (((dst_negative_code_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)) * S ((dst_negative_code_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)) + ((dst_negative_scale_extensional_sourcesecond) + (dst_negative_scale_extensional_sourcesecond)))))) /\ (((((exists ff_h_pvs_extensional_sourcesecondpositive. ff_h_pvs_extensional_sourcesecondpositive + S (dst_positive_extensional_sourcesecond) = S ((S (mp_b_extensional_source)) * dst_positive_scale_extensional_sourcesecond)) /\ exists ff_q_pvs_extensional_sourcesecondpositive. dst_positive_code_extensional_sourcesecond = ff_q_pvs_extensional_sourcesecondpositive * S ((S (mp_b_extensional_source)) * dst_positive_scale_extensional_sourcesecond) + (dst_positive_extensional_sourcesecond))) /\ (((((exists ff_h_pvs_extensional_sourcesecondnegative. ff_h_pvs_extensional_sourcesecondnegative + S (dst_negative_extensional_sourcesecond) = S ((S (mp_b_extensional_source)) * dst_negative_scale_extensional_sourcesecond)) /\ exists ff_q_pvs_extensional_sourcesecondnegative. dst_negative_code_extensional_sourcesecond = ff_q_pvs_extensional_sourcesecondnegative * S ((S (mp_b_extensional_source)) * dst_negative_scale_extensional_sourcesecond) + (dst_negative_extensional_sourcesecond))) /\ (exists ge_balance_positive_extensional_sourcesecondvalue ge_balance_negative_extensional_sourcesecondvalue. (((((mp_y_extensional_source) = 2 * (ge_balance_positive_extensional_sourcesecondvalue) /\ (ge_balance_negative_extensional_sourcesecondvalue) = 0) \/ exists ge_signed_half_extensional_sourcesecondvaluedecode. (((mp_y_extensional_source) = 2 * ge_signed_half_extensional_sourcesecondvaluedecode + 1 /\ (ge_balance_positive_extensional_sourcesecondvalue) = 0) /\ (ge_balance_negative_extensional_sourcesecondvalue) = S ge_signed_half_extensional_sourcesecondvaluedecode))) /\ ((dst_positive_extensional_sourcesecond) + ge_balance_negative_extensional_sourcesecondvalue = (dst_negative_extensional_sourcesecond) + ge_balance_positive_extensional_sourcesecondvalue))))))))) -> (exists dst_positive_code_extensional_sourceproduct dst_positive_scale_extensional_sourceproduct dst_negative_code_extensional_sourceproduct dst_negative_scale_extensional_sourceproduct dst_positive_extensional_sourceproduct dst_negative_extensional_sourceproduct. (((F) = (((((dst_positive_code_extensional_sourceproduct) + (dst_positive_scale_extensional_sourceproduct)) * S ((dst_positive_code_extensional_sourceproduct) + (dst_positive_scale_extensional_sourceproduct)) + ((dst_positive_scale_extensional_sourceproduct) + (dst_positive_scale_extensional_sourceproduct))) + (((dst_negative_code_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)) * S ((dst_negative_code_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)) + ((dst_negative_scale_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)))) * S ((((dst_positive_code_extensional_sourceproduct) + (dst_positive_scale_extensional_sourceproduct)) * S ((dst_positive_code_extensional_sourceproduct) + (dst_positive_scale_extensional_sourceproduct)) + ((dst_positive_scale_extensional_sourceproduct) + (dst_positive_scale_extensional_sourceproduct))) + (((dst_negative_code_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)) * S ((dst_negative_code_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)) + ((dst_negative_scale_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)))) + ((((dst_negative_code_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)) * S ((dst_negative_code_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)) + ((dst_negative_scale_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct))) + (((dst_negative_code_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)) * S ((dst_negative_code_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)) + ((dst_negative_scale_extensional_sourceproduct) + (dst_negative_scale_extensional_sourceproduct)))))) /\ (((((exists ff_h_pvs_extensional_sourceproductpositive. ff_h_pvs_extensional_sourceproductpositive + S (dst_positive_extensional_sourceproduct) = S ((S (mp_a_extensional_source*mp_b_extensional_source)) * dst_positive_scale_extensional_sourceproduct)) /\ exists ff_q_pvs_extensional_sourceproductpositive. dst_positive_code_extensional_sourceproduct = ff_q_pvs_extensional_sourceproductpositive * S ((S (mp_a_extensional_source*mp_b_extensional_source)) * dst_positive_scale_extensional_sourceproduct) + (dst_positive_extensional_sourceproduct))) /\ (((((exists ff_h_pvs_extensional_sourceproductnegative. ff_h_pvs_extensional_sourceproductnegative + S (dst_negative_extensional_sourceproduct) = S ((S (mp_a_extensional_source*mp_b_extensional_source)) * dst_negative_scale_extensional_sourceproduct)) /\ exists ff_q_pvs_extensional_sourceproductnegative. dst_negative_code_extensional_sourceproduct = ff_q_pvs_extensional_sourceproductnegative * S ((S (mp_a_extensional_source*mp_b_extensional_source)) * dst_negative_scale_extensional_sourceproduct) + (dst_negative_extensional_sourceproduct))) /\ (exists ge_balance_positive_extensional_sourceproductvalue ge_balance_negative_extensional_sourceproductvalue. (((((mp_z_extensional_source) = 2 * (ge_balance_positive_extensional_sourceproductvalue) /\ (ge_balance_negative_extensional_sourceproductvalue) = 0) \/ exists ge_signed_half_extensional_sourceproductvaluedecode. (((mp_z_extensional_source) = 2 * ge_signed_half_extensional_sourceproductvaluedecode + 1 /\ (ge_balance_positive_extensional_sourceproductvalue) = 0) /\ (ge_balance_negative_extensional_sourceproductvalue) = S ge_signed_half_extensional_sourceproductvaluedecode))) /\ ((dst_positive_extensional_sourceproduct) + ge_balance_negative_extensional_sourceproductvalue = (dst_negative_extensional_sourceproduct) + ge_balance_positive_extensional_sourceproductvalue))))))))) -> (exists sto_ap_extensional_sourcelaw sto_an_extensional_sourcelaw sto_bp_extensional_sourcelaw sto_bn_extensional_sourcelaw sto_cp_extensional_sourcelaw sto_cn_extensional_sourcelaw. (((((mp_x_extensional_source) = 2 * (sto_ap_extensional_sourcelaw) /\ (sto_an_extensional_sourcelaw) = 0) \/ exists ge_signed_half_extensional_sourcelawleft. (((mp_x_extensional_source) = 2 * ge_signed_half_extensional_sourcelawleft + 1 /\ (sto_ap_extensional_sourcelaw) = 0) /\ (sto_an_extensional_sourcelaw) = S ge_signed_half_extensional_sourcelawleft))) /\ ((((((mp_y_extensional_source) = 2 * (sto_bp_extensional_sourcelaw) /\ (sto_bn_extensional_sourcelaw) = 0) \/ exists ge_signed_half_extensional_sourcelawright. (((mp_y_extensional_source) = 2 * ge_signed_half_extensional_sourcelawright + 1 /\ (sto_bp_extensional_sourcelaw) = 0) /\ (sto_bn_extensional_sourcelaw) = S ge_signed_half_extensional_sourcelawright))) /\ ((((((mp_z_extensional_source) = 2 * (sto_cp_extensional_sourcelaw) /\ (sto_cn_extensional_sourcelaw) = 0) \/ exists ge_signed_half_extensional_sourcelawoutput. (((mp_z_extensional_source) = 2 * ge_signed_half_extensional_sourcelawoutput + 1 /\ (sto_cp_extensional_sourcelaw) = 0) /\ (sto_cn_extensional_sourcelaw) = S ge_signed_half_extensional_sourcelawoutput))) /\ ((sto_ap_extensional_sourcelaw * sto_bp_extensional_sourcelaw + sto_an_extensional_sourcelaw * sto_bn_extensional_sourcelaw) + sto_cn_extensional_sourcelaw = (sto_ap_extensional_sourcelaw * sto_bn_extensional_sourcelaw + sto_an_extensional_sourcelaw * sto_bp_extensional_sourcelaw) + sto_cp_extensional_sourcelaw)))))))))))))) -> (exists dst_positive_code_extensional_target_table dst_positive_scale_extensional_target_table dst_negative_code_extensional_target_table dst_negative_scale_extensional_target_table. (((G) = (((((dst_positive_code_extensional_target_table) + (dst_positive_scale_extensional_target_table)) * S ((dst_positive_code_extensional_target_table) + (dst_positive_scale_extensional_target_table)) + ((dst_positive_scale_extensional_target_table) + (dst_positive_scale_extensional_target_table))) + (((dst_negative_code_extensional_target_table) + (dst_negative_scale_extensional_target_table)) * S ((dst_negative_code_extensional_target_table) + (dst_negative_scale_extensional_target_table)) + ((dst_negative_scale_extensional_target_table) + (dst_negative_scale_extensional_target_table)))) * S ((((dst_positive_code_extensional_target_table) + (dst_positive_scale_extensional_target_table)) * S ((dst_positive_code_extensional_target_table) + (dst_positive_scale_extensional_target_table)) + ((dst_positive_scale_extensional_target_table) + (dst_positive_scale_extensional_target_table))) + (((dst_negative_code_extensional_target_table) + (dst_negative_scale_extensional_target_table)) * S ((dst_negative_code_extensional_target_table) + (dst_negative_scale_extensional_target_table)) + ((dst_negative_scale_extensional_target_table) + (dst_negative_scale_extensional_target_table)))) + ((((dst_negative_code_extensional_target_table) + (dst_negative_scale_extensional_target_table)) * S ((dst_negative_code_extensional_target_table) + (dst_negative_scale_extensional_target_table)) + ((dst_negative_scale_extensional_target_table) + (dst_negative_scale_extensional_target_table))) + (((dst_negative_code_extensional_target_table) + (dst_negative_scale_extensional_target_table)) * S ((dst_negative_code_extensional_target_table) + (dst_negative_scale_extensional_target_table)) + ((dst_negative_scale_extensional_target_table) + (dst_negative_scale_extensional_target_table)))))) /\ (forall dst_index_extensional_target_table. (exists pvs_le_gap_extensional_target_tabledomain. pvs_le_gap_extensional_target_tabledomain + (dst_index_extensional_target_table) = (N)) -> exists dst_positive_extensional_target_table dst_negative_extensional_target_table dst_value_extensional_target_table. ((((exists ff_h_pvs_extensional_target_tableentrypositive. ff_h_pvs_extensional_target_tableentrypositive + S (dst_positive_extensional_target_table) = S ((S (dst_index_extensional_target_table)) * dst_positive_scale_extensional_target_table)) /\ exists ff_q_pvs_extensional_target_tableentrypositive. dst_positive_code_extensional_target_table = ff_q_pvs_extensional_target_tableentrypositive * S ((S (dst_index_extensional_target_table)) * dst_positive_scale_extensional_target_table) + (dst_positive_extensional_target_table))) /\ (((((exists ff_h_pvs_extensional_target_tableentrynegative. ff_h_pvs_extensional_target_tableentrynegative + S (dst_negative_extensional_target_table) = S ((S (dst_index_extensional_target_table)) * dst_negative_scale_extensional_target_table)) /\ exists ff_q_pvs_extensional_target_tableentrynegative. dst_negative_code_extensional_target_table = ff_q_pvs_extensional_target_tableentrynegative * S ((S (dst_index_extensional_target_table)) * dst_negative_scale_extensional_target_table) + (dst_negative_extensional_target_table))) /\ (exists ge_balance_positive_extensional_target_tableentryvalue ge_balance_negative_extensional_target_tableentryvalue. (((((dst_value_extensional_target_table) = 2 * (ge_balance_positive_extensional_target_tableentryvalue) /\ (ge_balance_negative_extensional_target_tableentryvalue) = 0) \/ exists ge_signed_half_extensional_target_tableentryvaluedecode. (((dst_value_extensional_target_table) = 2 * ge_signed_half_extensional_target_tableentryvaluedecode + 1 /\ (ge_balance_positive_extensional_target_tableentryvalue) = 0) /\ (ge_balance_negative_extensional_target_tableentryvalue) = S ge_signed_half_extensional_target_tableentryvaluedecode))) /\ ((dst_positive_extensional_target_table) + ge_balance_negative_extensional_target_tableentryvalue = (dst_negative_extensional_target_table) + ge_balance_positive_extensional_target_tableentryvalue))))))))) -> (forall dm_index_extensional_equality dm_first_value_extensional_equality dm_second_value_extensional_equality. ~(dm_index_extensional_equality=0) -> (exists pvs_le_gap_extensional_equalitydomain. pvs_le_gap_extensional_equalitydomain + (dm_index_extensional_equality) = (N)) -> (exists dst_positive_code_extensional_equalityfirst dst_positive_scale_extensional_equalityfirst dst_negative_code_extensional_equalityfirst dst_negative_scale_extensional_equalityfirst dst_positive_extensional_equalityfirst dst_negative_extensional_equalityfirst. (((F) = (((((dst_positive_code_extensional_equalityfirst) + (dst_positive_scale_extensional_equalityfirst)) * S ((dst_positive_code_extensional_equalityfirst) + (dst_positive_scale_extensional_equalityfirst)) + ((dst_positive_scale_extensional_equalityfirst) + (dst_positive_scale_extensional_equalityfirst))) + (((dst_negative_code_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)) * S ((dst_negative_code_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)) + ((dst_negative_scale_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)))) * S ((((dst_positive_code_extensional_equalityfirst) + (dst_positive_scale_extensional_equalityfirst)) * S ((dst_positive_code_extensional_equalityfirst) + (dst_positive_scale_extensional_equalityfirst)) + ((dst_positive_scale_extensional_equalityfirst) + (dst_positive_scale_extensional_equalityfirst))) + (((dst_negative_code_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)) * S ((dst_negative_code_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)) + ((dst_negative_scale_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)))) + ((((dst_negative_code_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)) * S ((dst_negative_code_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)) + ((dst_negative_scale_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst))) + (((dst_negative_code_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)) * S ((dst_negative_code_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)) + ((dst_negative_scale_extensional_equalityfirst) + (dst_negative_scale_extensional_equalityfirst)))))) /\ (((((exists ff_h_pvs_extensional_equalityfirstpositive. ff_h_pvs_extensional_equalityfirstpositive + S (dst_positive_extensional_equalityfirst) = S ((S (dm_index_extensional_equality)) * dst_positive_scale_extensional_equalityfirst)) /\ exists ff_q_pvs_extensional_equalityfirstpositive. dst_positive_code_extensional_equalityfirst = ff_q_pvs_extensional_equalityfirstpositive * S ((S (dm_index_extensional_equality)) * dst_positive_scale_extensional_equalityfirst) + (dst_positive_extensional_equalityfirst))) /\ (((((exists ff_h_pvs_extensional_equalityfirstnegative. ff_h_pvs_extensional_equalityfirstnegative + S (dst_negative_extensional_equalityfirst) = S ((S (dm_index_extensional_equality)) * dst_negative_scale_extensional_equalityfirst)) /\ exists ff_q_pvs_extensional_equalityfirstnegative. dst_negative_code_extensional_equalityfirst = ff_q_pvs_extensional_equalityfirstnegative * S ((S (dm_index_extensional_equality)) * dst_negative_scale_extensional_equalityfirst) + (dst_negative_extensional_equalityfirst))) /\ (exists ge_balance_positive_extensional_equalityfirstvalue ge_balance_negative_extensional_equalityfirstvalue. (((((dm_first_value_extensional_equality) = 2 * (ge_balance_positive_extensional_equalityfirstvalue) /\ (ge_balance_negative_extensional_equalityfirstvalue) = 0) \/ exists ge_signed_half_extensional_equalityfirstvaluedecode. (((dm_first_value_extensional_equality) = 2 * ge_signed_half_extensional_equalityfirstvaluedecode + 1 /\ (ge_balance_positive_extensional_equalityfirstvalue) = 0) /\ (ge_balance_negative_extensional_equalityfirstvalue) = S ge_signed_half_extensional_equalityfirstvaluedecode))) /\ ((dst_positive_extensional_equalityfirst) + ge_balance_negative_extensional_equalityfirstvalue = (dst_negative_extensional_equalityfirst) + ge_balance_positive_extensional_equalityfirstvalue))))))))) -> (exists dst_positive_code_extensional_equalitysecond dst_positive_scale_extensional_equalitysecond dst_negative_code_extensional_equalitysecond dst_negative_scale_extensional_equalitysecond dst_positive_extensional_equalitysecond dst_negative_extensional_equalitysecond. (((G) = (((((dst_positive_code_extensional_equalitysecond) + (dst_positive_scale_extensional_equalitysecond)) * S ((dst_positive_code_extensional_equalitysecond) + (dst_positive_scale_extensional_equalitysecond)) + ((dst_positive_scale_extensional_equalitysecond) + (dst_positive_scale_extensional_equalitysecond))) + (((dst_negative_code_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)) * S ((dst_negative_code_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)) + ((dst_negative_scale_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)))) * S ((((dst_positive_code_extensional_equalitysecond) + (dst_positive_scale_extensional_equalitysecond)) * S ((dst_positive_code_extensional_equalitysecond) + (dst_positive_scale_extensional_equalitysecond)) + ((dst_positive_scale_extensional_equalitysecond) + (dst_positive_scale_extensional_equalitysecond))) + (((dst_negative_code_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)) * S ((dst_negative_code_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)) + ((dst_negative_scale_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)))) + ((((dst_negative_code_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)) * S ((dst_negative_code_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)) + ((dst_negative_scale_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond))) + (((dst_negative_code_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)) * S ((dst_negative_code_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)) + ((dst_negative_scale_extensional_equalitysecond) + (dst_negative_scale_extensional_equalitysecond)))))) /\ (((((exists ff_h_pvs_extensional_equalitysecondpositive. ff_h_pvs_extensional_equalitysecondpositive + S (dst_positive_extensional_equalitysecond) = S ((S (dm_index_extensional_equality)) * dst_positive_scale_extensional_equalitysecond)) /\ exists ff_q_pvs_extensional_equalitysecondpositive. dst_positive_code_extensional_equalitysecond = ff_q_pvs_extensional_equalitysecondpositive * S ((S (dm_index_extensional_equality)) * dst_positive_scale_extensional_equalitysecond) + (dst_positive_extensional_equalitysecond))) /\ (((((exists ff_h_pvs_extensional_equalitysecondnegative. ff_h_pvs_extensional_equalitysecondnegative + S (dst_negative_extensional_equalitysecond) = S ((S (dm_index_extensional_equality)) * dst_negative_scale_extensional_equalitysecond)) /\ exists ff_q_pvs_extensional_equalitysecondnegative. dst_negative_code_extensional_equalitysecond = ff_q_pvs_extensional_equalitysecondnegative * S ((S (dm_index_extensional_equality)) * dst_negative_scale_extensional_equalitysecond) + (dst_negative_extensional_equalitysecond))) /\ (exists ge_balance_positive_extensional_equalitysecondvalue ge_balance_negative_extensional_equalitysecondvalue. (((((dm_second_value_extensional_equality) = 2 * (ge_balance_positive_extensional_equalitysecondvalue) /\ (ge_balance_negative_extensional_equalitysecondvalue) = 0) \/ exists ge_signed_half_extensional_equalitysecondvaluedecode. (((dm_second_value_extensional_equality) = 2 * ge_signed_half_extensional_equalitysecondvaluedecode + 1 /\ (ge_balance_positive_extensional_equalitysecondvalue) = 0) /\ (ge_balance_negative_extensional_equalitysecondvalue) = S ge_signed_half_extensional_equalitysecondvaluedecode))) /\ ((dst_positive_extensional_equalitysecond) + ge_balance_negative_extensional_equalitysecondvalue = (dst_negative_extensional_equalitysecond) + ge_balance_positive_extensional_equalitysecondvalue))))))))) -> dm_first_value_extensional_equality=dm_second_value_extensional_equality) -> (((~((N)=0)) /\ (((exists dst_positive_code_extensional_targettable dst_positive_scale_extensional_targettable dst_negative_code_extensional_targettable dst_negative_scale_extensional_targettable. (((G) = (((((dst_positive_code_extensional_targettable) + (dst_positive_scale_extensional_targettable)) * S ((dst_positive_code_extensional_targettable) + (dst_positive_scale_extensional_targettable)) + ((dst_positive_scale_extensional_targettable) + (dst_positive_scale_extensional_targettable))) + (((dst_negative_code_extensional_targettable) + (dst_negative_scale_extensional_targettable)) * S ((dst_negative_code_extensional_targettable) + (dst_negative_scale_extensional_targettable)) + ((dst_negative_scale_extensional_targettable) + (dst_negative_scale_extensional_targettable)))) * S ((((dst_positive_code_extensional_targettable) + (dst_positive_scale_extensional_targettable)) * S ((dst_positive_code_extensional_targettable) + (dst_positive_scale_extensional_targettable)) + ((dst_positive_scale_extensional_targettable) + (dst_positive_scale_extensional_targettable))) + (((dst_negative_code_extensional_targettable) + (dst_negative_scale_extensional_targettable)) * S ((dst_negative_code_extensional_targettable) + (dst_negative_scale_extensional_targettable)) + ((dst_negative_scale_extensional_targettable) + (dst_negative_scale_extensional_targettable)))) + ((((dst_negative_code_extensional_targettable) + (dst_negative_scale_extensional_targettable)) * S ((dst_negative_code_extensional_targettable) + (dst_negative_scale_extensional_targettable)) + ((dst_negative_scale_extensional_targettable) + (dst_negative_scale_extensional_targettable))) + (((dst_negative_code_extensional_targettable) + (dst_negative_scale_extensional_targettable)) * S ((dst_negative_code_extensional_targettable) + (dst_negative_scale_extensional_targettable)) + ((dst_negative_scale_extensional_targettable) + (dst_negative_scale_extensional_targettable)))))) /\ (forall dst_index_extensional_targettable. (exists pvs_le_gap_extensional_targettabledomain. pvs_le_gap_extensional_targettabledomain + (dst_index_extensional_targettable) = (N)) -> exists dst_positive_extensional_targettable dst_negative_extensional_targettable dst_value_extensional_targettable. ((((exists ff_h_pvs_extensional_targettableentrypositive. ff_h_pvs_extensional_targettableentrypositive + S (dst_positive_extensional_targettable) = S ((S (dst_index_extensional_targettable)) * dst_positive_scale_extensional_targettable)) /\ exists ff_q_pvs_extensional_targettableentrypositive. dst_positive_code_extensional_targettable = ff_q_pvs_extensional_targettableentrypositive * S ((S (dst_index_extensional_targettable)) * dst_positive_scale_extensional_targettable) + (dst_positive_extensional_targettable))) /\ (((((exists ff_h_pvs_extensional_targettableentrynegative. ff_h_pvs_extensional_targettableentrynegative + S (dst_negative_extensional_targettable) = S ((S (dst_index_extensional_targettable)) * dst_negative_scale_extensional_targettable)) /\ exists ff_q_pvs_extensional_targettableentrynegative. dst_negative_code_extensional_targettable = ff_q_pvs_extensional_targettableentrynegative * S ((S (dst_index_extensional_targettable)) * dst_negative_scale_extensional_targettable) + (dst_negative_extensional_targettable))) /\ (exists ge_balance_positive_extensional_targettableentryvalue ge_balance_negative_extensional_targettableentryvalue. (((((dst_value_extensional_targettable) = 2 * (ge_balance_positive_extensional_targettableentryvalue) /\ (ge_balance_negative_extensional_targettableentryvalue) = 0) \/ exists ge_signed_half_extensional_targettableentryvaluedecode. (((dst_value_extensional_targettable) = 2 * ge_signed_half_extensional_targettableentryvaluedecode + 1 /\ (ge_balance_positive_extensional_targettableentryvalue) = 0) /\ (ge_balance_negative_extensional_targettableentryvalue) = S ge_signed_half_extensional_targettableentryvaluedecode))) /\ ((dst_positive_extensional_targettable) + ge_balance_negative_extensional_targettableentryvalue = (dst_negative_extensional_targettable) + ge_balance_positive_extensional_targettableentryvalue))))))))) /\ (((exists dst_positive_code_extensional_targetone dst_positive_scale_extensional_targetone dst_negative_code_extensional_targetone dst_negative_scale_extensional_targetone dst_positive_extensional_targetone dst_negative_extensional_targetone. (((G) = (((((dst_positive_code_extensional_targetone) + (dst_positive_scale_extensional_targetone)) * S ((dst_positive_code_extensional_targetone) + (dst_positive_scale_extensional_targetone)) + ((dst_positive_scale_extensional_targetone) + (dst_positive_scale_extensional_targetone))) + (((dst_negative_code_extensional_targetone) + (dst_negative_scale_extensional_targetone)) * S ((dst_negative_code_extensional_targetone) + (dst_negative_scale_extensional_targetone)) + ((dst_negative_scale_extensional_targetone) + (dst_negative_scale_extensional_targetone)))) * S ((((dst_positive_code_extensional_targetone) + (dst_positive_scale_extensional_targetone)) * S ((dst_positive_code_extensional_targetone) + (dst_positive_scale_extensional_targetone)) + ((dst_positive_scale_extensional_targetone) + (dst_positive_scale_extensional_targetone))) + (((dst_negative_code_extensional_targetone) + (dst_negative_scale_extensional_targetone)) * S ((dst_negative_code_extensional_targetone) + (dst_negative_scale_extensional_targetone)) + ((dst_negative_scale_extensional_targetone) + (dst_negative_scale_extensional_targetone)))) + ((((dst_negative_code_extensional_targetone) + (dst_negative_scale_extensional_targetone)) * S ((dst_negative_code_extensional_targetone) + (dst_negative_scale_extensional_targetone)) + ((dst_negative_scale_extensional_targetone) + (dst_negative_scale_extensional_targetone))) + (((dst_negative_code_extensional_targetone) + (dst_negative_scale_extensional_targetone)) * S ((dst_negative_code_extensional_targetone) + (dst_negative_scale_extensional_targetone)) + ((dst_negative_scale_extensional_targetone) + (dst_negative_scale_extensional_targetone)))))) /\ (((((exists ff_h_pvs_extensional_targetonepositive. ff_h_pvs_extensional_targetonepositive + S (dst_positive_extensional_targetone) = S ((S (1)) * dst_positive_scale_extensional_targetone)) /\ exists ff_q_pvs_extensional_targetonepositive. dst_positive_code_extensional_targetone = ff_q_pvs_extensional_targetonepositive * S ((S (1)) * dst_positive_scale_extensional_targetone) + (dst_positive_extensional_targetone))) /\ (((((exists ff_h_pvs_extensional_targetonenegative. ff_h_pvs_extensional_targetonenegative + S (dst_negative_extensional_targetone) = S ((S (1)) * dst_negative_scale_extensional_targetone)) /\ exists ff_q_pvs_extensional_targetonenegative. dst_negative_code_extensional_targetone = ff_q_pvs_extensional_targetonenegative * S ((S (1)) * dst_negative_scale_extensional_targetone) + (dst_negative_extensional_targetone))) /\ (exists ge_balance_positive_extensional_targetonevalue ge_balance_negative_extensional_targetonevalue. (((((2) = 2 * (ge_balance_positive_extensional_targetonevalue) /\ (ge_balance_negative_extensional_targetonevalue) = 0) \/ exists ge_signed_half_extensional_targetonevaluedecode. (((2) = 2 * ge_signed_half_extensional_targetonevaluedecode + 1 /\ (ge_balance_positive_extensional_targetonevalue) = 0) /\ (ge_balance_negative_extensional_targetonevalue) = S ge_signed_half_extensional_targetonevaluedecode))) /\ ((dst_positive_extensional_targetone) + ge_balance_negative_extensional_targetonevalue = (dst_negative_extensional_targetone) + ge_balance_positive_extensional_targetonevalue))))))))) /\ (forall mp_a_extensional_target mp_b_extensional_target mp_x_extensional_target mp_y_extensional_target mp_z_extensional_target. ~(mp_a_extensional_target=0) -> ~(mp_b_extensional_target=0) -> (exists pvs_le_gap_extensional_targetbound. pvs_le_gap_extensional_targetbound + (mp_a_extensional_target*mp_b_extensional_target) = (N)) -> (forall frp_divisor_extensional_targetcoprime. (exists frp_left_factor_extensional_targetcoprime. mp_a_extensional_target = frp_divisor_extensional_targetcoprime * frp_left_factor_extensional_targetcoprime) -> (exists frp_right_factor_extensional_targetcoprime. mp_b_extensional_target = frp_divisor_extensional_targetcoprime * frp_right_factor_extensional_targetcoprime) -> frp_divisor_extensional_targetcoprime = 1) -> (exists dst_positive_code_extensional_targetfirst dst_positive_scale_extensional_targetfirst dst_negative_code_extensional_targetfirst dst_negative_scale_extensional_targetfirst dst_positive_extensional_targetfirst dst_negative_extensional_targetfirst. (((G) = (((((dst_positive_code_extensional_targetfirst) + (dst_positive_scale_extensional_targetfirst)) * S ((dst_positive_code_extensional_targetfirst) + (dst_positive_scale_extensional_targetfirst)) + ((dst_positive_scale_extensional_targetfirst) + (dst_positive_scale_extensional_targetfirst))) + (((dst_negative_code_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)) * S ((dst_negative_code_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)) + ((dst_negative_scale_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)))) * S ((((dst_positive_code_extensional_targetfirst) + (dst_positive_scale_extensional_targetfirst)) * S ((dst_positive_code_extensional_targetfirst) + (dst_positive_scale_extensional_targetfirst)) + ((dst_positive_scale_extensional_targetfirst) + (dst_positive_scale_extensional_targetfirst))) + (((dst_negative_code_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)) * S ((dst_negative_code_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)) + ((dst_negative_scale_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)))) + ((((dst_negative_code_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)) * S ((dst_negative_code_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)) + ((dst_negative_scale_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst))) + (((dst_negative_code_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)) * S ((dst_negative_code_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)) + ((dst_negative_scale_extensional_targetfirst) + (dst_negative_scale_extensional_targetfirst)))))) /\ (((((exists ff_h_pvs_extensional_targetfirstpositive. ff_h_pvs_extensional_targetfirstpositive + S (dst_positive_extensional_targetfirst) = S ((S (mp_a_extensional_target)) * dst_positive_scale_extensional_targetfirst)) /\ exists ff_q_pvs_extensional_targetfirstpositive. dst_positive_code_extensional_targetfirst = ff_q_pvs_extensional_targetfirstpositive * S ((S (mp_a_extensional_target)) * dst_positive_scale_extensional_targetfirst) + (dst_positive_extensional_targetfirst))) /\ (((((exists ff_h_pvs_extensional_targetfirstnegative. ff_h_pvs_extensional_targetfirstnegative + S (dst_negative_extensional_targetfirst) = S ((S (mp_a_extensional_target)) * dst_negative_scale_extensional_targetfirst)) /\ exists ff_q_pvs_extensional_targetfirstnegative. dst_negative_code_extensional_targetfirst = ff_q_pvs_extensional_targetfirstnegative * S ((S (mp_a_extensional_target)) * dst_negative_scale_extensional_targetfirst) + (dst_negative_extensional_targetfirst))) /\ (exists ge_balance_positive_extensional_targetfirstvalue ge_balance_negative_extensional_targetfirstvalue. (((((mp_x_extensional_target) = 2 * (ge_balance_positive_extensional_targetfirstvalue) /\ (ge_balance_negative_extensional_targetfirstvalue) = 0) \/ exists ge_signed_half_extensional_targetfirstvaluedecode. (((mp_x_extensional_target) = 2 * ge_signed_half_extensional_targetfirstvaluedecode + 1 /\ (ge_balance_positive_extensional_targetfirstvalue) = 0) /\ (ge_balance_negative_extensional_targetfirstvalue) = S ge_signed_half_extensional_targetfirstvaluedecode))) /\ ((dst_positive_extensional_targetfirst) + ge_balance_negative_extensional_targetfirstvalue = (dst_negative_extensional_targetfirst) + ge_balance_positive_extensional_targetfirstvalue))))))))) -> (exists dst_positive_code_extensional_targetsecond dst_positive_scale_extensional_targetsecond dst_negative_code_extensional_targetsecond dst_negative_scale_extensional_targetsecond dst_positive_extensional_targetsecond dst_negative_extensional_targetsecond. (((G) = (((((dst_positive_code_extensional_targetsecond) + (dst_positive_scale_extensional_targetsecond)) * S ((dst_positive_code_extensional_targetsecond) + (dst_positive_scale_extensional_targetsecond)) + ((dst_positive_scale_extensional_targetsecond) + (dst_positive_scale_extensional_targetsecond))) + (((dst_negative_code_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)) * S ((dst_negative_code_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)) + ((dst_negative_scale_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)))) * S ((((dst_positive_code_extensional_targetsecond) + (dst_positive_scale_extensional_targetsecond)) * S ((dst_positive_code_extensional_targetsecond) + (dst_positive_scale_extensional_targetsecond)) + ((dst_positive_scale_extensional_targetsecond) + (dst_positive_scale_extensional_targetsecond))) + (((dst_negative_code_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)) * S ((dst_negative_code_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)) + ((dst_negative_scale_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)))) + ((((dst_negative_code_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)) * S ((dst_negative_code_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)) + ((dst_negative_scale_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond))) + (((dst_negative_code_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)) * S ((dst_negative_code_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)) + ((dst_negative_scale_extensional_targetsecond) + (dst_negative_scale_extensional_targetsecond)))))) /\ (((((exists ff_h_pvs_extensional_targetsecondpositive. ff_h_pvs_extensional_targetsecondpositive + S (dst_positive_extensional_targetsecond) = S ((S (mp_b_extensional_target)) * dst_positive_scale_extensional_targetsecond)) /\ exists ff_q_pvs_extensional_targetsecondpositive. dst_positive_code_extensional_targetsecond = ff_q_pvs_extensional_targetsecondpositive * S ((S (mp_b_extensional_target)) * dst_positive_scale_extensional_targetsecond) + (dst_positive_extensional_targetsecond))) /\ (((((exists ff_h_pvs_extensional_targetsecondnegative. ff_h_pvs_extensional_targetsecondnegative + S (dst_negative_extensional_targetsecond) = S ((S (mp_b_extensional_target)) * dst_negative_scale_extensional_targetsecond)) /\ exists ff_q_pvs_extensional_targetsecondnegative. dst_negative_code_extensional_targetsecond = ff_q_pvs_extensional_targetsecondnegative * S ((S (mp_b_extensional_target)) * dst_negative_scale_extensional_targetsecond) + (dst_negative_extensional_targetsecond))) /\ (exists ge_balance_positive_extensional_targetsecondvalue ge_balance_negative_extensional_targetsecondvalue. (((((mp_y_extensional_target) = 2 * (ge_balance_positive_extensional_targetsecondvalue) /\ (ge_balance_negative_extensional_targetsecondvalue) = 0) \/ exists ge_signed_half_extensional_targetsecondvaluedecode. (((mp_y_extensional_target) = 2 * ge_signed_half_extensional_targetsecondvaluedecode + 1 /\ (ge_balance_positive_extensional_targetsecondvalue) = 0) /\ (ge_balance_negative_extensional_targetsecondvalue) = S ge_signed_half_extensional_targetsecondvaluedecode))) /\ ((dst_positive_extensional_targetsecond) + ge_balance_negative_extensional_targetsecondvalue = (dst_negative_extensional_targetsecond) + ge_balance_positive_extensional_targetsecondvalue))))))))) -> (exists dst_positive_code_extensional_targetproduct dst_positive_scale_extensional_targetproduct dst_negative_code_extensional_targetproduct dst_negative_scale_extensional_targetproduct dst_positive_extensional_targetproduct dst_negative_extensional_targetproduct. (((G) = (((((dst_positive_code_extensional_targetproduct) + (dst_positive_scale_extensional_targetproduct)) * S ((dst_positive_code_extensional_targetproduct) + (dst_positive_scale_extensional_targetproduct)) + ((dst_positive_scale_extensional_targetproduct) + (dst_positive_scale_extensional_targetproduct))) + (((dst_negative_code_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)) * S ((dst_negative_code_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)) + ((dst_negative_scale_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)))) * S ((((dst_positive_code_extensional_targetproduct) + (dst_positive_scale_extensional_targetproduct)) * S ((dst_positive_code_extensional_targetproduct) + (dst_positive_scale_extensional_targetproduct)) + ((dst_positive_scale_extensional_targetproduct) + (dst_positive_scale_extensional_targetproduct))) + (((dst_negative_code_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)) * S ((dst_negative_code_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)) + ((dst_negative_scale_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)))) + ((((dst_negative_code_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)) * S ((dst_negative_code_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)) + ((dst_negative_scale_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct))) + (((dst_negative_code_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)) * S ((dst_negative_code_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)) + ((dst_negative_scale_extensional_targetproduct) + (dst_negative_scale_extensional_targetproduct)))))) /\ (((((exists ff_h_pvs_extensional_targetproductpositive. ff_h_pvs_extensional_targetproductpositive + S (dst_positive_extensional_targetproduct) = S ((S (mp_a_extensional_target*mp_b_extensional_target)) * dst_positive_scale_extensional_targetproduct)) /\ exists ff_q_pvs_extensional_targetproductpositive. dst_positive_code_extensional_targetproduct = ff_q_pvs_extensional_targetproductpositive * S ((S (mp_a_extensional_target*mp_b_extensional_target)) * dst_positive_scale_extensional_targetproduct) + (dst_positive_extensional_targetproduct))) /\ (((((exists ff_h_pvs_extensional_targetproductnegative. ff_h_pvs_extensional_targetproductnegative + S (dst_negative_extensional_targetproduct) = S ((S (mp_a_extensional_target*mp_b_extensional_target)) * dst_negative_scale_extensional_targetproduct)) /\ exists ff_q_pvs_extensional_targetproductnegative. dst_negative_code_extensional_targetproduct = ff_q_pvs_extensional_targetproductnegative * S ((S (mp_a_extensional_target*mp_b_extensional_target)) * dst_negative_scale_extensional_targetproduct) + (dst_negative_extensional_targetproduct))) /\ (exists ge_balance_positive_extensional_targetproductvalue ge_balance_negative_extensional_targetproductvalue. (((((mp_z_extensional_target) = 2 * (ge_balance_positive_extensional_targetproductvalue) /\ (ge_balance_negative_extensional_targetproductvalue) = 0) \/ exists ge_signed_half_extensional_targetproductvaluedecode. (((mp_z_extensional_target) = 2 * ge_signed_half_extensional_targetproductvaluedecode + 1 /\ (ge_balance_positive_extensional_targetproductvalue) = 0) /\ (ge_balance_negative_extensional_targetproductvalue) = S ge_signed_half_extensional_targetproductvaluedecode))) /\ ((dst_positive_extensional_targetproduct) + ge_balance_negative_extensional_targetproductvalue = (dst_negative_extensional_targetproduct) + ge_balance_positive_extensional_targetproductvalue))))))))) -> (exists sto_ap_extensional_targetlaw sto_an_extensional_targetlaw sto_bp_extensional_targetlaw sto_bn_extensional_targetlaw sto_cp_extensional_targetlaw sto_cn_extensional_targetlaw. (((((mp_x_extensional_target) = 2 * (sto_ap_extensional_targetlaw) /\ (sto_an_extensional_targetlaw) = 0) \/ exists ge_signed_half_extensional_targetlawleft. (((mp_x_extensional_target) = 2 * ge_signed_half_extensional_targetlawleft + 1 /\ (sto_ap_extensional_targetlaw) = 0) /\ (sto_an_extensional_targetlaw) = S ge_signed_half_extensional_targetlawleft))) /\ ((((((mp_y_extensional_target) = 2 * (sto_bp_extensional_targetlaw) /\ (sto_bn_extensional_targetlaw) = 0) \/ exists ge_signed_half_extensional_targetlawright. (((mp_y_extensional_target) = 2 * ge_signed_half_extensional_targetlawright + 1 /\ (sto_bp_extensional_targetlaw) = 0) /\ (sto_bn_extensional_targetlaw) = S ge_signed_half_extensional_targetlawright))) /\ ((((((mp_z_extensional_target) = 2 * (sto_cp_extensional_targetlaw) /\ (sto_cn_extensional_targetlaw) = 0) \/ exists ge_signed_half_extensional_targetlawoutput. (((mp_z_extensional_target) = 2 * ge_signed_half_extensional_targetlawoutput + 1 /\ (sto_cp_extensional_targetlaw) = 0) /\ (sto_cn_extensional_targetlaw) = S ge_signed_half_extensional_targetlawoutput))) /\ ((sto_ap_extensional_targetlaw * sto_bp_extensional_targetlaw + sto_an_extensional_targetlaw * sto_bn_extensional_targetlaw) + sto_cn_extensional_targetlaw = (sto_ap_extensional_targetlaw * sto_bn_extensional_targetlaw + sto_an_extensional_targetlaw * sto_bp_extensional_targetlaw) + sto_cp_extensional_targetlaw))))))))))))))

Constructive proof overview

Generated structural guide

Multiplicativity depends only on the represented positive prefix, not on table codes, zeroth values or entries outside the product bound.

The unchanged tactic script uses 7 declared prerequisites and contains 132 exact native proof lines.

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

Proof neighborhood

Direct dependencies

MX000A signed_positive_table_entry_transport succ_ne_zero Stable theorem; checked-use authorized one_le_of_ne_zero Stable theorem; checked-use authorized le_trans Stable theorem; checked-use authorized le_mul_of_one_le_right Alpha theorem; checked-use authorized le_mul_of_one_le_left Alpha theorem; checked-use authorized mul_ne_zero Stable theorem; checked-use authorized

Direct dependents

none

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

132 script commands · 23 reading checkpoints · 4 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.

Named ingredients (1)

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–6

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

  1. L1
    intro N
  2. L2
    intro F
  3. L3
    intro G
  4. L4
    intro hm
  5. L5
    intro hG
  6. L6
    intro he
02Separate the logical casesL7–9

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

  1. L7
    cases hm
  2. L8
    cases hm_right
  3. L9
    cases hm_right_right
03Establish hrL10–19

Establish this local claim before using it. It is not an additional assumption.

  1. L10
    have hr : ArithPositiveEqual(G,F,N)Definitions: ArithPositiveEqual
  2. L11
    intro d
  3. L12
    intro u
  4. L13
    intro v
  5. L14
    intro hd
  6. L15
    intro hb
  7. L16
    intro hu
  8. L17
    intro hv
  9. L18
    symm
  10. L19
    specialize he (d)
04Use earlier factsL20–26

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

  1. L20
    specialize he (v)
  2. L21
    specialize he (u)
  3. L22
    apply he
  4. L23
    exact hd
  5. L24
    exact hb
  6. L25
    exact hv
  7. L26
    exact hu
05Separate the logical casesL27–27

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

  1. L27
    split
06Use earlier factsL28–28

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

  1. L28
    exact hm_left
07Separate the logical casesL29–29

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

  1. L29
    split
08Use earlier factsL30–30

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

  1. L30
    exact hG
09Separate the logical casesL31–31

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

  1. L31
    split
10Use earlier factsL32–41

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

  1. L32
    specialize signed_positive_table_entry_transport (N)
  2. L33
    specialize signed_positive_table_entry_transport (F)
  3. L34
    specialize signed_positive_table_entry_transport (G)
  4. L35
    specialize signed_positive_table_entry_transport (1)
  5. L36
    specialize signed_positive_table_entry_transport (2)
  6. L37
    apply signed_positive_table_entry_transport
  7. L38
    exact hG
  8. L39
    exact he
  9. L40
    specialize succ_ne_zero (0)
  10. L41
    apply succ_ne_zero
11Use earlier factsL42–45

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

  1. L42
    specialize one_le_of_ne_zero (N)
  2. L43
    apply one_le_of_ne_zero
  3. L44
    exact hm_left
  4. L45
    exact hm_right_right_left
12Fix variables and assumptionsL46–55

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

  1. L46
    intro a
  2. L47
    intro b
  3. L48
    intro x
  4. L49
    intro y
  5. L50
    intro z
  6. L51
    intro ha
  7. L52
    intro hb
  8. L53
    intro hp
  9. L54
    intro hc
  10. L55
    intro hx
13Fix variables and assumptionsL56–57

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

  1. L56
    intro hy
  2. L57
    intro hz
14Establish hfxL58–67

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed positive table entry transport.

  1. L58
    have hfx : ArithAt(F,a,x)Definitions: ArithAt
  2. L59
    specialize signed_positive_table_entry_transport (N)
  3. L60
    specialize signed_positive_table_entry_transport (G)
  4. L61
    specialize signed_positive_table_entry_transport (F)
  5. L62
    specialize signed_positive_table_entry_transport (a)
  6. L63
    specialize signed_positive_table_entry_transport (x)
  7. L64
    apply signed_positive_table_entry_transport
  8. L65
    exact hm_right_left
  9. L66
    exact hr
  10. L67
    exact ha
15Use earlier factsL68–77

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

  1. L68
    specialize le_trans (a)
  2. L69
    specialize le_trans (a*b)
  3. L70
    specialize le_trans (N)
  4. L71
    apply le_trans
  5. L72
    specialize le_mul_of_one_le_right (a)
  6. L73
    specialize le_mul_of_one_le_right (b)
  7. L74
    apply le_mul_of_one_le_right
  8. L75
    specialize one_le_of_ne_zero (b)
  9. L76
    apply one_le_of_ne_zero
  10. L77
    exact hb
16Use earlier factsL78–79

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

  1. L78
    exact hp
  2. L79
    exact hx
17Establish hfyL80–89

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed positive table entry transport.

  1. L80
    have hfy : ArithAt(F,b,y)Definitions: ArithAt
  2. L81
    specialize signed_positive_table_entry_transport (N)
  3. L82
    specialize signed_positive_table_entry_transport (G)
  4. L83
    specialize signed_positive_table_entry_transport (F)
  5. L84
    specialize signed_positive_table_entry_transport (b)
  6. L85
    specialize signed_positive_table_entry_transport (y)
  7. L86
    apply signed_positive_table_entry_transport
  8. L87
    exact hm_right_left
  9. L88
    exact hr
  10. L89
    exact hb
18Use earlier factsL90–99

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

  1. L90
    specialize le_trans (b)
  2. L91
    specialize le_trans (a*b)
  3. L92
    specialize le_trans (N)
  4. L93
    apply le_trans
  5. L94
    specialize le_mul_of_one_le_left (a)
  6. L95
    specialize le_mul_of_one_le_left (b)
  7. L96
    apply le_mul_of_one_le_left
  8. L97
    specialize one_le_of_ne_zero (a)
  9. L98
    apply one_le_of_ne_zero
  10. L99
    exact ha
19Use earlier factsL100–101

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

  1. L100
    exact hp
  2. L101
    exact hy
20Establish hfzL102–111

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed positive table entry transport.

  1. L102
    have hfz : ArithAt(F,a · b,z)Definitions: ArithAt
  2. L103
    specialize signed_positive_table_entry_transport (N)
  3. L104
    specialize signed_positive_table_entry_transport (G)
  4. L105
    specialize signed_positive_table_entry_transport (F)
  5. L106
    specialize signed_positive_table_entry_transport (a*b)
  6. L107
    specialize signed_positive_table_entry_transport (z)
  7. L108
    apply signed_positive_table_entry_transport
  8. L109
    exact hm_right_left
  9. L110
    exact hr
  10. L111
    intro hproductzero
21Use earlier factsL112–121

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

  1. L112
    specialize mul_ne_zero (a)
  2. L113
    specialize mul_ne_zero (b)
  3. L114
    apply mul_ne_zero
  4. L115
    exact ha
  5. L116
    exact hb
  6. L117
    exact hproductzero
  7. L118
    exact hp
  8. L119
    exact hz
  9. L120
    specialize hm_right_right_right (a)
  10. L121
    specialize hm_right_right_right (b)
22Use earlier factsL122–131

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

  1. L122
    specialize hm_right_right_right (x)
  2. L123
    specialize hm_right_right_right (y)
  3. L124
    specialize hm_right_right_right (z)
  4. L125
    apply hm_right_right_right
  5. L126
    exact ha
  6. L127
    exact hb
  7. L128
    exact hp
  8. L129
    exact hc
  9. L130
    exact hfx
  10. L131
    exact hfy
23Use earlier factsL132–132

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

  1. L132
    exact hfz

Library-wide reading audit

Original exact command ledger · 132 lines
  1. 0001intro N
  2. 0002intro F
  3. 0003intro G
  4. 0004intro hm
  5. 0005intro hG
  6. 0006intro he
  7. 0007cases hm
  8. 0008cases hm_right
  9. 0009cases hm_right_right
  10. 0010have hr : forall dm_index_reverse_positive dm_first_value_reverse_positive dm_second_value_reverse_positive. ~(dm_index_reverse_positive=0) -> (exists pvs_le_gap_reverse_positivedomain. pvs_le_gap_reverse_positivedomain + (dm_index_reverse_positive) = (N)) -> (exists dst_positive_code_reverse_positivefirst dst_positive_scale_reverse_positivefirst dst_negative_code_reverse_positivefirst dst_negative_scale_reverse_positivefirst dst_positive_reverse_positivefirst dst_negative_reverse_positivefirst. (((G) = (((((dst_positive_code_reverse_positivefirst) + (dst_positive_scale_reverse_positivefirst)) * S ((dst_positive_code_reverse_positivefirst) + (dst_positive_scale_reverse_positivefirst)) + ((dst_positive_scale_reverse_positivefirst) + (dst_positive_scale_reverse_positivefirst))) + (((dst_negative_code_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)) * S ((dst_negative_code_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)) + ((dst_negative_scale_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)))) * S ((((dst_positive_code_reverse_positivefirst) + (dst_positive_scale_reverse_positivefirst)) * S ((dst_positive_code_reverse_positivefirst) + (dst_positive_scale_reverse_positivefirst)) + ((dst_positive_scale_reverse_positivefirst) + (dst_positive_scale_reverse_positivefirst))) + (((dst_negative_code_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)) * S ((dst_negative_code_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)) + ((dst_negative_scale_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)))) + ((((dst_negative_code_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)) * S ((dst_negative_code_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)) + ((dst_negative_scale_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst))) + (((dst_negative_code_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)) * S ((dst_negative_code_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)) + ((dst_negative_scale_reverse_positivefirst) + (dst_negative_scale_reverse_positivefirst)))))) /\ (((((exists ff_h_pvs_reverse_positivefirstpositive. ff_h_pvs_reverse_positivefirstpositive + S (dst_positive_reverse_positivefirst) = S ((S (dm_index_reverse_positive)) * dst_positive_scale_reverse_positivefirst)) /\ exists ff_q_pvs_reverse_positivefirstpositive. dst_positive_code_reverse_positivefirst = ff_q_pvs_reverse_positivefirstpositive * S ((S (dm_index_reverse_positive)) * dst_positive_scale_reverse_positivefirst) + (dst_positive_reverse_positivefirst))) /\ (((((exists ff_h_pvs_reverse_positivefirstnegative. ff_h_pvs_reverse_positivefirstnegative + S (dst_negative_reverse_positivefirst) = S ((S (dm_index_reverse_positive)) * dst_negative_scale_reverse_positivefirst)) /\ exists ff_q_pvs_reverse_positivefirstnegative. dst_negative_code_reverse_positivefirst = ff_q_pvs_reverse_positivefirstnegative * S ((S (dm_index_reverse_positive)) * dst_negative_scale_reverse_positivefirst) + (dst_negative_reverse_positivefirst))) /\ (exists ge_balance_positive_reverse_positivefirstvalue ge_balance_negative_reverse_positivefirstvalue. (((((dm_first_value_reverse_positive) = 2 * (ge_balance_positive_reverse_positivefirstvalue) /\ (ge_balance_negative_reverse_positivefirstvalue) = 0) \/ exists ge_signed_half_reverse_positivefirstvaluedecode. (((dm_first_value_reverse_positive) = 2 * ge_signed_half_reverse_positivefirstvaluedecode + 1 /\ (ge_balance_positive_reverse_positivefirstvalue) = 0) /\ (ge_balance_negative_reverse_positivefirstvalue) = S ge_signed_half_reverse_positivefirstvaluedecode))) /\ ((dst_positive_reverse_positivefirst) + ge_balance_negative_reverse_positivefirstvalue = (dst_negative_reverse_positivefirst) + ge_balance_positive_reverse_positivefirstvalue))))))))) -> (exists dst_positive_code_reverse_positivesecond dst_positive_scale_reverse_positivesecond dst_negative_code_reverse_positivesecond dst_negative_scale_reverse_positivesecond dst_positive_reverse_positivesecond dst_negative_reverse_positivesecond. (((F) = (((((dst_positive_code_reverse_positivesecond) + (dst_positive_scale_reverse_positivesecond)) * S ((dst_positive_code_reverse_positivesecond) + (dst_positive_scale_reverse_positivesecond)) + ((dst_positive_scale_reverse_positivesecond) + (dst_positive_scale_reverse_positivesecond))) + (((dst_negative_code_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)) * S ((dst_negative_code_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)) + ((dst_negative_scale_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)))) * S ((((dst_positive_code_reverse_positivesecond) + (dst_positive_scale_reverse_positivesecond)) * S ((dst_positive_code_reverse_positivesecond) + (dst_positive_scale_reverse_positivesecond)) + ((dst_positive_scale_reverse_positivesecond) + (dst_positive_scale_reverse_positivesecond))) + (((dst_negative_code_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)) * S ((dst_negative_code_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)) + ((dst_negative_scale_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)))) + ((((dst_negative_code_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)) * S ((dst_negative_code_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)) + ((dst_negative_scale_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond))) + (((dst_negative_code_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)) * S ((dst_negative_code_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)) + ((dst_negative_scale_reverse_positivesecond) + (dst_negative_scale_reverse_positivesecond)))))) /\ (((((exists ff_h_pvs_reverse_positivesecondpositive. ff_h_pvs_reverse_positivesecondpositive + S (dst_positive_reverse_positivesecond) = S ((S (dm_index_reverse_positive)) * dst_positive_scale_reverse_positivesecond)) /\ exists ff_q_pvs_reverse_positivesecondpositive. dst_positive_code_reverse_positivesecond = ff_q_pvs_reverse_positivesecondpositive * S ((S (dm_index_reverse_positive)) * dst_positive_scale_reverse_positivesecond) + (dst_positive_reverse_positivesecond))) /\ (((((exists ff_h_pvs_reverse_positivesecondnegative. ff_h_pvs_reverse_positivesecondnegative + S (dst_negative_reverse_positivesecond) = S ((S (dm_index_reverse_positive)) * dst_negative_scale_reverse_positivesecond)) /\ exists ff_q_pvs_reverse_positivesecondnegative. dst_negative_code_reverse_positivesecond = ff_q_pvs_reverse_positivesecondnegative * S ((S (dm_index_reverse_positive)) * dst_negative_scale_reverse_positivesecond) + (dst_negative_reverse_positivesecond))) /\ (exists ge_balance_positive_reverse_positivesecondvalue ge_balance_negative_reverse_positivesecondvalue. (((((dm_second_value_reverse_positive) = 2 * (ge_balance_positive_reverse_positivesecondvalue) /\ (ge_balance_negative_reverse_positivesecondvalue) = 0) \/ exists ge_signed_half_reverse_positivesecondvaluedecode. (((dm_second_value_reverse_positive) = 2 * ge_signed_half_reverse_positivesecondvaluedecode + 1 /\ (ge_balance_positive_reverse_positivesecondvalue) = 0) /\ (ge_balance_negative_reverse_positivesecondvalue) = S ge_signed_half_reverse_positivesecondvaluedecode))) /\ ((dst_positive_reverse_positivesecond) + ge_balance_negative_reverse_positivesecondvalue = (dst_negative_reverse_positivesecond) + ge_balance_positive_reverse_positivesecondvalue))))))))) -> dm_first_value_reverse_positive=dm_second_value_reverse_positive
  11. 0011intro d
  12. 0012intro u
  13. 0013intro v
  14. 0014intro hd
  15. 0015intro hb
  16. 0016intro hu
  17. 0017intro hv
  18. 0018symm
  19. 0019specialize he (d)
  20. 0020specialize he (v)
  21. 0021specialize he (u)
  22. 0022apply he
  23. 0023exact hd
  24. 0024exact hb
  25. 0025exact hv
  26. 0026exact hu
  27. 0027split
  28. 0028exact hm_left
  29. 0029split
  30. 0030exact hG
  31. 0031split
  32. 0032specialize signed_positive_table_entry_transport (N)
  33. 0033specialize signed_positive_table_entry_transport (F)
  34. 0034specialize signed_positive_table_entry_transport (G)
  35. 0035specialize signed_positive_table_entry_transport (1)
  36. 0036specialize signed_positive_table_entry_transport (2)
  37. 0037apply signed_positive_table_entry_transport
  38. 0038exact hG
  39. 0039exact he
  40. 0040specialize succ_ne_zero (0)
  41. 0041apply succ_ne_zero
  42. 0042specialize one_le_of_ne_zero (N)
  43. 0043apply one_le_of_ne_zero
  44. 0044exact hm_left
  45. 0045exact hm_right_right_left
  46. 0046intro a
  47. 0047intro b
  48. 0048intro x
  49. 0049intro y
  50. 0050intro z
  51. 0051intro ha
  52. 0052intro hb
  53. 0053intro hp
  54. 0054intro hc
  55. 0055intro hx
  56. 0056intro hy
  57. 0057intro hz
  58. 0058have hfx : exists dst_positive_code_hfxsource dst_positive_scale_hfxsource dst_negative_code_hfxsource dst_negative_scale_hfxsource dst_positive_hfxsource dst_negative_hfxsource. (((F) = (((((dst_positive_code_hfxsource) + (dst_positive_scale_hfxsource)) * S ((dst_positive_code_hfxsource) + (dst_positive_scale_hfxsource)) + ((dst_positive_scale_hfxsource) + (dst_positive_scale_hfxsource))) + (((dst_negative_code_hfxsource) + (dst_negative_scale_hfxsource)) * S ((dst_negative_code_hfxsource) + (dst_negative_scale_hfxsource)) + ((dst_negative_scale_hfxsource) + (dst_negative_scale_hfxsource)))) * S ((((dst_positive_code_hfxsource) + (dst_positive_scale_hfxsource)) * S ((dst_positive_code_hfxsource) + (dst_positive_scale_hfxsource)) + ((dst_positive_scale_hfxsource) + (dst_positive_scale_hfxsource))) + (((dst_negative_code_hfxsource) + (dst_negative_scale_hfxsource)) * S ((dst_negative_code_hfxsource) + (dst_negative_scale_hfxsource)) + ((dst_negative_scale_hfxsource) + (dst_negative_scale_hfxsource)))) + ((((dst_negative_code_hfxsource) + (dst_negative_scale_hfxsource)) * S ((dst_negative_code_hfxsource) + (dst_negative_scale_hfxsource)) + ((dst_negative_scale_hfxsource) + (dst_negative_scale_hfxsource))) + (((dst_negative_code_hfxsource) + (dst_negative_scale_hfxsource)) * S ((dst_negative_code_hfxsource) + (dst_negative_scale_hfxsource)) + ((dst_negative_scale_hfxsource) + (dst_negative_scale_hfxsource)))))) /\ (((((exists ff_h_pvs_hfxsourcepositive. ff_h_pvs_hfxsourcepositive + S (dst_positive_hfxsource) = S ((S (a)) * dst_positive_scale_hfxsource)) /\ exists ff_q_pvs_hfxsourcepositive. dst_positive_code_hfxsource = ff_q_pvs_hfxsourcepositive * S ((S (a)) * dst_positive_scale_hfxsource) + (dst_positive_hfxsource))) /\ (((((exists ff_h_pvs_hfxsourcenegative. ff_h_pvs_hfxsourcenegative + S (dst_negative_hfxsource) = S ((S (a)) * dst_negative_scale_hfxsource)) /\ exists ff_q_pvs_hfxsourcenegative. dst_negative_code_hfxsource = ff_q_pvs_hfxsourcenegative * S ((S (a)) * dst_negative_scale_hfxsource) + (dst_negative_hfxsource))) /\ (exists ge_balance_positive_hfxsourcevalue ge_balance_negative_hfxsourcevalue. (((((x) = 2 * (ge_balance_positive_hfxsourcevalue) /\ (ge_balance_negative_hfxsourcevalue) = 0) \/ exists ge_signed_half_hfxsourcevaluedecode. (((x) = 2 * ge_signed_half_hfxsourcevaluedecode + 1 /\ (ge_balance_positive_hfxsourcevalue) = 0) /\ (ge_balance_negative_hfxsourcevalue) = S ge_signed_half_hfxsourcevaluedecode))) /\ ((dst_positive_hfxsource) + ge_balance_negative_hfxsourcevalue = (dst_negative_hfxsource) + ge_balance_positive_hfxsourcevalue))))))))
  59. 0059specialize signed_positive_table_entry_transport (N)
  60. 0060specialize signed_positive_table_entry_transport (G)
  61. 0061specialize signed_positive_table_entry_transport (F)
  62. 0062specialize signed_positive_table_entry_transport (a)
  63. 0063specialize signed_positive_table_entry_transport (x)
  64. 0064apply signed_positive_table_entry_transport
  65. 0065exact hm_right_left
  66. 0066exact hr
  67. 0067exact ha
  68. 0068specialize le_trans (a)
  69. 0069specialize le_trans (a*b)
  70. 0070specialize le_trans (N)
  71. 0071apply le_trans
  72. 0072specialize le_mul_of_one_le_right (a)
  73. 0073specialize le_mul_of_one_le_right (b)
  74. 0074apply le_mul_of_one_le_right
  75. 0075specialize one_le_of_ne_zero (b)
  76. 0076apply one_le_of_ne_zero
  77. 0077exact hb
  78. 0078exact hp
  79. 0079exact hx
  80. 0080have hfy : exists dst_positive_code_hfysource dst_positive_scale_hfysource dst_negative_code_hfysource dst_negative_scale_hfysource dst_positive_hfysource dst_negative_hfysource. (((F) = (((((dst_positive_code_hfysource) + (dst_positive_scale_hfysource)) * S ((dst_positive_code_hfysource) + (dst_positive_scale_hfysource)) + ((dst_positive_scale_hfysource) + (dst_positive_scale_hfysource))) + (((dst_negative_code_hfysource) + (dst_negative_scale_hfysource)) * S ((dst_negative_code_hfysource) + (dst_negative_scale_hfysource)) + ((dst_negative_scale_hfysource) + (dst_negative_scale_hfysource)))) * S ((((dst_positive_code_hfysource) + (dst_positive_scale_hfysource)) * S ((dst_positive_code_hfysource) + (dst_positive_scale_hfysource)) + ((dst_positive_scale_hfysource) + (dst_positive_scale_hfysource))) + (((dst_negative_code_hfysource) + (dst_negative_scale_hfysource)) * S ((dst_negative_code_hfysource) + (dst_negative_scale_hfysource)) + ((dst_negative_scale_hfysource) + (dst_negative_scale_hfysource)))) + ((((dst_negative_code_hfysource) + (dst_negative_scale_hfysource)) * S ((dst_negative_code_hfysource) + (dst_negative_scale_hfysource)) + ((dst_negative_scale_hfysource) + (dst_negative_scale_hfysource))) + (((dst_negative_code_hfysource) + (dst_negative_scale_hfysource)) * S ((dst_negative_code_hfysource) + (dst_negative_scale_hfysource)) + ((dst_negative_scale_hfysource) + (dst_negative_scale_hfysource)))))) /\ (((((exists ff_h_pvs_hfysourcepositive. ff_h_pvs_hfysourcepositive + S (dst_positive_hfysource) = S ((S (b)) * dst_positive_scale_hfysource)) /\ exists ff_q_pvs_hfysourcepositive. dst_positive_code_hfysource = ff_q_pvs_hfysourcepositive * S ((S (b)) * dst_positive_scale_hfysource) + (dst_positive_hfysource))) /\ (((((exists ff_h_pvs_hfysourcenegative. ff_h_pvs_hfysourcenegative + S (dst_negative_hfysource) = S ((S (b)) * dst_negative_scale_hfysource)) /\ exists ff_q_pvs_hfysourcenegative. dst_negative_code_hfysource = ff_q_pvs_hfysourcenegative * S ((S (b)) * dst_negative_scale_hfysource) + (dst_negative_hfysource))) /\ (exists ge_balance_positive_hfysourcevalue ge_balance_negative_hfysourcevalue. (((((y) = 2 * (ge_balance_positive_hfysourcevalue) /\ (ge_balance_negative_hfysourcevalue) = 0) \/ exists ge_signed_half_hfysourcevaluedecode. (((y) = 2 * ge_signed_half_hfysourcevaluedecode + 1 /\ (ge_balance_positive_hfysourcevalue) = 0) /\ (ge_balance_negative_hfysourcevalue) = S ge_signed_half_hfysourcevaluedecode))) /\ ((dst_positive_hfysource) + ge_balance_negative_hfysourcevalue = (dst_negative_hfysource) + ge_balance_positive_hfysourcevalue))))))))
  81. 0081specialize signed_positive_table_entry_transport (N)
  82. 0082specialize signed_positive_table_entry_transport (G)
  83. 0083specialize signed_positive_table_entry_transport (F)
  84. 0084specialize signed_positive_table_entry_transport (b)
  85. 0085specialize signed_positive_table_entry_transport (y)
  86. 0086apply signed_positive_table_entry_transport
  87. 0087exact hm_right_left
  88. 0088exact hr
  89. 0089exact hb
  90. 0090specialize le_trans (b)
  91. 0091specialize le_trans (a*b)
  92. 0092specialize le_trans (N)
  93. 0093apply le_trans
  94. 0094specialize le_mul_of_one_le_left (a)
  95. 0095specialize le_mul_of_one_le_left (b)
  96. 0096apply le_mul_of_one_le_left
  97. 0097specialize one_le_of_ne_zero (a)
  98. 0098apply one_le_of_ne_zero
  99. 0099exact ha
  100. 0100exact hp
  101. 0101exact hy
  102. 0102have hfz : exists dst_positive_code_hfzsource dst_positive_scale_hfzsource dst_negative_code_hfzsource dst_negative_scale_hfzsource dst_positive_hfzsource dst_negative_hfzsource. (((F) = (((((dst_positive_code_hfzsource) + (dst_positive_scale_hfzsource)) * S ((dst_positive_code_hfzsource) + (dst_positive_scale_hfzsource)) + ((dst_positive_scale_hfzsource) + (dst_positive_scale_hfzsource))) + (((dst_negative_code_hfzsource) + (dst_negative_scale_hfzsource)) * S ((dst_negative_code_hfzsource) + (dst_negative_scale_hfzsource)) + ((dst_negative_scale_hfzsource) + (dst_negative_scale_hfzsource)))) * S ((((dst_positive_code_hfzsource) + (dst_positive_scale_hfzsource)) * S ((dst_positive_code_hfzsource) + (dst_positive_scale_hfzsource)) + ((dst_positive_scale_hfzsource) + (dst_positive_scale_hfzsource))) + (((dst_negative_code_hfzsource) + (dst_negative_scale_hfzsource)) * S ((dst_negative_code_hfzsource) + (dst_negative_scale_hfzsource)) + ((dst_negative_scale_hfzsource) + (dst_negative_scale_hfzsource)))) + ((((dst_negative_code_hfzsource) + (dst_negative_scale_hfzsource)) * S ((dst_negative_code_hfzsource) + (dst_negative_scale_hfzsource)) + ((dst_negative_scale_hfzsource) + (dst_negative_scale_hfzsource))) + (((dst_negative_code_hfzsource) + (dst_negative_scale_hfzsource)) * S ((dst_negative_code_hfzsource) + (dst_negative_scale_hfzsource)) + ((dst_negative_scale_hfzsource) + (dst_negative_scale_hfzsource)))))) /\ (((((exists ff_h_pvs_hfzsourcepositive. ff_h_pvs_hfzsourcepositive + S (dst_positive_hfzsource) = S ((S (a*b)) * dst_positive_scale_hfzsource)) /\ exists ff_q_pvs_hfzsourcepositive. dst_positive_code_hfzsource = ff_q_pvs_hfzsourcepositive * S ((S (a*b)) * dst_positive_scale_hfzsource) + (dst_positive_hfzsource))) /\ (((((exists ff_h_pvs_hfzsourcenegative. ff_h_pvs_hfzsourcenegative + S (dst_negative_hfzsource) = S ((S (a*b)) * dst_negative_scale_hfzsource)) /\ exists ff_q_pvs_hfzsourcenegative. dst_negative_code_hfzsource = ff_q_pvs_hfzsourcenegative * S ((S (a*b)) * dst_negative_scale_hfzsource) + (dst_negative_hfzsource))) /\ (exists ge_balance_positive_hfzsourcevalue ge_balance_negative_hfzsourcevalue. (((((z) = 2 * (ge_balance_positive_hfzsourcevalue) /\ (ge_balance_negative_hfzsourcevalue) = 0) \/ exists ge_signed_half_hfzsourcevaluedecode. (((z) = 2 * ge_signed_half_hfzsourcevaluedecode + 1 /\ (ge_balance_positive_hfzsourcevalue) = 0) /\ (ge_balance_negative_hfzsourcevalue) = S ge_signed_half_hfzsourcevaluedecode))) /\ ((dst_positive_hfzsource) + ge_balance_negative_hfzsourcevalue = (dst_negative_hfzsource) + ge_balance_positive_hfzsourcevalue))))))))
  103. 0103specialize signed_positive_table_entry_transport (N)
  104. 0104specialize signed_positive_table_entry_transport (G)
  105. 0105specialize signed_positive_table_entry_transport (F)
  106. 0106specialize signed_positive_table_entry_transport (a*b)
  107. 0107specialize signed_positive_table_entry_transport (z)
  108. 0108apply signed_positive_table_entry_transport
  109. 0109exact hm_right_left
  110. 0110exact hr
  111. 0111intro hproductzero
  112. 0112specialize mul_ne_zero (a)
  113. 0113specialize mul_ne_zero (b)
  114. 0114apply mul_ne_zero
  115. 0115exact ha
  116. 0116exact hb
  117. 0117exact hproductzero
  118. 0118exact hp
  119. 0119exact hz
  120. 0120specialize hm_right_right_right (a)
  121. 0121specialize hm_right_right_right (b)
  122. 0122specialize hm_right_right_right (x)
  123. 0123specialize hm_right_right_right (y)
  124. 0124specialize hm_right_right_right (z)
  125. 0125apply hm_right_right_right
  126. 0126exact ha
  127. 0127exact hb
  128. 0128exact hp
  129. 0129exact hc
  130. 0130exact hfx
  131. 0131exact hfy
  132. 0132exact hfz