IV0009

dirichlet_unit_equation_construct

Finite induction constructs an actual solution G*F=T for every target table and signed unit F(1), with an arbitrary prescribed G(0), including actual witnesses when N=0.

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

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

For an actual table an inverse exists exactly when N=0 or F(1) is signed +1 or -1. At a positive window this is the unit-at-one criterion; the empty window imposes no condition at one. Every inverse has actual delta and two-sided convolution witnesses. Its zeroth value is arbitrary, so uniqueness is positive-value equality, not equality of codes or of zeroth values. Multiplicative-function closure and full finite signed G009 are admitted in the separate Alpha-v32 multiplicative-convolution family.

Exact theorem in conservative defined notation

∀ N. ∀ F. ∀ T. ∀ u. ∀ w. ArithTable(N,F)ArithTable(N,T)ArithAt(F,1,u)SignedUnit(u) → ∃ x. DirichletTable(N,x,F,T)ArithAt(x,0,w)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall N F T u w. (exists dst_positive_code_solve_construct_F dst_positive_scale_solve_construct_F dst_negative_code_solve_construct_F dst_negative_scale_solve_construct_F. (((F) = (((((dst_positive_code_solve_construct_F) + (dst_positive_scale_solve_construct_F)) * S ((dst_positive_code_solve_construct_F) + (dst_positive_scale_solve_construct_F)) + ((dst_positive_scale_solve_construct_F) + (dst_positive_scale_solve_construct_F))) + (((dst_negative_code_solve_construct_F) + (dst_negative_scale_solve_construct_F)) * S ((dst_negative_code_solve_construct_F) + (dst_negative_scale_solve_construct_F)) + ((dst_negative_scale_solve_construct_F) + (dst_negative_scale_solve_construct_F)))) * S ((((dst_positive_code_solve_construct_F) + (dst_positive_scale_solve_construct_F)) * S ((dst_positive_code_solve_construct_F) + (dst_positive_scale_solve_construct_F)) + ((dst_positive_scale_solve_construct_F) + (dst_positive_scale_solve_construct_F))) + (((dst_negative_code_solve_construct_F) + (dst_negative_scale_solve_construct_F)) * S ((dst_negative_code_solve_construct_F) + (dst_negative_scale_solve_construct_F)) + ((dst_negative_scale_solve_construct_F) + (dst_negative_scale_solve_construct_F)))) + ((((dst_negative_code_solve_construct_F) + (dst_negative_scale_solve_construct_F)) * S ((dst_negative_code_solve_construct_F) + (dst_negative_scale_solve_construct_F)) + ((dst_negative_scale_solve_construct_F) + (dst_negative_scale_solve_construct_F))) + (((dst_negative_code_solve_construct_F) + (dst_negative_scale_solve_construct_F)) * S ((dst_negative_code_solve_construct_F) + (dst_negative_scale_solve_construct_F)) + ((dst_negative_scale_solve_construct_F) + (dst_negative_scale_solve_construct_F)))))) /\ (forall dst_index_solve_construct_F. (exists pvs_le_gap_solve_construct_Fdomain. pvs_le_gap_solve_construct_Fdomain + (dst_index_solve_construct_F) = (N)) -> exists dst_positive_solve_construct_F dst_negative_solve_construct_F dst_value_solve_construct_F. ((((exists ff_h_pvs_solve_construct_Fentrypositive. ff_h_pvs_solve_construct_Fentrypositive + S (dst_positive_solve_construct_F) = S ((S (dst_index_solve_construct_F)) * dst_positive_scale_solve_construct_F)) /\ exists ff_q_pvs_solve_construct_Fentrypositive. dst_positive_code_solve_construct_F = ff_q_pvs_solve_construct_Fentrypositive * S ((S (dst_index_solve_construct_F)) * dst_positive_scale_solve_construct_F) + (dst_positive_solve_construct_F))) /\ (((((exists ff_h_pvs_solve_construct_Fentrynegative. ff_h_pvs_solve_construct_Fentrynegative + S (dst_negative_solve_construct_F) = S ((S (dst_index_solve_construct_F)) * dst_negative_scale_solve_construct_F)) /\ exists ff_q_pvs_solve_construct_Fentrynegative. dst_negative_code_solve_construct_F = ff_q_pvs_solve_construct_Fentrynegative * S ((S (dst_index_solve_construct_F)) * dst_negative_scale_solve_construct_F) + (dst_negative_solve_construct_F))) /\ (exists ge_balance_positive_solve_construct_Fentryvalue ge_balance_negative_solve_construct_Fentryvalue. (((((dst_value_solve_construct_F) = 2 * (ge_balance_positive_solve_construct_Fentryvalue) /\ (ge_balance_negative_solve_construct_Fentryvalue) = 0) \/ exists ge_signed_half_solve_construct_Fentryvaluedecode. (((dst_value_solve_construct_F) = 2 * ge_signed_half_solve_construct_Fentryvaluedecode + 1 /\ (ge_balance_positive_solve_construct_Fentryvalue) = 0) /\ (ge_balance_negative_solve_construct_Fentryvalue) = S ge_signed_half_solve_construct_Fentryvaluedecode))) /\ ((dst_positive_solve_construct_F) + ge_balance_negative_solve_construct_Fentryvalue = (dst_negative_solve_construct_F) + ge_balance_positive_solve_construct_Fentryvalue))))))))) -> (exists dst_positive_code_solve_construct_T dst_positive_scale_solve_construct_T dst_negative_code_solve_construct_T dst_negative_scale_solve_construct_T. (((T) = (((((dst_positive_code_solve_construct_T) + (dst_positive_scale_solve_construct_T)) * S ((dst_positive_code_solve_construct_T) + (dst_positive_scale_solve_construct_T)) + ((dst_positive_scale_solve_construct_T) + (dst_positive_scale_solve_construct_T))) + (((dst_negative_code_solve_construct_T) + (dst_negative_scale_solve_construct_T)) * S ((dst_negative_code_solve_construct_T) + (dst_negative_scale_solve_construct_T)) + ((dst_negative_scale_solve_construct_T) + (dst_negative_scale_solve_construct_T)))) * S ((((dst_positive_code_solve_construct_T) + (dst_positive_scale_solve_construct_T)) * S ((dst_positive_code_solve_construct_T) + (dst_positive_scale_solve_construct_T)) + ((dst_positive_scale_solve_construct_T) + (dst_positive_scale_solve_construct_T))) + (((dst_negative_code_solve_construct_T) + (dst_negative_scale_solve_construct_T)) * S ((dst_negative_code_solve_construct_T) + (dst_negative_scale_solve_construct_T)) + ((dst_negative_scale_solve_construct_T) + (dst_negative_scale_solve_construct_T)))) + ((((dst_negative_code_solve_construct_T) + (dst_negative_scale_solve_construct_T)) * S ((dst_negative_code_solve_construct_T) + (dst_negative_scale_solve_construct_T)) + ((dst_negative_scale_solve_construct_T) + (dst_negative_scale_solve_construct_T))) + (((dst_negative_code_solve_construct_T) + (dst_negative_scale_solve_construct_T)) * S ((dst_negative_code_solve_construct_T) + (dst_negative_scale_solve_construct_T)) + ((dst_negative_scale_solve_construct_T) + (dst_negative_scale_solve_construct_T)))))) /\ (forall dst_index_solve_construct_T. (exists pvs_le_gap_solve_construct_Tdomain. pvs_le_gap_solve_construct_Tdomain + (dst_index_solve_construct_T) = (N)) -> exists dst_positive_solve_construct_T dst_negative_solve_construct_T dst_value_solve_construct_T. ((((exists ff_h_pvs_solve_construct_Tentrypositive. ff_h_pvs_solve_construct_Tentrypositive + S (dst_positive_solve_construct_T) = S ((S (dst_index_solve_construct_T)) * dst_positive_scale_solve_construct_T)) /\ exists ff_q_pvs_solve_construct_Tentrypositive. dst_positive_code_solve_construct_T = ff_q_pvs_solve_construct_Tentrypositive * S ((S (dst_index_solve_construct_T)) * dst_positive_scale_solve_construct_T) + (dst_positive_solve_construct_T))) /\ (((((exists ff_h_pvs_solve_construct_Tentrynegative. ff_h_pvs_solve_construct_Tentrynegative + S (dst_negative_solve_construct_T) = S ((S (dst_index_solve_construct_T)) * dst_negative_scale_solve_construct_T)) /\ exists ff_q_pvs_solve_construct_Tentrynegative. dst_negative_code_solve_construct_T = ff_q_pvs_solve_construct_Tentrynegative * S ((S (dst_index_solve_construct_T)) * dst_negative_scale_solve_construct_T) + (dst_negative_solve_construct_T))) /\ (exists ge_balance_positive_solve_construct_Tentryvalue ge_balance_negative_solve_construct_Tentryvalue. (((((dst_value_solve_construct_T) = 2 * (ge_balance_positive_solve_construct_Tentryvalue) /\ (ge_balance_negative_solve_construct_Tentryvalue) = 0) \/ exists ge_signed_half_solve_construct_Tentryvaluedecode. (((dst_value_solve_construct_T) = 2 * ge_signed_half_solve_construct_Tentryvaluedecode + 1 /\ (ge_balance_positive_solve_construct_Tentryvalue) = 0) /\ (ge_balance_negative_solve_construct_Tentryvalue) = S ge_signed_half_solve_construct_Tentryvaluedecode))) /\ ((dst_positive_solve_construct_T) + ge_balance_negative_solve_construct_Tentryvalue = (dst_negative_solve_construct_T) + ge_balance_positive_solve_construct_Tentryvalue))))))))) -> (exists dst_positive_code_solve_construct_coefficient dst_positive_scale_solve_construct_coefficient dst_negative_code_solve_construct_coefficient dst_negative_scale_solve_construct_coefficient dst_positive_solve_construct_coefficient dst_negative_solve_construct_coefficient. (((F) = (((((dst_positive_code_solve_construct_coefficient) + (dst_positive_scale_solve_construct_coefficient)) * S ((dst_positive_code_solve_construct_coefficient) + (dst_positive_scale_solve_construct_coefficient)) + ((dst_positive_scale_solve_construct_coefficient) + (dst_positive_scale_solve_construct_coefficient))) + (((dst_negative_code_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)) * S ((dst_negative_code_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)) + ((dst_negative_scale_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)))) * S ((((dst_positive_code_solve_construct_coefficient) + (dst_positive_scale_solve_construct_coefficient)) * S ((dst_positive_code_solve_construct_coefficient) + (dst_positive_scale_solve_construct_coefficient)) + ((dst_positive_scale_solve_construct_coefficient) + (dst_positive_scale_solve_construct_coefficient))) + (((dst_negative_code_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)) * S ((dst_negative_code_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)) + ((dst_negative_scale_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)))) + ((((dst_negative_code_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)) * S ((dst_negative_code_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)) + ((dst_negative_scale_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient))) + (((dst_negative_code_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)) * S ((dst_negative_code_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)) + ((dst_negative_scale_solve_construct_coefficient) + (dst_negative_scale_solve_construct_coefficient)))))) /\ (((((exists ff_h_pvs_solve_construct_coefficientpositive. ff_h_pvs_solve_construct_coefficientpositive + S (dst_positive_solve_construct_coefficient) = S ((S (1)) * dst_positive_scale_solve_construct_coefficient)) /\ exists ff_q_pvs_solve_construct_coefficientpositive. dst_positive_code_solve_construct_coefficient = ff_q_pvs_solve_construct_coefficientpositive * S ((S (1)) * dst_positive_scale_solve_construct_coefficient) + (dst_positive_solve_construct_coefficient))) /\ (((((exists ff_h_pvs_solve_construct_coefficientnegative. ff_h_pvs_solve_construct_coefficientnegative + S (dst_negative_solve_construct_coefficient) = S ((S (1)) * dst_negative_scale_solve_construct_coefficient)) /\ exists ff_q_pvs_solve_construct_coefficientnegative. dst_negative_code_solve_construct_coefficient = ff_q_pvs_solve_construct_coefficientnegative * S ((S (1)) * dst_negative_scale_solve_construct_coefficient) + (dst_negative_solve_construct_coefficient))) /\ (exists ge_balance_positive_solve_construct_coefficientvalue ge_balance_negative_solve_construct_coefficientvalue. (((((u) = 2 * (ge_balance_positive_solve_construct_coefficientvalue) /\ (ge_balance_negative_solve_construct_coefficientvalue) = 0) \/ exists ge_signed_half_solve_construct_coefficientvaluedecode. (((u) = 2 * ge_signed_half_solve_construct_coefficientvaluedecode + 1 /\ (ge_balance_positive_solve_construct_coefficientvalue) = 0) /\ (ge_balance_negative_solve_construct_coefficientvalue) = S ge_signed_half_solve_construct_coefficientvaluedecode))) /\ ((dst_positive_solve_construct_coefficient) + ge_balance_negative_solve_construct_coefficientvalue = (dst_negative_solve_construct_coefficient) + ge_balance_positive_solve_construct_coefficientvalue))))))))) -> (((u) = 2 \/ (u) = 1)) -> exists G. ((((exists dst_positive_code_solve_construct_resultleft dst_positive_scale_solve_construct_resultleft dst_negative_code_solve_construct_resultleft dst_negative_scale_solve_construct_resultleft. (((G) = (((((dst_positive_code_solve_construct_resultleft) + (dst_positive_scale_solve_construct_resultleft)) * S ((dst_positive_code_solve_construct_resultleft) + (dst_positive_scale_solve_construct_resultleft)) + ((dst_positive_scale_solve_construct_resultleft) + (dst_positive_scale_solve_construct_resultleft))) + (((dst_negative_code_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)) * S ((dst_negative_code_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)) + ((dst_negative_scale_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)))) * S ((((dst_positive_code_solve_construct_resultleft) + (dst_positive_scale_solve_construct_resultleft)) * S ((dst_positive_code_solve_construct_resultleft) + (dst_positive_scale_solve_construct_resultleft)) + ((dst_positive_scale_solve_construct_resultleft) + (dst_positive_scale_solve_construct_resultleft))) + (((dst_negative_code_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)) * S ((dst_negative_code_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)) + ((dst_negative_scale_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)))) + ((((dst_negative_code_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)) * S ((dst_negative_code_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)) + ((dst_negative_scale_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft))) + (((dst_negative_code_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)) * S ((dst_negative_code_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)) + ((dst_negative_scale_solve_construct_resultleft) + (dst_negative_scale_solve_construct_resultleft)))))) /\ (forall dst_index_solve_construct_resultleft. (exists pvs_le_gap_solve_construct_resultleftdomain. pvs_le_gap_solve_construct_resultleftdomain + (dst_index_solve_construct_resultleft) = (N)) -> exists dst_positive_solve_construct_resultleft dst_negative_solve_construct_resultleft dst_value_solve_construct_resultleft. ((((exists ff_h_pvs_solve_construct_resultleftentrypositive. ff_h_pvs_solve_construct_resultleftentrypositive + S (dst_positive_solve_construct_resultleft) = S ((S (dst_index_solve_construct_resultleft)) * dst_positive_scale_solve_construct_resultleft)) /\ exists ff_q_pvs_solve_construct_resultleftentrypositive. dst_positive_code_solve_construct_resultleft = ff_q_pvs_solve_construct_resultleftentrypositive * S ((S (dst_index_solve_construct_resultleft)) * dst_positive_scale_solve_construct_resultleft) + (dst_positive_solve_construct_resultleft))) /\ (((((exists ff_h_pvs_solve_construct_resultleftentrynegative. ff_h_pvs_solve_construct_resultleftentrynegative + S (dst_negative_solve_construct_resultleft) = S ((S (dst_index_solve_construct_resultleft)) * dst_negative_scale_solve_construct_resultleft)) /\ exists ff_q_pvs_solve_construct_resultleftentrynegative. dst_negative_code_solve_construct_resultleft = ff_q_pvs_solve_construct_resultleftentrynegative * S ((S (dst_index_solve_construct_resultleft)) * dst_negative_scale_solve_construct_resultleft) + (dst_negative_solve_construct_resultleft))) /\ (exists ge_balance_positive_solve_construct_resultleftentryvalue ge_balance_negative_solve_construct_resultleftentryvalue. (((((dst_value_solve_construct_resultleft) = 2 * (ge_balance_positive_solve_construct_resultleftentryvalue) /\ (ge_balance_negative_solve_construct_resultleftentryvalue) = 0) \/ exists ge_signed_half_solve_construct_resultleftentryvaluedecode. (((dst_value_solve_construct_resultleft) = 2 * ge_signed_half_solve_construct_resultleftentryvaluedecode + 1 /\ (ge_balance_positive_solve_construct_resultleftentryvalue) = 0) /\ (ge_balance_negative_solve_construct_resultleftentryvalue) = S ge_signed_half_solve_construct_resultleftentryvaluedecode))) /\ ((dst_positive_solve_construct_resultleft) + ge_balance_negative_solve_construct_resultleftentryvalue = (dst_negative_solve_construct_resultleft) + ge_balance_positive_solve_construct_resultleftentryvalue))))))))) /\ (((exists dst_positive_code_solve_construct_resultright dst_positive_scale_solve_construct_resultright dst_negative_code_solve_construct_resultright dst_negative_scale_solve_construct_resultright. (((F) = (((((dst_positive_code_solve_construct_resultright) + (dst_positive_scale_solve_construct_resultright)) * S ((dst_positive_code_solve_construct_resultright) + (dst_positive_scale_solve_construct_resultright)) + ((dst_positive_scale_solve_construct_resultright) + (dst_positive_scale_solve_construct_resultright))) + (((dst_negative_code_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)) * S ((dst_negative_code_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)) + ((dst_negative_scale_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)))) * S ((((dst_positive_code_solve_construct_resultright) + (dst_positive_scale_solve_construct_resultright)) * S ((dst_positive_code_solve_construct_resultright) + (dst_positive_scale_solve_construct_resultright)) + ((dst_positive_scale_solve_construct_resultright) + (dst_positive_scale_solve_construct_resultright))) + (((dst_negative_code_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)) * S ((dst_negative_code_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)) + ((dst_negative_scale_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)))) + ((((dst_negative_code_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)) * S ((dst_negative_code_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)) + ((dst_negative_scale_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright))) + (((dst_negative_code_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)) * S ((dst_negative_code_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)) + ((dst_negative_scale_solve_construct_resultright) + (dst_negative_scale_solve_construct_resultright)))))) /\ (forall dst_index_solve_construct_resultright. (exists pvs_le_gap_solve_construct_resultrightdomain. pvs_le_gap_solve_construct_resultrightdomain + (dst_index_solve_construct_resultright) = (N)) -> exists dst_positive_solve_construct_resultright dst_negative_solve_construct_resultright dst_value_solve_construct_resultright. ((((exists ff_h_pvs_solve_construct_resultrightentrypositive. ff_h_pvs_solve_construct_resultrightentrypositive + S (dst_positive_solve_construct_resultright) = S ((S (dst_index_solve_construct_resultright)) * dst_positive_scale_solve_construct_resultright)) /\ exists ff_q_pvs_solve_construct_resultrightentrypositive. dst_positive_code_solve_construct_resultright = ff_q_pvs_solve_construct_resultrightentrypositive * S ((S (dst_index_solve_construct_resultright)) * dst_positive_scale_solve_construct_resultright) + (dst_positive_solve_construct_resultright))) /\ (((((exists ff_h_pvs_solve_construct_resultrightentrynegative. ff_h_pvs_solve_construct_resultrightentrynegative + S (dst_negative_solve_construct_resultright) = S ((S (dst_index_solve_construct_resultright)) * dst_negative_scale_solve_construct_resultright)) /\ exists ff_q_pvs_solve_construct_resultrightentrynegative. dst_negative_code_solve_construct_resultright = ff_q_pvs_solve_construct_resultrightentrynegative * S ((S (dst_index_solve_construct_resultright)) * dst_negative_scale_solve_construct_resultright) + (dst_negative_solve_construct_resultright))) /\ (exists ge_balance_positive_solve_construct_resultrightentryvalue ge_balance_negative_solve_construct_resultrightentryvalue. (((((dst_value_solve_construct_resultright) = 2 * (ge_balance_positive_solve_construct_resultrightentryvalue) /\ (ge_balance_negative_solve_construct_resultrightentryvalue) = 0) \/ exists ge_signed_half_solve_construct_resultrightentryvaluedecode. (((dst_value_solve_construct_resultright) = 2 * ge_signed_half_solve_construct_resultrightentryvaluedecode + 1 /\ (ge_balance_positive_solve_construct_resultrightentryvalue) = 0) /\ (ge_balance_negative_solve_construct_resultrightentryvalue) = S ge_signed_half_solve_construct_resultrightentryvaluedecode))) /\ ((dst_positive_solve_construct_resultright) + ge_balance_negative_solve_construct_resultrightentryvalue = (dst_negative_solve_construct_resultright) + ge_balance_positive_solve_construct_resultrightentryvalue))))))))) /\ (((exists dst_positive_code_solve_construct_resulttable dst_positive_scale_solve_construct_resulttable dst_negative_code_solve_construct_resulttable dst_negative_scale_solve_construct_resulttable. (((T) = (((((dst_positive_code_solve_construct_resulttable) + (dst_positive_scale_solve_construct_resulttable)) * S ((dst_positive_code_solve_construct_resulttable) + (dst_positive_scale_solve_construct_resulttable)) + ((dst_positive_scale_solve_construct_resulttable) + (dst_positive_scale_solve_construct_resulttable))) + (((dst_negative_code_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)) * S ((dst_negative_code_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)) + ((dst_negative_scale_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)))) * S ((((dst_positive_code_solve_construct_resulttable) + (dst_positive_scale_solve_construct_resulttable)) * S ((dst_positive_code_solve_construct_resulttable) + (dst_positive_scale_solve_construct_resulttable)) + ((dst_positive_scale_solve_construct_resulttable) + (dst_positive_scale_solve_construct_resulttable))) + (((dst_negative_code_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)) * S ((dst_negative_code_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)) + ((dst_negative_scale_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)))) + ((((dst_negative_code_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)) * S ((dst_negative_code_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)) + ((dst_negative_scale_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable))) + (((dst_negative_code_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)) * S ((dst_negative_code_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)) + ((dst_negative_scale_solve_construct_resulttable) + (dst_negative_scale_solve_construct_resulttable)))))) /\ (forall dst_index_solve_construct_resulttable. (exists pvs_le_gap_solve_construct_resulttabledomain. pvs_le_gap_solve_construct_resulttabledomain + (dst_index_solve_construct_resulttable) = (N)) -> exists dst_positive_solve_construct_resulttable dst_negative_solve_construct_resulttable dst_value_solve_construct_resulttable. ((((exists ff_h_pvs_solve_construct_resulttableentrypositive. ff_h_pvs_solve_construct_resulttableentrypositive + S (dst_positive_solve_construct_resulttable) = S ((S (dst_index_solve_construct_resulttable)) * dst_positive_scale_solve_construct_resulttable)) /\ exists ff_q_pvs_solve_construct_resulttableentrypositive. dst_positive_code_solve_construct_resulttable = ff_q_pvs_solve_construct_resulttableentrypositive * S ((S (dst_index_solve_construct_resulttable)) * dst_positive_scale_solve_construct_resulttable) + (dst_positive_solve_construct_resulttable))) /\ (((((exists ff_h_pvs_solve_construct_resulttableentrynegative. ff_h_pvs_solve_construct_resulttableentrynegative + S (dst_negative_solve_construct_resulttable) = S ((S (dst_index_solve_construct_resulttable)) * dst_negative_scale_solve_construct_resulttable)) /\ exists ff_q_pvs_solve_construct_resulttableentrynegative. dst_negative_code_solve_construct_resulttable = ff_q_pvs_solve_construct_resulttableentrynegative * S ((S (dst_index_solve_construct_resulttable)) * dst_negative_scale_solve_construct_resulttable) + (dst_negative_solve_construct_resulttable))) /\ (exists ge_balance_positive_solve_construct_resulttableentryvalue ge_balance_negative_solve_construct_resulttableentryvalue. (((((dst_value_solve_construct_resulttable) = 2 * (ge_balance_positive_solve_construct_resulttableentryvalue) /\ (ge_balance_negative_solve_construct_resulttableentryvalue) = 0) \/ exists ge_signed_half_solve_construct_resulttableentryvaluedecode. (((dst_value_solve_construct_resulttable) = 2 * ge_signed_half_solve_construct_resulttableentryvaluedecode + 1 /\ (ge_balance_positive_solve_construct_resulttableentryvalue) = 0) /\ (ge_balance_negative_solve_construct_resulttableentryvalue) = S ge_signed_half_solve_construct_resulttableentryvaluedecode))) /\ ((dst_positive_solve_construct_resulttable) + ge_balance_negative_solve_construct_resulttableentryvalue = (dst_negative_solve_construct_resulttable) + ge_balance_positive_solve_construct_resulttableentryvalue))))))))) /\ (forall dc_input_solve_construct_result dc_output_solve_construct_result. ~(dc_input_solve_construct_result=0) -> (exists pvs_le_gap_solve_construct_resultdomain. pvs_le_gap_solve_construct_resultdomain + (dc_input_solve_construct_result) = (N)) -> (exists dst_positive_code_solve_construct_resultlookup dst_positive_scale_solve_construct_resultlookup dst_negative_code_solve_construct_resultlookup dst_negative_scale_solve_construct_resultlookup dst_positive_solve_construct_resultlookup dst_negative_solve_construct_resultlookup. (((T) = (((((dst_positive_code_solve_construct_resultlookup) + (dst_positive_scale_solve_construct_resultlookup)) * S ((dst_positive_code_solve_construct_resultlookup) + (dst_positive_scale_solve_construct_resultlookup)) + ((dst_positive_scale_solve_construct_resultlookup) + (dst_positive_scale_solve_construct_resultlookup))) + (((dst_negative_code_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)) * S ((dst_negative_code_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)) + ((dst_negative_scale_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)))) * S ((((dst_positive_code_solve_construct_resultlookup) + (dst_positive_scale_solve_construct_resultlookup)) * S ((dst_positive_code_solve_construct_resultlookup) + (dst_positive_scale_solve_construct_resultlookup)) + ((dst_positive_scale_solve_construct_resultlookup) + (dst_positive_scale_solve_construct_resultlookup))) + (((dst_negative_code_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)) * S ((dst_negative_code_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)) + ((dst_negative_scale_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)))) + ((((dst_negative_code_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)) * S ((dst_negative_code_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)) + ((dst_negative_scale_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup))) + (((dst_negative_code_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)) * S ((dst_negative_code_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)) + ((dst_negative_scale_solve_construct_resultlookup) + (dst_negative_scale_solve_construct_resultlookup)))))) /\ (((((exists ff_h_pvs_solve_construct_resultlookuppositive. ff_h_pvs_solve_construct_resultlookuppositive + S (dst_positive_solve_construct_resultlookup) = S ((S (dc_input_solve_construct_result)) * dst_positive_scale_solve_construct_resultlookup)) /\ exists ff_q_pvs_solve_construct_resultlookuppositive. dst_positive_code_solve_construct_resultlookup = ff_q_pvs_solve_construct_resultlookuppositive * S ((S (dc_input_solve_construct_result)) * dst_positive_scale_solve_construct_resultlookup) + (dst_positive_solve_construct_resultlookup))) /\ (((((exists ff_h_pvs_solve_construct_resultlookupnegative. ff_h_pvs_solve_construct_resultlookupnegative + S (dst_negative_solve_construct_resultlookup) = S ((S (dc_input_solve_construct_result)) * dst_negative_scale_solve_construct_resultlookup)) /\ exists ff_q_pvs_solve_construct_resultlookupnegative. dst_negative_code_solve_construct_resultlookup = ff_q_pvs_solve_construct_resultlookupnegative * S ((S (dc_input_solve_construct_result)) * dst_negative_scale_solve_construct_resultlookup) + (dst_negative_solve_construct_resultlookup))) /\ (exists ge_balance_positive_solve_construct_resultlookupvalue ge_balance_negative_solve_construct_resultlookupvalue. (((((dc_output_solve_construct_result) = 2 * (ge_balance_positive_solve_construct_resultlookupvalue) /\ (ge_balance_negative_solve_construct_resultlookupvalue) = 0) \/ exists ge_signed_half_solve_construct_resultlookupvaluedecode. (((dc_output_solve_construct_result) = 2 * ge_signed_half_solve_construct_resultlookupvaluedecode + 1 /\ (ge_balance_positive_solve_construct_resultlookupvalue) = 0) /\ (ge_balance_negative_solve_construct_resultlookupvalue) = S ge_signed_half_solve_construct_resultlookupvaluedecode))) /\ ((dst_positive_solve_construct_resultlookup) + ge_balance_negative_solve_construct_resultlookupvalue = (dst_negative_solve_construct_resultlookup) + ge_balance_positive_solve_construct_resultlookupvalue))))))))) -> (((~((dc_input_solve_construct_result)=0)) /\ (exists dc_mask_solve_construct_resultvalue. ((((exists dst_positive_code_solve_construct_resultvaluemasktable dst_positive_scale_solve_construct_resultvaluemasktable dst_negative_code_solve_construct_resultvaluemasktable dst_negative_scale_solve_construct_resultvaluemasktable. (((dc_mask_solve_construct_resultvalue) = (((((dst_positive_code_solve_construct_resultvaluemasktable) + (dst_positive_scale_solve_construct_resultvaluemasktable)) * S ((dst_positive_code_solve_construct_resultvaluemasktable) + (dst_positive_scale_solve_construct_resultvaluemasktable)) + ((dst_positive_scale_solve_construct_resultvaluemasktable) + (dst_positive_scale_solve_construct_resultvaluemasktable))) + (((dst_negative_code_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)) * S ((dst_negative_code_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)) + ((dst_negative_scale_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)))) * S ((((dst_positive_code_solve_construct_resultvaluemasktable) + (dst_positive_scale_solve_construct_resultvaluemasktable)) * S ((dst_positive_code_solve_construct_resultvaluemasktable) + (dst_positive_scale_solve_construct_resultvaluemasktable)) + ((dst_positive_scale_solve_construct_resultvaluemasktable) + (dst_positive_scale_solve_construct_resultvaluemasktable))) + (((dst_negative_code_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)) * S ((dst_negative_code_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)) + ((dst_negative_scale_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)))) + ((((dst_negative_code_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)) * S ((dst_negative_code_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)) + ((dst_negative_scale_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable))) + (((dst_negative_code_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)) * S ((dst_negative_code_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)) + ((dst_negative_scale_solve_construct_resultvaluemasktable) + (dst_negative_scale_solve_construct_resultvaluemasktable)))))) /\ (forall dst_index_solve_construct_resultvaluemasktable. (exists pvs_le_gap_solve_construct_resultvaluemasktabledomain. pvs_le_gap_solve_construct_resultvaluemasktabledomain + (dst_index_solve_construct_resultvaluemasktable) = (dc_input_solve_construct_result)) -> exists dst_positive_solve_construct_resultvaluemasktable dst_negative_solve_construct_resultvaluemasktable dst_value_solve_construct_resultvaluemasktable. ((((exists ff_h_pvs_solve_construct_resultvaluemasktableentrypositive. ff_h_pvs_solve_construct_resultvaluemasktableentrypositive + S (dst_positive_solve_construct_resultvaluemasktable) = S ((S (dst_index_solve_construct_resultvaluemasktable)) * dst_positive_scale_solve_construct_resultvaluemasktable)) /\ exists ff_q_pvs_solve_construct_resultvaluemasktableentrypositive. dst_positive_code_solve_construct_resultvaluemasktable = ff_q_pvs_solve_construct_resultvaluemasktableentrypositive * S ((S (dst_index_solve_construct_resultvaluemasktable)) * dst_positive_scale_solve_construct_resultvaluemasktable) + (dst_positive_solve_construct_resultvaluemasktable))) /\ (((((exists ff_h_pvs_solve_construct_resultvaluemasktableentrynegative. ff_h_pvs_solve_construct_resultvaluemasktableentrynegative + S (dst_negative_solve_construct_resultvaluemasktable) = S ((S (dst_index_solve_construct_resultvaluemasktable)) * dst_negative_scale_solve_construct_resultvaluemasktable)) /\ exists ff_q_pvs_solve_construct_resultvaluemasktableentrynegative. dst_negative_code_solve_construct_resultvaluemasktable = ff_q_pvs_solve_construct_resultvaluemasktableentrynegative * S ((S (dst_index_solve_construct_resultvaluemasktable)) * dst_negative_scale_solve_construct_resultvaluemasktable) + (dst_negative_solve_construct_resultvaluemasktable))) /\ (exists ge_balance_positive_solve_construct_resultvaluemasktableentryvalue ge_balance_negative_solve_construct_resultvaluemasktableentryvalue. (((((dst_value_solve_construct_resultvaluemasktable) = 2 * (ge_balance_positive_solve_construct_resultvaluemasktableentryvalue) /\ (ge_balance_negative_solve_construct_resultvaluemasktableentryvalue) = 0) \/ exists ge_signed_half_solve_construct_resultvaluemasktableentryvaluedecode. (((dst_value_solve_construct_resultvaluemasktable) = 2 * ge_signed_half_solve_construct_resultvaluemasktableentryvaluedecode + 1 /\ (ge_balance_positive_solve_construct_resultvaluemasktableentryvalue) = 0) /\ (ge_balance_negative_solve_construct_resultvaluemasktableentryvalue) = S ge_signed_half_solve_construct_resultvaluemasktableentryvaluedecode))) /\ ((dst_positive_solve_construct_resultvaluemasktable) + ge_balance_negative_solve_construct_resultvaluemasktableentryvalue = (dst_negative_solve_construct_resultvaluemasktable) + ge_balance_positive_solve_construct_resultvaluemasktableentryvalue))))))))) /\ (forall dc_index_solve_construct_resultvaluemask dc_value_solve_construct_resultvaluemask. (exists pvs_le_gap_solve_construct_resultvaluemaskdomain. pvs_le_gap_solve_construct_resultvaluemaskdomain + (dc_index_solve_construct_resultvaluemask) = (dc_input_solve_construct_result)) -> (exists dst_positive_code_solve_construct_resultvaluemasklookup dst_positive_scale_solve_construct_resultvaluemasklookup dst_negative_code_solve_construct_resultvaluemasklookup dst_negative_scale_solve_construct_resultvaluemasklookup dst_positive_solve_construct_resultvaluemasklookup dst_negative_solve_construct_resultvaluemasklookup. (((dc_mask_solve_construct_resultvalue) = (((((dst_positive_code_solve_construct_resultvaluemasklookup) + (dst_positive_scale_solve_construct_resultvaluemasklookup)) * S ((dst_positive_code_solve_construct_resultvaluemasklookup) + (dst_positive_scale_solve_construct_resultvaluemasklookup)) + ((dst_positive_scale_solve_construct_resultvaluemasklookup) + (dst_positive_scale_solve_construct_resultvaluemasklookup))) + (((dst_negative_code_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)) * S ((dst_negative_code_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)) + ((dst_negative_scale_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)))) * S ((((dst_positive_code_solve_construct_resultvaluemasklookup) + (dst_positive_scale_solve_construct_resultvaluemasklookup)) * S ((dst_positive_code_solve_construct_resultvaluemasklookup) + (dst_positive_scale_solve_construct_resultvaluemasklookup)) + ((dst_positive_scale_solve_construct_resultvaluemasklookup) + (dst_positive_scale_solve_construct_resultvaluemasklookup))) + (((dst_negative_code_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)) * S ((dst_negative_code_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)) + ((dst_negative_scale_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)))) + ((((dst_negative_code_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)) * S ((dst_negative_code_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)) + ((dst_negative_scale_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup))) + (((dst_negative_code_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)) * S ((dst_negative_code_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)) + ((dst_negative_scale_solve_construct_resultvaluemasklookup) + (dst_negative_scale_solve_construct_resultvaluemasklookup)))))) /\ (((((exists ff_h_pvs_solve_construct_resultvaluemasklookuppositive. ff_h_pvs_solve_construct_resultvaluemasklookuppositive + S (dst_positive_solve_construct_resultvaluemasklookup) = S ((S (dc_index_solve_construct_resultvaluemask)) * dst_positive_scale_solve_construct_resultvaluemasklookup)) /\ exists ff_q_pvs_solve_construct_resultvaluemasklookuppositive. dst_positive_code_solve_construct_resultvaluemasklookup = ff_q_pvs_solve_construct_resultvaluemasklookuppositive * S ((S (dc_index_solve_construct_resultvaluemask)) * dst_positive_scale_solve_construct_resultvaluemasklookup) + (dst_positive_solve_construct_resultvaluemasklookup))) /\ (((((exists ff_h_pvs_solve_construct_resultvaluemasklookupnegative. ff_h_pvs_solve_construct_resultvaluemasklookupnegative + S (dst_negative_solve_construct_resultvaluemasklookup) = S ((S (dc_index_solve_construct_resultvaluemask)) * dst_negative_scale_solve_construct_resultvaluemasklookup)) /\ exists ff_q_pvs_solve_construct_resultvaluemasklookupnegative. dst_negative_code_solve_construct_resultvaluemasklookup = ff_q_pvs_solve_construct_resultvaluemasklookupnegative * S ((S (dc_index_solve_construct_resultvaluemask)) * dst_negative_scale_solve_construct_resultvaluemasklookup) + (dst_negative_solve_construct_resultvaluemasklookup))) /\ (exists ge_balance_positive_solve_construct_resultvaluemasklookupvalue ge_balance_negative_solve_construct_resultvaluemasklookupvalue. (((((dc_value_solve_construct_resultvaluemask) = 2 * (ge_balance_positive_solve_construct_resultvaluemasklookupvalue) /\ (ge_balance_negative_solve_construct_resultvaluemasklookupvalue) = 0) \/ exists ge_signed_half_solve_construct_resultvaluemasklookupvaluedecode. (((dc_value_solve_construct_resultvaluemask) = 2 * ge_signed_half_solve_construct_resultvaluemasklookupvaluedecode + 1 /\ (ge_balance_positive_solve_construct_resultvaluemasklookupvalue) = 0) /\ (ge_balance_negative_solve_construct_resultvaluemasklookupvalue) = S ge_signed_half_solve_construct_resultvaluemasklookupvaluedecode))) /\ ((dst_positive_solve_construct_resultvaluemasklookup) + ge_balance_negative_solve_construct_resultvaluemasklookupvalue = (dst_negative_solve_construct_resultvaluemasklookup) + ge_balance_positive_solve_construct_resultvaluemasklookupvalue))))))))) -> ((((~((dc_index_solve_construct_resultvaluemask)=0)) /\ (exists dc_quotient_solve_construct_resultvaluemaskentry dc_left_solve_construct_resultvaluemaskentry dc_right_solve_construct_resultvaluemaskentry. (((dc_input_solve_construct_result)=(dc_index_solve_construct_resultvaluemask)*dc_quotient_solve_construct_resultvaluemaskentry) /\ (((exists dst_positive_code_solve_construct_resultvaluemaskentryleft dst_positive_scale_solve_construct_resultvaluemaskentryleft dst_negative_code_solve_construct_resultvaluemaskentryleft dst_negative_scale_solve_construct_resultvaluemaskentryleft dst_positive_solve_construct_resultvaluemaskentryleft dst_negative_solve_construct_resultvaluemaskentryleft. (((G) = (((((dst_positive_code_solve_construct_resultvaluemaskentryleft) + (dst_positive_scale_solve_construct_resultvaluemaskentryleft)) * S ((dst_positive_code_solve_construct_resultvaluemaskentryleft) + (dst_positive_scale_solve_construct_resultvaluemaskentryleft)) + ((dst_positive_scale_solve_construct_resultvaluemaskentryleft) + (dst_positive_scale_solve_construct_resultvaluemaskentryleft))) + (((dst_negative_code_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)) * S ((dst_negative_code_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)) + ((dst_negative_scale_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)))) * S ((((dst_positive_code_solve_construct_resultvaluemaskentryleft) + (dst_positive_scale_solve_construct_resultvaluemaskentryleft)) * S ((dst_positive_code_solve_construct_resultvaluemaskentryleft) + (dst_positive_scale_solve_construct_resultvaluemaskentryleft)) + ((dst_positive_scale_solve_construct_resultvaluemaskentryleft) + (dst_positive_scale_solve_construct_resultvaluemaskentryleft))) + (((dst_negative_code_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)) * S ((dst_negative_code_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)) + ((dst_negative_scale_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)))) + ((((dst_negative_code_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)) * S ((dst_negative_code_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)) + ((dst_negative_scale_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft))) + (((dst_negative_code_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)) * S ((dst_negative_code_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)) + ((dst_negative_scale_solve_construct_resultvaluemaskentryleft) + (dst_negative_scale_solve_construct_resultvaluemaskentryleft)))))) /\ (((((exists ff_h_pvs_solve_construct_resultvaluemaskentryleftpositive. ff_h_pvs_solve_construct_resultvaluemaskentryleftpositive + S (dst_positive_solve_construct_resultvaluemaskentryleft) = S ((S (dc_index_solve_construct_resultvaluemask)) * dst_positive_scale_solve_construct_resultvaluemaskentryleft)) /\ exists ff_q_pvs_solve_construct_resultvaluemaskentryleftpositive. dst_positive_code_solve_construct_resultvaluemaskentryleft = ff_q_pvs_solve_construct_resultvaluemaskentryleftpositive * S ((S (dc_index_solve_construct_resultvaluemask)) * dst_positive_scale_solve_construct_resultvaluemaskentryleft) + (dst_positive_solve_construct_resultvaluemaskentryleft))) /\ (((((exists ff_h_pvs_solve_construct_resultvaluemaskentryleftnegative. ff_h_pvs_solve_construct_resultvaluemaskentryleftnegative + S (dst_negative_solve_construct_resultvaluemaskentryleft) = S ((S (dc_index_solve_construct_resultvaluemask)) * dst_negative_scale_solve_construct_resultvaluemaskentryleft)) /\ exists ff_q_pvs_solve_construct_resultvaluemaskentryleftnegative. dst_negative_code_solve_construct_resultvaluemaskentryleft = ff_q_pvs_solve_construct_resultvaluemaskentryleftnegative * S ((S (dc_index_solve_construct_resultvaluemask)) * dst_negative_scale_solve_construct_resultvaluemaskentryleft) + (dst_negative_solve_construct_resultvaluemaskentryleft))) /\ (exists ge_balance_positive_solve_construct_resultvaluemaskentryleftvalue ge_balance_negative_solve_construct_resultvaluemaskentryleftvalue. (((((dc_left_solve_construct_resultvaluemaskentry) = 2 * (ge_balance_positive_solve_construct_resultvaluemaskentryleftvalue) /\ (ge_balance_negative_solve_construct_resultvaluemaskentryleftvalue) = 0) \/ exists ge_signed_half_solve_construct_resultvaluemaskentryleftvaluedecode. (((dc_left_solve_construct_resultvaluemaskentry) = 2 * ge_signed_half_solve_construct_resultvaluemaskentryleftvaluedecode + 1 /\ (ge_balance_positive_solve_construct_resultvaluemaskentryleftvalue) = 0) /\ (ge_balance_negative_solve_construct_resultvaluemaskentryleftvalue) = S ge_signed_half_solve_construct_resultvaluemaskentryleftvaluedecode))) /\ ((dst_positive_solve_construct_resultvaluemaskentryleft) + ge_balance_negative_solve_construct_resultvaluemaskentryleftvalue = (dst_negative_solve_construct_resultvaluemaskentryleft) + ge_balance_positive_solve_construct_resultvaluemaskentryleftvalue))))))))) /\ (((exists dst_positive_code_solve_construct_resultvaluemaskentryright dst_positive_scale_solve_construct_resultvaluemaskentryright dst_negative_code_solve_construct_resultvaluemaskentryright dst_negative_scale_solve_construct_resultvaluemaskentryright dst_positive_solve_construct_resultvaluemaskentryright dst_negative_solve_construct_resultvaluemaskentryright. (((F) = (((((dst_positive_code_solve_construct_resultvaluemaskentryright) + (dst_positive_scale_solve_construct_resultvaluemaskentryright)) * S ((dst_positive_code_solve_construct_resultvaluemaskentryright) + (dst_positive_scale_solve_construct_resultvaluemaskentryright)) + ((dst_positive_scale_solve_construct_resultvaluemaskentryright) + (dst_positive_scale_solve_construct_resultvaluemaskentryright))) + (((dst_negative_code_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)) * S ((dst_negative_code_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)) + ((dst_negative_scale_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)))) * S ((((dst_positive_code_solve_construct_resultvaluemaskentryright) + (dst_positive_scale_solve_construct_resultvaluemaskentryright)) * S ((dst_positive_code_solve_construct_resultvaluemaskentryright) + (dst_positive_scale_solve_construct_resultvaluemaskentryright)) + ((dst_positive_scale_solve_construct_resultvaluemaskentryright) + (dst_positive_scale_solve_construct_resultvaluemaskentryright))) + (((dst_negative_code_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)) * S ((dst_negative_code_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)) + ((dst_negative_scale_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)))) + ((((dst_negative_code_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)) * S ((dst_negative_code_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)) + ((dst_negative_scale_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright))) + (((dst_negative_code_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)) * S ((dst_negative_code_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)) + ((dst_negative_scale_solve_construct_resultvaluemaskentryright) + (dst_negative_scale_solve_construct_resultvaluemaskentryright)))))) /\ (((((exists ff_h_pvs_solve_construct_resultvaluemaskentryrightpositive. ff_h_pvs_solve_construct_resultvaluemaskentryrightpositive + S (dst_positive_solve_construct_resultvaluemaskentryright) = S ((S (dc_quotient_solve_construct_resultvaluemaskentry)) * dst_positive_scale_solve_construct_resultvaluemaskentryright)) /\ exists ff_q_pvs_solve_construct_resultvaluemaskentryrightpositive. dst_positive_code_solve_construct_resultvaluemaskentryright = ff_q_pvs_solve_construct_resultvaluemaskentryrightpositive * S ((S (dc_quotient_solve_construct_resultvaluemaskentry)) * dst_positive_scale_solve_construct_resultvaluemaskentryright) + (dst_positive_solve_construct_resultvaluemaskentryright))) /\ (((((exists ff_h_pvs_solve_construct_resultvaluemaskentryrightnegative. ff_h_pvs_solve_construct_resultvaluemaskentryrightnegative + S (dst_negative_solve_construct_resultvaluemaskentryright) = S ((S (dc_quotient_solve_construct_resultvaluemaskentry)) * dst_negative_scale_solve_construct_resultvaluemaskentryright)) /\ exists ff_q_pvs_solve_construct_resultvaluemaskentryrightnegative. dst_negative_code_solve_construct_resultvaluemaskentryright = ff_q_pvs_solve_construct_resultvaluemaskentryrightnegative * S ((S (dc_quotient_solve_construct_resultvaluemaskentry)) * dst_negative_scale_solve_construct_resultvaluemaskentryright) + (dst_negative_solve_construct_resultvaluemaskentryright))) /\ (exists ge_balance_positive_solve_construct_resultvaluemaskentryrightvalue ge_balance_negative_solve_construct_resultvaluemaskentryrightvalue. (((((dc_right_solve_construct_resultvaluemaskentry) = 2 * (ge_balance_positive_solve_construct_resultvaluemaskentryrightvalue) /\ (ge_balance_negative_solve_construct_resultvaluemaskentryrightvalue) = 0) \/ exists ge_signed_half_solve_construct_resultvaluemaskentryrightvaluedecode. (((dc_right_solve_construct_resultvaluemaskentry) = 2 * ge_signed_half_solve_construct_resultvaluemaskentryrightvaluedecode + 1 /\ (ge_balance_positive_solve_construct_resultvaluemaskentryrightvalue) = 0) /\ (ge_balance_negative_solve_construct_resultvaluemaskentryrightvalue) = S ge_signed_half_solve_construct_resultvaluemaskentryrightvaluedecode))) /\ ((dst_positive_solve_construct_resultvaluemaskentryright) + ge_balance_negative_solve_construct_resultvaluemaskentryrightvalue = (dst_negative_solve_construct_resultvaluemaskentryright) + ge_balance_positive_solve_construct_resultvaluemaskentryrightvalue))))))))) /\ (exists sto_ap_solve_construct_resultvaluemaskentryproduct sto_an_solve_construct_resultvaluemaskentryproduct sto_bp_solve_construct_resultvaluemaskentryproduct sto_bn_solve_construct_resultvaluemaskentryproduct sto_cp_solve_construct_resultvaluemaskentryproduct sto_cn_solve_construct_resultvaluemaskentryproduct. (((((dc_left_solve_construct_resultvaluemaskentry) = 2 * (sto_ap_solve_construct_resultvaluemaskentryproduct) /\ (sto_an_solve_construct_resultvaluemaskentryproduct) = 0) \/ exists ge_signed_half_solve_construct_resultvaluemaskentryproductleft. (((dc_left_solve_construct_resultvaluemaskentry) = 2 * ge_signed_half_solve_construct_resultvaluemaskentryproductleft + 1 /\ (sto_ap_solve_construct_resultvaluemaskentryproduct) = 0) /\ (sto_an_solve_construct_resultvaluemaskentryproduct) = S ge_signed_half_solve_construct_resultvaluemaskentryproductleft))) /\ ((((((dc_right_solve_construct_resultvaluemaskentry) = 2 * (sto_bp_solve_construct_resultvaluemaskentryproduct) /\ (sto_bn_solve_construct_resultvaluemaskentryproduct) = 0) \/ exists ge_signed_half_solve_construct_resultvaluemaskentryproductright. (((dc_right_solve_construct_resultvaluemaskentry) = 2 * ge_signed_half_solve_construct_resultvaluemaskentryproductright + 1 /\ (sto_bp_solve_construct_resultvaluemaskentryproduct) = 0) /\ (sto_bn_solve_construct_resultvaluemaskentryproduct) = S ge_signed_half_solve_construct_resultvaluemaskentryproductright))) /\ ((((((dc_value_solve_construct_resultvaluemask) = 2 * (sto_cp_solve_construct_resultvaluemaskentryproduct) /\ (sto_cn_solve_construct_resultvaluemaskentryproduct) = 0) \/ exists ge_signed_half_solve_construct_resultvaluemaskentryproductoutput. (((dc_value_solve_construct_resultvaluemask) = 2 * ge_signed_half_solve_construct_resultvaluemaskentryproductoutput + 1 /\ (sto_cp_solve_construct_resultvaluemaskentryproduct) = 0) /\ (sto_cn_solve_construct_resultvaluemaskentryproduct) = S ge_signed_half_solve_construct_resultvaluemaskentryproductoutput))) /\ ((sto_ap_solve_construct_resultvaluemaskentryproduct * sto_bp_solve_construct_resultvaluemaskentryproduct + sto_an_solve_construct_resultvaluemaskentryproduct * sto_bn_solve_construct_resultvaluemaskentryproduct) + sto_cn_solve_construct_resultvaluemaskentryproduct = (sto_ap_solve_construct_resultvaluemaskentryproduct * sto_bn_solve_construct_resultvaluemaskentryproduct + sto_an_solve_construct_resultvaluemaskentryproduct * sto_bp_solve_construct_resultvaluemaskentryproduct) + sto_cp_solve_construct_resultvaluemaskentryproduct))))))))))))))) \/ ((((dc_index_solve_construct_resultvaluemask)=0 \/ ~(exists pvs_factor_solve_construct_resultvaluemaskentrynondivisor. (dc_input_solve_construct_result) = (dc_index_solve_construct_resultvaluemask) * pvs_factor_solve_construct_resultvaluemaskentrynondivisor)) /\ ((dc_value_solve_construct_resultvaluemask)=0))))))) /\ (exists dst_positive_code_solve_construct_resultvaluefold dst_positive_scale_solve_construct_resultvaluefold dst_negative_code_solve_construct_resultvaluefold dst_negative_scale_solve_construct_resultvaluefold dst_positive_sum_solve_construct_resultvaluefold dst_negative_sum_solve_construct_resultvaluefold. (((dc_mask_solve_construct_resultvalue) = (((((dst_positive_code_solve_construct_resultvaluefold) + (dst_positive_scale_solve_construct_resultvaluefold)) * S ((dst_positive_code_solve_construct_resultvaluefold) + (dst_positive_scale_solve_construct_resultvaluefold)) + ((dst_positive_scale_solve_construct_resultvaluefold) + (dst_positive_scale_solve_construct_resultvaluefold))) + (((dst_negative_code_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)) * S ((dst_negative_code_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)) + ((dst_negative_scale_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)))) * S ((((dst_positive_code_solve_construct_resultvaluefold) + (dst_positive_scale_solve_construct_resultvaluefold)) * S ((dst_positive_code_solve_construct_resultvaluefold) + (dst_positive_scale_solve_construct_resultvaluefold)) + ((dst_positive_scale_solve_construct_resultvaluefold) + (dst_positive_scale_solve_construct_resultvaluefold))) + (((dst_negative_code_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)) * S ((dst_negative_code_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)) + ((dst_negative_scale_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)))) + ((((dst_negative_code_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)) * S ((dst_negative_code_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)) + ((dst_negative_scale_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold))) + (((dst_negative_code_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)) * S ((dst_negative_code_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)) + ((dst_negative_scale_solve_construct_resultvaluefold) + (dst_negative_scale_solve_construct_resultvaluefold)))))) /\ (((exists fs_u_dst_solve_construct_resultvaluefoldpositive fs_v_dst_solve_construct_resultvaluefoldpositive. ((((exists fs_h_dst_solve_construct_resultvaluefoldpositive_body_start. fs_h_dst_solve_construct_resultvaluefoldpositive_body_start + S (0) = S ((S (0)) * fs_v_dst_solve_construct_resultvaluefoldpositive)) /\ exists fs_q_dst_solve_construct_resultvaluefoldpositive_body_start. fs_u_dst_solve_construct_resultvaluefoldpositive = fs_q_dst_solve_construct_resultvaluefoldpositive_body_start * S ((S (0)) * fs_v_dst_solve_construct_resultvaluefoldpositive) + (0))) /\ ((((exists fs_h_dst_solve_construct_resultvaluefoldpositive_body_terminal. fs_h_dst_solve_construct_resultvaluefoldpositive_body_terminal + S (dst_positive_sum_solve_construct_resultvaluefold) = S ((S (S (dc_input_solve_construct_result))) * fs_v_dst_solve_construct_resultvaluefoldpositive)) /\ exists fs_q_dst_solve_construct_resultvaluefoldpositive_body_terminal. fs_u_dst_solve_construct_resultvaluefoldpositive = fs_q_dst_solve_construct_resultvaluefoldpositive_body_terminal * S ((S (S (dc_input_solve_construct_result))) * fs_v_dst_solve_construct_resultvaluefoldpositive) + (dst_positive_sum_solve_construct_resultvaluefold))) /\ forall fs_i_dst_solve_construct_resultvaluefoldpositive_body_steps. (exists fs_lt_dst_solve_construct_resultvaluefoldpositive_body_steps_bound. fs_lt_dst_solve_construct_resultvaluefoldpositive_body_steps_bound + S fs_i_dst_solve_construct_resultvaluefoldpositive_body_steps = S (dc_input_solve_construct_result)) -> exists fs_a_dst_solve_construct_resultvaluefoldpositive_body_steps fs_r_dst_solve_construct_resultvaluefoldpositive_body_steps fs_s_dst_solve_construct_resultvaluefoldpositive_body_steps. ((((exists fs_h_dst_solve_construct_resultvaluefoldpositive_body_steps_summand. fs_h_dst_solve_construct_resultvaluefoldpositive_body_steps_summand + S (fs_a_dst_solve_construct_resultvaluefoldpositive_body_steps) = S ((S (fs_i_dst_solve_construct_resultvaluefoldpositive_body_steps)) * dst_positive_scale_solve_construct_resultvaluefold)) /\ exists fs_q_dst_solve_construct_resultvaluefoldpositive_body_steps_summand. dst_positive_code_solve_construct_resultvaluefold = fs_q_dst_solve_construct_resultvaluefoldpositive_body_steps_summand * S ((S (fs_i_dst_solve_construct_resultvaluefoldpositive_body_steps)) * dst_positive_scale_solve_construct_resultvaluefold) + (fs_a_dst_solve_construct_resultvaluefoldpositive_body_steps))) /\ ((((exists fs_h_dst_solve_construct_resultvaluefoldpositive_body_steps_partial. fs_h_dst_solve_construct_resultvaluefoldpositive_body_steps_partial + S (fs_r_dst_solve_construct_resultvaluefoldpositive_body_steps) = S ((S (fs_i_dst_solve_construct_resultvaluefoldpositive_body_steps)) * fs_v_dst_solve_construct_resultvaluefoldpositive)) /\ exists fs_q_dst_solve_construct_resultvaluefoldpositive_body_steps_partial. fs_u_dst_solve_construct_resultvaluefoldpositive = fs_q_dst_solve_construct_resultvaluefoldpositive_body_steps_partial * S ((S (fs_i_dst_solve_construct_resultvaluefoldpositive_body_steps)) * fs_v_dst_solve_construct_resultvaluefoldpositive) + (fs_r_dst_solve_construct_resultvaluefoldpositive_body_steps))) /\ ((((exists fs_h_dst_solve_construct_resultvaluefoldpositive_body_steps_successor. fs_h_dst_solve_construct_resultvaluefoldpositive_body_steps_successor + S (fs_s_dst_solve_construct_resultvaluefoldpositive_body_steps) = S ((S (S fs_i_dst_solve_construct_resultvaluefoldpositive_body_steps)) * fs_v_dst_solve_construct_resultvaluefoldpositive)) /\ exists fs_q_dst_solve_construct_resultvaluefoldpositive_body_steps_successor. fs_u_dst_solve_construct_resultvaluefoldpositive = fs_q_dst_solve_construct_resultvaluefoldpositive_body_steps_successor * S ((S (S fs_i_dst_solve_construct_resultvaluefoldpositive_body_steps)) * fs_v_dst_solve_construct_resultvaluefoldpositive) + (fs_s_dst_solve_construct_resultvaluefoldpositive_body_steps))) /\ fs_s_dst_solve_construct_resultvaluefoldpositive_body_steps = fs_r_dst_solve_construct_resultvaluefoldpositive_body_steps + fs_a_dst_solve_construct_resultvaluefoldpositive_body_steps)))))) /\ (((exists fs_u_dst_solve_construct_resultvaluefoldnegative fs_v_dst_solve_construct_resultvaluefoldnegative. ((((exists fs_h_dst_solve_construct_resultvaluefoldnegative_body_start. fs_h_dst_solve_construct_resultvaluefoldnegative_body_start + S (0) = S ((S (0)) * fs_v_dst_solve_construct_resultvaluefoldnegative)) /\ exists fs_q_dst_solve_construct_resultvaluefoldnegative_body_start. fs_u_dst_solve_construct_resultvaluefoldnegative = fs_q_dst_solve_construct_resultvaluefoldnegative_body_start * S ((S (0)) * fs_v_dst_solve_construct_resultvaluefoldnegative) + (0))) /\ ((((exists fs_h_dst_solve_construct_resultvaluefoldnegative_body_terminal. fs_h_dst_solve_construct_resultvaluefoldnegative_body_terminal + S (dst_negative_sum_solve_construct_resultvaluefold) = S ((S (S (dc_input_solve_construct_result))) * fs_v_dst_solve_construct_resultvaluefoldnegative)) /\ exists fs_q_dst_solve_construct_resultvaluefoldnegative_body_terminal. fs_u_dst_solve_construct_resultvaluefoldnegative = fs_q_dst_solve_construct_resultvaluefoldnegative_body_terminal * S ((S (S (dc_input_solve_construct_result))) * fs_v_dst_solve_construct_resultvaluefoldnegative) + (dst_negative_sum_solve_construct_resultvaluefold))) /\ forall fs_i_dst_solve_construct_resultvaluefoldnegative_body_steps. (exists fs_lt_dst_solve_construct_resultvaluefoldnegative_body_steps_bound. fs_lt_dst_solve_construct_resultvaluefoldnegative_body_steps_bound + S fs_i_dst_solve_construct_resultvaluefoldnegative_body_steps = S (dc_input_solve_construct_result)) -> exists fs_a_dst_solve_construct_resultvaluefoldnegative_body_steps fs_r_dst_solve_construct_resultvaluefoldnegative_body_steps fs_s_dst_solve_construct_resultvaluefoldnegative_body_steps. ((((exists fs_h_dst_solve_construct_resultvaluefoldnegative_body_steps_summand. fs_h_dst_solve_construct_resultvaluefoldnegative_body_steps_summand + S (fs_a_dst_solve_construct_resultvaluefoldnegative_body_steps) = S ((S (fs_i_dst_solve_construct_resultvaluefoldnegative_body_steps)) * dst_negative_scale_solve_construct_resultvaluefold)) /\ exists fs_q_dst_solve_construct_resultvaluefoldnegative_body_steps_summand. dst_negative_code_solve_construct_resultvaluefold = fs_q_dst_solve_construct_resultvaluefoldnegative_body_steps_summand * S ((S (fs_i_dst_solve_construct_resultvaluefoldnegative_body_steps)) * dst_negative_scale_solve_construct_resultvaluefold) + (fs_a_dst_solve_construct_resultvaluefoldnegative_body_steps))) /\ ((((exists fs_h_dst_solve_construct_resultvaluefoldnegative_body_steps_partial. fs_h_dst_solve_construct_resultvaluefoldnegative_body_steps_partial + S (fs_r_dst_solve_construct_resultvaluefoldnegative_body_steps) = S ((S (fs_i_dst_solve_construct_resultvaluefoldnegative_body_steps)) * fs_v_dst_solve_construct_resultvaluefoldnegative)) /\ exists fs_q_dst_solve_construct_resultvaluefoldnegative_body_steps_partial. fs_u_dst_solve_construct_resultvaluefoldnegative = fs_q_dst_solve_construct_resultvaluefoldnegative_body_steps_partial * S ((S (fs_i_dst_solve_construct_resultvaluefoldnegative_body_steps)) * fs_v_dst_solve_construct_resultvaluefoldnegative) + (fs_r_dst_solve_construct_resultvaluefoldnegative_body_steps))) /\ ((((exists fs_h_dst_solve_construct_resultvaluefoldnegative_body_steps_successor. fs_h_dst_solve_construct_resultvaluefoldnegative_body_steps_successor + S (fs_s_dst_solve_construct_resultvaluefoldnegative_body_steps) = S ((S (S fs_i_dst_solve_construct_resultvaluefoldnegative_body_steps)) * fs_v_dst_solve_construct_resultvaluefoldnegative)) /\ exists fs_q_dst_solve_construct_resultvaluefoldnegative_body_steps_successor. fs_u_dst_solve_construct_resultvaluefoldnegative = fs_q_dst_solve_construct_resultvaluefoldnegative_body_steps_successor * S ((S (S fs_i_dst_solve_construct_resultvaluefoldnegative_body_steps)) * fs_v_dst_solve_construct_resultvaluefoldnegative) + (fs_s_dst_solve_construct_resultvaluefoldnegative_body_steps))) /\ fs_s_dst_solve_construct_resultvaluefoldnegative_body_steps = fs_r_dst_solve_construct_resultvaluefoldnegative_body_steps + fs_a_dst_solve_construct_resultvaluefoldnegative_body_steps)))))) /\ (exists ge_balance_positive_solve_construct_resultvaluefoldresult ge_balance_negative_solve_construct_resultvaluefoldresult. (((((dc_output_solve_construct_result) = 2 * (ge_balance_positive_solve_construct_resultvaluefoldresult) /\ (ge_balance_negative_solve_construct_resultvaluefoldresult) = 0) \/ exists ge_signed_half_solve_construct_resultvaluefoldresultdecode. (((dc_output_solve_construct_result) = 2 * ge_signed_half_solve_construct_resultvaluefoldresultdecode + 1 /\ (ge_balance_positive_solve_construct_resultvaluefoldresult) = 0) /\ (ge_balance_negative_solve_construct_resultvaluefoldresult) = S ge_signed_half_solve_construct_resultvaluefoldresultdecode))) /\ ((dst_positive_sum_solve_construct_resultvaluefold) + ge_balance_negative_solve_construct_resultvaluefoldresult = (dst_negative_sum_solve_construct_resultvaluefold) + ge_balance_positive_solve_construct_resultvaluefoldresult)))))))))))))))))))) /\ (exists dst_positive_code_solve_construct_zero dst_positive_scale_solve_construct_zero dst_negative_code_solve_construct_zero dst_negative_scale_solve_construct_zero dst_positive_solve_construct_zero dst_negative_solve_construct_zero. (((G) = (((((dst_positive_code_solve_construct_zero) + (dst_positive_scale_solve_construct_zero)) * S ((dst_positive_code_solve_construct_zero) + (dst_positive_scale_solve_construct_zero)) + ((dst_positive_scale_solve_construct_zero) + (dst_positive_scale_solve_construct_zero))) + (((dst_negative_code_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)) * S ((dst_negative_code_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)) + ((dst_negative_scale_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)))) * S ((((dst_positive_code_solve_construct_zero) + (dst_positive_scale_solve_construct_zero)) * S ((dst_positive_code_solve_construct_zero) + (dst_positive_scale_solve_construct_zero)) + ((dst_positive_scale_solve_construct_zero) + (dst_positive_scale_solve_construct_zero))) + (((dst_negative_code_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)) * S ((dst_negative_code_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)) + ((dst_negative_scale_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)))) + ((((dst_negative_code_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)) * S ((dst_negative_code_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)) + ((dst_negative_scale_solve_construct_zero) + (dst_negative_scale_solve_construct_zero))) + (((dst_negative_code_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)) * S ((dst_negative_code_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)) + ((dst_negative_scale_solve_construct_zero) + (dst_negative_scale_solve_construct_zero)))))) /\ (((((exists ff_h_pvs_solve_construct_zeropositive. ff_h_pvs_solve_construct_zeropositive + S (dst_positive_solve_construct_zero) = S ((S (0)) * dst_positive_scale_solve_construct_zero)) /\ exists ff_q_pvs_solve_construct_zeropositive. dst_positive_code_solve_construct_zero = ff_q_pvs_solve_construct_zeropositive * S ((S (0)) * dst_positive_scale_solve_construct_zero) + (dst_positive_solve_construct_zero))) /\ (((((exists ff_h_pvs_solve_construct_zeronegative. ff_h_pvs_solve_construct_zeronegative + S (dst_negative_solve_construct_zero) = S ((S (0)) * dst_negative_scale_solve_construct_zero)) /\ exists ff_q_pvs_solve_construct_zeronegative. dst_negative_code_solve_construct_zero = ff_q_pvs_solve_construct_zeronegative * S ((S (0)) * dst_negative_scale_solve_construct_zero) + (dst_negative_solve_construct_zero))) /\ (exists ge_balance_positive_solve_construct_zerovalue ge_balance_negative_solve_construct_zerovalue. (((((w) = 2 * (ge_balance_positive_solve_construct_zerovalue) /\ (ge_balance_negative_solve_construct_zerovalue) = 0) \/ exists ge_signed_half_solve_construct_zerovaluedecode. (((w) = 2 * ge_signed_half_solve_construct_zerovaluedecode + 1 /\ (ge_balance_positive_solve_construct_zerovalue) = 0) /\ (ge_balance_negative_solve_construct_zerovalue) = S ge_signed_half_solve_construct_zerovaluedecode))) /\ ((dst_positive_solve_construct_zero) + ge_balance_negative_solve_construct_zerovalue = (dst_negative_solve_construct_zero) + ge_balance_positive_solve_construct_zerovalue))))))))))

Complete tactic proof in conservative notation

All 88 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

88 script commands · 20 reading checkpoints · 3 local claims

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

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

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

  1. L1
    intro N
02Induction on NL2–10

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L2
    induction N
  2. L3
    intro F
  3. L4
    intro T
  4. L5
    intro u
  5. L6
    intro w
  6. L7
    intro hF
  7. L8
    intro hT
  8. L9
    intro hu
  9. L10
    intro hunit
03Establish hgL11–13

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

  1. L11
    have hg : ∃ G. ArithTable(0,G) ∧ ArithAt(G,0,w)Definitions: ArithTable(0,G)ArithAt(G,0,w)Original native command in the exact edition
  2. L12
    specialize arithmetic_signed_table_singleton (w)
  3. L13
    apply arithmetic_signed_table_singleton
04Separate the logical casesL14–15

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

  1. L14
    cases hg
  2. L15
    cases hg_witness
05Construct an explicit witnessL16–16

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

  1. L16
    exists x
06Separate the logical casesL17–17

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

  1. L17
    split
07Use earlier factsL18–25

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

  1. L18
    specialize dirichlet_convolution_table_zero_constructor (x)
  2. L19
    specialize dirichlet_convolution_table_zero_constructor (F)
  3. L20
    specialize dirichlet_convolution_table_zero_constructor (T)
  4. L21
    apply dirichlet_convolution_table_zero_constructor
  5. L22
    exact hg_witness_left
  6. L23
    exact hF
  7. L24
    exact hT
  8. L25
    exact hg_witness_right
08Fix variables and assumptionsL26–33

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

  1. L26
    intro F
  2. L27
    intro T
  3. L28
    intro u
  4. L29
    intro w
  5. L30
    intro hF
  6. L31
    intro hT
  7. L32
    intro hu
  8. L33
    intro hunit
09Establish hpL34–43

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

  1. L34
    have hp : ∃ G. DirichletTable(N,G,F,T) ∧ ArithAt(G,0,w)Definitions: DirichletTable(N,G,F,T)ArithAt(G,0,w)Original native command in the exact edition
  2. L35
    specialize IH (F)
  3. L36
    specialize IH (T)
  4. L37
    specialize IH (u)
  5. L38
    specialize IH (w)
  6. L39
    apply IH
  7. L40
    specialize signed_table_domain_resize (S N)
  8. L41
    specialize signed_table_domain_resize (N)
  9. L42
    specialize signed_table_domain_resize (F)
  10. L43
    apply signed_table_domain_resize
10Use earlier factsL44–51

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

  1. L44
    exact hF
  2. L45
    specialize signed_table_domain_resize (S N)
  3. L46
    specialize signed_table_domain_resize (N)
  4. L47
    specialize signed_table_domain_resize (T)
  5. L48
    apply signed_table_domain_resize
  6. L49
    exact hT
  7. L50
    exact hu
  8. L51
    exact hunit
11Separate the logical casesL52–53

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

  1. L52
    cases hp
  2. L53
    cases hp_witness
12Establish hxL54–63

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply dirichlet unit equation append.

  1. L54
    have hx : ∃ H. DirichletTable(S N,H,F,T) ∧ ArithTableEqual(x,H,S N)Definitions: DirichletTable(S N,H,F,T)ArithTableEqual(x,H,S N)Original native command in the exact edition
  2. L55
    specialize dirichlet_unit_equation_append (N)
  3. L56
    specialize dirichlet_unit_equation_append (F)
  4. L57
    specialize dirichlet_unit_equation_append (T)
  5. L58
    specialize dirichlet_unit_equation_append (x)
  6. L59
    specialize dirichlet_unit_equation_append (u)
  7. L60
    apply dirichlet_unit_equation_append
  8. L61
    exact hF
  9. L62
    exact hT
  10. L63
    exact hu
13Use earlier factsL64–65

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

  1. L64
    exact hunit
  2. L65
    exact hp_witness_left
14Separate the logical casesL66–67

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

  1. L66
    cases hx
  2. L67
    cases hx_witness
15Construct an explicit witnessL68–68

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

  1. L68
    exists x1
16Separate the logical casesL69–69

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

  1. L69
    split
17Use earlier factsL70–70

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

  1. L70
    exact hx_witness_left
18Separate the logical casesL71–71

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

  1. L71
    cases hx_witness_left
19Use earlier factsL72–81

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

  1. L72
    specialize arithmetic_signed_table_equal_entry_transport (S N)
  2. L73
    specialize arithmetic_signed_table_equal_entry_transport (x)
  3. L74
    specialize arithmetic_signed_table_equal_entry_transport (x1)
  4. L75
    specialize arithmetic_signed_table_equal_entry_transport (S N)
  5. L76
    specialize arithmetic_signed_table_equal_entry_transport (0)
  6. L77
    specialize arithmetic_signed_table_equal_entry_transport (w)
  7. L78
    apply arithmetic_signed_table_equal_entry_transport
  8. L79
    exact hx_witness_left_left
  9. L80
    exact hx_witness_right
  10. L81
    specialize zero_le (S N)
20Use earlier factsL82–88

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

  1. L82
    apply zero_le
  2. L83
    specialize succ_le_succ (0)
  3. L84
    specialize succ_le_succ (N)
  4. L85
    apply succ_le_succ
  5. L86
    specialize zero_le (N)
  6. L87
    apply zero_le
  7. L88
    exact hp_witness_right

Library-wide reading audit

Original defined command ledger · 88 lines
  1. 0001intro N
  2. 0002induction N
  3. 0003intro F
  4. 0004intro T
  5. 0005intro u
  6. 0006intro w
  7. 0007intro hF
  8. 0008intro hT
  9. 0009intro hu
  10. 0010intro hunit
  11. 0011have hg : ∃ G. ArithTable(0,G)ArithAt(G,0,w)
  12. 0012specialize arithmetic_signed_table_singleton (w)
  13. 0013apply arithmetic_signed_table_singleton
  14. 0014cases hg
  15. 0015cases hg_witness
  16. 0016exists x
  17. 0017split
  18. 0018specialize dirichlet_convolution_table_zero_constructor (x)
  19. 0019specialize dirichlet_convolution_table_zero_constructor (F)
  20. 0020specialize dirichlet_convolution_table_zero_constructor (T)
  21. 0021apply dirichlet_convolution_table_zero_constructor
  22. 0022exact hg_witness_left
  23. 0023exact hF
  24. 0024exact hT
  25. 0025exact hg_witness_right
  26. 0026intro F
  27. 0027intro T
  28. 0028intro u
  29. 0029intro w
  30. 0030intro hF
  31. 0031intro hT
  32. 0032intro hu
  33. 0033intro hunit
  34. 0034have hp : ∃ G. DirichletTable(N,G,F,T)ArithAt(G,0,w)
  35. 0035specialize IH (F)
  36. 0036specialize IH (T)
  37. 0037specialize IH (u)
  38. 0038specialize IH (w)
  39. 0039apply IH
  40. 0040specialize signed_table_domain_resize (S N)
  41. 0041specialize signed_table_domain_resize (N)
  42. 0042specialize signed_table_domain_resize (F)
  43. 0043apply signed_table_domain_resize
  44. 0044exact hF
  45. 0045specialize signed_table_domain_resize (S N)
  46. 0046specialize signed_table_domain_resize (N)
  47. 0047specialize signed_table_domain_resize (T)
  48. 0048apply signed_table_domain_resize
  49. 0049exact hT
  50. 0050exact hu
  51. 0051exact hunit
  52. 0052cases hp
  53. 0053cases hp_witness
  54. 0054have hx : ∃ H. DirichletTable(S N,H,F,T)ArithTableEqual(x,H,S N)
  55. 0055specialize dirichlet_unit_equation_append (N)
  56. 0056specialize dirichlet_unit_equation_append (F)
  57. 0057specialize dirichlet_unit_equation_append (T)
  58. 0058specialize dirichlet_unit_equation_append (x)
  59. 0059specialize dirichlet_unit_equation_append (u)
  60. 0060apply dirichlet_unit_equation_append
  61. 0061exact hF
  62. 0062exact hT
  63. 0063exact hu
  64. 0064exact hunit
  65. 0065exact hp_witness_left
  66. 0066cases hx
  67. 0067cases hx_witness
  68. 0068exists x1
  69. 0069split
  70. 0070exact hx_witness_left
  71. 0071cases hx_witness_left
  72. 0072specialize arithmetic_signed_table_equal_entry_transport (S N)
  73. 0073specialize arithmetic_signed_table_equal_entry_transport (x)
  74. 0074specialize arithmetic_signed_table_equal_entry_transport (x1)
  75. 0075specialize arithmetic_signed_table_equal_entry_transport (S N)
  76. 0076specialize arithmetic_signed_table_equal_entry_transport (0)
  77. 0077specialize arithmetic_signed_table_equal_entry_transport (w)
  78. 0078apply arithmetic_signed_table_equal_entry_transport
  79. 0079exact hx_witness_left_left
  80. 0080exact hx_witness_right
  81. 0081specialize zero_le (S N)
  82. 0082apply zero_le
  83. 0083specialize succ_le_succ (0)
  84. 0084specialize succ_le_succ (N)
  85. 0085apply succ_le_succ
  86. 0086specialize zero_le (N)
  87. 0087apply zero_le
  88. 0088exact hp_witness_right