DV001A

divisor_mask_prefix_extensional

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

Any two real mask constructions agree on every signed value through l, not necessarily on their beta codes or component representatives.

Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.

Exact expanded first-order arithmetic statement

forall F n l M K. (((exists dst_positive_code_unique_first_masktable dst_positive_scale_unique_first_masktable dst_negative_code_unique_first_masktable dst_negative_scale_unique_first_masktable. (((M) = (((((dst_positive_code_unique_first_masktable) + (dst_positive_scale_unique_first_masktable)) * S ((dst_positive_code_unique_first_masktable) + (dst_positive_scale_unique_first_masktable)) + ((dst_positive_scale_unique_first_masktable) + (dst_positive_scale_unique_first_masktable))) + (((dst_negative_code_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)) * S ((dst_negative_code_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)) + ((dst_negative_scale_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)))) * S ((((dst_positive_code_unique_first_masktable) + (dst_positive_scale_unique_first_masktable)) * S ((dst_positive_code_unique_first_masktable) + (dst_positive_scale_unique_first_masktable)) + ((dst_positive_scale_unique_first_masktable) + (dst_positive_scale_unique_first_masktable))) + (((dst_negative_code_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)) * S ((dst_negative_code_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)) + ((dst_negative_scale_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)))) + ((((dst_negative_code_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)) * S ((dst_negative_code_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)) + ((dst_negative_scale_unique_first_masktable) + (dst_negative_scale_unique_first_masktable))) + (((dst_negative_code_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)) * S ((dst_negative_code_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)) + ((dst_negative_scale_unique_first_masktable) + (dst_negative_scale_unique_first_masktable)))))) /\ (forall dst_index_unique_first_masktable. (exists pvs_le_gap_unique_first_masktabledomain. pvs_le_gap_unique_first_masktabledomain + (dst_index_unique_first_masktable) = (l)) -> exists dst_positive_unique_first_masktable dst_negative_unique_first_masktable dst_value_unique_first_masktable. ((((exists ff_h_pvs_unique_first_masktableentrypositive. ff_h_pvs_unique_first_masktableentrypositive + S (dst_positive_unique_first_masktable) = S ((S (dst_index_unique_first_masktable)) * dst_positive_scale_unique_first_masktable)) /\ exists ff_q_pvs_unique_first_masktableentrypositive. dst_positive_code_unique_first_masktable = ff_q_pvs_unique_first_masktableentrypositive * S ((S (dst_index_unique_first_masktable)) * dst_positive_scale_unique_first_masktable) + (dst_positive_unique_first_masktable))) /\ (((((exists ff_h_pvs_unique_first_masktableentrynegative. ff_h_pvs_unique_first_masktableentrynegative + S (dst_negative_unique_first_masktable) = S ((S (dst_index_unique_first_masktable)) * dst_negative_scale_unique_first_masktable)) /\ exists ff_q_pvs_unique_first_masktableentrynegative. dst_negative_code_unique_first_masktable = ff_q_pvs_unique_first_masktableentrynegative * S ((S (dst_index_unique_first_masktable)) * dst_negative_scale_unique_first_masktable) + (dst_negative_unique_first_masktable))) /\ (exists ge_balance_positive_unique_first_masktableentryvalue ge_balance_negative_unique_first_masktableentryvalue. (((((dst_value_unique_first_masktable) = 2 * (ge_balance_positive_unique_first_masktableentryvalue) /\ (ge_balance_negative_unique_first_masktableentryvalue) = 0) \/ exists ge_signed_half_unique_first_masktableentryvaluedecode. (((dst_value_unique_first_masktable) = 2 * ge_signed_half_unique_first_masktableentryvaluedecode + 1 /\ (ge_balance_positive_unique_first_masktableentryvalue) = 0) /\ (ge_balance_negative_unique_first_masktableentryvalue) = S ge_signed_half_unique_first_masktableentryvaluedecode))) /\ ((dst_positive_unique_first_masktable) + ge_balance_negative_unique_first_masktableentryvalue = (dst_negative_unique_first_masktable) + ge_balance_positive_unique_first_masktableentryvalue))))))))) /\ (forall dm_index_unique_first_mask dm_value_unique_first_mask. (exists pvs_le_gap_unique_first_maskdomain. pvs_le_gap_unique_first_maskdomain + (dm_index_unique_first_mask) = (l)) -> (exists dst_positive_code_unique_first_masklookup dst_positive_scale_unique_first_masklookup dst_negative_code_unique_first_masklookup dst_negative_scale_unique_first_masklookup dst_positive_unique_first_masklookup dst_negative_unique_first_masklookup. (((M) = (((((dst_positive_code_unique_first_masklookup) + (dst_positive_scale_unique_first_masklookup)) * S ((dst_positive_code_unique_first_masklookup) + (dst_positive_scale_unique_first_masklookup)) + ((dst_positive_scale_unique_first_masklookup) + (dst_positive_scale_unique_first_masklookup))) + (((dst_negative_code_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)) * S ((dst_negative_code_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)) + ((dst_negative_scale_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)))) * S ((((dst_positive_code_unique_first_masklookup) + (dst_positive_scale_unique_first_masklookup)) * S ((dst_positive_code_unique_first_masklookup) + (dst_positive_scale_unique_first_masklookup)) + ((dst_positive_scale_unique_first_masklookup) + (dst_positive_scale_unique_first_masklookup))) + (((dst_negative_code_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)) * S ((dst_negative_code_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)) + ((dst_negative_scale_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)))) + ((((dst_negative_code_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)) * S ((dst_negative_code_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)) + ((dst_negative_scale_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup))) + (((dst_negative_code_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)) * S ((dst_negative_code_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)) + ((dst_negative_scale_unique_first_masklookup) + (dst_negative_scale_unique_first_masklookup)))))) /\ (((((exists ff_h_pvs_unique_first_masklookuppositive. ff_h_pvs_unique_first_masklookuppositive + S (dst_positive_unique_first_masklookup) = S ((S (dm_index_unique_first_mask)) * dst_positive_scale_unique_first_masklookup)) /\ exists ff_q_pvs_unique_first_masklookuppositive. dst_positive_code_unique_first_masklookup = ff_q_pvs_unique_first_masklookuppositive * S ((S (dm_index_unique_first_mask)) * dst_positive_scale_unique_first_masklookup) + (dst_positive_unique_first_masklookup))) /\ (((((exists ff_h_pvs_unique_first_masklookupnegative. ff_h_pvs_unique_first_masklookupnegative + S (dst_negative_unique_first_masklookup) = S ((S (dm_index_unique_first_mask)) * dst_negative_scale_unique_first_masklookup)) /\ exists ff_q_pvs_unique_first_masklookupnegative. dst_negative_code_unique_first_masklookup = ff_q_pvs_unique_first_masklookupnegative * S ((S (dm_index_unique_first_mask)) * dst_negative_scale_unique_first_masklookup) + (dst_negative_unique_first_masklookup))) /\ (exists ge_balance_positive_unique_first_masklookupvalue ge_balance_negative_unique_first_masklookupvalue. (((((dm_value_unique_first_mask) = 2 * (ge_balance_positive_unique_first_masklookupvalue) /\ (ge_balance_negative_unique_first_masklookupvalue) = 0) \/ exists ge_signed_half_unique_first_masklookupvaluedecode. (((dm_value_unique_first_mask) = 2 * ge_signed_half_unique_first_masklookupvaluedecode + 1 /\ (ge_balance_positive_unique_first_masklookupvalue) = 0) /\ (ge_balance_negative_unique_first_masklookupvalue) = S ge_signed_half_unique_first_masklookupvaluedecode))) /\ ((dst_positive_unique_first_masklookup) + ge_balance_negative_unique_first_masklookupvalue = (dst_negative_unique_first_masklookup) + ge_balance_positive_unique_first_masklookupvalue))))))))) -> ((((~((dm_index_unique_first_mask)=0)) /\ (exists dm_quotient_unique_first_maskentry. (((n)=(dm_index_unique_first_mask)*dm_quotient_unique_first_maskentry) /\ (exists dst_positive_code_unique_first_maskentryinput dst_positive_scale_unique_first_maskentryinput dst_negative_code_unique_first_maskentryinput dst_negative_scale_unique_first_maskentryinput dst_positive_unique_first_maskentryinput dst_negative_unique_first_maskentryinput. (((F) = (((((dst_positive_code_unique_first_maskentryinput) + (dst_positive_scale_unique_first_maskentryinput)) * S ((dst_positive_code_unique_first_maskentryinput) + (dst_positive_scale_unique_first_maskentryinput)) + ((dst_positive_scale_unique_first_maskentryinput) + (dst_positive_scale_unique_first_maskentryinput))) + (((dst_negative_code_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)) * S ((dst_negative_code_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)) + ((dst_negative_scale_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)))) * S ((((dst_positive_code_unique_first_maskentryinput) + (dst_positive_scale_unique_first_maskentryinput)) * S ((dst_positive_code_unique_first_maskentryinput) + (dst_positive_scale_unique_first_maskentryinput)) + ((dst_positive_scale_unique_first_maskentryinput) + (dst_positive_scale_unique_first_maskentryinput))) + (((dst_negative_code_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)) * S ((dst_negative_code_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)) + ((dst_negative_scale_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)))) + ((((dst_negative_code_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)) * S ((dst_negative_code_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)) + ((dst_negative_scale_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput))) + (((dst_negative_code_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)) * S ((dst_negative_code_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)) + ((dst_negative_scale_unique_first_maskentryinput) + (dst_negative_scale_unique_first_maskentryinput)))))) /\ (((((exists ff_h_pvs_unique_first_maskentryinputpositive. ff_h_pvs_unique_first_maskentryinputpositive + S (dst_positive_unique_first_maskentryinput) = S ((S (dm_index_unique_first_mask)) * dst_positive_scale_unique_first_maskentryinput)) /\ exists ff_q_pvs_unique_first_maskentryinputpositive. dst_positive_code_unique_first_maskentryinput = ff_q_pvs_unique_first_maskentryinputpositive * S ((S (dm_index_unique_first_mask)) * dst_positive_scale_unique_first_maskentryinput) + (dst_positive_unique_first_maskentryinput))) /\ (((((exists ff_h_pvs_unique_first_maskentryinputnegative. ff_h_pvs_unique_first_maskentryinputnegative + S (dst_negative_unique_first_maskentryinput) = S ((S (dm_index_unique_first_mask)) * dst_negative_scale_unique_first_maskentryinput)) /\ exists ff_q_pvs_unique_first_maskentryinputnegative. dst_negative_code_unique_first_maskentryinput = ff_q_pvs_unique_first_maskentryinputnegative * S ((S (dm_index_unique_first_mask)) * dst_negative_scale_unique_first_maskentryinput) + (dst_negative_unique_first_maskentryinput))) /\ (exists ge_balance_positive_unique_first_maskentryinputvalue ge_balance_negative_unique_first_maskentryinputvalue. (((((dm_value_unique_first_mask) = 2 * (ge_balance_positive_unique_first_maskentryinputvalue) /\ (ge_balance_negative_unique_first_maskentryinputvalue) = 0) \/ exists ge_signed_half_unique_first_maskentryinputvaluedecode. (((dm_value_unique_first_mask) = 2 * ge_signed_half_unique_first_maskentryinputvaluedecode + 1 /\ (ge_balance_positive_unique_first_maskentryinputvalue) = 0) /\ (ge_balance_negative_unique_first_maskentryinputvalue) = S ge_signed_half_unique_first_maskentryinputvaluedecode))) /\ ((dst_positive_unique_first_maskentryinput) + ge_balance_negative_unique_first_maskentryinputvalue = (dst_negative_unique_first_maskentryinput) + ge_balance_positive_unique_first_maskentryinputvalue))))))))))))) \/ ((((dm_index_unique_first_mask)=0 \/ ~(exists pvs_factor_unique_first_maskentrynondivisor. (n) = (dm_index_unique_first_mask) * pvs_factor_unique_first_maskentrynondivisor)) /\ ((dm_value_unique_first_mask)=0))))))) -> (((exists dst_positive_code_unique_second_masktable dst_positive_scale_unique_second_masktable dst_negative_code_unique_second_masktable dst_negative_scale_unique_second_masktable. (((K) = (((((dst_positive_code_unique_second_masktable) + (dst_positive_scale_unique_second_masktable)) * S ((dst_positive_code_unique_second_masktable) + (dst_positive_scale_unique_second_masktable)) + ((dst_positive_scale_unique_second_masktable) + (dst_positive_scale_unique_second_masktable))) + (((dst_negative_code_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)) * S ((dst_negative_code_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)) + ((dst_negative_scale_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)))) * S ((((dst_positive_code_unique_second_masktable) + (dst_positive_scale_unique_second_masktable)) * S ((dst_positive_code_unique_second_masktable) + (dst_positive_scale_unique_second_masktable)) + ((dst_positive_scale_unique_second_masktable) + (dst_positive_scale_unique_second_masktable))) + (((dst_negative_code_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)) * S ((dst_negative_code_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)) + ((dst_negative_scale_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)))) + ((((dst_negative_code_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)) * S ((dst_negative_code_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)) + ((dst_negative_scale_unique_second_masktable) + (dst_negative_scale_unique_second_masktable))) + (((dst_negative_code_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)) * S ((dst_negative_code_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)) + ((dst_negative_scale_unique_second_masktable) + (dst_negative_scale_unique_second_masktable)))))) /\ (forall dst_index_unique_second_masktable. (exists pvs_le_gap_unique_second_masktabledomain. pvs_le_gap_unique_second_masktabledomain + (dst_index_unique_second_masktable) = (l)) -> exists dst_positive_unique_second_masktable dst_negative_unique_second_masktable dst_value_unique_second_masktable. ((((exists ff_h_pvs_unique_second_masktableentrypositive. ff_h_pvs_unique_second_masktableentrypositive + S (dst_positive_unique_second_masktable) = S ((S (dst_index_unique_second_masktable)) * dst_positive_scale_unique_second_masktable)) /\ exists ff_q_pvs_unique_second_masktableentrypositive. dst_positive_code_unique_second_masktable = ff_q_pvs_unique_second_masktableentrypositive * S ((S (dst_index_unique_second_masktable)) * dst_positive_scale_unique_second_masktable) + (dst_positive_unique_second_masktable))) /\ (((((exists ff_h_pvs_unique_second_masktableentrynegative. ff_h_pvs_unique_second_masktableentrynegative + S (dst_negative_unique_second_masktable) = S ((S (dst_index_unique_second_masktable)) * dst_negative_scale_unique_second_masktable)) /\ exists ff_q_pvs_unique_second_masktableentrynegative. dst_negative_code_unique_second_masktable = ff_q_pvs_unique_second_masktableentrynegative * S ((S (dst_index_unique_second_masktable)) * dst_negative_scale_unique_second_masktable) + (dst_negative_unique_second_masktable))) /\ (exists ge_balance_positive_unique_second_masktableentryvalue ge_balance_negative_unique_second_masktableentryvalue. (((((dst_value_unique_second_masktable) = 2 * (ge_balance_positive_unique_second_masktableentryvalue) /\ (ge_balance_negative_unique_second_masktableentryvalue) = 0) \/ exists ge_signed_half_unique_second_masktableentryvaluedecode. (((dst_value_unique_second_masktable) = 2 * ge_signed_half_unique_second_masktableentryvaluedecode + 1 /\ (ge_balance_positive_unique_second_masktableentryvalue) = 0) /\ (ge_balance_negative_unique_second_masktableentryvalue) = S ge_signed_half_unique_second_masktableentryvaluedecode))) /\ ((dst_positive_unique_second_masktable) + ge_balance_negative_unique_second_masktableentryvalue = (dst_negative_unique_second_masktable) + ge_balance_positive_unique_second_masktableentryvalue))))))))) /\ (forall dm_index_unique_second_mask dm_value_unique_second_mask. (exists pvs_le_gap_unique_second_maskdomain. pvs_le_gap_unique_second_maskdomain + (dm_index_unique_second_mask) = (l)) -> (exists dst_positive_code_unique_second_masklookup dst_positive_scale_unique_second_masklookup dst_negative_code_unique_second_masklookup dst_negative_scale_unique_second_masklookup dst_positive_unique_second_masklookup dst_negative_unique_second_masklookup. (((K) = (((((dst_positive_code_unique_second_masklookup) + (dst_positive_scale_unique_second_masklookup)) * S ((dst_positive_code_unique_second_masklookup) + (dst_positive_scale_unique_second_masklookup)) + ((dst_positive_scale_unique_second_masklookup) + (dst_positive_scale_unique_second_masklookup))) + (((dst_negative_code_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)) * S ((dst_negative_code_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)) + ((dst_negative_scale_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)))) * S ((((dst_positive_code_unique_second_masklookup) + (dst_positive_scale_unique_second_masklookup)) * S ((dst_positive_code_unique_second_masklookup) + (dst_positive_scale_unique_second_masklookup)) + ((dst_positive_scale_unique_second_masklookup) + (dst_positive_scale_unique_second_masklookup))) + (((dst_negative_code_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)) * S ((dst_negative_code_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)) + ((dst_negative_scale_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)))) + ((((dst_negative_code_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)) * S ((dst_negative_code_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)) + ((dst_negative_scale_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup))) + (((dst_negative_code_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)) * S ((dst_negative_code_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)) + ((dst_negative_scale_unique_second_masklookup) + (dst_negative_scale_unique_second_masklookup)))))) /\ (((((exists ff_h_pvs_unique_second_masklookuppositive. ff_h_pvs_unique_second_masklookuppositive + S (dst_positive_unique_second_masklookup) = S ((S (dm_index_unique_second_mask)) * dst_positive_scale_unique_second_masklookup)) /\ exists ff_q_pvs_unique_second_masklookuppositive. dst_positive_code_unique_second_masklookup = ff_q_pvs_unique_second_masklookuppositive * S ((S (dm_index_unique_second_mask)) * dst_positive_scale_unique_second_masklookup) + (dst_positive_unique_second_masklookup))) /\ (((((exists ff_h_pvs_unique_second_masklookupnegative. ff_h_pvs_unique_second_masklookupnegative + S (dst_negative_unique_second_masklookup) = S ((S (dm_index_unique_second_mask)) * dst_negative_scale_unique_second_masklookup)) /\ exists ff_q_pvs_unique_second_masklookupnegative. dst_negative_code_unique_second_masklookup = ff_q_pvs_unique_second_masklookupnegative * S ((S (dm_index_unique_second_mask)) * dst_negative_scale_unique_second_masklookup) + (dst_negative_unique_second_masklookup))) /\ (exists ge_balance_positive_unique_second_masklookupvalue ge_balance_negative_unique_second_masklookupvalue. (((((dm_value_unique_second_mask) = 2 * (ge_balance_positive_unique_second_masklookupvalue) /\ (ge_balance_negative_unique_second_masklookupvalue) = 0) \/ exists ge_signed_half_unique_second_masklookupvaluedecode. (((dm_value_unique_second_mask) = 2 * ge_signed_half_unique_second_masklookupvaluedecode + 1 /\ (ge_balance_positive_unique_second_masklookupvalue) = 0) /\ (ge_balance_negative_unique_second_masklookupvalue) = S ge_signed_half_unique_second_masklookupvaluedecode))) /\ ((dst_positive_unique_second_masklookup) + ge_balance_negative_unique_second_masklookupvalue = (dst_negative_unique_second_masklookup) + ge_balance_positive_unique_second_masklookupvalue))))))))) -> ((((~((dm_index_unique_second_mask)=0)) /\ (exists dm_quotient_unique_second_maskentry. (((n)=(dm_index_unique_second_mask)*dm_quotient_unique_second_maskentry) /\ (exists dst_positive_code_unique_second_maskentryinput dst_positive_scale_unique_second_maskentryinput dst_negative_code_unique_second_maskentryinput dst_negative_scale_unique_second_maskentryinput dst_positive_unique_second_maskentryinput dst_negative_unique_second_maskentryinput. (((F) = (((((dst_positive_code_unique_second_maskentryinput) + (dst_positive_scale_unique_second_maskentryinput)) * S ((dst_positive_code_unique_second_maskentryinput) + (dst_positive_scale_unique_second_maskentryinput)) + ((dst_positive_scale_unique_second_maskentryinput) + (dst_positive_scale_unique_second_maskentryinput))) + (((dst_negative_code_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)) * S ((dst_negative_code_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)) + ((dst_negative_scale_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)))) * S ((((dst_positive_code_unique_second_maskentryinput) + (dst_positive_scale_unique_second_maskentryinput)) * S ((dst_positive_code_unique_second_maskentryinput) + (dst_positive_scale_unique_second_maskentryinput)) + ((dst_positive_scale_unique_second_maskentryinput) + (dst_positive_scale_unique_second_maskentryinput))) + (((dst_negative_code_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)) * S ((dst_negative_code_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)) + ((dst_negative_scale_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)))) + ((((dst_negative_code_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)) * S ((dst_negative_code_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)) + ((dst_negative_scale_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput))) + (((dst_negative_code_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)) * S ((dst_negative_code_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)) + ((dst_negative_scale_unique_second_maskentryinput) + (dst_negative_scale_unique_second_maskentryinput)))))) /\ (((((exists ff_h_pvs_unique_second_maskentryinputpositive. ff_h_pvs_unique_second_maskentryinputpositive + S (dst_positive_unique_second_maskentryinput) = S ((S (dm_index_unique_second_mask)) * dst_positive_scale_unique_second_maskentryinput)) /\ exists ff_q_pvs_unique_second_maskentryinputpositive. dst_positive_code_unique_second_maskentryinput = ff_q_pvs_unique_second_maskentryinputpositive * S ((S (dm_index_unique_second_mask)) * dst_positive_scale_unique_second_maskentryinput) + (dst_positive_unique_second_maskentryinput))) /\ (((((exists ff_h_pvs_unique_second_maskentryinputnegative. ff_h_pvs_unique_second_maskentryinputnegative + S (dst_negative_unique_second_maskentryinput) = S ((S (dm_index_unique_second_mask)) * dst_negative_scale_unique_second_maskentryinput)) /\ exists ff_q_pvs_unique_second_maskentryinputnegative. dst_negative_code_unique_second_maskentryinput = ff_q_pvs_unique_second_maskentryinputnegative * S ((S (dm_index_unique_second_mask)) * dst_negative_scale_unique_second_maskentryinput) + (dst_negative_unique_second_maskentryinput))) /\ (exists ge_balance_positive_unique_second_maskentryinputvalue ge_balance_negative_unique_second_maskentryinputvalue. (((((dm_value_unique_second_mask) = 2 * (ge_balance_positive_unique_second_maskentryinputvalue) /\ (ge_balance_negative_unique_second_maskentryinputvalue) = 0) \/ exists ge_signed_half_unique_second_maskentryinputvaluedecode. (((dm_value_unique_second_mask) = 2 * ge_signed_half_unique_second_maskentryinputvaluedecode + 1 /\ (ge_balance_positive_unique_second_maskentryinputvalue) = 0) /\ (ge_balance_negative_unique_second_maskentryinputvalue) = S ge_signed_half_unique_second_maskentryinputvaluedecode))) /\ ((dst_positive_unique_second_maskentryinput) + ge_balance_negative_unique_second_maskentryinputvalue = (dst_negative_unique_second_maskentryinput) + ge_balance_positive_unique_second_maskentryinputvalue))))))))))))) \/ ((((dm_index_unique_second_mask)=0 \/ ~(exists pvs_factor_unique_second_maskentrynondivisor. (n) = (dm_index_unique_second_mask) * pvs_factor_unique_second_maskentrynondivisor)) /\ ((dm_value_unique_second_mask)=0))))))) -> (forall dst_index_unique_mask_values dst_first_unique_mask_values dst_second_unique_mask_values. (exists pvs_gap_unique_mask_valuesbound. pvs_gap_unique_mask_valuesbound + S (dst_index_unique_mask_values) = (S l)) -> (exists dst_positive_code_unique_mask_valuesfirst dst_positive_scale_unique_mask_valuesfirst dst_negative_code_unique_mask_valuesfirst dst_negative_scale_unique_mask_valuesfirst dst_positive_unique_mask_valuesfirst dst_negative_unique_mask_valuesfirst. (((M) = (((((dst_positive_code_unique_mask_valuesfirst) + (dst_positive_scale_unique_mask_valuesfirst)) * S ((dst_positive_code_unique_mask_valuesfirst) + (dst_positive_scale_unique_mask_valuesfirst)) + ((dst_positive_scale_unique_mask_valuesfirst) + (dst_positive_scale_unique_mask_valuesfirst))) + (((dst_negative_code_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)) * S ((dst_negative_code_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)) + ((dst_negative_scale_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)))) * S ((((dst_positive_code_unique_mask_valuesfirst) + (dst_positive_scale_unique_mask_valuesfirst)) * S ((dst_positive_code_unique_mask_valuesfirst) + (dst_positive_scale_unique_mask_valuesfirst)) + ((dst_positive_scale_unique_mask_valuesfirst) + (dst_positive_scale_unique_mask_valuesfirst))) + (((dst_negative_code_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)) * S ((dst_negative_code_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)) + ((dst_negative_scale_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)))) + ((((dst_negative_code_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)) * S ((dst_negative_code_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)) + ((dst_negative_scale_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst))) + (((dst_negative_code_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)) * S ((dst_negative_code_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)) + ((dst_negative_scale_unique_mask_valuesfirst) + (dst_negative_scale_unique_mask_valuesfirst)))))) /\ (((((exists ff_h_pvs_unique_mask_valuesfirstpositive. ff_h_pvs_unique_mask_valuesfirstpositive + S (dst_positive_unique_mask_valuesfirst) = S ((S (dst_index_unique_mask_values)) * dst_positive_scale_unique_mask_valuesfirst)) /\ exists ff_q_pvs_unique_mask_valuesfirstpositive. dst_positive_code_unique_mask_valuesfirst = ff_q_pvs_unique_mask_valuesfirstpositive * S ((S (dst_index_unique_mask_values)) * dst_positive_scale_unique_mask_valuesfirst) + (dst_positive_unique_mask_valuesfirst))) /\ (((((exists ff_h_pvs_unique_mask_valuesfirstnegative. ff_h_pvs_unique_mask_valuesfirstnegative + S (dst_negative_unique_mask_valuesfirst) = S ((S (dst_index_unique_mask_values)) * dst_negative_scale_unique_mask_valuesfirst)) /\ exists ff_q_pvs_unique_mask_valuesfirstnegative. dst_negative_code_unique_mask_valuesfirst = ff_q_pvs_unique_mask_valuesfirstnegative * S ((S (dst_index_unique_mask_values)) * dst_negative_scale_unique_mask_valuesfirst) + (dst_negative_unique_mask_valuesfirst))) /\ (exists ge_balance_positive_unique_mask_valuesfirstvalue ge_balance_negative_unique_mask_valuesfirstvalue. (((((dst_first_unique_mask_values) = 2 * (ge_balance_positive_unique_mask_valuesfirstvalue) /\ (ge_balance_negative_unique_mask_valuesfirstvalue) = 0) \/ exists ge_signed_half_unique_mask_valuesfirstvaluedecode. (((dst_first_unique_mask_values) = 2 * ge_signed_half_unique_mask_valuesfirstvaluedecode + 1 /\ (ge_balance_positive_unique_mask_valuesfirstvalue) = 0) /\ (ge_balance_negative_unique_mask_valuesfirstvalue) = S ge_signed_half_unique_mask_valuesfirstvaluedecode))) /\ ((dst_positive_unique_mask_valuesfirst) + ge_balance_negative_unique_mask_valuesfirstvalue = (dst_negative_unique_mask_valuesfirst) + ge_balance_positive_unique_mask_valuesfirstvalue))))))))) -> (exists dst_positive_code_unique_mask_valuessecond dst_positive_scale_unique_mask_valuessecond dst_negative_code_unique_mask_valuessecond dst_negative_scale_unique_mask_valuessecond dst_positive_unique_mask_valuessecond dst_negative_unique_mask_valuessecond. (((K) = (((((dst_positive_code_unique_mask_valuessecond) + (dst_positive_scale_unique_mask_valuessecond)) * S ((dst_positive_code_unique_mask_valuessecond) + (dst_positive_scale_unique_mask_valuessecond)) + ((dst_positive_scale_unique_mask_valuessecond) + (dst_positive_scale_unique_mask_valuessecond))) + (((dst_negative_code_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)) * S ((dst_negative_code_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)) + ((dst_negative_scale_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)))) * S ((((dst_positive_code_unique_mask_valuessecond) + (dst_positive_scale_unique_mask_valuessecond)) * S ((dst_positive_code_unique_mask_valuessecond) + (dst_positive_scale_unique_mask_valuessecond)) + ((dst_positive_scale_unique_mask_valuessecond) + (dst_positive_scale_unique_mask_valuessecond))) + (((dst_negative_code_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)) * S ((dst_negative_code_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)) + ((dst_negative_scale_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)))) + ((((dst_negative_code_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)) * S ((dst_negative_code_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)) + ((dst_negative_scale_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond))) + (((dst_negative_code_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)) * S ((dst_negative_code_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)) + ((dst_negative_scale_unique_mask_valuessecond) + (dst_negative_scale_unique_mask_valuessecond)))))) /\ (((((exists ff_h_pvs_unique_mask_valuessecondpositive. ff_h_pvs_unique_mask_valuessecondpositive + S (dst_positive_unique_mask_valuessecond) = S ((S (dst_index_unique_mask_values)) * dst_positive_scale_unique_mask_valuessecond)) /\ exists ff_q_pvs_unique_mask_valuessecondpositive. dst_positive_code_unique_mask_valuessecond = ff_q_pvs_unique_mask_valuessecondpositive * S ((S (dst_index_unique_mask_values)) * dst_positive_scale_unique_mask_valuessecond) + (dst_positive_unique_mask_valuessecond))) /\ (((((exists ff_h_pvs_unique_mask_valuessecondnegative. ff_h_pvs_unique_mask_valuessecondnegative + S (dst_negative_unique_mask_valuessecond) = S ((S (dst_index_unique_mask_values)) * dst_negative_scale_unique_mask_valuessecond)) /\ exists ff_q_pvs_unique_mask_valuessecondnegative. dst_negative_code_unique_mask_valuessecond = ff_q_pvs_unique_mask_valuessecondnegative * S ((S (dst_index_unique_mask_values)) * dst_negative_scale_unique_mask_valuessecond) + (dst_negative_unique_mask_valuessecond))) /\ (exists ge_balance_positive_unique_mask_valuessecondvalue ge_balance_negative_unique_mask_valuessecondvalue. (((((dst_second_unique_mask_values) = 2 * (ge_balance_positive_unique_mask_valuessecondvalue) /\ (ge_balance_negative_unique_mask_valuessecondvalue) = 0) \/ exists ge_signed_half_unique_mask_valuessecondvaluedecode. (((dst_second_unique_mask_values) = 2 * ge_signed_half_unique_mask_valuessecondvaluedecode + 1 /\ (ge_balance_positive_unique_mask_valuessecondvalue) = 0) /\ (ge_balance_negative_unique_mask_valuessecondvalue) = S ge_signed_half_unique_mask_valuessecondvaluedecode))) /\ ((dst_positive_unique_mask_valuessecond) + ge_balance_negative_unique_mask_valuessecondvalue = (dst_negative_unique_mask_valuessecond) + ge_balance_positive_unique_mask_valuessecondvalue))))))))) -> dst_first_unique_mask_values = dst_second_unique_mask_values)

Constructive proof overview

Generated structural guide

Any two real mask constructions agree on every signed value through l, not necessarily on their beta codes or component representatives.

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

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

Proof neighborhood

Direct dependencies

le_of_succ_le_succ Stable theorem; checked-use authorized DV0014 divisor_mask_entry_functional

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.

Read the argument

Proof checkpoints

36 script commands · 6 reading checkpoints · 1 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)
01Fix variables and assumptionsL1–7

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

  1. L1
    intro F
  2. L2
    intro n
  3. L3
    intro l
  4. L4
    intro M
  5. L5
    intro K
  6. L6
    intro hM
  7. L7
    intro hK
02Separate the logical casesL8–9

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

  1. L8
    cases hM
  2. L9
    cases hK
03Fix variables and assumptionsL10–15

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

  1. L10
    intro d
  2. L11
    intro a
  3. L12
    intro b
  4. L13
    intro hd
  5. L14
    intro ha
  6. L15
    intro hb
04Establish hboundL16–25

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.

  1. L16
    have hbound : exists pvs_le_gap_unique_mask_bound. pvs_le_gap_unique_mask_bound + (d) = (l)
  2. L17
    specialize le_of_succ_le_succ (d)
  3. L18
    specialize le_of_succ_le_succ (l)
  4. L19
    apply le_of_succ_le_succ
  5. L20
    exact hd
  6. L21
    specialize divisor_mask_entry_functional (F)
  7. L22
    specialize divisor_mask_entry_functional (n)
  8. L23
    specialize divisor_mask_entry_functional (d)
  9. L24
    specialize divisor_mask_entry_functional (a)
  10. L25
    specialize divisor_mask_entry_functional (b)
05Use earlier factsL26–35

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

  1. L26
    apply divisor_mask_entry_functional
  2. L27
    specialize hM_right (d)
  3. L28
    specialize hM_right (a)
  4. L29
    apply hM_right
  5. L30
    exact hbound
  6. L31
    exact ha
  7. L32
    specialize hK_right (d)
  8. L33
    specialize hK_right (b)
  9. L34
    apply hK_right
  10. L35
    exact hbound
06Use earlier factsL36–36

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

  1. L36
    exact hb

Library-wide reading audit

Original exact command ledger · 36 lines
  1. 0001intro F
  2. 0002intro n
  3. 0003intro l
  4. 0004intro M
  5. 0005intro K
  6. 0006intro hM
  7. 0007intro hK
  8. 0008cases hM
  9. 0009cases hK
  10. 0010intro d
  11. 0011intro a
  12. 0012intro b
  13. 0013intro hd
  14. 0014intro ha
  15. 0015intro hb
  16. 0016have hbound : exists pvs_le_gap_unique_mask_bound. pvs_le_gap_unique_mask_bound + (d) = (l)
  17. 0017specialize le_of_succ_le_succ (d)
  18. 0018specialize le_of_succ_le_succ (l)
  19. 0019apply le_of_succ_le_succ
  20. 0020exact hd
  21. 0021specialize divisor_mask_entry_functional (F)
  22. 0022specialize divisor_mask_entry_functional (n)
  23. 0023specialize divisor_mask_entry_functional (d)
  24. 0024specialize divisor_mask_entry_functional (a)
  25. 0025specialize divisor_mask_entry_functional (b)
  26. 0026apply divisor_mask_entry_functional
  27. 0027specialize hM_right (d)
  28. 0028specialize hM_right (a)
  29. 0029apply hM_right
  30. 0030exact hbound
  31. 0031exact ha
  32. 0032specialize hK_right (d)
  33. 0033specialize hK_right (b)
  34. 0034apply hK_right
  35. 0035exact hbound
  36. 0036exact hb