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 c u v w z. ~(a=0) -> ~(e=0) -> n=(a*e)*c -> (exists dst_positive_code_read_first dst_positive_scale_read_first dst_negative_code_read_first dst_negative_scale_read_first dst_positive_read_first dst_negative_read_first. (((F) = (((((dst_positive_code_read_first) + (dst_positive_scale_read_first)) * S ((dst_positive_code_read_first) + (dst_positive_scale_read_first)) + ((dst_positive_scale_read_first) + (dst_positive_scale_read_first))) + (((dst_negative_code_read_first) + (dst_negative_scale_read_first)) * S ((dst_negative_code_read_first) + (dst_negative_scale_read_first)) + ((dst_negative_scale_read_first) + (dst_negative_scale_read_first)))) * S ((((dst_positive_code_read_first) + (dst_positive_scale_read_first)) * S ((dst_positive_code_read_first) + (dst_positive_scale_read_first)) + ((dst_positive_scale_read_first) + (dst_positive_scale_read_first))) + (((dst_negative_code_read_first) + (dst_negative_scale_read_first)) * S ((dst_negative_code_read_first) + (dst_negative_scale_read_first)) + ((dst_negative_scale_read_first) + (dst_negative_scale_read_first)))) + ((((dst_negative_code_read_first) + (dst_negative_scale_read_first)) * S ((dst_negative_code_read_first) + (dst_negative_scale_read_first)) + ((dst_negative_scale_read_first) + (dst_negative_scale_read_first))) + (((dst_negative_code_read_first) + (dst_negative_scale_read_first)) * S ((dst_negative_code_read_first) + (dst_negative_scale_read_first)) + ((dst_negative_scale_read_first) + (dst_negative_scale_read_first)))))) /\ (((((exists ff_h_pvs_read_firstpositive. ff_h_pvs_read_firstpositive + S (dst_positive_read_first) = S ((S (a)) * dst_positive_scale_read_first)) /\ exists ff_q_pvs_read_firstpositive. dst_positive_code_read_first = ff_q_pvs_read_firstpositive * S ((S (a)) * dst_positive_scale_read_first) + (dst_positive_read_first))) /\ (((((exists ff_h_pvs_read_firstnegative. ff_h_pvs_read_firstnegative + S (dst_negative_read_first) = S ((S (a)) * dst_negative_scale_read_first)) /\ exists ff_q_pvs_read_firstnegative. dst_negative_code_read_first = ff_q_pvs_read_firstnegative * S ((S (a)) * dst_negative_scale_read_first) + (dst_negative_read_first))) /\ (exists ge_balance_positive_read_firstvalue ge_balance_negative_read_firstvalue. (((((u) = 2 * (ge_balance_positive_read_firstvalue) /\ (ge_balance_negative_read_firstvalue) = 0) \/ exists ge_signed_half_read_firstvaluedecode. (((u) = 2 * ge_signed_half_read_firstvaluedecode + 1 /\ (ge_balance_positive_read_firstvalue) = 0) /\ (ge_balance_negative_read_firstvalue) = S ge_signed_half_read_firstvaluedecode))) /\ ((dst_positive_read_first) + ge_balance_negative_read_firstvalue = (dst_negative_read_first) + ge_balance_positive_read_firstvalue))))))))) -> (exists dst_positive_code_read_last dst_positive_scale_read_last dst_negative_code_read_last dst_negative_scale_read_last dst_positive_read_last dst_negative_read_last. (((H) = (((((dst_positive_code_read_last) + (dst_positive_scale_read_last)) * S ((dst_positive_code_read_last) + (dst_positive_scale_read_last)) + ((dst_positive_scale_read_last) + (dst_positive_scale_read_last))) + (((dst_negative_code_read_last) + (dst_negative_scale_read_last)) * S ((dst_negative_code_read_last) + (dst_negative_scale_read_last)) + ((dst_negative_scale_read_last) + (dst_negative_scale_read_last)))) * S ((((dst_positive_code_read_last) + (dst_positive_scale_read_last)) * S ((dst_positive_code_read_last) + (dst_positive_scale_read_last)) + ((dst_positive_scale_read_last) + (dst_positive_scale_read_last))) + (((dst_negative_code_read_last) + (dst_negative_scale_read_last)) * S ((dst_negative_code_read_last) + (dst_negative_scale_read_last)) + ((dst_negative_scale_read_last) + (dst_negative_scale_read_last)))) + ((((dst_negative_code_read_last) + (dst_negative_scale_read_last)) * S ((dst_negative_code_read_last) + (dst_negative_scale_read_last)) + ((dst_negative_scale_read_last) + (dst_negative_scale_read_last))) + (((dst_negative_code_read_last) + (dst_negative_scale_read_last)) * S ((dst_negative_code_read_last) + (dst_negative_scale_read_last)) + ((dst_negative_scale_read_last) + (dst_negative_scale_read_last)))))) /\ (((((exists ff_h_pvs_read_lastpositive. ff_h_pvs_read_lastpositive + S (dst_positive_read_last) = S ((S (e)) * dst_positive_scale_read_last)) /\ exists ff_q_pvs_read_lastpositive. dst_positive_code_read_last = ff_q_pvs_read_lastpositive * S ((S (e)) * dst_positive_scale_read_last) + (dst_positive_read_last))) /\ (((((exists ff_h_pvs_read_lastnegative. ff_h_pvs_read_lastnegative + S (dst_negative_read_last) = S ((S (e)) * dst_negative_scale_read_last)) /\ exists ff_q_pvs_read_lastnegative. dst_negative_code_read_last = ff_q_pvs_read_lastnegative * S ((S (e)) * dst_negative_scale_read_last) + (dst_negative_read_last))) /\ (exists ge_balance_positive_read_lastvalue ge_balance_negative_read_lastvalue. (((((v) = 2 * (ge_balance_positive_read_lastvalue) /\ (ge_balance_negative_read_lastvalue) = 0) \/ exists ge_signed_half_read_lastvaluedecode. (((v) = 2 * ge_signed_half_read_lastvaluedecode + 1 /\ (ge_balance_positive_read_lastvalue) = 0) /\ (ge_balance_negative_read_lastvalue) = S ge_signed_half_read_lastvaluedecode))) /\ ((dst_positive_read_last) + ge_balance_negative_read_lastvalue = (dst_negative_read_last) + ge_balance_positive_read_lastvalue))))))))) -> (exists dst_positive_code_read_middle dst_positive_scale_read_middle dst_negative_code_read_middle dst_negative_scale_read_middle dst_positive_read_middle dst_negative_read_middle. (((G) = (((((dst_positive_code_read_middle) + (dst_positive_scale_read_middle)) * S ((dst_positive_code_read_middle) + (dst_positive_scale_read_middle)) + ((dst_positive_scale_read_middle) + (dst_positive_scale_read_middle))) + (((dst_negative_code_read_middle) + (dst_negative_scale_read_middle)) * S ((dst_negative_code_read_middle) + (dst_negative_scale_read_middle)) + ((dst_negative_scale_read_middle) + (dst_negative_scale_read_middle)))) * S ((((dst_positive_code_read_middle) + (dst_positive_scale_read_middle)) * S ((dst_positive_code_read_middle) + (dst_positive_scale_read_middle)) + ((dst_positive_scale_read_middle) + (dst_positive_scale_read_middle))) + (((dst_negative_code_read_middle) + (dst_negative_scale_read_middle)) * S ((dst_negative_code_read_middle) + (dst_negative_scale_read_middle)) + ((dst_negative_scale_read_middle) + (dst_negative_scale_read_middle)))) + ((((dst_negative_code_read_middle) + (dst_negative_scale_read_middle)) * S ((dst_negative_code_read_middle) + (dst_negative_scale_read_middle)) + ((dst_negative_scale_read_middle) + (dst_negative_scale_read_middle))) + (((dst_negative_code_read_middle) + (dst_negative_scale_read_middle)) * S ((dst_negative_code_read_middle) + (dst_negative_scale_read_middle)) + ((dst_negative_scale_read_middle) + (dst_negative_scale_read_middle)))))) /\ (((((exists ff_h_pvs_read_middlepositive. ff_h_pvs_read_middlepositive + S (dst_positive_read_middle) = S ((S (c)) * dst_positive_scale_read_middle)) /\ exists ff_q_pvs_read_middlepositive. dst_positive_code_read_middle = ff_q_pvs_read_middlepositive * S ((S (c)) * dst_positive_scale_read_middle) + (dst_positive_read_middle))) /\ (((((exists ff_h_pvs_read_middlenegative. ff_h_pvs_read_middlenegative + S (dst_negative_read_middle) = S ((S (c)) * dst_negative_scale_read_middle)) /\ exists ff_q_pvs_read_middlenegative. dst_negative_code_read_middle = ff_q_pvs_read_middlenegative * S ((S (c)) * dst_negative_scale_read_middle) + (dst_negative_read_middle))) /\ (exists ge_balance_positive_read_middlevalue ge_balance_negative_read_middlevalue. (((((w) = 2 * (ge_balance_positive_read_middlevalue) /\ (ge_balance_negative_read_middlevalue) = 0) \/ exists ge_signed_half_read_middlevaluedecode. (((w) = 2 * ge_signed_half_read_middlevaluedecode + 1 /\ (ge_balance_positive_read_middlevalue) = 0) /\ (ge_balance_negative_read_middlevalue) = S ge_signed_half_read_middlevaluedecode))) /\ ((dst_positive_read_middle) + ge_balance_negative_read_middlevalue = (dst_negative_read_middle) + ge_balance_positive_read_middlevalue))))))))) -> ((((~((a)=0)) /\ (((~((e)=0)) /\ (exists dfg_middle_read_cell dfg_first_read_cell dfg_last_read_cell dfg_value_read_cell. (((n)=((a)*(e))*dfg_middle_read_cell) /\ (((exists dst_positive_code_read_cellfirst dst_positive_scale_read_cellfirst dst_negative_code_read_cellfirst dst_negative_scale_read_cellfirst dst_positive_read_cellfirst dst_negative_read_cellfirst. (((F) = (((((dst_positive_code_read_cellfirst) + (dst_positive_scale_read_cellfirst)) * S ((dst_positive_code_read_cellfirst) + (dst_positive_scale_read_cellfirst)) + ((dst_positive_scale_read_cellfirst) + (dst_positive_scale_read_cellfirst))) + (((dst_negative_code_read_cellfirst) + (dst_negative_scale_read_cellfirst)) * S ((dst_negative_code_read_cellfirst) + (dst_negative_scale_read_cellfirst)) + ((dst_negative_scale_read_cellfirst) + (dst_negative_scale_read_cellfirst)))) * S ((((dst_positive_code_read_cellfirst) + (dst_positive_scale_read_cellfirst)) * S ((dst_positive_code_read_cellfirst) + (dst_positive_scale_read_cellfirst)) + ((dst_positive_scale_read_cellfirst) + (dst_positive_scale_read_cellfirst))) + (((dst_negative_code_read_cellfirst) + (dst_negative_scale_read_cellfirst)) * S ((dst_negative_code_read_cellfirst) + (dst_negative_scale_read_cellfirst)) + ((dst_negative_scale_read_cellfirst) + (dst_negative_scale_read_cellfirst)))) + ((((dst_negative_code_read_cellfirst) + (dst_negative_scale_read_cellfirst)) * S ((dst_negative_code_read_cellfirst) + (dst_negative_scale_read_cellfirst)) + ((dst_negative_scale_read_cellfirst) + (dst_negative_scale_read_cellfirst))) + (((dst_negative_code_read_cellfirst) + (dst_negative_scale_read_cellfirst)) * S ((dst_negative_code_read_cellfirst) + (dst_negative_scale_read_cellfirst)) + ((dst_negative_scale_read_cellfirst) + (dst_negative_scale_read_cellfirst)))))) /\ (((((exists ff_h_pvs_read_cellfirstpositive. ff_h_pvs_read_cellfirstpositive + S (dst_positive_read_cellfirst) = S ((S (a)) * dst_positive_scale_read_cellfirst)) /\ exists ff_q_pvs_read_cellfirstpositive. dst_positive_code_read_cellfirst = ff_q_pvs_read_cellfirstpositive * S ((S (a)) * dst_positive_scale_read_cellfirst) + (dst_positive_read_cellfirst))) /\ (((((exists ff_h_pvs_read_cellfirstnegative. ff_h_pvs_read_cellfirstnegative + S (dst_negative_read_cellfirst) = S ((S (a)) * dst_negative_scale_read_cellfirst)) /\ exists ff_q_pvs_read_cellfirstnegative. dst_negative_code_read_cellfirst = ff_q_pvs_read_cellfirstnegative * S ((S (a)) * dst_negative_scale_read_cellfirst) + (dst_negative_read_cellfirst))) /\ (exists ge_balance_positive_read_cellfirstvalue ge_balance_negative_read_cellfirstvalue. (((((dfg_first_read_cell) = 2 * (ge_balance_positive_read_cellfirstvalue) /\ (ge_balance_negative_read_cellfirstvalue) = 0) \/ exists ge_signed_half_read_cellfirstvaluedecode. (((dfg_first_read_cell) = 2 * ge_signed_half_read_cellfirstvaluedecode + 1 /\ (ge_balance_positive_read_cellfirstvalue) = 0) /\ (ge_balance_negative_read_cellfirstvalue) = S ge_signed_half_read_cellfirstvaluedecode))) /\ ((dst_positive_read_cellfirst) + ge_balance_negative_read_cellfirstvalue = (dst_negative_read_cellfirst) + ge_balance_positive_read_cellfirstvalue))))))))) /\ (((exists dst_positive_code_read_celllast dst_positive_scale_read_celllast dst_negative_code_read_celllast dst_negative_scale_read_celllast dst_positive_read_celllast dst_negative_read_celllast. (((H) = (((((dst_positive_code_read_celllast) + (dst_positive_scale_read_celllast)) * S ((dst_positive_code_read_celllast) + (dst_positive_scale_read_celllast)) + ((dst_positive_scale_read_celllast) + (dst_positive_scale_read_celllast))) + (((dst_negative_code_read_celllast) + (dst_negative_scale_read_celllast)) * S ((dst_negative_code_read_celllast) + (dst_negative_scale_read_celllast)) + ((dst_negative_scale_read_celllast) + (dst_negative_scale_read_celllast)))) * S ((((dst_positive_code_read_celllast) + (dst_positive_scale_read_celllast)) * S ((dst_positive_code_read_celllast) + (dst_positive_scale_read_celllast)) + ((dst_positive_scale_read_celllast) + (dst_positive_scale_read_celllast))) + (((dst_negative_code_read_celllast) + (dst_negative_scale_read_celllast)) * S ((dst_negative_code_read_celllast) + (dst_negative_scale_read_celllast)) + ((dst_negative_scale_read_celllast) + (dst_negative_scale_read_celllast)))) + ((((dst_negative_code_read_celllast) + (dst_negative_scale_read_celllast)) * S ((dst_negative_code_read_celllast) + (dst_negative_scale_read_celllast)) + ((dst_negative_scale_read_celllast) + (dst_negative_scale_read_celllast))) + (((dst_negative_code_read_celllast) + (dst_negative_scale_read_celllast)) * S ((dst_negative_code_read_celllast) + (dst_negative_scale_read_celllast)) + ((dst_negative_scale_read_celllast) + (dst_negative_scale_read_celllast)))))) /\ (((((exists ff_h_pvs_read_celllastpositive. ff_h_pvs_read_celllastpositive + S (dst_positive_read_celllast) = S ((S (e)) * dst_positive_scale_read_celllast)) /\ exists ff_q_pvs_read_celllastpositive. dst_positive_code_read_celllast = ff_q_pvs_read_celllastpositive * S ((S (e)) * dst_positive_scale_read_celllast) + (dst_positive_read_celllast))) /\ (((((exists ff_h_pvs_read_celllastnegative. ff_h_pvs_read_celllastnegative + S (dst_negative_read_celllast) = S ((S (e)) * dst_negative_scale_read_celllast)) /\ exists ff_q_pvs_read_celllastnegative. dst_negative_code_read_celllast = ff_q_pvs_read_celllastnegative * S ((S (e)) * dst_negative_scale_read_celllast) + (dst_negative_read_celllast))) /\ (exists ge_balance_positive_read_celllastvalue ge_balance_negative_read_celllastvalue. (((((dfg_last_read_cell) = 2 * (ge_balance_positive_read_celllastvalue) /\ (ge_balance_negative_read_celllastvalue) = 0) \/ exists ge_signed_half_read_celllastvaluedecode. (((dfg_last_read_cell) = 2 * ge_signed_half_read_celllastvaluedecode + 1 /\ (ge_balance_positive_read_celllastvalue) = 0) /\ (ge_balance_negative_read_celllastvalue) = S ge_signed_half_read_celllastvaluedecode))) /\ ((dst_positive_read_celllast) + ge_balance_negative_read_celllastvalue = (dst_negative_read_celllast) + ge_balance_positive_read_celllastvalue))))))))) /\ (((exists dst_positive_code_read_cellmiddle dst_positive_scale_read_cellmiddle dst_negative_code_read_cellmiddle dst_negative_scale_read_cellmiddle dst_positive_read_cellmiddle dst_negative_read_cellmiddle. (((G) = (((((dst_positive_code_read_cellmiddle) + (dst_positive_scale_read_cellmiddle)) * S ((dst_positive_code_read_cellmiddle) + (dst_positive_scale_read_cellmiddle)) + ((dst_positive_scale_read_cellmiddle) + (dst_positive_scale_read_cellmiddle))) + (((dst_negative_code_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)) * S ((dst_negative_code_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)) + ((dst_negative_scale_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)))) * S ((((dst_positive_code_read_cellmiddle) + (dst_positive_scale_read_cellmiddle)) * S ((dst_positive_code_read_cellmiddle) + (dst_positive_scale_read_cellmiddle)) + ((dst_positive_scale_read_cellmiddle) + (dst_positive_scale_read_cellmiddle))) + (((dst_negative_code_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)) * S ((dst_negative_code_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)) + ((dst_negative_scale_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)))) + ((((dst_negative_code_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)) * S ((dst_negative_code_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)) + ((dst_negative_scale_read_cellmiddle) + (dst_negative_scale_read_cellmiddle))) + (((dst_negative_code_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)) * S ((dst_negative_code_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)) + ((dst_negative_scale_read_cellmiddle) + (dst_negative_scale_read_cellmiddle)))))) /\ (((((exists ff_h_pvs_read_cellmiddlepositive. ff_h_pvs_read_cellmiddlepositive + S (dst_positive_read_cellmiddle) = S ((S (dfg_middle_read_cell)) * dst_positive_scale_read_cellmiddle)) /\ exists ff_q_pvs_read_cellmiddlepositive. dst_positive_code_read_cellmiddle = ff_q_pvs_read_cellmiddlepositive * S ((S (dfg_middle_read_cell)) * dst_positive_scale_read_cellmiddle) + (dst_positive_read_cellmiddle))) /\ (((((exists ff_h_pvs_read_cellmiddlenegative. ff_h_pvs_read_cellmiddlenegative + S (dst_negative_read_cellmiddle) = S ((S (dfg_middle_read_cell)) * dst_negative_scale_read_cellmiddle)) /\ exists ff_q_pvs_read_cellmiddlenegative. dst_negative_code_read_cellmiddle = ff_q_pvs_read_cellmiddlenegative * S ((S (dfg_middle_read_cell)) * dst_negative_scale_read_cellmiddle) + (dst_negative_read_cellmiddle))) /\ (exists ge_balance_positive_read_cellmiddlevalue ge_balance_negative_read_cellmiddlevalue. (((((dfg_value_read_cell) = 2 * (ge_balance_positive_read_cellmiddlevalue) /\ (ge_balance_negative_read_cellmiddlevalue) = 0) \/ exists ge_signed_half_read_cellmiddlevaluedecode. (((dfg_value_read_cell) = 2 * ge_signed_half_read_cellmiddlevaluedecode + 1 /\ (ge_balance_positive_read_cellmiddlevalue) = 0) /\ (ge_balance_negative_read_cellmiddlevalue) = S ge_signed_half_read_cellmiddlevaluedecode))) /\ ((dst_positive_read_cellmiddle) + ge_balance_negative_read_cellmiddlevalue = (dst_negative_read_cellmiddle) + ge_balance_positive_read_cellmiddlevalue))))))))) /\ (exists dfg_inner_read_cellproduct. ((exists sto_ap_read_cellproductinner sto_an_read_cellproductinner sto_bp_read_cellproductinner sto_bn_read_cellproductinner sto_cp_read_cellproductinner sto_cn_read_cellproductinner. (((((dfg_last_read_cell) = 2 * (sto_ap_read_cellproductinner) /\ (sto_an_read_cellproductinner) = 0) \/ exists ge_signed_half_read_cellproductinnerleft. (((dfg_last_read_cell) = 2 * ge_signed_half_read_cellproductinnerleft + 1 /\ (sto_ap_read_cellproductinner) = 0) /\ (sto_an_read_cellproductinner) = S ge_signed_half_read_cellproductinnerleft))) /\ ((((((dfg_value_read_cell) = 2 * (sto_bp_read_cellproductinner) /\ (sto_bn_read_cellproductinner) = 0) \/ exists ge_signed_half_read_cellproductinnerright. (((dfg_value_read_cell) = 2 * ge_signed_half_read_cellproductinnerright + 1 /\ (sto_bp_read_cellproductinner) = 0) /\ (sto_bn_read_cellproductinner) = S ge_signed_half_read_cellproductinnerright))) /\ ((((((dfg_inner_read_cellproduct) = 2 * (sto_cp_read_cellproductinner) /\ (sto_cn_read_cellproductinner) = 0) \/ exists ge_signed_half_read_cellproductinneroutput. (((dfg_inner_read_cellproduct) = 2 * ge_signed_half_read_cellproductinneroutput + 1 /\ (sto_cp_read_cellproductinner) = 0) /\ (sto_cn_read_cellproductinner) = S ge_signed_half_read_cellproductinneroutput))) /\ ((sto_ap_read_cellproductinner * sto_bp_read_cellproductinner + sto_an_read_cellproductinner * sto_bn_read_cellproductinner) + sto_cn_read_cellproductinner = (sto_ap_read_cellproductinner * sto_bn_read_cellproductinner + sto_an_read_cellproductinner * sto_bp_read_cellproductinner) + sto_cp_read_cellproductinner))))))) /\ (exists sto_ap_read_cellproductouter sto_an_read_cellproductouter sto_bp_read_cellproductouter sto_bn_read_cellproductouter sto_cp_read_cellproductouter sto_cn_read_cellproductouter. (((((dfg_first_read_cell) = 2 * (sto_ap_read_cellproductouter) /\ (sto_an_read_cellproductouter) = 0) \/ exists ge_signed_half_read_cellproductouterleft. (((dfg_first_read_cell) = 2 * ge_signed_half_read_cellproductouterleft + 1 /\ (sto_ap_read_cellproductouter) = 0) /\ (sto_an_read_cellproductouter) = S ge_signed_half_read_cellproductouterleft))) /\ ((((((dfg_inner_read_cellproduct) = 2 * (sto_bp_read_cellproductouter) /\ (sto_bn_read_cellproductouter) = 0) \/ exists ge_signed_half_read_cellproductouterright. (((dfg_inner_read_cellproduct) = 2 * ge_signed_half_read_cellproductouterright + 1 /\ (sto_bp_read_cellproductouter) = 0) /\ (sto_bn_read_cellproductouter) = S ge_signed_half_read_cellproductouterright))) /\ ((((((z) = 2 * (sto_cp_read_cellproductouter) /\ (sto_cn_read_cellproductouter) = 0) \/ exists ge_signed_half_read_cellproductouteroutput. (((z) = 2 * ge_signed_half_read_cellproductouteroutput + 1 /\ (sto_cp_read_cellproductouter) = 0) /\ (sto_cn_read_cellproductouter) = S ge_signed_half_read_cellproductouteroutput))) /\ ((sto_ap_read_cellproductouter * sto_bp_read_cellproductouter + sto_an_read_cellproductouter * sto_bn_read_cellproductouter) + sto_cn_read_cellproductouter = (sto_ap_read_cellproductouter * sto_bn_read_cellproductouter + sto_an_read_cellproductouter * sto_bp_read_cellproductouter) + sto_cp_read_cellproductouter))))))))))))))))))))) \/ ((((a)=0 \/ ((e)=0 \/ ~(exists pvs_factor_read_cellomittednondivisor. (n) = ((a)*(e)) * pvs_factor_read_cellomittednondivisor))) /\ ((z)=0)))) -> (exists dfg_inner_read_product. ((exists sto_ap_read_productinner sto_an_read_productinner sto_bp_read_productinner sto_bn_read_productinner sto_cp_read_productinner sto_cn_read_productinner. (((((v) = 2 * (sto_ap_read_productinner) /\ (sto_an_read_productinner) = 0) \/ exists ge_signed_half_read_productinnerleft. (((v) = 2 * ge_signed_half_read_productinnerleft + 1 /\ (sto_ap_read_productinner) = 0) /\ (sto_an_read_productinner) = S ge_signed_half_read_productinnerleft))) /\ ((((((w) = 2 * (sto_bp_read_productinner) /\ (sto_bn_read_productinner) = 0) \/ exists ge_signed_half_read_productinnerright. (((w) = 2 * ge_signed_half_read_productinnerright + 1 /\ (sto_bp_read_productinner) = 0) /\ (sto_bn_read_productinner) = S ge_signed_half_read_productinnerright))) /\ ((((((dfg_inner_read_product) = 2 * (sto_cp_read_productinner) /\ (sto_cn_read_productinner) = 0) \/ exists ge_signed_half_read_productinneroutput. (((dfg_inner_read_product) = 2 * ge_signed_half_read_productinneroutput + 1 /\ (sto_cp_read_productinner) = 0) /\ (sto_cn_read_productinner) = S ge_signed_half_read_productinneroutput))) /\ ((sto_ap_read_productinner * sto_bp_read_productinner + sto_an_read_productinner * sto_bn_read_productinner) + sto_cn_read_productinner = (sto_ap_read_productinner * sto_bn_read_productinner + sto_an_read_productinner * sto_bp_read_productinner) + sto_cp_read_productinner))))))) /\ (exists sto_ap_read_productouter sto_an_read_productouter sto_bp_read_productouter sto_bn_read_productouter sto_cp_read_productouter sto_cn_read_productouter. (((((u) = 2 * (sto_ap_read_productouter) /\ (sto_an_read_productouter) = 0) \/ exists ge_signed_half_read_productouterleft. (((u) = 2 * ge_signed_half_read_productouterleft + 1 /\ (sto_ap_read_productouter) = 0) /\ (sto_an_read_productouter) = S ge_signed_half_read_productouterleft))) /\ ((((((dfg_inner_read_product) = 2 * (sto_bp_read_productouter) /\ (sto_bn_read_productouter) = 0) \/ exists ge_signed_half_read_productouterright. (((dfg_inner_read_product) = 2 * ge_signed_half_read_productouterright + 1 /\ (sto_bp_read_productouter) = 0) /\ (sto_bn_read_productouter) = S ge_signed_half_read_productouterright))) /\ ((((((z) = 2 * (sto_cp_read_productouter) /\ (sto_cn_read_productouter) = 0) \/ exists ge_signed_half_read_productouteroutput. (((z) = 2 * ge_signed_half_read_productouteroutput + 1 /\ (sto_cp_read_productouter) = 0) /\ (sto_cn_read_productouter) = S ge_signed_half_read_productouteroutput))) /\ ((sto_ap_read_productouter * sto_bp_read_productouter + sto_an_read_productouter * sto_bn_read_productouter) + sto_cn_read_productouter = (sto_ap_read_productouter * sto_bn_read_productouter + sto_an_read_productouter * sto_bp_read_productouter) + sto_cp_read_productouter)))))))))Constructive proof overview
Generated structural guide
Nonzero product cancellation identifies the supplied middle factor; canonical input lookups recover both actual signed products.
The unchanged tactic script uses 3 declared prerequisites and contains 91 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mul_left_cancel_nonzero Stable theorem; checked-use authorized mul_ne_zero Stable theorem; checked-use authorized divisor_signed_table_at_functional Alpha theorem; checked-use authorizedDirect 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–18
03Separate the logical casesL19–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
cases hentry - L20
cases hentry_left - L21
cases hentry_left_right - L22
cases hentry_left_right_right - L23
cases hentry_left_right_right_witness - L24
cases hentry_left_right_right_witness_witness - L25
cases hentry_left_right_right_witness_witness_witness - L26
cases hentry_left_right_right_witness_witness_witness_witness - L27
cases hentry_left_right_right_witness_witness_witness_witness_right - L28
cases hentry_left_right_right_witness_witness_witness_witness_right_right
04Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
cases hentry_left_right_right_witness_witness_witness_witness_right_right_right
05Establish hfactorL30–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul left cancel nonzero.
06Use earlier factsL40–41
07Calculate and transport equalitiesL42–43
08Use earlier factsL44–45
09Calculate and transport equalitiesL46–49
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L46
rewrite hfactor at hentry_left_right_right_witness_witness_witness_witness_right_right_right_left - L47
rewrite hfactor at hentry_left_right_right_witness_witness_witness_witness_right_right_right_left - L48
rewrite hfactor at hentry_left_right_right_witness_witness_witness_witness_right_right_right_left - L49
rewrite hfactor at hentry_left_right_right_witness_witness_witness_witness_right_right_right_left
10Establish hx1L50–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at functional.
- L50
have hx1 : x1=u - L51
specialize divisor_signed_table_at_functional (F) - L52
specialize divisor_signed_table_at_functional (a) - L53
specialize divisor_signed_table_at_functional (x1) - L54
specialize divisor_signed_table_at_functional (u) - L55
apply divisor_signed_table_at_functional - L56
exact hentry_left_right_right_witness_witness_witness_witness_right_left - L57
exact hu
11Establish hx2L58–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at functional.
- L58
have hx2 : x2=v - L59
specialize divisor_signed_table_at_functional (H) - L60
specialize divisor_signed_table_at_functional (e) - L61
specialize divisor_signed_table_at_functional (x2) - L62
specialize divisor_signed_table_at_functional (v) - L63
apply divisor_signed_table_at_functional - L64
exact hentry_left_right_right_witness_witness_witness_witness_right_right_left - L65
exact hv
12Establish hx3L66–75
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table at functional.
- L66
have hx3 : x3=w - L67
specialize divisor_signed_table_at_functional (G) - L68
specialize divisor_signed_table_at_functional (c) - L69
specialize divisor_signed_table_at_functional (x3) - L70
specialize divisor_signed_table_at_functional (w) - L71
apply divisor_signed_table_at_functional - L72
exact hentry_left_right_right_witness_witness_witness_witness_right_right_right_left - L73
exact hw - L74
rewrite hx1 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - L75
rewrite hx1 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right
13Calculate and transport equalitiesL76–79
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L76
rewrite hx2 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - L77
rewrite hx2 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - L78
rewrite hx3 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - L79
rewrite hx3 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right
14Use earlier factsL80–80
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L80
exact hentry_left_right_right_witness_witness_witness_witness_right_right_right_right
15Separate the logical casesL81–83
16Use earlier factsL84–85
17Separate the logical casesL86–86
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L86
cases hentry_right_left_right
18Use earlier factsL87–89
19Construct an explicit witnessL90–90
Supply the displayed value, then prove that it has the required property.
- L90
exists c
20Use earlier factsL91–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L91
exact hc
Original exact command ledger · 91 lines
- 0001
intro F - 0002
intro G - 0003
intro H - 0004
intro n - 0005
intro a - 0006
intro e - 0007
intro c - 0008
intro u - 0009
intro v - 0010
intro w - 0011
intro z - 0012
intro ha - 0013
intro he - 0014
intro hc - 0015
intro hu - 0016
intro hv - 0017
intro hw - 0018
intro hentry - 0019
cases hentry - 0020
cases hentry_left - 0021
cases hentry_left_right - 0022
cases hentry_left_right_right - 0023
cases hentry_left_right_right_witness - 0024
cases hentry_left_right_right_witness_witness - 0025
cases hentry_left_right_right_witness_witness_witness - 0026
cases hentry_left_right_right_witness_witness_witness_witness - 0027
cases hentry_left_right_right_witness_witness_witness_witness_right - 0028
cases hentry_left_right_right_witness_witness_witness_witness_right_right - 0029
cases hentry_left_right_right_witness_witness_witness_witness_right_right_right - 0030
have hfactor : x=c - 0031
specialize mul_left_cancel_nonzero (a*e) - 0032
specialize mul_left_cancel_nonzero (x) - 0033
specialize mul_left_cancel_nonzero (c) - 0034
apply mul_left_cancel_nonzero - 0035
intro hmulzero - 0036
specialize mul_ne_zero (a) - 0037
specialize mul_ne_zero (e) - 0038
apply mul_ne_zero - 0039
exact ha - 0040
exact he - 0041
exact hmulzero - 0042
trans n - 0043
symm - 0044
exact hentry_left_right_right_witness_witness_witness_witness_left - 0045
exact hc - 0046
rewrite hfactor at hentry_left_right_right_witness_witness_witness_witness_right_right_right_left - 0047
rewrite hfactor at hentry_left_right_right_witness_witness_witness_witness_right_right_right_left - 0048
rewrite hfactor at hentry_left_right_right_witness_witness_witness_witness_right_right_right_left - 0049
rewrite hfactor at hentry_left_right_right_witness_witness_witness_witness_right_right_right_left - 0050
have hx1 : x1=u - 0051
specialize divisor_signed_table_at_functional (F) - 0052
specialize divisor_signed_table_at_functional (a) - 0053
specialize divisor_signed_table_at_functional (x1) - 0054
specialize divisor_signed_table_at_functional (u) - 0055
apply divisor_signed_table_at_functional - 0056
exact hentry_left_right_right_witness_witness_witness_witness_right_left - 0057
exact hu - 0058
have hx2 : x2=v - 0059
specialize divisor_signed_table_at_functional (H) - 0060
specialize divisor_signed_table_at_functional (e) - 0061
specialize divisor_signed_table_at_functional (x2) - 0062
specialize divisor_signed_table_at_functional (v) - 0063
apply divisor_signed_table_at_functional - 0064
exact hentry_left_right_right_witness_witness_witness_witness_right_right_left - 0065
exact hv - 0066
have hx3 : x3=w - 0067
specialize divisor_signed_table_at_functional (G) - 0068
specialize divisor_signed_table_at_functional (c) - 0069
specialize divisor_signed_table_at_functional (x3) - 0070
specialize divisor_signed_table_at_functional (w) - 0071
apply divisor_signed_table_at_functional - 0072
exact hentry_left_right_right_witness_witness_witness_witness_right_right_right_left - 0073
exact hw - 0074
rewrite hx1 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - 0075
rewrite hx1 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - 0076
rewrite hx2 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - 0077
rewrite hx2 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - 0078
rewrite hx3 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - 0079
rewrite hx3 at hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - 0080
exact hentry_left_right_right_witness_witness_witness_witness_right_right_right_right - 0081
cases hentry_right - 0082
exfalso - 0083
cases hentry_right_left - 0084
apply ha - 0085
exact hentry_right_left_left - 0086
cases hentry_right_left_right - 0087
apply he - 0088
exact hentry_right_left_right_left - 0089
apply hentry_right_left_right_right - 0090
exists c - 0091
exact hc