MX0009

signed_multiplicative_product_values_exist

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

Construct all three actual signed values and their multiplication witness; the law is not merely conditional on absent entries.

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 a b. (((~((N)=0)) /\ (((exists dst_positive_code_values_sourcetable dst_positive_scale_values_sourcetable dst_negative_code_values_sourcetable dst_negative_scale_values_sourcetable. (((F) = (((((dst_positive_code_values_sourcetable) + (dst_positive_scale_values_sourcetable)) * S ((dst_positive_code_values_sourcetable) + (dst_positive_scale_values_sourcetable)) + ((dst_positive_scale_values_sourcetable) + (dst_positive_scale_values_sourcetable))) + (((dst_negative_code_values_sourcetable) + (dst_negative_scale_values_sourcetable)) * S ((dst_negative_code_values_sourcetable) + (dst_negative_scale_values_sourcetable)) + ((dst_negative_scale_values_sourcetable) + (dst_negative_scale_values_sourcetable)))) * S ((((dst_positive_code_values_sourcetable) + (dst_positive_scale_values_sourcetable)) * S ((dst_positive_code_values_sourcetable) + (dst_positive_scale_values_sourcetable)) + ((dst_positive_scale_values_sourcetable) + (dst_positive_scale_values_sourcetable))) + (((dst_negative_code_values_sourcetable) + (dst_negative_scale_values_sourcetable)) * S ((dst_negative_code_values_sourcetable) + (dst_negative_scale_values_sourcetable)) + ((dst_negative_scale_values_sourcetable) + (dst_negative_scale_values_sourcetable)))) + ((((dst_negative_code_values_sourcetable) + (dst_negative_scale_values_sourcetable)) * S ((dst_negative_code_values_sourcetable) + (dst_negative_scale_values_sourcetable)) + ((dst_negative_scale_values_sourcetable) + (dst_negative_scale_values_sourcetable))) + (((dst_negative_code_values_sourcetable) + (dst_negative_scale_values_sourcetable)) * S ((dst_negative_code_values_sourcetable) + (dst_negative_scale_values_sourcetable)) + ((dst_negative_scale_values_sourcetable) + (dst_negative_scale_values_sourcetable)))))) /\ (forall dst_index_values_sourcetable. (exists pvs_le_gap_values_sourcetabledomain. pvs_le_gap_values_sourcetabledomain + (dst_index_values_sourcetable) = (N)) -> exists dst_positive_values_sourcetable dst_negative_values_sourcetable dst_value_values_sourcetable. ((((exists ff_h_pvs_values_sourcetableentrypositive. ff_h_pvs_values_sourcetableentrypositive + S (dst_positive_values_sourcetable) = S ((S (dst_index_values_sourcetable)) * dst_positive_scale_values_sourcetable)) /\ exists ff_q_pvs_values_sourcetableentrypositive. dst_positive_code_values_sourcetable = ff_q_pvs_values_sourcetableentrypositive * S ((S (dst_index_values_sourcetable)) * dst_positive_scale_values_sourcetable) + (dst_positive_values_sourcetable))) /\ (((((exists ff_h_pvs_values_sourcetableentrynegative. ff_h_pvs_values_sourcetableentrynegative + S (dst_negative_values_sourcetable) = S ((S (dst_index_values_sourcetable)) * dst_negative_scale_values_sourcetable)) /\ exists ff_q_pvs_values_sourcetableentrynegative. dst_negative_code_values_sourcetable = ff_q_pvs_values_sourcetableentrynegative * S ((S (dst_index_values_sourcetable)) * dst_negative_scale_values_sourcetable) + (dst_negative_values_sourcetable))) /\ (exists ge_balance_positive_values_sourcetableentryvalue ge_balance_negative_values_sourcetableentryvalue. (((((dst_value_values_sourcetable) = 2 * (ge_balance_positive_values_sourcetableentryvalue) /\ (ge_balance_negative_values_sourcetableentryvalue) = 0) \/ exists ge_signed_half_values_sourcetableentryvaluedecode. (((dst_value_values_sourcetable) = 2 * ge_signed_half_values_sourcetableentryvaluedecode + 1 /\ (ge_balance_positive_values_sourcetableentryvalue) = 0) /\ (ge_balance_negative_values_sourcetableentryvalue) = S ge_signed_half_values_sourcetableentryvaluedecode))) /\ ((dst_positive_values_sourcetable) + ge_balance_negative_values_sourcetableentryvalue = (dst_negative_values_sourcetable) + ge_balance_positive_values_sourcetableentryvalue))))))))) /\ (((exists dst_positive_code_values_sourceone dst_positive_scale_values_sourceone dst_negative_code_values_sourceone dst_negative_scale_values_sourceone dst_positive_values_sourceone dst_negative_values_sourceone. (((F) = (((((dst_positive_code_values_sourceone) + (dst_positive_scale_values_sourceone)) * S ((dst_positive_code_values_sourceone) + (dst_positive_scale_values_sourceone)) + ((dst_positive_scale_values_sourceone) + (dst_positive_scale_values_sourceone))) + (((dst_negative_code_values_sourceone) + (dst_negative_scale_values_sourceone)) * S ((dst_negative_code_values_sourceone) + (dst_negative_scale_values_sourceone)) + ((dst_negative_scale_values_sourceone) + (dst_negative_scale_values_sourceone)))) * S ((((dst_positive_code_values_sourceone) + (dst_positive_scale_values_sourceone)) * S ((dst_positive_code_values_sourceone) + (dst_positive_scale_values_sourceone)) + ((dst_positive_scale_values_sourceone) + (dst_positive_scale_values_sourceone))) + (((dst_negative_code_values_sourceone) + (dst_negative_scale_values_sourceone)) * S ((dst_negative_code_values_sourceone) + (dst_negative_scale_values_sourceone)) + ((dst_negative_scale_values_sourceone) + (dst_negative_scale_values_sourceone)))) + ((((dst_negative_code_values_sourceone) + (dst_negative_scale_values_sourceone)) * S ((dst_negative_code_values_sourceone) + (dst_negative_scale_values_sourceone)) + ((dst_negative_scale_values_sourceone) + (dst_negative_scale_values_sourceone))) + (((dst_negative_code_values_sourceone) + (dst_negative_scale_values_sourceone)) * S ((dst_negative_code_values_sourceone) + (dst_negative_scale_values_sourceone)) + ((dst_negative_scale_values_sourceone) + (dst_negative_scale_values_sourceone)))))) /\ (((((exists ff_h_pvs_values_sourceonepositive. ff_h_pvs_values_sourceonepositive + S (dst_positive_values_sourceone) = S ((S (1)) * dst_positive_scale_values_sourceone)) /\ exists ff_q_pvs_values_sourceonepositive. dst_positive_code_values_sourceone = ff_q_pvs_values_sourceonepositive * S ((S (1)) * dst_positive_scale_values_sourceone) + (dst_positive_values_sourceone))) /\ (((((exists ff_h_pvs_values_sourceonenegative. ff_h_pvs_values_sourceonenegative + S (dst_negative_values_sourceone) = S ((S (1)) * dst_negative_scale_values_sourceone)) /\ exists ff_q_pvs_values_sourceonenegative. dst_negative_code_values_sourceone = ff_q_pvs_values_sourceonenegative * S ((S (1)) * dst_negative_scale_values_sourceone) + (dst_negative_values_sourceone))) /\ (exists ge_balance_positive_values_sourceonevalue ge_balance_negative_values_sourceonevalue. (((((2) = 2 * (ge_balance_positive_values_sourceonevalue) /\ (ge_balance_negative_values_sourceonevalue) = 0) \/ exists ge_signed_half_values_sourceonevaluedecode. (((2) = 2 * ge_signed_half_values_sourceonevaluedecode + 1 /\ (ge_balance_positive_values_sourceonevalue) = 0) /\ (ge_balance_negative_values_sourceonevalue) = S ge_signed_half_values_sourceonevaluedecode))) /\ ((dst_positive_values_sourceone) + ge_balance_negative_values_sourceonevalue = (dst_negative_values_sourceone) + ge_balance_positive_values_sourceonevalue))))))))) /\ (forall mp_a_values_source mp_b_values_source mp_x_values_source mp_y_values_source mp_z_values_source. ~(mp_a_values_source=0) -> ~(mp_b_values_source=0) -> (exists pvs_le_gap_values_sourcebound. pvs_le_gap_values_sourcebound + (mp_a_values_source*mp_b_values_source) = (N)) -> (forall frp_divisor_values_sourcecoprime. (exists frp_left_factor_values_sourcecoprime. mp_a_values_source = frp_divisor_values_sourcecoprime * frp_left_factor_values_sourcecoprime) -> (exists frp_right_factor_values_sourcecoprime. mp_b_values_source = frp_divisor_values_sourcecoprime * frp_right_factor_values_sourcecoprime) -> frp_divisor_values_sourcecoprime = 1) -> (exists dst_positive_code_values_sourcefirst dst_positive_scale_values_sourcefirst dst_negative_code_values_sourcefirst dst_negative_scale_values_sourcefirst dst_positive_values_sourcefirst dst_negative_values_sourcefirst. (((F) = (((((dst_positive_code_values_sourcefirst) + (dst_positive_scale_values_sourcefirst)) * S ((dst_positive_code_values_sourcefirst) + (dst_positive_scale_values_sourcefirst)) + ((dst_positive_scale_values_sourcefirst) + (dst_positive_scale_values_sourcefirst))) + (((dst_negative_code_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)) * S ((dst_negative_code_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)) + ((dst_negative_scale_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)))) * S ((((dst_positive_code_values_sourcefirst) + (dst_positive_scale_values_sourcefirst)) * S ((dst_positive_code_values_sourcefirst) + (dst_positive_scale_values_sourcefirst)) + ((dst_positive_scale_values_sourcefirst) + (dst_positive_scale_values_sourcefirst))) + (((dst_negative_code_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)) * S ((dst_negative_code_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)) + ((dst_negative_scale_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)))) + ((((dst_negative_code_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)) * S ((dst_negative_code_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)) + ((dst_negative_scale_values_sourcefirst) + (dst_negative_scale_values_sourcefirst))) + (((dst_negative_code_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)) * S ((dst_negative_code_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)) + ((dst_negative_scale_values_sourcefirst) + (dst_negative_scale_values_sourcefirst)))))) /\ (((((exists ff_h_pvs_values_sourcefirstpositive. ff_h_pvs_values_sourcefirstpositive + S (dst_positive_values_sourcefirst) = S ((S (mp_a_values_source)) * dst_positive_scale_values_sourcefirst)) /\ exists ff_q_pvs_values_sourcefirstpositive. dst_positive_code_values_sourcefirst = ff_q_pvs_values_sourcefirstpositive * S ((S (mp_a_values_source)) * dst_positive_scale_values_sourcefirst) + (dst_positive_values_sourcefirst))) /\ (((((exists ff_h_pvs_values_sourcefirstnegative. ff_h_pvs_values_sourcefirstnegative + S (dst_negative_values_sourcefirst) = S ((S (mp_a_values_source)) * dst_negative_scale_values_sourcefirst)) /\ exists ff_q_pvs_values_sourcefirstnegative. dst_negative_code_values_sourcefirst = ff_q_pvs_values_sourcefirstnegative * S ((S (mp_a_values_source)) * dst_negative_scale_values_sourcefirst) + (dst_negative_values_sourcefirst))) /\ (exists ge_balance_positive_values_sourcefirstvalue ge_balance_negative_values_sourcefirstvalue. (((((mp_x_values_source) = 2 * (ge_balance_positive_values_sourcefirstvalue) /\ (ge_balance_negative_values_sourcefirstvalue) = 0) \/ exists ge_signed_half_values_sourcefirstvaluedecode. (((mp_x_values_source) = 2 * ge_signed_half_values_sourcefirstvaluedecode + 1 /\ (ge_balance_positive_values_sourcefirstvalue) = 0) /\ (ge_balance_negative_values_sourcefirstvalue) = S ge_signed_half_values_sourcefirstvaluedecode))) /\ ((dst_positive_values_sourcefirst) + ge_balance_negative_values_sourcefirstvalue = (dst_negative_values_sourcefirst) + ge_balance_positive_values_sourcefirstvalue))))))))) -> (exists dst_positive_code_values_sourcesecond dst_positive_scale_values_sourcesecond dst_negative_code_values_sourcesecond dst_negative_scale_values_sourcesecond dst_positive_values_sourcesecond dst_negative_values_sourcesecond. (((F) = (((((dst_positive_code_values_sourcesecond) + (dst_positive_scale_values_sourcesecond)) * S ((dst_positive_code_values_sourcesecond) + (dst_positive_scale_values_sourcesecond)) + ((dst_positive_scale_values_sourcesecond) + (dst_positive_scale_values_sourcesecond))) + (((dst_negative_code_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)) * S ((dst_negative_code_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)) + ((dst_negative_scale_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)))) * S ((((dst_positive_code_values_sourcesecond) + (dst_positive_scale_values_sourcesecond)) * S ((dst_positive_code_values_sourcesecond) + (dst_positive_scale_values_sourcesecond)) + ((dst_positive_scale_values_sourcesecond) + (dst_positive_scale_values_sourcesecond))) + (((dst_negative_code_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)) * S ((dst_negative_code_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)) + ((dst_negative_scale_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)))) + ((((dst_negative_code_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)) * S ((dst_negative_code_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)) + ((dst_negative_scale_values_sourcesecond) + (dst_negative_scale_values_sourcesecond))) + (((dst_negative_code_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)) * S ((dst_negative_code_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)) + ((dst_negative_scale_values_sourcesecond) + (dst_negative_scale_values_sourcesecond)))))) /\ (((((exists ff_h_pvs_values_sourcesecondpositive. ff_h_pvs_values_sourcesecondpositive + S (dst_positive_values_sourcesecond) = S ((S (mp_b_values_source)) * dst_positive_scale_values_sourcesecond)) /\ exists ff_q_pvs_values_sourcesecondpositive. dst_positive_code_values_sourcesecond = ff_q_pvs_values_sourcesecondpositive * S ((S (mp_b_values_source)) * dst_positive_scale_values_sourcesecond) + (dst_positive_values_sourcesecond))) /\ (((((exists ff_h_pvs_values_sourcesecondnegative. ff_h_pvs_values_sourcesecondnegative + S (dst_negative_values_sourcesecond) = S ((S (mp_b_values_source)) * dst_negative_scale_values_sourcesecond)) /\ exists ff_q_pvs_values_sourcesecondnegative. dst_negative_code_values_sourcesecond = ff_q_pvs_values_sourcesecondnegative * S ((S (mp_b_values_source)) * dst_negative_scale_values_sourcesecond) + (dst_negative_values_sourcesecond))) /\ (exists ge_balance_positive_values_sourcesecondvalue ge_balance_negative_values_sourcesecondvalue. (((((mp_y_values_source) = 2 * (ge_balance_positive_values_sourcesecondvalue) /\ (ge_balance_negative_values_sourcesecondvalue) = 0) \/ exists ge_signed_half_values_sourcesecondvaluedecode. (((mp_y_values_source) = 2 * ge_signed_half_values_sourcesecondvaluedecode + 1 /\ (ge_balance_positive_values_sourcesecondvalue) = 0) /\ (ge_balance_negative_values_sourcesecondvalue) = S ge_signed_half_values_sourcesecondvaluedecode))) /\ ((dst_positive_values_sourcesecond) + ge_balance_negative_values_sourcesecondvalue = (dst_negative_values_sourcesecond) + ge_balance_positive_values_sourcesecondvalue))))))))) -> (exists dst_positive_code_values_sourceproduct dst_positive_scale_values_sourceproduct dst_negative_code_values_sourceproduct dst_negative_scale_values_sourceproduct dst_positive_values_sourceproduct dst_negative_values_sourceproduct. (((F) = (((((dst_positive_code_values_sourceproduct) + (dst_positive_scale_values_sourceproduct)) * S ((dst_positive_code_values_sourceproduct) + (dst_positive_scale_values_sourceproduct)) + ((dst_positive_scale_values_sourceproduct) + (dst_positive_scale_values_sourceproduct))) + (((dst_negative_code_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)) * S ((dst_negative_code_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)) + ((dst_negative_scale_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)))) * S ((((dst_positive_code_values_sourceproduct) + (dst_positive_scale_values_sourceproduct)) * S ((dst_positive_code_values_sourceproduct) + (dst_positive_scale_values_sourceproduct)) + ((dst_positive_scale_values_sourceproduct) + (dst_positive_scale_values_sourceproduct))) + (((dst_negative_code_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)) * S ((dst_negative_code_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)) + ((dst_negative_scale_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)))) + ((((dst_negative_code_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)) * S ((dst_negative_code_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)) + ((dst_negative_scale_values_sourceproduct) + (dst_negative_scale_values_sourceproduct))) + (((dst_negative_code_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)) * S ((dst_negative_code_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)) + ((dst_negative_scale_values_sourceproduct) + (dst_negative_scale_values_sourceproduct)))))) /\ (((((exists ff_h_pvs_values_sourceproductpositive. ff_h_pvs_values_sourceproductpositive + S (dst_positive_values_sourceproduct) = S ((S (mp_a_values_source*mp_b_values_source)) * dst_positive_scale_values_sourceproduct)) /\ exists ff_q_pvs_values_sourceproductpositive. dst_positive_code_values_sourceproduct = ff_q_pvs_values_sourceproductpositive * S ((S (mp_a_values_source*mp_b_values_source)) * dst_positive_scale_values_sourceproduct) + (dst_positive_values_sourceproduct))) /\ (((((exists ff_h_pvs_values_sourceproductnegative. ff_h_pvs_values_sourceproductnegative + S (dst_negative_values_sourceproduct) = S ((S (mp_a_values_source*mp_b_values_source)) * dst_negative_scale_values_sourceproduct)) /\ exists ff_q_pvs_values_sourceproductnegative. dst_negative_code_values_sourceproduct = ff_q_pvs_values_sourceproductnegative * S ((S (mp_a_values_source*mp_b_values_source)) * dst_negative_scale_values_sourceproduct) + (dst_negative_values_sourceproduct))) /\ (exists ge_balance_positive_values_sourceproductvalue ge_balance_negative_values_sourceproductvalue. (((((mp_z_values_source) = 2 * (ge_balance_positive_values_sourceproductvalue) /\ (ge_balance_negative_values_sourceproductvalue) = 0) \/ exists ge_signed_half_values_sourceproductvaluedecode. (((mp_z_values_source) = 2 * ge_signed_half_values_sourceproductvaluedecode + 1 /\ (ge_balance_positive_values_sourceproductvalue) = 0) /\ (ge_balance_negative_values_sourceproductvalue) = S ge_signed_half_values_sourceproductvaluedecode))) /\ ((dst_positive_values_sourceproduct) + ge_balance_negative_values_sourceproductvalue = (dst_negative_values_sourceproduct) + ge_balance_positive_values_sourceproductvalue))))))))) -> (exists sto_ap_values_sourcelaw sto_an_values_sourcelaw sto_bp_values_sourcelaw sto_bn_values_sourcelaw sto_cp_values_sourcelaw sto_cn_values_sourcelaw. (((((mp_x_values_source) = 2 * (sto_ap_values_sourcelaw) /\ (sto_an_values_sourcelaw) = 0) \/ exists ge_signed_half_values_sourcelawleft. (((mp_x_values_source) = 2 * ge_signed_half_values_sourcelawleft + 1 /\ (sto_ap_values_sourcelaw) = 0) /\ (sto_an_values_sourcelaw) = S ge_signed_half_values_sourcelawleft))) /\ ((((((mp_y_values_source) = 2 * (sto_bp_values_sourcelaw) /\ (sto_bn_values_sourcelaw) = 0) \/ exists ge_signed_half_values_sourcelawright. (((mp_y_values_source) = 2 * ge_signed_half_values_sourcelawright + 1 /\ (sto_bp_values_sourcelaw) = 0) /\ (sto_bn_values_sourcelaw) = S ge_signed_half_values_sourcelawright))) /\ ((((((mp_z_values_source) = 2 * (sto_cp_values_sourcelaw) /\ (sto_cn_values_sourcelaw) = 0) \/ exists ge_signed_half_values_sourcelawoutput. (((mp_z_values_source) = 2 * ge_signed_half_values_sourcelawoutput + 1 /\ (sto_cp_values_sourcelaw) = 0) /\ (sto_cn_values_sourcelaw) = S ge_signed_half_values_sourcelawoutput))) /\ ((sto_ap_values_sourcelaw * sto_bp_values_sourcelaw + sto_an_values_sourcelaw * sto_bn_values_sourcelaw) + sto_cn_values_sourcelaw = (sto_ap_values_sourcelaw * sto_bn_values_sourcelaw + sto_an_values_sourcelaw * sto_bp_values_sourcelaw) + sto_cp_values_sourcelaw)))))))))))))) -> ~(a=0) -> ~(b=0) -> (exists pvs_le_gap_values_bound. pvs_le_gap_values_bound + (a*b) = (N)) -> (forall frp_divisor_values_coprime. (exists frp_left_factor_values_coprime. a = frp_divisor_values_coprime * frp_left_factor_values_coprime) -> (exists frp_right_factor_values_coprime. b = frp_divisor_values_coprime * frp_right_factor_values_coprime) -> frp_divisor_values_coprime = 1) -> exists x y z. ((exists dst_positive_code_values_first dst_positive_scale_values_first dst_negative_code_values_first dst_negative_scale_values_first dst_positive_values_first dst_negative_values_first. (((F) = (((((dst_positive_code_values_first) + (dst_positive_scale_values_first)) * S ((dst_positive_code_values_first) + (dst_positive_scale_values_first)) + ((dst_positive_scale_values_first) + (dst_positive_scale_values_first))) + (((dst_negative_code_values_first) + (dst_negative_scale_values_first)) * S ((dst_negative_code_values_first) + (dst_negative_scale_values_first)) + ((dst_negative_scale_values_first) + (dst_negative_scale_values_first)))) * S ((((dst_positive_code_values_first) + (dst_positive_scale_values_first)) * S ((dst_positive_code_values_first) + (dst_positive_scale_values_first)) + ((dst_positive_scale_values_first) + (dst_positive_scale_values_first))) + (((dst_negative_code_values_first) + (dst_negative_scale_values_first)) * S ((dst_negative_code_values_first) + (dst_negative_scale_values_first)) + ((dst_negative_scale_values_first) + (dst_negative_scale_values_first)))) + ((((dst_negative_code_values_first) + (dst_negative_scale_values_first)) * S ((dst_negative_code_values_first) + (dst_negative_scale_values_first)) + ((dst_negative_scale_values_first) + (dst_negative_scale_values_first))) + (((dst_negative_code_values_first) + (dst_negative_scale_values_first)) * S ((dst_negative_code_values_first) + (dst_negative_scale_values_first)) + ((dst_negative_scale_values_first) + (dst_negative_scale_values_first)))))) /\ (((((exists ff_h_pvs_values_firstpositive. ff_h_pvs_values_firstpositive + S (dst_positive_values_first) = S ((S (a)) * dst_positive_scale_values_first)) /\ exists ff_q_pvs_values_firstpositive. dst_positive_code_values_first = ff_q_pvs_values_firstpositive * S ((S (a)) * dst_positive_scale_values_first) + (dst_positive_values_first))) /\ (((((exists ff_h_pvs_values_firstnegative. ff_h_pvs_values_firstnegative + S (dst_negative_values_first) = S ((S (a)) * dst_negative_scale_values_first)) /\ exists ff_q_pvs_values_firstnegative. dst_negative_code_values_first = ff_q_pvs_values_firstnegative * S ((S (a)) * dst_negative_scale_values_first) + (dst_negative_values_first))) /\ (exists ge_balance_positive_values_firstvalue ge_balance_negative_values_firstvalue. (((((x) = 2 * (ge_balance_positive_values_firstvalue) /\ (ge_balance_negative_values_firstvalue) = 0) \/ exists ge_signed_half_values_firstvaluedecode. (((x) = 2 * ge_signed_half_values_firstvaluedecode + 1 /\ (ge_balance_positive_values_firstvalue) = 0) /\ (ge_balance_negative_values_firstvalue) = S ge_signed_half_values_firstvaluedecode))) /\ ((dst_positive_values_first) + ge_balance_negative_values_firstvalue = (dst_negative_values_first) + ge_balance_positive_values_firstvalue))))))))) /\ (((exists dst_positive_code_values_second dst_positive_scale_values_second dst_negative_code_values_second dst_negative_scale_values_second dst_positive_values_second dst_negative_values_second. (((F) = (((((dst_positive_code_values_second) + (dst_positive_scale_values_second)) * S ((dst_positive_code_values_second) + (dst_positive_scale_values_second)) + ((dst_positive_scale_values_second) + (dst_positive_scale_values_second))) + (((dst_negative_code_values_second) + (dst_negative_scale_values_second)) * S ((dst_negative_code_values_second) + (dst_negative_scale_values_second)) + ((dst_negative_scale_values_second) + (dst_negative_scale_values_second)))) * S ((((dst_positive_code_values_second) + (dst_positive_scale_values_second)) * S ((dst_positive_code_values_second) + (dst_positive_scale_values_second)) + ((dst_positive_scale_values_second) + (dst_positive_scale_values_second))) + (((dst_negative_code_values_second) + (dst_negative_scale_values_second)) * S ((dst_negative_code_values_second) + (dst_negative_scale_values_second)) + ((dst_negative_scale_values_second) + (dst_negative_scale_values_second)))) + ((((dst_negative_code_values_second) + (dst_negative_scale_values_second)) * S ((dst_negative_code_values_second) + (dst_negative_scale_values_second)) + ((dst_negative_scale_values_second) + (dst_negative_scale_values_second))) + (((dst_negative_code_values_second) + (dst_negative_scale_values_second)) * S ((dst_negative_code_values_second) + (dst_negative_scale_values_second)) + ((dst_negative_scale_values_second) + (dst_negative_scale_values_second)))))) /\ (((((exists ff_h_pvs_values_secondpositive. ff_h_pvs_values_secondpositive + S (dst_positive_values_second) = S ((S (b)) * dst_positive_scale_values_second)) /\ exists ff_q_pvs_values_secondpositive. dst_positive_code_values_second = ff_q_pvs_values_secondpositive * S ((S (b)) * dst_positive_scale_values_second) + (dst_positive_values_second))) /\ (((((exists ff_h_pvs_values_secondnegative. ff_h_pvs_values_secondnegative + S (dst_negative_values_second) = S ((S (b)) * dst_negative_scale_values_second)) /\ exists ff_q_pvs_values_secondnegative. dst_negative_code_values_second = ff_q_pvs_values_secondnegative * S ((S (b)) * dst_negative_scale_values_second) + (dst_negative_values_second))) /\ (exists ge_balance_positive_values_secondvalue ge_balance_negative_values_secondvalue. (((((y) = 2 * (ge_balance_positive_values_secondvalue) /\ (ge_balance_negative_values_secondvalue) = 0) \/ exists ge_signed_half_values_secondvaluedecode. (((y) = 2 * ge_signed_half_values_secondvaluedecode + 1 /\ (ge_balance_positive_values_secondvalue) = 0) /\ (ge_balance_negative_values_secondvalue) = S ge_signed_half_values_secondvaluedecode))) /\ ((dst_positive_values_second) + ge_balance_negative_values_secondvalue = (dst_negative_values_second) + ge_balance_positive_values_secondvalue))))))))) /\ (((exists dst_positive_code_values_product dst_positive_scale_values_product dst_negative_code_values_product dst_negative_scale_values_product dst_positive_values_product dst_negative_values_product. (((F) = (((((dst_positive_code_values_product) + (dst_positive_scale_values_product)) * S ((dst_positive_code_values_product) + (dst_positive_scale_values_product)) + ((dst_positive_scale_values_product) + (dst_positive_scale_values_product))) + (((dst_negative_code_values_product) + (dst_negative_scale_values_product)) * S ((dst_negative_code_values_product) + (dst_negative_scale_values_product)) + ((dst_negative_scale_values_product) + (dst_negative_scale_values_product)))) * S ((((dst_positive_code_values_product) + (dst_positive_scale_values_product)) * S ((dst_positive_code_values_product) + (dst_positive_scale_values_product)) + ((dst_positive_scale_values_product) + (dst_positive_scale_values_product))) + (((dst_negative_code_values_product) + (dst_negative_scale_values_product)) * S ((dst_negative_code_values_product) + (dst_negative_scale_values_product)) + ((dst_negative_scale_values_product) + (dst_negative_scale_values_product)))) + ((((dst_negative_code_values_product) + (dst_negative_scale_values_product)) * S ((dst_negative_code_values_product) + (dst_negative_scale_values_product)) + ((dst_negative_scale_values_product) + (dst_negative_scale_values_product))) + (((dst_negative_code_values_product) + (dst_negative_scale_values_product)) * S ((dst_negative_code_values_product) + (dst_negative_scale_values_product)) + ((dst_negative_scale_values_product) + (dst_negative_scale_values_product)))))) /\ (((((exists ff_h_pvs_values_productpositive. ff_h_pvs_values_productpositive + S (dst_positive_values_product) = S ((S (a*b)) * dst_positive_scale_values_product)) /\ exists ff_q_pvs_values_productpositive. dst_positive_code_values_product = ff_q_pvs_values_productpositive * S ((S (a*b)) * dst_positive_scale_values_product) + (dst_positive_values_product))) /\ (((((exists ff_h_pvs_values_productnegative. ff_h_pvs_values_productnegative + S (dst_negative_values_product) = S ((S (a*b)) * dst_negative_scale_values_product)) /\ exists ff_q_pvs_values_productnegative. dst_negative_code_values_product = ff_q_pvs_values_productnegative * S ((S (a*b)) * dst_negative_scale_values_product) + (dst_negative_values_product))) /\ (exists ge_balance_positive_values_productvalue ge_balance_negative_values_productvalue. (((((z) = 2 * (ge_balance_positive_values_productvalue) /\ (ge_balance_negative_values_productvalue) = 0) \/ exists ge_signed_half_values_productvaluedecode. (((z) = 2 * ge_signed_half_values_productvaluedecode + 1 /\ (ge_balance_positive_values_productvalue) = 0) /\ (ge_balance_negative_values_productvalue) = S ge_signed_half_values_productvaluedecode))) /\ ((dst_positive_values_product) + ge_balance_negative_values_productvalue = (dst_negative_values_product) + ge_balance_positive_values_productvalue))))))))) /\ (exists sto_ap_values_law sto_an_values_law sto_bp_values_law sto_bn_values_law sto_cp_values_law sto_cn_values_law. (((((x) = 2 * (sto_ap_values_law) /\ (sto_an_values_law) = 0) \/ exists ge_signed_half_values_lawleft. (((x) = 2 * ge_signed_half_values_lawleft + 1 /\ (sto_ap_values_law) = 0) /\ (sto_an_values_law) = S ge_signed_half_values_lawleft))) /\ ((((((y) = 2 * (sto_bp_values_law) /\ (sto_bn_values_law) = 0) \/ exists ge_signed_half_values_lawright. (((y) = 2 * ge_signed_half_values_lawright + 1 /\ (sto_bp_values_law) = 0) /\ (sto_bn_values_law) = S ge_signed_half_values_lawright))) /\ ((((((z) = 2 * (sto_cp_values_law) /\ (sto_cn_values_law) = 0) \/ exists ge_signed_half_values_lawoutput. (((z) = 2 * ge_signed_half_values_lawoutput + 1 /\ (sto_cp_values_law) = 0) /\ (sto_cn_values_law) = S ge_signed_half_values_lawoutput))) /\ ((sto_ap_values_law * sto_bp_values_law + sto_an_values_law * sto_bn_values_law) + sto_cn_values_law = (sto_ap_values_law * sto_bn_values_law + sto_an_values_law * sto_bp_values_law) + sto_cp_values_law))))))))))))

Constructive proof overview

Generated structural guide

Construct all three actual signed values and their multiplication witness; the law is not merely conditional on absent entries.

The unchanged tactic script uses 1 declared prerequisite and contains 55 exact native proof lines.

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

Proof neighborhood

Direct dependencies

signed_table_lookup_any Alpha 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

55 script commands · 16 reading checkpoints · 3 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

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

01Fix variables and assumptionsL1–9

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

  1. L1
    intro N
  2. L2
    intro F
  3. L3
    intro a
  4. L4
    intro b
  5. L5
    intro hm
  6. L6
    intro ha
  7. L7
    intro hb
  8. L8
    intro hp
  9. L9
    intro hc
02Separate the logical casesL10–12

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

  1. L10
    cases hm
  2. L11
    cases hm_right
  3. L12
    cases hm_right_right
03Establish hxL13–18

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

  1. L13
    have hx : ∃ v. ArithAt(F,a,v)Definitions: ArithAt
  2. L14
    specialize signed_table_lookup_any (N)
  3. L15
    specialize signed_table_lookup_any (F)
  4. L16
    specialize signed_table_lookup_any (a)
  5. L17
    apply signed_table_lookup_any
  6. L18
    exact hm_right_left
04Separate the logical casesL19–19

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

  1. L19
    cases hx
05Establish hyL20–25

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

  1. L20
    have hy : ∃ v. ArithAt(F,b,v)Definitions: ArithAt
  2. L21
    specialize signed_table_lookup_any (N)
  3. L22
    specialize signed_table_lookup_any (F)
  4. L23
    specialize signed_table_lookup_any (b)
  5. L24
    apply signed_table_lookup_any
  6. L25
    exact hm_right_left
06Separate the logical casesL26–26

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

  1. L26
    cases hy
07Establish hzL27–32

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

  1. L27
    have hz : ∃ v. ArithAt(F,a · b,v)Definitions: ArithAt
  2. L28
    specialize signed_table_lookup_any (N)
  3. L29
    specialize signed_table_lookup_any (F)
  4. L30
    specialize signed_table_lookup_any (a*b)
  5. L31
    apply signed_table_lookup_any
  6. L32
    exact hm_right_left
08Separate the logical casesL33–33

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

  1. L33
    cases hz
09Construct an explicit witnessL34–36

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

  1. L34
    exists x
  2. L35
    exists x1
  3. L36
    exists x2
10Separate the logical casesL37–37

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

  1. L37
    split
11Use earlier factsL38–38

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

  1. L38
    exact hx_witness
12Separate the logical casesL39–39

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

  1. L39
    split
13Use earlier factsL40–40

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

  1. L40
    exact hy_witness
14Separate the logical casesL41–41

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

  1. L41
    split
15Use earlier factsL42–51

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

  1. L42
    exact hz_witness
  2. L43
    specialize hm_right_right_right (a)
  3. L44
    specialize hm_right_right_right (b)
  4. L45
    specialize hm_right_right_right (x)
  5. L46
    specialize hm_right_right_right (x1)
  6. L47
    specialize hm_right_right_right (x2)
  7. L48
    apply hm_right_right_right
  8. L49
    exact ha
  9. L50
    exact hb
  10. L51
    exact hp
16Use earlier factsL52–55

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

  1. L52
    exact hc
  2. L53
    exact hx_witness
  3. L54
    exact hy_witness
  4. L55
    exact hz_witness

Library-wide reading audit

Original exact command ledger · 55 lines
  1. 0001intro N
  2. 0002intro F
  3. 0003intro a
  4. 0004intro b
  5. 0005intro hm
  6. 0006intro ha
  7. 0007intro hb
  8. 0008intro hp
  9. 0009intro hc
  10. 0010cases hm
  11. 0011cases hm_right
  12. 0012cases hm_right_right
  13. 0013have hx : exists v. (exists dst_positive_code_hxactual dst_positive_scale_hxactual dst_negative_code_hxactual dst_negative_scale_hxactual dst_positive_hxactual dst_negative_hxactual. (((F) = (((((dst_positive_code_hxactual) + (dst_positive_scale_hxactual)) * S ((dst_positive_code_hxactual) + (dst_positive_scale_hxactual)) + ((dst_positive_scale_hxactual) + (dst_positive_scale_hxactual))) + (((dst_negative_code_hxactual) + (dst_negative_scale_hxactual)) * S ((dst_negative_code_hxactual) + (dst_negative_scale_hxactual)) + ((dst_negative_scale_hxactual) + (dst_negative_scale_hxactual)))) * S ((((dst_positive_code_hxactual) + (dst_positive_scale_hxactual)) * S ((dst_positive_code_hxactual) + (dst_positive_scale_hxactual)) + ((dst_positive_scale_hxactual) + (dst_positive_scale_hxactual))) + (((dst_negative_code_hxactual) + (dst_negative_scale_hxactual)) * S ((dst_negative_code_hxactual) + (dst_negative_scale_hxactual)) + ((dst_negative_scale_hxactual) + (dst_negative_scale_hxactual)))) + ((((dst_negative_code_hxactual) + (dst_negative_scale_hxactual)) * S ((dst_negative_code_hxactual) + (dst_negative_scale_hxactual)) + ((dst_negative_scale_hxactual) + (dst_negative_scale_hxactual))) + (((dst_negative_code_hxactual) + (dst_negative_scale_hxactual)) * S ((dst_negative_code_hxactual) + (dst_negative_scale_hxactual)) + ((dst_negative_scale_hxactual) + (dst_negative_scale_hxactual)))))) /\ (((((exists ff_h_pvs_hxactualpositive. ff_h_pvs_hxactualpositive + S (dst_positive_hxactual) = S ((S (a)) * dst_positive_scale_hxactual)) /\ exists ff_q_pvs_hxactualpositive. dst_positive_code_hxactual = ff_q_pvs_hxactualpositive * S ((S (a)) * dst_positive_scale_hxactual) + (dst_positive_hxactual))) /\ (((((exists ff_h_pvs_hxactualnegative. ff_h_pvs_hxactualnegative + S (dst_negative_hxactual) = S ((S (a)) * dst_negative_scale_hxactual)) /\ exists ff_q_pvs_hxactualnegative. dst_negative_code_hxactual = ff_q_pvs_hxactualnegative * S ((S (a)) * dst_negative_scale_hxactual) + (dst_negative_hxactual))) /\ (exists ge_balance_positive_hxactualvalue ge_balance_negative_hxactualvalue. (((((v) = 2 * (ge_balance_positive_hxactualvalue) /\ (ge_balance_negative_hxactualvalue) = 0) \/ exists ge_signed_half_hxactualvaluedecode. (((v) = 2 * ge_signed_half_hxactualvaluedecode + 1 /\ (ge_balance_positive_hxactualvalue) = 0) /\ (ge_balance_negative_hxactualvalue) = S ge_signed_half_hxactualvaluedecode))) /\ ((dst_positive_hxactual) + ge_balance_negative_hxactualvalue = (dst_negative_hxactual) + ge_balance_positive_hxactualvalue)))))))))
  14. 0014specialize signed_table_lookup_any (N)
  15. 0015specialize signed_table_lookup_any (F)
  16. 0016specialize signed_table_lookup_any (a)
  17. 0017apply signed_table_lookup_any
  18. 0018exact hm_right_left
  19. 0019cases hx
  20. 0020have hy : exists v. (exists dst_positive_code_hyactual dst_positive_scale_hyactual dst_negative_code_hyactual dst_negative_scale_hyactual dst_positive_hyactual dst_negative_hyactual. (((F) = (((((dst_positive_code_hyactual) + (dst_positive_scale_hyactual)) * S ((dst_positive_code_hyactual) + (dst_positive_scale_hyactual)) + ((dst_positive_scale_hyactual) + (dst_positive_scale_hyactual))) + (((dst_negative_code_hyactual) + (dst_negative_scale_hyactual)) * S ((dst_negative_code_hyactual) + (dst_negative_scale_hyactual)) + ((dst_negative_scale_hyactual) + (dst_negative_scale_hyactual)))) * S ((((dst_positive_code_hyactual) + (dst_positive_scale_hyactual)) * S ((dst_positive_code_hyactual) + (dst_positive_scale_hyactual)) + ((dst_positive_scale_hyactual) + (dst_positive_scale_hyactual))) + (((dst_negative_code_hyactual) + (dst_negative_scale_hyactual)) * S ((dst_negative_code_hyactual) + (dst_negative_scale_hyactual)) + ((dst_negative_scale_hyactual) + (dst_negative_scale_hyactual)))) + ((((dst_negative_code_hyactual) + (dst_negative_scale_hyactual)) * S ((dst_negative_code_hyactual) + (dst_negative_scale_hyactual)) + ((dst_negative_scale_hyactual) + (dst_negative_scale_hyactual))) + (((dst_negative_code_hyactual) + (dst_negative_scale_hyactual)) * S ((dst_negative_code_hyactual) + (dst_negative_scale_hyactual)) + ((dst_negative_scale_hyactual) + (dst_negative_scale_hyactual)))))) /\ (((((exists ff_h_pvs_hyactualpositive. ff_h_pvs_hyactualpositive + S (dst_positive_hyactual) = S ((S (b)) * dst_positive_scale_hyactual)) /\ exists ff_q_pvs_hyactualpositive. dst_positive_code_hyactual = ff_q_pvs_hyactualpositive * S ((S (b)) * dst_positive_scale_hyactual) + (dst_positive_hyactual))) /\ (((((exists ff_h_pvs_hyactualnegative. ff_h_pvs_hyactualnegative + S (dst_negative_hyactual) = S ((S (b)) * dst_negative_scale_hyactual)) /\ exists ff_q_pvs_hyactualnegative. dst_negative_code_hyactual = ff_q_pvs_hyactualnegative * S ((S (b)) * dst_negative_scale_hyactual) + (dst_negative_hyactual))) /\ (exists ge_balance_positive_hyactualvalue ge_balance_negative_hyactualvalue. (((((v) = 2 * (ge_balance_positive_hyactualvalue) /\ (ge_balance_negative_hyactualvalue) = 0) \/ exists ge_signed_half_hyactualvaluedecode. (((v) = 2 * ge_signed_half_hyactualvaluedecode + 1 /\ (ge_balance_positive_hyactualvalue) = 0) /\ (ge_balance_negative_hyactualvalue) = S ge_signed_half_hyactualvaluedecode))) /\ ((dst_positive_hyactual) + ge_balance_negative_hyactualvalue = (dst_negative_hyactual) + ge_balance_positive_hyactualvalue)))))))))
  21. 0021specialize signed_table_lookup_any (N)
  22. 0022specialize signed_table_lookup_any (F)
  23. 0023specialize signed_table_lookup_any (b)
  24. 0024apply signed_table_lookup_any
  25. 0025exact hm_right_left
  26. 0026cases hy
  27. 0027have hz : exists v. (exists dst_positive_code_hzactual dst_positive_scale_hzactual dst_negative_code_hzactual dst_negative_scale_hzactual dst_positive_hzactual dst_negative_hzactual. (((F) = (((((dst_positive_code_hzactual) + (dst_positive_scale_hzactual)) * S ((dst_positive_code_hzactual) + (dst_positive_scale_hzactual)) + ((dst_positive_scale_hzactual) + (dst_positive_scale_hzactual))) + (((dst_negative_code_hzactual) + (dst_negative_scale_hzactual)) * S ((dst_negative_code_hzactual) + (dst_negative_scale_hzactual)) + ((dst_negative_scale_hzactual) + (dst_negative_scale_hzactual)))) * S ((((dst_positive_code_hzactual) + (dst_positive_scale_hzactual)) * S ((dst_positive_code_hzactual) + (dst_positive_scale_hzactual)) + ((dst_positive_scale_hzactual) + (dst_positive_scale_hzactual))) + (((dst_negative_code_hzactual) + (dst_negative_scale_hzactual)) * S ((dst_negative_code_hzactual) + (dst_negative_scale_hzactual)) + ((dst_negative_scale_hzactual) + (dst_negative_scale_hzactual)))) + ((((dst_negative_code_hzactual) + (dst_negative_scale_hzactual)) * S ((dst_negative_code_hzactual) + (dst_negative_scale_hzactual)) + ((dst_negative_scale_hzactual) + (dst_negative_scale_hzactual))) + (((dst_negative_code_hzactual) + (dst_negative_scale_hzactual)) * S ((dst_negative_code_hzactual) + (dst_negative_scale_hzactual)) + ((dst_negative_scale_hzactual) + (dst_negative_scale_hzactual)))))) /\ (((((exists ff_h_pvs_hzactualpositive. ff_h_pvs_hzactualpositive + S (dst_positive_hzactual) = S ((S (a*b)) * dst_positive_scale_hzactual)) /\ exists ff_q_pvs_hzactualpositive. dst_positive_code_hzactual = ff_q_pvs_hzactualpositive * S ((S (a*b)) * dst_positive_scale_hzactual) + (dst_positive_hzactual))) /\ (((((exists ff_h_pvs_hzactualnegative. ff_h_pvs_hzactualnegative + S (dst_negative_hzactual) = S ((S (a*b)) * dst_negative_scale_hzactual)) /\ exists ff_q_pvs_hzactualnegative. dst_negative_code_hzactual = ff_q_pvs_hzactualnegative * S ((S (a*b)) * dst_negative_scale_hzactual) + (dst_negative_hzactual))) /\ (exists ge_balance_positive_hzactualvalue ge_balance_negative_hzactualvalue. (((((v) = 2 * (ge_balance_positive_hzactualvalue) /\ (ge_balance_negative_hzactualvalue) = 0) \/ exists ge_signed_half_hzactualvaluedecode. (((v) = 2 * ge_signed_half_hzactualvaluedecode + 1 /\ (ge_balance_positive_hzactualvalue) = 0) /\ (ge_balance_negative_hzactualvalue) = S ge_signed_half_hzactualvaluedecode))) /\ ((dst_positive_hzactual) + ge_balance_negative_hzactualvalue = (dst_negative_hzactual) + ge_balance_positive_hzactualvalue)))))))))
  28. 0028specialize signed_table_lookup_any (N)
  29. 0029specialize signed_table_lookup_any (F)
  30. 0030specialize signed_table_lookup_any (a*b)
  31. 0031apply signed_table_lookup_any
  32. 0032exact hm_right_left
  33. 0033cases hz
  34. 0034exists x
  35. 0035exists x1
  36. 0036exists x2
  37. 0037split
  38. 0038exact hx_witness
  39. 0039split
  40. 0040exact hy_witness
  41. 0041split
  42. 0042exact hz_witness
  43. 0043specialize hm_right_right_right (a)
  44. 0044specialize hm_right_right_right (b)
  45. 0045specialize hm_right_right_right (x)
  46. 0046specialize hm_right_right_right (x1)
  47. 0047specialize hm_right_right_right (x2)
  48. 0048apply hm_right_right_right
  49. 0049exact ha
  50. 0050exact hb
  51. 0051exact hp
  52. 0052exact hc
  53. 0053exact hx_witness
  54. 0054exact hy_witness
  55. 0055exact hz_witness