MX0008

signed_multiplicative_restrict

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

The same normalized table is multiplicative on every smaller nonempty positive prefix.

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 K F. (((~((N)=0)) /\ (((exists dst_positive_code_restrict_sourcetable dst_positive_scale_restrict_sourcetable dst_negative_code_restrict_sourcetable dst_negative_scale_restrict_sourcetable. (((F) = (((((dst_positive_code_restrict_sourcetable) + (dst_positive_scale_restrict_sourcetable)) * S ((dst_positive_code_restrict_sourcetable) + (dst_positive_scale_restrict_sourcetable)) + ((dst_positive_scale_restrict_sourcetable) + (dst_positive_scale_restrict_sourcetable))) + (((dst_negative_code_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)) * S ((dst_negative_code_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)) + ((dst_negative_scale_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)))) * S ((((dst_positive_code_restrict_sourcetable) + (dst_positive_scale_restrict_sourcetable)) * S ((dst_positive_code_restrict_sourcetable) + (dst_positive_scale_restrict_sourcetable)) + ((dst_positive_scale_restrict_sourcetable) + (dst_positive_scale_restrict_sourcetable))) + (((dst_negative_code_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)) * S ((dst_negative_code_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)) + ((dst_negative_scale_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)))) + ((((dst_negative_code_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)) * S ((dst_negative_code_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)) + ((dst_negative_scale_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable))) + (((dst_negative_code_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)) * S ((dst_negative_code_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)) + ((dst_negative_scale_restrict_sourcetable) + (dst_negative_scale_restrict_sourcetable)))))) /\ (forall dst_index_restrict_sourcetable. (exists pvs_le_gap_restrict_sourcetabledomain. pvs_le_gap_restrict_sourcetabledomain + (dst_index_restrict_sourcetable) = (N)) -> exists dst_positive_restrict_sourcetable dst_negative_restrict_sourcetable dst_value_restrict_sourcetable. ((((exists ff_h_pvs_restrict_sourcetableentrypositive. ff_h_pvs_restrict_sourcetableentrypositive + S (dst_positive_restrict_sourcetable) = S ((S (dst_index_restrict_sourcetable)) * dst_positive_scale_restrict_sourcetable)) /\ exists ff_q_pvs_restrict_sourcetableentrypositive. dst_positive_code_restrict_sourcetable = ff_q_pvs_restrict_sourcetableentrypositive * S ((S (dst_index_restrict_sourcetable)) * dst_positive_scale_restrict_sourcetable) + (dst_positive_restrict_sourcetable))) /\ (((((exists ff_h_pvs_restrict_sourcetableentrynegative. ff_h_pvs_restrict_sourcetableentrynegative + S (dst_negative_restrict_sourcetable) = S ((S (dst_index_restrict_sourcetable)) * dst_negative_scale_restrict_sourcetable)) /\ exists ff_q_pvs_restrict_sourcetableentrynegative. dst_negative_code_restrict_sourcetable = ff_q_pvs_restrict_sourcetableentrynegative * S ((S (dst_index_restrict_sourcetable)) * dst_negative_scale_restrict_sourcetable) + (dst_negative_restrict_sourcetable))) /\ (exists ge_balance_positive_restrict_sourcetableentryvalue ge_balance_negative_restrict_sourcetableentryvalue. (((((dst_value_restrict_sourcetable) = 2 * (ge_balance_positive_restrict_sourcetableentryvalue) /\ (ge_balance_negative_restrict_sourcetableentryvalue) = 0) \/ exists ge_signed_half_restrict_sourcetableentryvaluedecode. (((dst_value_restrict_sourcetable) = 2 * ge_signed_half_restrict_sourcetableentryvaluedecode + 1 /\ (ge_balance_positive_restrict_sourcetableentryvalue) = 0) /\ (ge_balance_negative_restrict_sourcetableentryvalue) = S ge_signed_half_restrict_sourcetableentryvaluedecode))) /\ ((dst_positive_restrict_sourcetable) + ge_balance_negative_restrict_sourcetableentryvalue = (dst_negative_restrict_sourcetable) + ge_balance_positive_restrict_sourcetableentryvalue))))))))) /\ (((exists dst_positive_code_restrict_sourceone dst_positive_scale_restrict_sourceone dst_negative_code_restrict_sourceone dst_negative_scale_restrict_sourceone dst_positive_restrict_sourceone dst_negative_restrict_sourceone. (((F) = (((((dst_positive_code_restrict_sourceone) + (dst_positive_scale_restrict_sourceone)) * S ((dst_positive_code_restrict_sourceone) + (dst_positive_scale_restrict_sourceone)) + ((dst_positive_scale_restrict_sourceone) + (dst_positive_scale_restrict_sourceone))) + (((dst_negative_code_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)) * S ((dst_negative_code_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)) + ((dst_negative_scale_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)))) * S ((((dst_positive_code_restrict_sourceone) + (dst_positive_scale_restrict_sourceone)) * S ((dst_positive_code_restrict_sourceone) + (dst_positive_scale_restrict_sourceone)) + ((dst_positive_scale_restrict_sourceone) + (dst_positive_scale_restrict_sourceone))) + (((dst_negative_code_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)) * S ((dst_negative_code_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)) + ((dst_negative_scale_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)))) + ((((dst_negative_code_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)) * S ((dst_negative_code_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)) + ((dst_negative_scale_restrict_sourceone) + (dst_negative_scale_restrict_sourceone))) + (((dst_negative_code_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)) * S ((dst_negative_code_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)) + ((dst_negative_scale_restrict_sourceone) + (dst_negative_scale_restrict_sourceone)))))) /\ (((((exists ff_h_pvs_restrict_sourceonepositive. ff_h_pvs_restrict_sourceonepositive + S (dst_positive_restrict_sourceone) = S ((S (1)) * dst_positive_scale_restrict_sourceone)) /\ exists ff_q_pvs_restrict_sourceonepositive. dst_positive_code_restrict_sourceone = ff_q_pvs_restrict_sourceonepositive * S ((S (1)) * dst_positive_scale_restrict_sourceone) + (dst_positive_restrict_sourceone))) /\ (((((exists ff_h_pvs_restrict_sourceonenegative. ff_h_pvs_restrict_sourceonenegative + S (dst_negative_restrict_sourceone) = S ((S (1)) * dst_negative_scale_restrict_sourceone)) /\ exists ff_q_pvs_restrict_sourceonenegative. dst_negative_code_restrict_sourceone = ff_q_pvs_restrict_sourceonenegative * S ((S (1)) * dst_negative_scale_restrict_sourceone) + (dst_negative_restrict_sourceone))) /\ (exists ge_balance_positive_restrict_sourceonevalue ge_balance_negative_restrict_sourceonevalue. (((((2) = 2 * (ge_balance_positive_restrict_sourceonevalue) /\ (ge_balance_negative_restrict_sourceonevalue) = 0) \/ exists ge_signed_half_restrict_sourceonevaluedecode. (((2) = 2 * ge_signed_half_restrict_sourceonevaluedecode + 1 /\ (ge_balance_positive_restrict_sourceonevalue) = 0) /\ (ge_balance_negative_restrict_sourceonevalue) = S ge_signed_half_restrict_sourceonevaluedecode))) /\ ((dst_positive_restrict_sourceone) + ge_balance_negative_restrict_sourceonevalue = (dst_negative_restrict_sourceone) + ge_balance_positive_restrict_sourceonevalue))))))))) /\ (forall mp_a_restrict_source mp_b_restrict_source mp_x_restrict_source mp_y_restrict_source mp_z_restrict_source. ~(mp_a_restrict_source=0) -> ~(mp_b_restrict_source=0) -> (exists pvs_le_gap_restrict_sourcebound. pvs_le_gap_restrict_sourcebound + (mp_a_restrict_source*mp_b_restrict_source) = (N)) -> (forall frp_divisor_restrict_sourcecoprime. (exists frp_left_factor_restrict_sourcecoprime. mp_a_restrict_source = frp_divisor_restrict_sourcecoprime * frp_left_factor_restrict_sourcecoprime) -> (exists frp_right_factor_restrict_sourcecoprime. mp_b_restrict_source = frp_divisor_restrict_sourcecoprime * frp_right_factor_restrict_sourcecoprime) -> frp_divisor_restrict_sourcecoprime = 1) -> (exists dst_positive_code_restrict_sourcefirst dst_positive_scale_restrict_sourcefirst dst_negative_code_restrict_sourcefirst dst_negative_scale_restrict_sourcefirst dst_positive_restrict_sourcefirst dst_negative_restrict_sourcefirst. (((F) = (((((dst_positive_code_restrict_sourcefirst) + (dst_positive_scale_restrict_sourcefirst)) * S ((dst_positive_code_restrict_sourcefirst) + (dst_positive_scale_restrict_sourcefirst)) + ((dst_positive_scale_restrict_sourcefirst) + (dst_positive_scale_restrict_sourcefirst))) + (((dst_negative_code_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)) * S ((dst_negative_code_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)) + ((dst_negative_scale_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)))) * S ((((dst_positive_code_restrict_sourcefirst) + (dst_positive_scale_restrict_sourcefirst)) * S ((dst_positive_code_restrict_sourcefirst) + (dst_positive_scale_restrict_sourcefirst)) + ((dst_positive_scale_restrict_sourcefirst) + (dst_positive_scale_restrict_sourcefirst))) + (((dst_negative_code_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)) * S ((dst_negative_code_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)) + ((dst_negative_scale_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)))) + ((((dst_negative_code_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)) * S ((dst_negative_code_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)) + ((dst_negative_scale_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst))) + (((dst_negative_code_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)) * S ((dst_negative_code_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)) + ((dst_negative_scale_restrict_sourcefirst) + (dst_negative_scale_restrict_sourcefirst)))))) /\ (((((exists ff_h_pvs_restrict_sourcefirstpositive. ff_h_pvs_restrict_sourcefirstpositive + S (dst_positive_restrict_sourcefirst) = S ((S (mp_a_restrict_source)) * dst_positive_scale_restrict_sourcefirst)) /\ exists ff_q_pvs_restrict_sourcefirstpositive. dst_positive_code_restrict_sourcefirst = ff_q_pvs_restrict_sourcefirstpositive * S ((S (mp_a_restrict_source)) * dst_positive_scale_restrict_sourcefirst) + (dst_positive_restrict_sourcefirst))) /\ (((((exists ff_h_pvs_restrict_sourcefirstnegative. ff_h_pvs_restrict_sourcefirstnegative + S (dst_negative_restrict_sourcefirst) = S ((S (mp_a_restrict_source)) * dst_negative_scale_restrict_sourcefirst)) /\ exists ff_q_pvs_restrict_sourcefirstnegative. dst_negative_code_restrict_sourcefirst = ff_q_pvs_restrict_sourcefirstnegative * S ((S (mp_a_restrict_source)) * dst_negative_scale_restrict_sourcefirst) + (dst_negative_restrict_sourcefirst))) /\ (exists ge_balance_positive_restrict_sourcefirstvalue ge_balance_negative_restrict_sourcefirstvalue. (((((mp_x_restrict_source) = 2 * (ge_balance_positive_restrict_sourcefirstvalue) /\ (ge_balance_negative_restrict_sourcefirstvalue) = 0) \/ exists ge_signed_half_restrict_sourcefirstvaluedecode. (((mp_x_restrict_source) = 2 * ge_signed_half_restrict_sourcefirstvaluedecode + 1 /\ (ge_balance_positive_restrict_sourcefirstvalue) = 0) /\ (ge_balance_negative_restrict_sourcefirstvalue) = S ge_signed_half_restrict_sourcefirstvaluedecode))) /\ ((dst_positive_restrict_sourcefirst) + ge_balance_negative_restrict_sourcefirstvalue = (dst_negative_restrict_sourcefirst) + ge_balance_positive_restrict_sourcefirstvalue))))))))) -> (exists dst_positive_code_restrict_sourcesecond dst_positive_scale_restrict_sourcesecond dst_negative_code_restrict_sourcesecond dst_negative_scale_restrict_sourcesecond dst_positive_restrict_sourcesecond dst_negative_restrict_sourcesecond. (((F) = (((((dst_positive_code_restrict_sourcesecond) + (dst_positive_scale_restrict_sourcesecond)) * S ((dst_positive_code_restrict_sourcesecond) + (dst_positive_scale_restrict_sourcesecond)) + ((dst_positive_scale_restrict_sourcesecond) + (dst_positive_scale_restrict_sourcesecond))) + (((dst_negative_code_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)) * S ((dst_negative_code_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)) + ((dst_negative_scale_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)))) * S ((((dst_positive_code_restrict_sourcesecond) + (dst_positive_scale_restrict_sourcesecond)) * S ((dst_positive_code_restrict_sourcesecond) + (dst_positive_scale_restrict_sourcesecond)) + ((dst_positive_scale_restrict_sourcesecond) + (dst_positive_scale_restrict_sourcesecond))) + (((dst_negative_code_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)) * S ((dst_negative_code_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)) + ((dst_negative_scale_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)))) + ((((dst_negative_code_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)) * S ((dst_negative_code_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)) + ((dst_negative_scale_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond))) + (((dst_negative_code_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)) * S ((dst_negative_code_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)) + ((dst_negative_scale_restrict_sourcesecond) + (dst_negative_scale_restrict_sourcesecond)))))) /\ (((((exists ff_h_pvs_restrict_sourcesecondpositive. ff_h_pvs_restrict_sourcesecondpositive + S (dst_positive_restrict_sourcesecond) = S ((S (mp_b_restrict_source)) * dst_positive_scale_restrict_sourcesecond)) /\ exists ff_q_pvs_restrict_sourcesecondpositive. dst_positive_code_restrict_sourcesecond = ff_q_pvs_restrict_sourcesecondpositive * S ((S (mp_b_restrict_source)) * dst_positive_scale_restrict_sourcesecond) + (dst_positive_restrict_sourcesecond))) /\ (((((exists ff_h_pvs_restrict_sourcesecondnegative. ff_h_pvs_restrict_sourcesecondnegative + S (dst_negative_restrict_sourcesecond) = S ((S (mp_b_restrict_source)) * dst_negative_scale_restrict_sourcesecond)) /\ exists ff_q_pvs_restrict_sourcesecondnegative. dst_negative_code_restrict_sourcesecond = ff_q_pvs_restrict_sourcesecondnegative * S ((S (mp_b_restrict_source)) * dst_negative_scale_restrict_sourcesecond) + (dst_negative_restrict_sourcesecond))) /\ (exists ge_balance_positive_restrict_sourcesecondvalue ge_balance_negative_restrict_sourcesecondvalue. (((((mp_y_restrict_source) = 2 * (ge_balance_positive_restrict_sourcesecondvalue) /\ (ge_balance_negative_restrict_sourcesecondvalue) = 0) \/ exists ge_signed_half_restrict_sourcesecondvaluedecode. (((mp_y_restrict_source) = 2 * ge_signed_half_restrict_sourcesecondvaluedecode + 1 /\ (ge_balance_positive_restrict_sourcesecondvalue) = 0) /\ (ge_balance_negative_restrict_sourcesecondvalue) = S ge_signed_half_restrict_sourcesecondvaluedecode))) /\ ((dst_positive_restrict_sourcesecond) + ge_balance_negative_restrict_sourcesecondvalue = (dst_negative_restrict_sourcesecond) + ge_balance_positive_restrict_sourcesecondvalue))))))))) -> (exists dst_positive_code_restrict_sourceproduct dst_positive_scale_restrict_sourceproduct dst_negative_code_restrict_sourceproduct dst_negative_scale_restrict_sourceproduct dst_positive_restrict_sourceproduct dst_negative_restrict_sourceproduct. (((F) = (((((dst_positive_code_restrict_sourceproduct) + (dst_positive_scale_restrict_sourceproduct)) * S ((dst_positive_code_restrict_sourceproduct) + (dst_positive_scale_restrict_sourceproduct)) + ((dst_positive_scale_restrict_sourceproduct) + (dst_positive_scale_restrict_sourceproduct))) + (((dst_negative_code_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)) * S ((dst_negative_code_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)) + ((dst_negative_scale_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)))) * S ((((dst_positive_code_restrict_sourceproduct) + (dst_positive_scale_restrict_sourceproduct)) * S ((dst_positive_code_restrict_sourceproduct) + (dst_positive_scale_restrict_sourceproduct)) + ((dst_positive_scale_restrict_sourceproduct) + (dst_positive_scale_restrict_sourceproduct))) + (((dst_negative_code_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)) * S ((dst_negative_code_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)) + ((dst_negative_scale_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)))) + ((((dst_negative_code_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)) * S ((dst_negative_code_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)) + ((dst_negative_scale_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct))) + (((dst_negative_code_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)) * S ((dst_negative_code_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)) + ((dst_negative_scale_restrict_sourceproduct) + (dst_negative_scale_restrict_sourceproduct)))))) /\ (((((exists ff_h_pvs_restrict_sourceproductpositive. ff_h_pvs_restrict_sourceproductpositive + S (dst_positive_restrict_sourceproduct) = S ((S (mp_a_restrict_source*mp_b_restrict_source)) * dst_positive_scale_restrict_sourceproduct)) /\ exists ff_q_pvs_restrict_sourceproductpositive. dst_positive_code_restrict_sourceproduct = ff_q_pvs_restrict_sourceproductpositive * S ((S (mp_a_restrict_source*mp_b_restrict_source)) * dst_positive_scale_restrict_sourceproduct) + (dst_positive_restrict_sourceproduct))) /\ (((((exists ff_h_pvs_restrict_sourceproductnegative. ff_h_pvs_restrict_sourceproductnegative + S (dst_negative_restrict_sourceproduct) = S ((S (mp_a_restrict_source*mp_b_restrict_source)) * dst_negative_scale_restrict_sourceproduct)) /\ exists ff_q_pvs_restrict_sourceproductnegative. dst_negative_code_restrict_sourceproduct = ff_q_pvs_restrict_sourceproductnegative * S ((S (mp_a_restrict_source*mp_b_restrict_source)) * dst_negative_scale_restrict_sourceproduct) + (dst_negative_restrict_sourceproduct))) /\ (exists ge_balance_positive_restrict_sourceproductvalue ge_balance_negative_restrict_sourceproductvalue. (((((mp_z_restrict_source) = 2 * (ge_balance_positive_restrict_sourceproductvalue) /\ (ge_balance_negative_restrict_sourceproductvalue) = 0) \/ exists ge_signed_half_restrict_sourceproductvaluedecode. (((mp_z_restrict_source) = 2 * ge_signed_half_restrict_sourceproductvaluedecode + 1 /\ (ge_balance_positive_restrict_sourceproductvalue) = 0) /\ (ge_balance_negative_restrict_sourceproductvalue) = S ge_signed_half_restrict_sourceproductvaluedecode))) /\ ((dst_positive_restrict_sourceproduct) + ge_balance_negative_restrict_sourceproductvalue = (dst_negative_restrict_sourceproduct) + ge_balance_positive_restrict_sourceproductvalue))))))))) -> (exists sto_ap_restrict_sourcelaw sto_an_restrict_sourcelaw sto_bp_restrict_sourcelaw sto_bn_restrict_sourcelaw sto_cp_restrict_sourcelaw sto_cn_restrict_sourcelaw. (((((mp_x_restrict_source) = 2 * (sto_ap_restrict_sourcelaw) /\ (sto_an_restrict_sourcelaw) = 0) \/ exists ge_signed_half_restrict_sourcelawleft. (((mp_x_restrict_source) = 2 * ge_signed_half_restrict_sourcelawleft + 1 /\ (sto_ap_restrict_sourcelaw) = 0) /\ (sto_an_restrict_sourcelaw) = S ge_signed_half_restrict_sourcelawleft))) /\ ((((((mp_y_restrict_source) = 2 * (sto_bp_restrict_sourcelaw) /\ (sto_bn_restrict_sourcelaw) = 0) \/ exists ge_signed_half_restrict_sourcelawright. (((mp_y_restrict_source) = 2 * ge_signed_half_restrict_sourcelawright + 1 /\ (sto_bp_restrict_sourcelaw) = 0) /\ (sto_bn_restrict_sourcelaw) = S ge_signed_half_restrict_sourcelawright))) /\ ((((((mp_z_restrict_source) = 2 * (sto_cp_restrict_sourcelaw) /\ (sto_cn_restrict_sourcelaw) = 0) \/ exists ge_signed_half_restrict_sourcelawoutput. (((mp_z_restrict_source) = 2 * ge_signed_half_restrict_sourcelawoutput + 1 /\ (sto_cp_restrict_sourcelaw) = 0) /\ (sto_cn_restrict_sourcelaw) = S ge_signed_half_restrict_sourcelawoutput))) /\ ((sto_ap_restrict_sourcelaw * sto_bp_restrict_sourcelaw + sto_an_restrict_sourcelaw * sto_bn_restrict_sourcelaw) + sto_cn_restrict_sourcelaw = (sto_ap_restrict_sourcelaw * sto_bn_restrict_sourcelaw + sto_an_restrict_sourcelaw * sto_bp_restrict_sourcelaw) + sto_cp_restrict_sourcelaw)))))))))))))) -> ~(K=0) -> (exists pvs_le_gap_restrict_bound. pvs_le_gap_restrict_bound + (K) = (N)) -> (((~((K)=0)) /\ (((exists dst_positive_code_restrict_targettable dst_positive_scale_restrict_targettable dst_negative_code_restrict_targettable dst_negative_scale_restrict_targettable. (((F) = (((((dst_positive_code_restrict_targettable) + (dst_positive_scale_restrict_targettable)) * S ((dst_positive_code_restrict_targettable) + (dst_positive_scale_restrict_targettable)) + ((dst_positive_scale_restrict_targettable) + (dst_positive_scale_restrict_targettable))) + (((dst_negative_code_restrict_targettable) + (dst_negative_scale_restrict_targettable)) * S ((dst_negative_code_restrict_targettable) + (dst_negative_scale_restrict_targettable)) + ((dst_negative_scale_restrict_targettable) + (dst_negative_scale_restrict_targettable)))) * S ((((dst_positive_code_restrict_targettable) + (dst_positive_scale_restrict_targettable)) * S ((dst_positive_code_restrict_targettable) + (dst_positive_scale_restrict_targettable)) + ((dst_positive_scale_restrict_targettable) + (dst_positive_scale_restrict_targettable))) + (((dst_negative_code_restrict_targettable) + (dst_negative_scale_restrict_targettable)) * S ((dst_negative_code_restrict_targettable) + (dst_negative_scale_restrict_targettable)) + ((dst_negative_scale_restrict_targettable) + (dst_negative_scale_restrict_targettable)))) + ((((dst_negative_code_restrict_targettable) + (dst_negative_scale_restrict_targettable)) * S ((dst_negative_code_restrict_targettable) + (dst_negative_scale_restrict_targettable)) + ((dst_negative_scale_restrict_targettable) + (dst_negative_scale_restrict_targettable))) + (((dst_negative_code_restrict_targettable) + (dst_negative_scale_restrict_targettable)) * S ((dst_negative_code_restrict_targettable) + (dst_negative_scale_restrict_targettable)) + ((dst_negative_scale_restrict_targettable) + (dst_negative_scale_restrict_targettable)))))) /\ (forall dst_index_restrict_targettable. (exists pvs_le_gap_restrict_targettabledomain. pvs_le_gap_restrict_targettabledomain + (dst_index_restrict_targettable) = (K)) -> exists dst_positive_restrict_targettable dst_negative_restrict_targettable dst_value_restrict_targettable. ((((exists ff_h_pvs_restrict_targettableentrypositive. ff_h_pvs_restrict_targettableentrypositive + S (dst_positive_restrict_targettable) = S ((S (dst_index_restrict_targettable)) * dst_positive_scale_restrict_targettable)) /\ exists ff_q_pvs_restrict_targettableentrypositive. dst_positive_code_restrict_targettable = ff_q_pvs_restrict_targettableentrypositive * S ((S (dst_index_restrict_targettable)) * dst_positive_scale_restrict_targettable) + (dst_positive_restrict_targettable))) /\ (((((exists ff_h_pvs_restrict_targettableentrynegative. ff_h_pvs_restrict_targettableentrynegative + S (dst_negative_restrict_targettable) = S ((S (dst_index_restrict_targettable)) * dst_negative_scale_restrict_targettable)) /\ exists ff_q_pvs_restrict_targettableentrynegative. dst_negative_code_restrict_targettable = ff_q_pvs_restrict_targettableentrynegative * S ((S (dst_index_restrict_targettable)) * dst_negative_scale_restrict_targettable) + (dst_negative_restrict_targettable))) /\ (exists ge_balance_positive_restrict_targettableentryvalue ge_balance_negative_restrict_targettableentryvalue. (((((dst_value_restrict_targettable) = 2 * (ge_balance_positive_restrict_targettableentryvalue) /\ (ge_balance_negative_restrict_targettableentryvalue) = 0) \/ exists ge_signed_half_restrict_targettableentryvaluedecode. (((dst_value_restrict_targettable) = 2 * ge_signed_half_restrict_targettableentryvaluedecode + 1 /\ (ge_balance_positive_restrict_targettableentryvalue) = 0) /\ (ge_balance_negative_restrict_targettableentryvalue) = S ge_signed_half_restrict_targettableentryvaluedecode))) /\ ((dst_positive_restrict_targettable) + ge_balance_negative_restrict_targettableentryvalue = (dst_negative_restrict_targettable) + ge_balance_positive_restrict_targettableentryvalue))))))))) /\ (((exists dst_positive_code_restrict_targetone dst_positive_scale_restrict_targetone dst_negative_code_restrict_targetone dst_negative_scale_restrict_targetone dst_positive_restrict_targetone dst_negative_restrict_targetone. (((F) = (((((dst_positive_code_restrict_targetone) + (dst_positive_scale_restrict_targetone)) * S ((dst_positive_code_restrict_targetone) + (dst_positive_scale_restrict_targetone)) + ((dst_positive_scale_restrict_targetone) + (dst_positive_scale_restrict_targetone))) + (((dst_negative_code_restrict_targetone) + (dst_negative_scale_restrict_targetone)) * S ((dst_negative_code_restrict_targetone) + (dst_negative_scale_restrict_targetone)) + ((dst_negative_scale_restrict_targetone) + (dst_negative_scale_restrict_targetone)))) * S ((((dst_positive_code_restrict_targetone) + (dst_positive_scale_restrict_targetone)) * S ((dst_positive_code_restrict_targetone) + (dst_positive_scale_restrict_targetone)) + ((dst_positive_scale_restrict_targetone) + (dst_positive_scale_restrict_targetone))) + (((dst_negative_code_restrict_targetone) + (dst_negative_scale_restrict_targetone)) * S ((dst_negative_code_restrict_targetone) + (dst_negative_scale_restrict_targetone)) + ((dst_negative_scale_restrict_targetone) + (dst_negative_scale_restrict_targetone)))) + ((((dst_negative_code_restrict_targetone) + (dst_negative_scale_restrict_targetone)) * S ((dst_negative_code_restrict_targetone) + (dst_negative_scale_restrict_targetone)) + ((dst_negative_scale_restrict_targetone) + (dst_negative_scale_restrict_targetone))) + (((dst_negative_code_restrict_targetone) + (dst_negative_scale_restrict_targetone)) * S ((dst_negative_code_restrict_targetone) + (dst_negative_scale_restrict_targetone)) + ((dst_negative_scale_restrict_targetone) + (dst_negative_scale_restrict_targetone)))))) /\ (((((exists ff_h_pvs_restrict_targetonepositive. ff_h_pvs_restrict_targetonepositive + S (dst_positive_restrict_targetone) = S ((S (1)) * dst_positive_scale_restrict_targetone)) /\ exists ff_q_pvs_restrict_targetonepositive. dst_positive_code_restrict_targetone = ff_q_pvs_restrict_targetonepositive * S ((S (1)) * dst_positive_scale_restrict_targetone) + (dst_positive_restrict_targetone))) /\ (((((exists ff_h_pvs_restrict_targetonenegative. ff_h_pvs_restrict_targetonenegative + S (dst_negative_restrict_targetone) = S ((S (1)) * dst_negative_scale_restrict_targetone)) /\ exists ff_q_pvs_restrict_targetonenegative. dst_negative_code_restrict_targetone = ff_q_pvs_restrict_targetonenegative * S ((S (1)) * dst_negative_scale_restrict_targetone) + (dst_negative_restrict_targetone))) /\ (exists ge_balance_positive_restrict_targetonevalue ge_balance_negative_restrict_targetonevalue. (((((2) = 2 * (ge_balance_positive_restrict_targetonevalue) /\ (ge_balance_negative_restrict_targetonevalue) = 0) \/ exists ge_signed_half_restrict_targetonevaluedecode. (((2) = 2 * ge_signed_half_restrict_targetonevaluedecode + 1 /\ (ge_balance_positive_restrict_targetonevalue) = 0) /\ (ge_balance_negative_restrict_targetonevalue) = S ge_signed_half_restrict_targetonevaluedecode))) /\ ((dst_positive_restrict_targetone) + ge_balance_negative_restrict_targetonevalue = (dst_negative_restrict_targetone) + ge_balance_positive_restrict_targetonevalue))))))))) /\ (forall mp_a_restrict_target mp_b_restrict_target mp_x_restrict_target mp_y_restrict_target mp_z_restrict_target. ~(mp_a_restrict_target=0) -> ~(mp_b_restrict_target=0) -> (exists pvs_le_gap_restrict_targetbound. pvs_le_gap_restrict_targetbound + (mp_a_restrict_target*mp_b_restrict_target) = (K)) -> (forall frp_divisor_restrict_targetcoprime. (exists frp_left_factor_restrict_targetcoprime. mp_a_restrict_target = frp_divisor_restrict_targetcoprime * frp_left_factor_restrict_targetcoprime) -> (exists frp_right_factor_restrict_targetcoprime. mp_b_restrict_target = frp_divisor_restrict_targetcoprime * frp_right_factor_restrict_targetcoprime) -> frp_divisor_restrict_targetcoprime = 1) -> (exists dst_positive_code_restrict_targetfirst dst_positive_scale_restrict_targetfirst dst_negative_code_restrict_targetfirst dst_negative_scale_restrict_targetfirst dst_positive_restrict_targetfirst dst_negative_restrict_targetfirst. (((F) = (((((dst_positive_code_restrict_targetfirst) + (dst_positive_scale_restrict_targetfirst)) * S ((dst_positive_code_restrict_targetfirst) + (dst_positive_scale_restrict_targetfirst)) + ((dst_positive_scale_restrict_targetfirst) + (dst_positive_scale_restrict_targetfirst))) + (((dst_negative_code_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)) * S ((dst_negative_code_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)) + ((dst_negative_scale_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)))) * S ((((dst_positive_code_restrict_targetfirst) + (dst_positive_scale_restrict_targetfirst)) * S ((dst_positive_code_restrict_targetfirst) + (dst_positive_scale_restrict_targetfirst)) + ((dst_positive_scale_restrict_targetfirst) + (dst_positive_scale_restrict_targetfirst))) + (((dst_negative_code_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)) * S ((dst_negative_code_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)) + ((dst_negative_scale_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)))) + ((((dst_negative_code_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)) * S ((dst_negative_code_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)) + ((dst_negative_scale_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst))) + (((dst_negative_code_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)) * S ((dst_negative_code_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)) + ((dst_negative_scale_restrict_targetfirst) + (dst_negative_scale_restrict_targetfirst)))))) /\ (((((exists ff_h_pvs_restrict_targetfirstpositive. ff_h_pvs_restrict_targetfirstpositive + S (dst_positive_restrict_targetfirst) = S ((S (mp_a_restrict_target)) * dst_positive_scale_restrict_targetfirst)) /\ exists ff_q_pvs_restrict_targetfirstpositive. dst_positive_code_restrict_targetfirst = ff_q_pvs_restrict_targetfirstpositive * S ((S (mp_a_restrict_target)) * dst_positive_scale_restrict_targetfirst) + (dst_positive_restrict_targetfirst))) /\ (((((exists ff_h_pvs_restrict_targetfirstnegative. ff_h_pvs_restrict_targetfirstnegative + S (dst_negative_restrict_targetfirst) = S ((S (mp_a_restrict_target)) * dst_negative_scale_restrict_targetfirst)) /\ exists ff_q_pvs_restrict_targetfirstnegative. dst_negative_code_restrict_targetfirst = ff_q_pvs_restrict_targetfirstnegative * S ((S (mp_a_restrict_target)) * dst_negative_scale_restrict_targetfirst) + (dst_negative_restrict_targetfirst))) /\ (exists ge_balance_positive_restrict_targetfirstvalue ge_balance_negative_restrict_targetfirstvalue. (((((mp_x_restrict_target) = 2 * (ge_balance_positive_restrict_targetfirstvalue) /\ (ge_balance_negative_restrict_targetfirstvalue) = 0) \/ exists ge_signed_half_restrict_targetfirstvaluedecode. (((mp_x_restrict_target) = 2 * ge_signed_half_restrict_targetfirstvaluedecode + 1 /\ (ge_balance_positive_restrict_targetfirstvalue) = 0) /\ (ge_balance_negative_restrict_targetfirstvalue) = S ge_signed_half_restrict_targetfirstvaluedecode))) /\ ((dst_positive_restrict_targetfirst) + ge_balance_negative_restrict_targetfirstvalue = (dst_negative_restrict_targetfirst) + ge_balance_positive_restrict_targetfirstvalue))))))))) -> (exists dst_positive_code_restrict_targetsecond dst_positive_scale_restrict_targetsecond dst_negative_code_restrict_targetsecond dst_negative_scale_restrict_targetsecond dst_positive_restrict_targetsecond dst_negative_restrict_targetsecond. (((F) = (((((dst_positive_code_restrict_targetsecond) + (dst_positive_scale_restrict_targetsecond)) * S ((dst_positive_code_restrict_targetsecond) + (dst_positive_scale_restrict_targetsecond)) + ((dst_positive_scale_restrict_targetsecond) + (dst_positive_scale_restrict_targetsecond))) + (((dst_negative_code_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)) * S ((dst_negative_code_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)) + ((dst_negative_scale_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)))) * S ((((dst_positive_code_restrict_targetsecond) + (dst_positive_scale_restrict_targetsecond)) * S ((dst_positive_code_restrict_targetsecond) + (dst_positive_scale_restrict_targetsecond)) + ((dst_positive_scale_restrict_targetsecond) + (dst_positive_scale_restrict_targetsecond))) + (((dst_negative_code_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)) * S ((dst_negative_code_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)) + ((dst_negative_scale_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)))) + ((((dst_negative_code_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)) * S ((dst_negative_code_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)) + ((dst_negative_scale_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond))) + (((dst_negative_code_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)) * S ((dst_negative_code_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)) + ((dst_negative_scale_restrict_targetsecond) + (dst_negative_scale_restrict_targetsecond)))))) /\ (((((exists ff_h_pvs_restrict_targetsecondpositive. ff_h_pvs_restrict_targetsecondpositive + S (dst_positive_restrict_targetsecond) = S ((S (mp_b_restrict_target)) * dst_positive_scale_restrict_targetsecond)) /\ exists ff_q_pvs_restrict_targetsecondpositive. dst_positive_code_restrict_targetsecond = ff_q_pvs_restrict_targetsecondpositive * S ((S (mp_b_restrict_target)) * dst_positive_scale_restrict_targetsecond) + (dst_positive_restrict_targetsecond))) /\ (((((exists ff_h_pvs_restrict_targetsecondnegative. ff_h_pvs_restrict_targetsecondnegative + S (dst_negative_restrict_targetsecond) = S ((S (mp_b_restrict_target)) * dst_negative_scale_restrict_targetsecond)) /\ exists ff_q_pvs_restrict_targetsecondnegative. dst_negative_code_restrict_targetsecond = ff_q_pvs_restrict_targetsecondnegative * S ((S (mp_b_restrict_target)) * dst_negative_scale_restrict_targetsecond) + (dst_negative_restrict_targetsecond))) /\ (exists ge_balance_positive_restrict_targetsecondvalue ge_balance_negative_restrict_targetsecondvalue. (((((mp_y_restrict_target) = 2 * (ge_balance_positive_restrict_targetsecondvalue) /\ (ge_balance_negative_restrict_targetsecondvalue) = 0) \/ exists ge_signed_half_restrict_targetsecondvaluedecode. (((mp_y_restrict_target) = 2 * ge_signed_half_restrict_targetsecondvaluedecode + 1 /\ (ge_balance_positive_restrict_targetsecondvalue) = 0) /\ (ge_balance_negative_restrict_targetsecondvalue) = S ge_signed_half_restrict_targetsecondvaluedecode))) /\ ((dst_positive_restrict_targetsecond) + ge_balance_negative_restrict_targetsecondvalue = (dst_negative_restrict_targetsecond) + ge_balance_positive_restrict_targetsecondvalue))))))))) -> (exists dst_positive_code_restrict_targetproduct dst_positive_scale_restrict_targetproduct dst_negative_code_restrict_targetproduct dst_negative_scale_restrict_targetproduct dst_positive_restrict_targetproduct dst_negative_restrict_targetproduct. (((F) = (((((dst_positive_code_restrict_targetproduct) + (dst_positive_scale_restrict_targetproduct)) * S ((dst_positive_code_restrict_targetproduct) + (dst_positive_scale_restrict_targetproduct)) + ((dst_positive_scale_restrict_targetproduct) + (dst_positive_scale_restrict_targetproduct))) + (((dst_negative_code_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)) * S ((dst_negative_code_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)) + ((dst_negative_scale_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)))) * S ((((dst_positive_code_restrict_targetproduct) + (dst_positive_scale_restrict_targetproduct)) * S ((dst_positive_code_restrict_targetproduct) + (dst_positive_scale_restrict_targetproduct)) + ((dst_positive_scale_restrict_targetproduct) + (dst_positive_scale_restrict_targetproduct))) + (((dst_negative_code_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)) * S ((dst_negative_code_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)) + ((dst_negative_scale_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)))) + ((((dst_negative_code_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)) * S ((dst_negative_code_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)) + ((dst_negative_scale_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct))) + (((dst_negative_code_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)) * S ((dst_negative_code_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)) + ((dst_negative_scale_restrict_targetproduct) + (dst_negative_scale_restrict_targetproduct)))))) /\ (((((exists ff_h_pvs_restrict_targetproductpositive. ff_h_pvs_restrict_targetproductpositive + S (dst_positive_restrict_targetproduct) = S ((S (mp_a_restrict_target*mp_b_restrict_target)) * dst_positive_scale_restrict_targetproduct)) /\ exists ff_q_pvs_restrict_targetproductpositive. dst_positive_code_restrict_targetproduct = ff_q_pvs_restrict_targetproductpositive * S ((S (mp_a_restrict_target*mp_b_restrict_target)) * dst_positive_scale_restrict_targetproduct) + (dst_positive_restrict_targetproduct))) /\ (((((exists ff_h_pvs_restrict_targetproductnegative. ff_h_pvs_restrict_targetproductnegative + S (dst_negative_restrict_targetproduct) = S ((S (mp_a_restrict_target*mp_b_restrict_target)) * dst_negative_scale_restrict_targetproduct)) /\ exists ff_q_pvs_restrict_targetproductnegative. dst_negative_code_restrict_targetproduct = ff_q_pvs_restrict_targetproductnegative * S ((S (mp_a_restrict_target*mp_b_restrict_target)) * dst_negative_scale_restrict_targetproduct) + (dst_negative_restrict_targetproduct))) /\ (exists ge_balance_positive_restrict_targetproductvalue ge_balance_negative_restrict_targetproductvalue. (((((mp_z_restrict_target) = 2 * (ge_balance_positive_restrict_targetproductvalue) /\ (ge_balance_negative_restrict_targetproductvalue) = 0) \/ exists ge_signed_half_restrict_targetproductvaluedecode. (((mp_z_restrict_target) = 2 * ge_signed_half_restrict_targetproductvaluedecode + 1 /\ (ge_balance_positive_restrict_targetproductvalue) = 0) /\ (ge_balance_negative_restrict_targetproductvalue) = S ge_signed_half_restrict_targetproductvaluedecode))) /\ ((dst_positive_restrict_targetproduct) + ge_balance_negative_restrict_targetproductvalue = (dst_negative_restrict_targetproduct) + ge_balance_positive_restrict_targetproductvalue))))))))) -> (exists sto_ap_restrict_targetlaw sto_an_restrict_targetlaw sto_bp_restrict_targetlaw sto_bn_restrict_targetlaw sto_cp_restrict_targetlaw sto_cn_restrict_targetlaw. (((((mp_x_restrict_target) = 2 * (sto_ap_restrict_targetlaw) /\ (sto_an_restrict_targetlaw) = 0) \/ exists ge_signed_half_restrict_targetlawleft. (((mp_x_restrict_target) = 2 * ge_signed_half_restrict_targetlawleft + 1 /\ (sto_ap_restrict_targetlaw) = 0) /\ (sto_an_restrict_targetlaw) = S ge_signed_half_restrict_targetlawleft))) /\ ((((((mp_y_restrict_target) = 2 * (sto_bp_restrict_targetlaw) /\ (sto_bn_restrict_targetlaw) = 0) \/ exists ge_signed_half_restrict_targetlawright. (((mp_y_restrict_target) = 2 * ge_signed_half_restrict_targetlawright + 1 /\ (sto_bp_restrict_targetlaw) = 0) /\ (sto_bn_restrict_targetlaw) = S ge_signed_half_restrict_targetlawright))) /\ ((((((mp_z_restrict_target) = 2 * (sto_cp_restrict_targetlaw) /\ (sto_cn_restrict_targetlaw) = 0) \/ exists ge_signed_half_restrict_targetlawoutput. (((mp_z_restrict_target) = 2 * ge_signed_half_restrict_targetlawoutput + 1 /\ (sto_cp_restrict_targetlaw) = 0) /\ (sto_cn_restrict_targetlaw) = S ge_signed_half_restrict_targetlawoutput))) /\ ((sto_ap_restrict_targetlaw * sto_bp_restrict_targetlaw + sto_an_restrict_targetlaw * sto_bn_restrict_targetlaw) + sto_cn_restrict_targetlaw = (sto_ap_restrict_targetlaw * sto_bn_restrict_targetlaw + sto_an_restrict_targetlaw * sto_bp_restrict_targetlaw) + sto_cp_restrict_targetlaw))))))))))))))

Constructive proof overview

Generated structural guide

The same normalized table is multiplicative on every smaller nonempty positive prefix.

The unchanged tactic script uses 2 declared prerequisites and contains 50 exact native proof lines.

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

Proof neighborhood

Direct dependencies

divisor_signed_table_restrict Alpha theorem; checked-use authorized le_trans 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

50 script commands · 11 reading checkpoints · 0 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.

01Fix variables and assumptionsL1–6

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

  1. L1
    intro N
  2. L2
    intro K
  3. L3
    intro F
  4. L4
    intro hm
  5. L5
    intro hk
  6. L6
    intro hkn
02Separate the logical casesL7–10

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
  4. L10
    split
03Use earlier factsL11–11

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

  1. L11
    exact hk
04Separate the logical casesL12–12

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

  1. L12
    split
05Use earlier factsL13–18

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

  1. L13
    specialize divisor_signed_table_restrict (N)
  2. L14
    specialize divisor_signed_table_restrict (K)
  3. L15
    specialize divisor_signed_table_restrict (F)
  4. L16
    apply divisor_signed_table_restrict
  5. L17
    exact hm_right_left
  6. L18
    exact hkn
06Separate the logical casesL19–19

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

  1. L19
    split
07Use earlier factsL20–20

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

  1. L20
    exact hm_right_right_left
08Fix variables and assumptionsL21–30

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

  1. L21
    intro a
  2. L22
    intro b
  3. L23
    intro x
  4. L24
    intro y
  5. L25
    intro z
  6. L26
    intro ha
  7. L27
    intro hb
  8. L28
    intro hp
  9. L29
    intro hc
  10. L30
    intro hx
09Fix variables and assumptionsL31–32

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

  1. L31
    intro hy
  2. L32
    intro hz
10Use earlier factsL33–42

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

  1. L33
    specialize hm_right_right_right (a)
  2. L34
    specialize hm_right_right_right (b)
  3. L35
    specialize hm_right_right_right (x)
  4. L36
    specialize hm_right_right_right (y)
  5. L37
    specialize hm_right_right_right (z)
  6. L38
    apply hm_right_right_right
  7. L39
    exact ha
  8. L40
    exact hb
  9. L41
    specialize le_trans (a*b)
  10. L42
    specialize le_trans (K)
11Use earlier factsL43–50

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

  1. L43
    specialize le_trans (N)
  2. L44
    apply le_trans
  3. L45
    exact hp
  4. L46
    exact hkn
  5. L47
    exact hc
  6. L48
    exact hx
  7. L49
    exact hy
  8. L50
    exact hz

Library-wide reading audit

Original exact command ledger · 50 lines
  1. 0001intro N
  2. 0002intro K
  3. 0003intro F
  4. 0004intro hm
  5. 0005intro hk
  6. 0006intro hkn
  7. 0007cases hm
  8. 0008cases hm_right
  9. 0009cases hm_right_right
  10. 0010split
  11. 0011exact hk
  12. 0012split
  13. 0013specialize divisor_signed_table_restrict (N)
  14. 0014specialize divisor_signed_table_restrict (K)
  15. 0015specialize divisor_signed_table_restrict (F)
  16. 0016apply divisor_signed_table_restrict
  17. 0017exact hm_right_left
  18. 0018exact hkn
  19. 0019split
  20. 0020exact hm_right_right_left
  21. 0021intro a
  22. 0022intro b
  23. 0023intro x
  24. 0024intro y
  25. 0025intro z
  26. 0026intro ha
  27. 0027intro hb
  28. 0028intro hp
  29. 0029intro hc
  30. 0030intro hx
  31. 0031intro hy
  32. 0032intro hz
  33. 0033specialize hm_right_right_right (a)
  34. 0034specialize hm_right_right_right (b)
  35. 0035specialize hm_right_right_right (x)
  36. 0036specialize hm_right_right_right (y)
  37. 0037specialize hm_right_right_right (z)
  38. 0038apply hm_right_right_right
  39. 0039exact ha
  40. 0040exact hb
  41. 0041specialize le_trans (a*b)
  42. 0042specialize le_trans (K)
  43. 0043specialize le_trans (N)
  44. 0044apply le_trans
  45. 0045exact hp
  46. 0046exact hkn
  47. 0047exact hc
  48. 0048exact hx
  49. 0049exact hy
  50. 0050exact hz