Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
A genuine divisor mask has S n entries, indexed zero through n, and forces its zeroth entry to zero regardless of F(0). Möbius values remain positive-domain only. This family constructs divisor sums and Möbius tables; cancellation and the full G007 endpoint are separately proved later in the same release.
Exact theorem in conservative defined notation
∀ F. ∀ n. ∀ l. ∀ M. ∀ K. DivisorMask(F,n,l,M) → DivisorMask(F,n,l,K) → ArithTableEqual(M,K,S l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Original expanded first-order 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)Complete tactic proof in conservative notation
All 36 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
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.
Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.
Named ingredients (1)
01Fix variables and assumptionsL1–7
02Separate the logical casesL8–9
03Fix variables and assumptionsL10–15
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.
- L16
- L17
specialize le_of_succ_le_succ (d) - L18
specialize le_of_succ_le_succ (l) - L19
apply le_of_succ_le_succ - L20
exact hd - L21
specialize divisor_mask_entry_functional (F) - L22
specialize divisor_mask_entry_functional (n) - L23
specialize divisor_mask_entry_functional (d) - L24
specialize divisor_mask_entry_functional (a) - L25
specialize divisor_mask_entry_functional (b)
05Use earlier factsL26–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
06Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact hb
Original defined command ledger · 36 lines
- 0001
intro F - 0002
intro n - 0003
intro l - 0004
intro M - 0005
intro K - 0006
intro hM - 0007
intro hK - 0008
cases hM - 0009
cases hK - 0010
intro d - 0011
intro a - 0012
intro b - 0013
intro hd - 0014
intro ha - 0015
intro hb - 0016
have hbound : Le(d,l) - 0017
specialize le_of_succ_le_succ (d) - 0018
specialize le_of_succ_le_succ (l) - 0019
apply le_of_succ_le_succ - 0020
exact hd - 0021
specialize divisor_mask_entry_functional (F) - 0022
specialize divisor_mask_entry_functional (n) - 0023
specialize divisor_mask_entry_functional (d) - 0024
specialize divisor_mask_entry_functional (a) - 0025
specialize divisor_mask_entry_functional (b) - 0026
apply divisor_mask_entry_functional - 0027
specialize hM_right (d) - 0028
specialize hM_right (a) - 0029
apply hM_right - 0030
exact hbound - 0031
exact ha - 0032
specialize hK_right (d) - 0033
specialize hK_right (b) - 0034
apply hK_right - 0035
exact hbound - 0036
exact hb