Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Exact expanded first-order arithmetic statement
forall F G H n a e. (exists dst_positive_code_choice_F dst_positive_scale_choice_F dst_negative_code_choice_F dst_negative_scale_choice_F. (((F) = (((((dst_positive_code_choice_F) + (dst_positive_scale_choice_F)) * S ((dst_positive_code_choice_F) + (dst_positive_scale_choice_F)) + ((dst_positive_scale_choice_F) + (dst_positive_scale_choice_F))) + (((dst_negative_code_choice_F) + (dst_negative_scale_choice_F)) * S ((dst_negative_code_choice_F) + (dst_negative_scale_choice_F)) + ((dst_negative_scale_choice_F) + (dst_negative_scale_choice_F)))) * S ((((dst_positive_code_choice_F) + (dst_positive_scale_choice_F)) * S ((dst_positive_code_choice_F) + (dst_positive_scale_choice_F)) + ((dst_positive_scale_choice_F) + (dst_positive_scale_choice_F))) + (((dst_negative_code_choice_F) + (dst_negative_scale_choice_F)) * S ((dst_negative_code_choice_F) + (dst_negative_scale_choice_F)) + ((dst_negative_scale_choice_F) + (dst_negative_scale_choice_F)))) + ((((dst_negative_code_choice_F) + (dst_negative_scale_choice_F)) * S ((dst_negative_code_choice_F) + (dst_negative_scale_choice_F)) + ((dst_negative_scale_choice_F) + (dst_negative_scale_choice_F))) + (((dst_negative_code_choice_F) + (dst_negative_scale_choice_F)) * S ((dst_negative_code_choice_F) + (dst_negative_scale_choice_F)) + ((dst_negative_scale_choice_F) + (dst_negative_scale_choice_F)))))) /\ (forall dst_index_choice_F. (exists pvs_le_gap_choice_Fdomain. pvs_le_gap_choice_Fdomain + (dst_index_choice_F) = (0)) -> exists dst_positive_choice_F dst_negative_choice_F dst_value_choice_F. ((((exists ff_h_pvs_choice_Fentrypositive. ff_h_pvs_choice_Fentrypositive + S (dst_positive_choice_F) = S ((S (dst_index_choice_F)) * dst_positive_scale_choice_F)) /\ exists ff_q_pvs_choice_Fentrypositive. dst_positive_code_choice_F = ff_q_pvs_choice_Fentrypositive * S ((S (dst_index_choice_F)) * dst_positive_scale_choice_F) + (dst_positive_choice_F))) /\ (((((exists ff_h_pvs_choice_Fentrynegative. ff_h_pvs_choice_Fentrynegative + S (dst_negative_choice_F) = S ((S (dst_index_choice_F)) * dst_negative_scale_choice_F)) /\ exists ff_q_pvs_choice_Fentrynegative. dst_negative_code_choice_F = ff_q_pvs_choice_Fentrynegative * S ((S (dst_index_choice_F)) * dst_negative_scale_choice_F) + (dst_negative_choice_F))) /\ (exists ge_balance_positive_choice_Fentryvalue ge_balance_negative_choice_Fentryvalue. (((((dst_value_choice_F) = 2 * (ge_balance_positive_choice_Fentryvalue) /\ (ge_balance_negative_choice_Fentryvalue) = 0) \/ exists ge_signed_half_choice_Fentryvaluedecode. (((dst_value_choice_F) = 2 * ge_signed_half_choice_Fentryvaluedecode + 1 /\ (ge_balance_positive_choice_Fentryvalue) = 0) /\ (ge_balance_negative_choice_Fentryvalue) = S ge_signed_half_choice_Fentryvaluedecode))) /\ ((dst_positive_choice_F) + ge_balance_negative_choice_Fentryvalue = (dst_negative_choice_F) + ge_balance_positive_choice_Fentryvalue))))))))) -> (exists dst_positive_code_choice_G dst_positive_scale_choice_G dst_negative_code_choice_G dst_negative_scale_choice_G. (((G) = (((((dst_positive_code_choice_G) + (dst_positive_scale_choice_G)) * S ((dst_positive_code_choice_G) + (dst_positive_scale_choice_G)) + ((dst_positive_scale_choice_G) + (dst_positive_scale_choice_G))) + (((dst_negative_code_choice_G) + (dst_negative_scale_choice_G)) * S ((dst_negative_code_choice_G) + (dst_negative_scale_choice_G)) + ((dst_negative_scale_choice_G) + (dst_negative_scale_choice_G)))) * S ((((dst_positive_code_choice_G) + (dst_positive_scale_choice_G)) * S ((dst_positive_code_choice_G) + (dst_positive_scale_choice_G)) + ((dst_positive_scale_choice_G) + (dst_positive_scale_choice_G))) + (((dst_negative_code_choice_G) + (dst_negative_scale_choice_G)) * S ((dst_negative_code_choice_G) + (dst_negative_scale_choice_G)) + ((dst_negative_scale_choice_G) + (dst_negative_scale_choice_G)))) + ((((dst_negative_code_choice_G) + (dst_negative_scale_choice_G)) * S ((dst_negative_code_choice_G) + (dst_negative_scale_choice_G)) + ((dst_negative_scale_choice_G) + (dst_negative_scale_choice_G))) + (((dst_negative_code_choice_G) + (dst_negative_scale_choice_G)) * S ((dst_negative_code_choice_G) + (dst_negative_scale_choice_G)) + ((dst_negative_scale_choice_G) + (dst_negative_scale_choice_G)))))) /\ (forall dst_index_choice_G. (exists pvs_le_gap_choice_Gdomain. pvs_le_gap_choice_Gdomain + (dst_index_choice_G) = (0)) -> exists dst_positive_choice_G dst_negative_choice_G dst_value_choice_G. ((((exists ff_h_pvs_choice_Gentrypositive. ff_h_pvs_choice_Gentrypositive + S (dst_positive_choice_G) = S ((S (dst_index_choice_G)) * dst_positive_scale_choice_G)) /\ exists ff_q_pvs_choice_Gentrypositive. dst_positive_code_choice_G = ff_q_pvs_choice_Gentrypositive * S ((S (dst_index_choice_G)) * dst_positive_scale_choice_G) + (dst_positive_choice_G))) /\ (((((exists ff_h_pvs_choice_Gentrynegative. ff_h_pvs_choice_Gentrynegative + S (dst_negative_choice_G) = S ((S (dst_index_choice_G)) * dst_negative_scale_choice_G)) /\ exists ff_q_pvs_choice_Gentrynegative. dst_negative_code_choice_G = ff_q_pvs_choice_Gentrynegative * S ((S (dst_index_choice_G)) * dst_negative_scale_choice_G) + (dst_negative_choice_G))) /\ (exists ge_balance_positive_choice_Gentryvalue ge_balance_negative_choice_Gentryvalue. (((((dst_value_choice_G) = 2 * (ge_balance_positive_choice_Gentryvalue) /\ (ge_balance_negative_choice_Gentryvalue) = 0) \/ exists ge_signed_half_choice_Gentryvaluedecode. (((dst_value_choice_G) = 2 * ge_signed_half_choice_Gentryvaluedecode + 1 /\ (ge_balance_positive_choice_Gentryvalue) = 0) /\ (ge_balance_negative_choice_Gentryvalue) = S ge_signed_half_choice_Gentryvaluedecode))) /\ ((dst_positive_choice_G) + ge_balance_negative_choice_Gentryvalue = (dst_negative_choice_G) + ge_balance_positive_choice_Gentryvalue))))))))) -> (exists dst_positive_code_choice_H dst_positive_scale_choice_H dst_negative_code_choice_H dst_negative_scale_choice_H. (((H) = (((((dst_positive_code_choice_H) + (dst_positive_scale_choice_H)) * S ((dst_positive_code_choice_H) + (dst_positive_scale_choice_H)) + ((dst_positive_scale_choice_H) + (dst_positive_scale_choice_H))) + (((dst_negative_code_choice_H) + (dst_negative_scale_choice_H)) * S ((dst_negative_code_choice_H) + (dst_negative_scale_choice_H)) + ((dst_negative_scale_choice_H) + (dst_negative_scale_choice_H)))) * S ((((dst_positive_code_choice_H) + (dst_positive_scale_choice_H)) * S ((dst_positive_code_choice_H) + (dst_positive_scale_choice_H)) + ((dst_positive_scale_choice_H) + (dst_positive_scale_choice_H))) + (((dst_negative_code_choice_H) + (dst_negative_scale_choice_H)) * S ((dst_negative_code_choice_H) + (dst_negative_scale_choice_H)) + ((dst_negative_scale_choice_H) + (dst_negative_scale_choice_H)))) + ((((dst_negative_code_choice_H) + (dst_negative_scale_choice_H)) * S ((dst_negative_code_choice_H) + (dst_negative_scale_choice_H)) + ((dst_negative_scale_choice_H) + (dst_negative_scale_choice_H))) + (((dst_negative_code_choice_H) + (dst_negative_scale_choice_H)) * S ((dst_negative_code_choice_H) + (dst_negative_scale_choice_H)) + ((dst_negative_scale_choice_H) + (dst_negative_scale_choice_H)))))) /\ (forall dst_index_choice_H. (exists pvs_le_gap_choice_Hdomain. pvs_le_gap_choice_Hdomain + (dst_index_choice_H) = (0)) -> exists dst_positive_choice_H dst_negative_choice_H dst_value_choice_H. ((((exists ff_h_pvs_choice_Hentrypositive. ff_h_pvs_choice_Hentrypositive + S (dst_positive_choice_H) = S ((S (dst_index_choice_H)) * dst_positive_scale_choice_H)) /\ exists ff_q_pvs_choice_Hentrypositive. dst_positive_code_choice_H = ff_q_pvs_choice_Hentrypositive * S ((S (dst_index_choice_H)) * dst_positive_scale_choice_H) + (dst_positive_choice_H))) /\ (((((exists ff_h_pvs_choice_Hentrynegative. ff_h_pvs_choice_Hentrynegative + S (dst_negative_choice_H) = S ((S (dst_index_choice_H)) * dst_negative_scale_choice_H)) /\ exists ff_q_pvs_choice_Hentrynegative. dst_negative_code_choice_H = ff_q_pvs_choice_Hentrynegative * S ((S (dst_index_choice_H)) * dst_negative_scale_choice_H) + (dst_negative_choice_H))) /\ (exists ge_balance_positive_choice_Hentryvalue ge_balance_negative_choice_Hentryvalue. (((((dst_value_choice_H) = 2 * (ge_balance_positive_choice_Hentryvalue) /\ (ge_balance_negative_choice_Hentryvalue) = 0) \/ exists ge_signed_half_choice_Hentryvaluedecode. (((dst_value_choice_H) = 2 * ge_signed_half_choice_Hentryvaluedecode + 1 /\ (ge_balance_positive_choice_Hentryvalue) = 0) /\ (ge_balance_negative_choice_Hentryvalue) = S ge_signed_half_choice_Hentryvaluedecode))) /\ ((dst_positive_choice_H) + ge_balance_negative_choice_Hentryvalue = (dst_negative_choice_H) + ge_balance_positive_choice_Hentryvalue))))))))) -> exists z. ((((~((a)=0)) /\ (((~((e)=0)) /\ (exists dfg_middle_choice_result dfg_first_choice_result dfg_last_choice_result dfg_value_choice_result. (((n)=((a)*(e))*dfg_middle_choice_result) /\ (((exists dst_positive_code_choice_resultfirst dst_positive_scale_choice_resultfirst dst_negative_code_choice_resultfirst dst_negative_scale_choice_resultfirst dst_positive_choice_resultfirst dst_negative_choice_resultfirst. (((F) = (((((dst_positive_code_choice_resultfirst) + (dst_positive_scale_choice_resultfirst)) * S ((dst_positive_code_choice_resultfirst) + (dst_positive_scale_choice_resultfirst)) + ((dst_positive_scale_choice_resultfirst) + (dst_positive_scale_choice_resultfirst))) + (((dst_negative_code_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)) * S ((dst_negative_code_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)) + ((dst_negative_scale_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)))) * S ((((dst_positive_code_choice_resultfirst) + (dst_positive_scale_choice_resultfirst)) * S ((dst_positive_code_choice_resultfirst) + (dst_positive_scale_choice_resultfirst)) + ((dst_positive_scale_choice_resultfirst) + (dst_positive_scale_choice_resultfirst))) + (((dst_negative_code_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)) * S ((dst_negative_code_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)) + ((dst_negative_scale_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)))) + ((((dst_negative_code_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)) * S ((dst_negative_code_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)) + ((dst_negative_scale_choice_resultfirst) + (dst_negative_scale_choice_resultfirst))) + (((dst_negative_code_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)) * S ((dst_negative_code_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)) + ((dst_negative_scale_choice_resultfirst) + (dst_negative_scale_choice_resultfirst)))))) /\ (((((exists ff_h_pvs_choice_resultfirstpositive. ff_h_pvs_choice_resultfirstpositive + S (dst_positive_choice_resultfirst) = S ((S (a)) * dst_positive_scale_choice_resultfirst)) /\ exists ff_q_pvs_choice_resultfirstpositive. dst_positive_code_choice_resultfirst = ff_q_pvs_choice_resultfirstpositive * S ((S (a)) * dst_positive_scale_choice_resultfirst) + (dst_positive_choice_resultfirst))) /\ (((((exists ff_h_pvs_choice_resultfirstnegative. ff_h_pvs_choice_resultfirstnegative + S (dst_negative_choice_resultfirst) = S ((S (a)) * dst_negative_scale_choice_resultfirst)) /\ exists ff_q_pvs_choice_resultfirstnegative. dst_negative_code_choice_resultfirst = ff_q_pvs_choice_resultfirstnegative * S ((S (a)) * dst_negative_scale_choice_resultfirst) + (dst_negative_choice_resultfirst))) /\ (exists ge_balance_positive_choice_resultfirstvalue ge_balance_negative_choice_resultfirstvalue. (((((dfg_first_choice_result) = 2 * (ge_balance_positive_choice_resultfirstvalue) /\ (ge_balance_negative_choice_resultfirstvalue) = 0) \/ exists ge_signed_half_choice_resultfirstvaluedecode. (((dfg_first_choice_result) = 2 * ge_signed_half_choice_resultfirstvaluedecode + 1 /\ (ge_balance_positive_choice_resultfirstvalue) = 0) /\ (ge_balance_negative_choice_resultfirstvalue) = S ge_signed_half_choice_resultfirstvaluedecode))) /\ ((dst_positive_choice_resultfirst) + ge_balance_negative_choice_resultfirstvalue = (dst_negative_choice_resultfirst) + ge_balance_positive_choice_resultfirstvalue))))))))) /\ (((exists dst_positive_code_choice_resultlast dst_positive_scale_choice_resultlast dst_negative_code_choice_resultlast dst_negative_scale_choice_resultlast dst_positive_choice_resultlast dst_negative_choice_resultlast. (((H) = (((((dst_positive_code_choice_resultlast) + (dst_positive_scale_choice_resultlast)) * S ((dst_positive_code_choice_resultlast) + (dst_positive_scale_choice_resultlast)) + ((dst_positive_scale_choice_resultlast) + (dst_positive_scale_choice_resultlast))) + (((dst_negative_code_choice_resultlast) + (dst_negative_scale_choice_resultlast)) * S ((dst_negative_code_choice_resultlast) + (dst_negative_scale_choice_resultlast)) + ((dst_negative_scale_choice_resultlast) + (dst_negative_scale_choice_resultlast)))) * S ((((dst_positive_code_choice_resultlast) + (dst_positive_scale_choice_resultlast)) * S ((dst_positive_code_choice_resultlast) + (dst_positive_scale_choice_resultlast)) + ((dst_positive_scale_choice_resultlast) + (dst_positive_scale_choice_resultlast))) + (((dst_negative_code_choice_resultlast) + (dst_negative_scale_choice_resultlast)) * S ((dst_negative_code_choice_resultlast) + (dst_negative_scale_choice_resultlast)) + ((dst_negative_scale_choice_resultlast) + (dst_negative_scale_choice_resultlast)))) + ((((dst_negative_code_choice_resultlast) + (dst_negative_scale_choice_resultlast)) * S ((dst_negative_code_choice_resultlast) + (dst_negative_scale_choice_resultlast)) + ((dst_negative_scale_choice_resultlast) + (dst_negative_scale_choice_resultlast))) + (((dst_negative_code_choice_resultlast) + (dst_negative_scale_choice_resultlast)) * S ((dst_negative_code_choice_resultlast) + (dst_negative_scale_choice_resultlast)) + ((dst_negative_scale_choice_resultlast) + (dst_negative_scale_choice_resultlast)))))) /\ (((((exists ff_h_pvs_choice_resultlastpositive. ff_h_pvs_choice_resultlastpositive + S (dst_positive_choice_resultlast) = S ((S (e)) * dst_positive_scale_choice_resultlast)) /\ exists ff_q_pvs_choice_resultlastpositive. dst_positive_code_choice_resultlast = ff_q_pvs_choice_resultlastpositive * S ((S (e)) * dst_positive_scale_choice_resultlast) + (dst_positive_choice_resultlast))) /\ (((((exists ff_h_pvs_choice_resultlastnegative. ff_h_pvs_choice_resultlastnegative + S (dst_negative_choice_resultlast) = S ((S (e)) * dst_negative_scale_choice_resultlast)) /\ exists ff_q_pvs_choice_resultlastnegative. dst_negative_code_choice_resultlast = ff_q_pvs_choice_resultlastnegative * S ((S (e)) * dst_negative_scale_choice_resultlast) + (dst_negative_choice_resultlast))) /\ (exists ge_balance_positive_choice_resultlastvalue ge_balance_negative_choice_resultlastvalue. (((((dfg_last_choice_result) = 2 * (ge_balance_positive_choice_resultlastvalue) /\ (ge_balance_negative_choice_resultlastvalue) = 0) \/ exists ge_signed_half_choice_resultlastvaluedecode. (((dfg_last_choice_result) = 2 * ge_signed_half_choice_resultlastvaluedecode + 1 /\ (ge_balance_positive_choice_resultlastvalue) = 0) /\ (ge_balance_negative_choice_resultlastvalue) = S ge_signed_half_choice_resultlastvaluedecode))) /\ ((dst_positive_choice_resultlast) + ge_balance_negative_choice_resultlastvalue = (dst_negative_choice_resultlast) + ge_balance_positive_choice_resultlastvalue))))))))) /\ (((exists dst_positive_code_choice_resultmiddle dst_positive_scale_choice_resultmiddle dst_negative_code_choice_resultmiddle dst_negative_scale_choice_resultmiddle dst_positive_choice_resultmiddle dst_negative_choice_resultmiddle. (((G) = (((((dst_positive_code_choice_resultmiddle) + (dst_positive_scale_choice_resultmiddle)) * S ((dst_positive_code_choice_resultmiddle) + (dst_positive_scale_choice_resultmiddle)) + ((dst_positive_scale_choice_resultmiddle) + (dst_positive_scale_choice_resultmiddle))) + (((dst_negative_code_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)) * S ((dst_negative_code_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)) + ((dst_negative_scale_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)))) * S ((((dst_positive_code_choice_resultmiddle) + (dst_positive_scale_choice_resultmiddle)) * S ((dst_positive_code_choice_resultmiddle) + (dst_positive_scale_choice_resultmiddle)) + ((dst_positive_scale_choice_resultmiddle) + (dst_positive_scale_choice_resultmiddle))) + (((dst_negative_code_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)) * S ((dst_negative_code_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)) + ((dst_negative_scale_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)))) + ((((dst_negative_code_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)) * S ((dst_negative_code_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)) + ((dst_negative_scale_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle))) + (((dst_negative_code_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)) * S ((dst_negative_code_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)) + ((dst_negative_scale_choice_resultmiddle) + (dst_negative_scale_choice_resultmiddle)))))) /\ (((((exists ff_h_pvs_choice_resultmiddlepositive. ff_h_pvs_choice_resultmiddlepositive + S (dst_positive_choice_resultmiddle) = S ((S (dfg_middle_choice_result)) * dst_positive_scale_choice_resultmiddle)) /\ exists ff_q_pvs_choice_resultmiddlepositive. dst_positive_code_choice_resultmiddle = ff_q_pvs_choice_resultmiddlepositive * S ((S (dfg_middle_choice_result)) * dst_positive_scale_choice_resultmiddle) + (dst_positive_choice_resultmiddle))) /\ (((((exists ff_h_pvs_choice_resultmiddlenegative. ff_h_pvs_choice_resultmiddlenegative + S (dst_negative_choice_resultmiddle) = S ((S (dfg_middle_choice_result)) * dst_negative_scale_choice_resultmiddle)) /\ exists ff_q_pvs_choice_resultmiddlenegative. dst_negative_code_choice_resultmiddle = ff_q_pvs_choice_resultmiddlenegative * S ((S (dfg_middle_choice_result)) * dst_negative_scale_choice_resultmiddle) + (dst_negative_choice_resultmiddle))) /\ (exists ge_balance_positive_choice_resultmiddlevalue ge_balance_negative_choice_resultmiddlevalue. (((((dfg_value_choice_result) = 2 * (ge_balance_positive_choice_resultmiddlevalue) /\ (ge_balance_negative_choice_resultmiddlevalue) = 0) \/ exists ge_signed_half_choice_resultmiddlevaluedecode. (((dfg_value_choice_result) = 2 * ge_signed_half_choice_resultmiddlevaluedecode + 1 /\ (ge_balance_positive_choice_resultmiddlevalue) = 0) /\ (ge_balance_negative_choice_resultmiddlevalue) = S ge_signed_half_choice_resultmiddlevaluedecode))) /\ ((dst_positive_choice_resultmiddle) + ge_balance_negative_choice_resultmiddlevalue = (dst_negative_choice_resultmiddle) + ge_balance_positive_choice_resultmiddlevalue))))))))) /\ (exists dfg_inner_choice_resultproduct. ((exists sto_ap_choice_resultproductinner sto_an_choice_resultproductinner sto_bp_choice_resultproductinner sto_bn_choice_resultproductinner sto_cp_choice_resultproductinner sto_cn_choice_resultproductinner. (((((dfg_last_choice_result) = 2 * (sto_ap_choice_resultproductinner) /\ (sto_an_choice_resultproductinner) = 0) \/ exists ge_signed_half_choice_resultproductinnerleft. (((dfg_last_choice_result) = 2 * ge_signed_half_choice_resultproductinnerleft + 1 /\ (sto_ap_choice_resultproductinner) = 0) /\ (sto_an_choice_resultproductinner) = S ge_signed_half_choice_resultproductinnerleft))) /\ ((((((dfg_value_choice_result) = 2 * (sto_bp_choice_resultproductinner) /\ (sto_bn_choice_resultproductinner) = 0) \/ exists ge_signed_half_choice_resultproductinnerright. (((dfg_value_choice_result) = 2 * ge_signed_half_choice_resultproductinnerright + 1 /\ (sto_bp_choice_resultproductinner) = 0) /\ (sto_bn_choice_resultproductinner) = S ge_signed_half_choice_resultproductinnerright))) /\ ((((((dfg_inner_choice_resultproduct) = 2 * (sto_cp_choice_resultproductinner) /\ (sto_cn_choice_resultproductinner) = 0) \/ exists ge_signed_half_choice_resultproductinneroutput. (((dfg_inner_choice_resultproduct) = 2 * ge_signed_half_choice_resultproductinneroutput + 1 /\ (sto_cp_choice_resultproductinner) = 0) /\ (sto_cn_choice_resultproductinner) = S ge_signed_half_choice_resultproductinneroutput))) /\ ((sto_ap_choice_resultproductinner * sto_bp_choice_resultproductinner + sto_an_choice_resultproductinner * sto_bn_choice_resultproductinner) + sto_cn_choice_resultproductinner = (sto_ap_choice_resultproductinner * sto_bn_choice_resultproductinner + sto_an_choice_resultproductinner * sto_bp_choice_resultproductinner) + sto_cp_choice_resultproductinner))))))) /\ (exists sto_ap_choice_resultproductouter sto_an_choice_resultproductouter sto_bp_choice_resultproductouter sto_bn_choice_resultproductouter sto_cp_choice_resultproductouter sto_cn_choice_resultproductouter. (((((dfg_first_choice_result) = 2 * (sto_ap_choice_resultproductouter) /\ (sto_an_choice_resultproductouter) = 0) \/ exists ge_signed_half_choice_resultproductouterleft. (((dfg_first_choice_result) = 2 * ge_signed_half_choice_resultproductouterleft + 1 /\ (sto_ap_choice_resultproductouter) = 0) /\ (sto_an_choice_resultproductouter) = S ge_signed_half_choice_resultproductouterleft))) /\ ((((((dfg_inner_choice_resultproduct) = 2 * (sto_bp_choice_resultproductouter) /\ (sto_bn_choice_resultproductouter) = 0) \/ exists ge_signed_half_choice_resultproductouterright. (((dfg_inner_choice_resultproduct) = 2 * ge_signed_half_choice_resultproductouterright + 1 /\ (sto_bp_choice_resultproductouter) = 0) /\ (sto_bn_choice_resultproductouter) = S ge_signed_half_choice_resultproductouterright))) /\ ((((((z) = 2 * (sto_cp_choice_resultproductouter) /\ (sto_cn_choice_resultproductouter) = 0) \/ exists ge_signed_half_choice_resultproductouteroutput. (((z) = 2 * ge_signed_half_choice_resultproductouteroutput + 1 /\ (sto_cp_choice_resultproductouter) = 0) /\ (sto_cn_choice_resultproductouter) = S ge_signed_half_choice_resultproductouteroutput))) /\ ((sto_ap_choice_resultproductouter * sto_bp_choice_resultproductouter + sto_an_choice_resultproductouter * sto_bn_choice_resultproductouter) + sto_cn_choice_resultproductouter = (sto_ap_choice_resultproductouter * sto_bn_choice_resultproductouter + sto_an_choice_resultproductouter * sto_bp_choice_resultproductouter) + sto_cp_choice_resultproductouter))))))))))))))))))))) \/ ((((a)=0 \/ ((e)=0 \/ ~(exists pvs_factor_choice_resultomittednondivisor. (n) = ((a)*(e)) * pvs_factor_choice_resultomittednondivisor))) /\ ((z)=0))))Constructive proof overview
Generated structural guide
Constructively decide the factor guards, extract the actual middle factor, and construct three signed lookups and both products.
The unchanged tactic script uses 7 declared prerequisites and contains 117 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
eq_decidable Stable theorem; checked-use authorized DF0001 dirichlet_grid_entry_omitted multiple_decidable_nonzero Stable theorem; checked-use authorized mul_ne_zero Stable theorem; checked-use authorized signed_table_lookup_any Alpha theorem; checked-use authorized signed_mul_total Alpha theorem; checked-use authorized DF0002 dirichlet_grid_entry_from_factorizationDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (2)
01Fix variables and assumptionsL1–9
02Establish haL10–13
03Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L14
cases ha
04Construct an explicit witnessL15–15
Supply the displayed value, then prove that it has the required property.
- L15
exists 0
05Use earlier factsL16–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
specialize dirichlet_grid_entry_omitted (F) - L17
specialize dirichlet_grid_entry_omitted (G) - L18
specialize dirichlet_grid_entry_omitted (H) - L19
specialize dirichlet_grid_entry_omitted (n) - L20
specialize dirichlet_grid_entry_omitted (a) - L21
specialize dirichlet_grid_entry_omitted (e) - L22
apply dirichlet_grid_entry_omitted
06Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
left
07Use earlier factsL24–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L24
exact ha_left
08Establish heL25–28
09Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
cases he
10Construct an explicit witnessL30–30
Supply the displayed value, then prove that it has the required property.
- L30
exists 0
11Use earlier factsL31–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
specialize dirichlet_grid_entry_omitted (F) - L32
specialize dirichlet_grid_entry_omitted (G) - L33
specialize dirichlet_grid_entry_omitted (H) - L34
specialize dirichlet_grid_entry_omitted (n) - L35
specialize dirichlet_grid_entry_omitted (a) - L36
specialize dirichlet_grid_entry_omitted (e) - L37
apply dirichlet_grid_entry_omitted
12Separate the logical casesL38–39
13Use earlier factsL40–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
exact he_left
14Establish hdL41–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply multiple decidable nonzero.
- L41
have hd : (exists pvs_factor_choice_yes. (n) = (a*e) * pvs_factor_choice_yes) \/ ~(exists pvs_factor_choice_no. (n) = (a*e) * pvs_factor_choice_no) - L42
specialize multiple_decidable_nonzero (a*e) - L43
specialize multiple_decidable_nonzero (n) - L44
apply multiple_decidable_nonzero - L45
intro hmulzero - L46
specialize mul_ne_zero (a) - L47
specialize mul_ne_zero (e) - L48
apply mul_ne_zero - L49
exact ha_right - L50
exact he_right
15Use earlier factsL51–51
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
exact hmulzero
16Separate the logical casesL52–53
17Establish huL54–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
18Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hu
19Establish hvL61–66
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
20Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
cases hv
21Establish hwL68–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
22Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
cases hw
23Establish hiL75–78
24Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
cases hi
25Establish hoL80–83
26Separate the logical casesL84–84
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L84
cases ho
27Construct an explicit witnessL85–85
Supply the displayed value, then prove that it has the required property.
- L85
exists x5
28Use earlier factsL86–95
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L86
specialize dirichlet_grid_entry_from_factorization (F) - L87
specialize dirichlet_grid_entry_from_factorization (G) - L88
specialize dirichlet_grid_entry_from_factorization (H) - L89
specialize dirichlet_grid_entry_from_factorization (n) - L90
specialize dirichlet_grid_entry_from_factorization (a) - L91
specialize dirichlet_grid_entry_from_factorization (e) - L92
specialize dirichlet_grid_entry_from_factorization (x) - L93
specialize dirichlet_grid_entry_from_factorization (x1) - L94
specialize dirichlet_grid_entry_from_factorization (x2) - L95
specialize dirichlet_grid_entry_from_factorization (x3)
29Use earlier factsL96–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L96
specialize dirichlet_grid_entry_from_factorization (x4) - L97
specialize dirichlet_grid_entry_from_factorization (x5) - L98
apply dirichlet_grid_entry_from_factorization - L99
exact ha_right - L100
exact he_right - L101
exact hd_left_witness - L102
exact hu_witness - L103
exact hv_witness - L104
exact hw_witness - L105
exact hi_witness
30Use earlier factsL106–106
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L106
exact ho_witness
31Construct an explicit witnessL107–107
Supply the displayed value, then prove that it has the required property.
- L107
exists 0
32Use earlier factsL108–114
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L108
specialize dirichlet_grid_entry_omitted (F) - L109
specialize dirichlet_grid_entry_omitted (G) - L110
specialize dirichlet_grid_entry_omitted (H) - L111
specialize dirichlet_grid_entry_omitted (n) - L112
specialize dirichlet_grid_entry_omitted (a) - L113
specialize dirichlet_grid_entry_omitted (e) - L114
apply dirichlet_grid_entry_omitted
33Separate the logical casesL115–116
34Use earlier factsL117–117
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L117
exact hd_right
Original exact command ledger · 117 lines
- 0001
intro F - 0002
intro G - 0003
intro H - 0004
intro n - 0005
intro a - 0006
intro e - 0007
intro hF - 0008
intro hG - 0009
intro hH - 0010
have ha : a=0 \/ ~(a=0) - 0011
specialize eq_decidable (a) - 0012
specialize eq_decidable (0) - 0013
apply eq_decidable - 0014
cases ha - 0015
exists 0 - 0016
specialize dirichlet_grid_entry_omitted (F) - 0017
specialize dirichlet_grid_entry_omitted (G) - 0018
specialize dirichlet_grid_entry_omitted (H) - 0019
specialize dirichlet_grid_entry_omitted (n) - 0020
specialize dirichlet_grid_entry_omitted (a) - 0021
specialize dirichlet_grid_entry_omitted (e) - 0022
apply dirichlet_grid_entry_omitted - 0023
left - 0024
exact ha_left - 0025
have he : e=0 \/ ~(e=0) - 0026
specialize eq_decidable (e) - 0027
specialize eq_decidable (0) - 0028
apply eq_decidable - 0029
cases he - 0030
exists 0 - 0031
specialize dirichlet_grid_entry_omitted (F) - 0032
specialize dirichlet_grid_entry_omitted (G) - 0033
specialize dirichlet_grid_entry_omitted (H) - 0034
specialize dirichlet_grid_entry_omitted (n) - 0035
specialize dirichlet_grid_entry_omitted (a) - 0036
specialize dirichlet_grid_entry_omitted (e) - 0037
apply dirichlet_grid_entry_omitted - 0038
right - 0039
left - 0040
exact he_left - 0041
have hd : (exists pvs_factor_choice_yes. (n) = (a*e) * pvs_factor_choice_yes) \/ ~(exists pvs_factor_choice_no. (n) = (a*e) * pvs_factor_choice_no) - 0042
specialize multiple_decidable_nonzero (a*e) - 0043
specialize multiple_decidable_nonzero (n) - 0044
apply multiple_decidable_nonzero - 0045
intro hmulzero - 0046
specialize mul_ne_zero (a) - 0047
specialize mul_ne_zero (e) - 0048
apply mul_ne_zero - 0049
exact ha_right - 0050
exact he_right - 0051
exact hmulzero - 0052
cases hd - 0053
cases hd_left - 0054
have hu : exists z. (exists dst_positive_code_choice_u dst_positive_scale_choice_u dst_negative_code_choice_u dst_negative_scale_choice_u dst_positive_choice_u dst_negative_choice_u. (((F) = (((((dst_positive_code_choice_u) + (dst_positive_scale_choice_u)) * S ((dst_positive_code_choice_u) + (dst_positive_scale_choice_u)) + ((dst_positive_scale_choice_u) + (dst_positive_scale_choice_u))) + (((dst_negative_code_choice_u) + (dst_negative_scale_choice_u)) * S ((dst_negative_code_choice_u) + (dst_negative_scale_choice_u)) + ((dst_negative_scale_choice_u) + (dst_negative_scale_choice_u)))) * S ((((dst_positive_code_choice_u) + (dst_positive_scale_choice_u)) * S ((dst_positive_code_choice_u) + (dst_positive_scale_choice_u)) + ((dst_positive_scale_choice_u) + (dst_positive_scale_choice_u))) + (((dst_negative_code_choice_u) + (dst_negative_scale_choice_u)) * S ((dst_negative_code_choice_u) + (dst_negative_scale_choice_u)) + ((dst_negative_scale_choice_u) + (dst_negative_scale_choice_u)))) + ((((dst_negative_code_choice_u) + (dst_negative_scale_choice_u)) * S ((dst_negative_code_choice_u) + (dst_negative_scale_choice_u)) + ((dst_negative_scale_choice_u) + (dst_negative_scale_choice_u))) + (((dst_negative_code_choice_u) + (dst_negative_scale_choice_u)) * S ((dst_negative_code_choice_u) + (dst_negative_scale_choice_u)) + ((dst_negative_scale_choice_u) + (dst_negative_scale_choice_u)))))) /\ (((((exists ff_h_pvs_choice_upositive. ff_h_pvs_choice_upositive + S (dst_positive_choice_u) = S ((S (a)) * dst_positive_scale_choice_u)) /\ exists ff_q_pvs_choice_upositive. dst_positive_code_choice_u = ff_q_pvs_choice_upositive * S ((S (a)) * dst_positive_scale_choice_u) + (dst_positive_choice_u))) /\ (((((exists ff_h_pvs_choice_unegative. ff_h_pvs_choice_unegative + S (dst_negative_choice_u) = S ((S (a)) * dst_negative_scale_choice_u)) /\ exists ff_q_pvs_choice_unegative. dst_negative_code_choice_u = ff_q_pvs_choice_unegative * S ((S (a)) * dst_negative_scale_choice_u) + (dst_negative_choice_u))) /\ (exists ge_balance_positive_choice_uvalue ge_balance_negative_choice_uvalue. (((((z) = 2 * (ge_balance_positive_choice_uvalue) /\ (ge_balance_negative_choice_uvalue) = 0) \/ exists ge_signed_half_choice_uvaluedecode. (((z) = 2 * ge_signed_half_choice_uvaluedecode + 1 /\ (ge_balance_positive_choice_uvalue) = 0) /\ (ge_balance_negative_choice_uvalue) = S ge_signed_half_choice_uvaluedecode))) /\ ((dst_positive_choice_u) + ge_balance_negative_choice_uvalue = (dst_negative_choice_u) + ge_balance_positive_choice_uvalue))))))))) - 0055
specialize signed_table_lookup_any (0) - 0056
specialize signed_table_lookup_any (F) - 0057
specialize signed_table_lookup_any (a) - 0058
apply signed_table_lookup_any - 0059
exact hF - 0060
cases hu - 0061
have hv : exists z. (exists dst_positive_code_choice_v dst_positive_scale_choice_v dst_negative_code_choice_v dst_negative_scale_choice_v dst_positive_choice_v dst_negative_choice_v. (((H) = (((((dst_positive_code_choice_v) + (dst_positive_scale_choice_v)) * S ((dst_positive_code_choice_v) + (dst_positive_scale_choice_v)) + ((dst_positive_scale_choice_v) + (dst_positive_scale_choice_v))) + (((dst_negative_code_choice_v) + (dst_negative_scale_choice_v)) * S ((dst_negative_code_choice_v) + (dst_negative_scale_choice_v)) + ((dst_negative_scale_choice_v) + (dst_negative_scale_choice_v)))) * S ((((dst_positive_code_choice_v) + (dst_positive_scale_choice_v)) * S ((dst_positive_code_choice_v) + (dst_positive_scale_choice_v)) + ((dst_positive_scale_choice_v) + (dst_positive_scale_choice_v))) + (((dst_negative_code_choice_v) + (dst_negative_scale_choice_v)) * S ((dst_negative_code_choice_v) + (dst_negative_scale_choice_v)) + ((dst_negative_scale_choice_v) + (dst_negative_scale_choice_v)))) + ((((dst_negative_code_choice_v) + (dst_negative_scale_choice_v)) * S ((dst_negative_code_choice_v) + (dst_negative_scale_choice_v)) + ((dst_negative_scale_choice_v) + (dst_negative_scale_choice_v))) + (((dst_negative_code_choice_v) + (dst_negative_scale_choice_v)) * S ((dst_negative_code_choice_v) + (dst_negative_scale_choice_v)) + ((dst_negative_scale_choice_v) + (dst_negative_scale_choice_v)))))) /\ (((((exists ff_h_pvs_choice_vpositive. ff_h_pvs_choice_vpositive + S (dst_positive_choice_v) = S ((S (e)) * dst_positive_scale_choice_v)) /\ exists ff_q_pvs_choice_vpositive. dst_positive_code_choice_v = ff_q_pvs_choice_vpositive * S ((S (e)) * dst_positive_scale_choice_v) + (dst_positive_choice_v))) /\ (((((exists ff_h_pvs_choice_vnegative. ff_h_pvs_choice_vnegative + S (dst_negative_choice_v) = S ((S (e)) * dst_negative_scale_choice_v)) /\ exists ff_q_pvs_choice_vnegative. dst_negative_code_choice_v = ff_q_pvs_choice_vnegative * S ((S (e)) * dst_negative_scale_choice_v) + (dst_negative_choice_v))) /\ (exists ge_balance_positive_choice_vvalue ge_balance_negative_choice_vvalue. (((((z) = 2 * (ge_balance_positive_choice_vvalue) /\ (ge_balance_negative_choice_vvalue) = 0) \/ exists ge_signed_half_choice_vvaluedecode. (((z) = 2 * ge_signed_half_choice_vvaluedecode + 1 /\ (ge_balance_positive_choice_vvalue) = 0) /\ (ge_balance_negative_choice_vvalue) = S ge_signed_half_choice_vvaluedecode))) /\ ((dst_positive_choice_v) + ge_balance_negative_choice_vvalue = (dst_negative_choice_v) + ge_balance_positive_choice_vvalue))))))))) - 0062
specialize signed_table_lookup_any (0) - 0063
specialize signed_table_lookup_any (H) - 0064
specialize signed_table_lookup_any (e) - 0065
apply signed_table_lookup_any - 0066
exact hH - 0067
cases hv - 0068
have hw : exists z. (exists dst_positive_code_choice_w dst_positive_scale_choice_w dst_negative_code_choice_w dst_negative_scale_choice_w dst_positive_choice_w dst_negative_choice_w. (((G) = (((((dst_positive_code_choice_w) + (dst_positive_scale_choice_w)) * S ((dst_positive_code_choice_w) + (dst_positive_scale_choice_w)) + ((dst_positive_scale_choice_w) + (dst_positive_scale_choice_w))) + (((dst_negative_code_choice_w) + (dst_negative_scale_choice_w)) * S ((dst_negative_code_choice_w) + (dst_negative_scale_choice_w)) + ((dst_negative_scale_choice_w) + (dst_negative_scale_choice_w)))) * S ((((dst_positive_code_choice_w) + (dst_positive_scale_choice_w)) * S ((dst_positive_code_choice_w) + (dst_positive_scale_choice_w)) + ((dst_positive_scale_choice_w) + (dst_positive_scale_choice_w))) + (((dst_negative_code_choice_w) + (dst_negative_scale_choice_w)) * S ((dst_negative_code_choice_w) + (dst_negative_scale_choice_w)) + ((dst_negative_scale_choice_w) + (dst_negative_scale_choice_w)))) + ((((dst_negative_code_choice_w) + (dst_negative_scale_choice_w)) * S ((dst_negative_code_choice_w) + (dst_negative_scale_choice_w)) + ((dst_negative_scale_choice_w) + (dst_negative_scale_choice_w))) + (((dst_negative_code_choice_w) + (dst_negative_scale_choice_w)) * S ((dst_negative_code_choice_w) + (dst_negative_scale_choice_w)) + ((dst_negative_scale_choice_w) + (dst_negative_scale_choice_w)))))) /\ (((((exists ff_h_pvs_choice_wpositive. ff_h_pvs_choice_wpositive + S (dst_positive_choice_w) = S ((S (x)) * dst_positive_scale_choice_w)) /\ exists ff_q_pvs_choice_wpositive. dst_positive_code_choice_w = ff_q_pvs_choice_wpositive * S ((S (x)) * dst_positive_scale_choice_w) + (dst_positive_choice_w))) /\ (((((exists ff_h_pvs_choice_wnegative. ff_h_pvs_choice_wnegative + S (dst_negative_choice_w) = S ((S (x)) * dst_negative_scale_choice_w)) /\ exists ff_q_pvs_choice_wnegative. dst_negative_code_choice_w = ff_q_pvs_choice_wnegative * S ((S (x)) * dst_negative_scale_choice_w) + (dst_negative_choice_w))) /\ (exists ge_balance_positive_choice_wvalue ge_balance_negative_choice_wvalue. (((((z) = 2 * (ge_balance_positive_choice_wvalue) /\ (ge_balance_negative_choice_wvalue) = 0) \/ exists ge_signed_half_choice_wvaluedecode. (((z) = 2 * ge_signed_half_choice_wvaluedecode + 1 /\ (ge_balance_positive_choice_wvalue) = 0) /\ (ge_balance_negative_choice_wvalue) = S ge_signed_half_choice_wvaluedecode))) /\ ((dst_positive_choice_w) + ge_balance_negative_choice_wvalue = (dst_negative_choice_w) + ge_balance_positive_choice_wvalue))))))))) - 0069
specialize signed_table_lookup_any (0) - 0070
specialize signed_table_lookup_any (G) - 0071
specialize signed_table_lookup_any (x) - 0072
apply signed_table_lookup_any - 0073
exact hG - 0074
cases hw - 0075
have hi : exists r. (exists sto_ap_choice_inner sto_an_choice_inner sto_bp_choice_inner sto_bn_choice_inner sto_cp_choice_inner sto_cn_choice_inner. (((((x2) = 2 * (sto_ap_choice_inner) /\ (sto_an_choice_inner) = 0) \/ exists ge_signed_half_choice_innerleft. (((x2) = 2 * ge_signed_half_choice_innerleft + 1 /\ (sto_ap_choice_inner) = 0) /\ (sto_an_choice_inner) = S ge_signed_half_choice_innerleft))) /\ ((((((x3) = 2 * (sto_bp_choice_inner) /\ (sto_bn_choice_inner) = 0) \/ exists ge_signed_half_choice_innerright. (((x3) = 2 * ge_signed_half_choice_innerright + 1 /\ (sto_bp_choice_inner) = 0) /\ (sto_bn_choice_inner) = S ge_signed_half_choice_innerright))) /\ ((((((r) = 2 * (sto_cp_choice_inner) /\ (sto_cn_choice_inner) = 0) \/ exists ge_signed_half_choice_inneroutput. (((r) = 2 * ge_signed_half_choice_inneroutput + 1 /\ (sto_cp_choice_inner) = 0) /\ (sto_cn_choice_inner) = S ge_signed_half_choice_inneroutput))) /\ ((sto_ap_choice_inner * sto_bp_choice_inner + sto_an_choice_inner * sto_bn_choice_inner) + sto_cn_choice_inner = (sto_ap_choice_inner * sto_bn_choice_inner + sto_an_choice_inner * sto_bp_choice_inner) + sto_cp_choice_inner))))))) - 0076
specialize signed_mul_total (x2) - 0077
specialize signed_mul_total (x3) - 0078
apply signed_mul_total - 0079
cases hi - 0080
have ho : exists z. (exists sto_ap_choice_outer sto_an_choice_outer sto_bp_choice_outer sto_bn_choice_outer sto_cp_choice_outer sto_cn_choice_outer. (((((x1) = 2 * (sto_ap_choice_outer) /\ (sto_an_choice_outer) = 0) \/ exists ge_signed_half_choice_outerleft. (((x1) = 2 * ge_signed_half_choice_outerleft + 1 /\ (sto_ap_choice_outer) = 0) /\ (sto_an_choice_outer) = S ge_signed_half_choice_outerleft))) /\ ((((((x4) = 2 * (sto_bp_choice_outer) /\ (sto_bn_choice_outer) = 0) \/ exists ge_signed_half_choice_outerright. (((x4) = 2 * ge_signed_half_choice_outerright + 1 /\ (sto_bp_choice_outer) = 0) /\ (sto_bn_choice_outer) = S ge_signed_half_choice_outerright))) /\ ((((((z) = 2 * (sto_cp_choice_outer) /\ (sto_cn_choice_outer) = 0) \/ exists ge_signed_half_choice_outeroutput. (((z) = 2 * ge_signed_half_choice_outeroutput + 1 /\ (sto_cp_choice_outer) = 0) /\ (sto_cn_choice_outer) = S ge_signed_half_choice_outeroutput))) /\ ((sto_ap_choice_outer * sto_bp_choice_outer + sto_an_choice_outer * sto_bn_choice_outer) + sto_cn_choice_outer = (sto_ap_choice_outer * sto_bn_choice_outer + sto_an_choice_outer * sto_bp_choice_outer) + sto_cp_choice_outer))))))) - 0081
specialize signed_mul_total (x1) - 0082
specialize signed_mul_total (x4) - 0083
apply signed_mul_total - 0084
cases ho - 0085
exists x5 - 0086
specialize dirichlet_grid_entry_from_factorization (F) - 0087
specialize dirichlet_grid_entry_from_factorization (G) - 0088
specialize dirichlet_grid_entry_from_factorization (H) - 0089
specialize dirichlet_grid_entry_from_factorization (n) - 0090
specialize dirichlet_grid_entry_from_factorization (a) - 0091
specialize dirichlet_grid_entry_from_factorization (e) - 0092
specialize dirichlet_grid_entry_from_factorization (x) - 0093
specialize dirichlet_grid_entry_from_factorization (x1) - 0094
specialize dirichlet_grid_entry_from_factorization (x2) - 0095
specialize dirichlet_grid_entry_from_factorization (x3) - 0096
specialize dirichlet_grid_entry_from_factorization (x4) - 0097
specialize dirichlet_grid_entry_from_factorization (x5) - 0098
apply dirichlet_grid_entry_from_factorization - 0099
exact ha_right - 0100
exact he_right - 0101
exact hd_left_witness - 0102
exact hu_witness - 0103
exact hv_witness - 0104
exact hw_witness - 0105
exact hi_witness - 0106
exact ho_witness - 0107
exists 0 - 0108
specialize dirichlet_grid_entry_omitted (F) - 0109
specialize dirichlet_grid_entry_omitted (G) - 0110
specialize dirichlet_grid_entry_omitted (H) - 0111
specialize dirichlet_grid_entry_omitted (n) - 0112
specialize dirichlet_grid_entry_omitted (a) - 0113
specialize dirichlet_grid_entry_omitted (e) - 0114
apply dirichlet_grid_entry_omitted - 0115
right - 0116
right - 0117
exact hd_right