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 original first-admission records.
Exact expanded first-order arithmetic statement
forall b c l P a Q. (exists gr_product_trace_append_product_before gr_product_scale_append_product_before. ((((exists ff_h_gprod_append_product_beforestart. ff_h_gprod_append_product_beforestart + S (6) = S ((S (0)) * gr_product_scale_append_product_before)) /\ exists ff_q_gprod_append_product_beforestart. gr_product_trace_append_product_before = ff_q_gprod_append_product_beforestart * S ((S (0)) * gr_product_scale_append_product_before) + (6))) /\ ((((exists ff_h_gprod_append_product_beforeend. ff_h_gprod_append_product_beforeend + S (P) = S ((S (l)) * gr_product_scale_append_product_before)) /\ exists ff_q_gprod_append_product_beforeend. gr_product_trace_append_product_before = ff_q_gprod_append_product_beforeend * S ((S (l)) * gr_product_scale_append_product_before) + (P))) /\ (forall gr_product_index_append_product_beforesteps. (exists ge_gap_append_product_beforestepsindex_bound. ge_gap_append_product_beforestepsindex_bound + S (gr_product_index_append_product_beforesteps) = (l)) -> exists gr_product_factor_append_product_beforesteps gr_product_before_append_product_beforesteps gr_product_after_append_product_beforesteps. ((((exists ff_h_gprod_append_product_beforestepsfactor. ff_h_gprod_append_product_beforestepsfactor + S (gr_product_factor_append_product_beforesteps) = S ((S (gr_product_index_append_product_beforesteps)) * c)) /\ exists ff_q_gprod_append_product_beforestepsfactor. b = ff_q_gprod_append_product_beforestepsfactor * S ((S (gr_product_index_append_product_beforesteps)) * c) + (gr_product_factor_append_product_beforesteps))) /\ ((((exists ff_h_gprod_append_product_beforestepsbefore. ff_h_gprod_append_product_beforestepsbefore + S (gr_product_before_append_product_beforesteps) = S ((S (gr_product_index_append_product_beforesteps)) * gr_product_scale_append_product_before)) /\ exists ff_q_gprod_append_product_beforestepsbefore. gr_product_trace_append_product_before = ff_q_gprod_append_product_beforestepsbefore * S ((S (gr_product_index_append_product_beforesteps)) * gr_product_scale_append_product_before) + (gr_product_before_append_product_beforesteps))) /\ ((((exists ff_h_gprod_append_product_beforestepsafter. ff_h_gprod_append_product_beforestepsafter + S (gr_product_after_append_product_beforesteps) = S ((S (S (gr_product_index_append_product_beforesteps))) * gr_product_scale_append_product_before)) /\ exists ff_q_gprod_append_product_beforestepsafter. gr_product_trace_append_product_before = ff_q_gprod_append_product_beforestepsafter * S ((S (S (gr_product_index_append_product_beforesteps))) * gr_product_scale_append_product_before) + (gr_product_after_append_product_beforesteps))) /\ (exists ge_first_rp_append_product_beforestepsmultiply ge_first_rn_append_product_beforestepsmultiply ge_first_ip_append_product_beforestepsmultiply ge_first_in_append_product_beforestepsmultiply ge_second_rp_append_product_beforestepsmultiply ge_second_rn_append_product_beforestepsmultiply ge_second_ip_append_product_beforestepsmultiply ge_second_in_append_product_beforestepsmultiply. ((exists ge_representation_real_code_append_product_beforestepsmultiplyfirst ge_representation_imaginary_code_append_product_beforestepsmultiplyfirst. (((gr_product_before_append_product_beforesteps) = ((ge_representation_real_code_append_product_beforestepsmultiplyfirst) + (ge_representation_imaginary_code_append_product_beforestepsmultiplyfirst)) * S ((ge_representation_real_code_append_product_beforestepsmultiplyfirst) + (ge_representation_imaginary_code_append_product_beforestepsmultiplyfirst)) + ((ge_representation_imaginary_code_append_product_beforestepsmultiplyfirst) + (ge_representation_imaginary_code_append_product_beforestepsmultiplyfirst))) /\ ((exists ge_balance_positive_append_product_beforestepsmultiplyfirstreal ge_balance_negative_append_product_beforestepsmultiplyfirstreal. (((((ge_representation_real_code_append_product_beforestepsmultiplyfirst) = 2 * (ge_balance_positive_append_product_beforestepsmultiplyfirstreal) /\ (ge_balance_negative_append_product_beforestepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_append_product_beforestepsmultiplyfirstrealdecode. (((ge_representation_real_code_append_product_beforestepsmultiplyfirst) = 2 * ge_signed_half_append_product_beforestepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_append_product_beforestepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_append_product_beforestepsmultiplyfirstreal) = S ge_signed_half_append_product_beforestepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_append_product_beforestepsmultiply) + ge_balance_negative_append_product_beforestepsmultiplyfirstreal = (ge_first_rn_append_product_beforestepsmultiply) + ge_balance_positive_append_product_beforestepsmultiplyfirstreal))) /\ (exists ge_balance_positive_append_product_beforestepsmultiplyfirstimaginary ge_balance_negative_append_product_beforestepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_append_product_beforestepsmultiplyfirst) = 2 * (ge_balance_positive_append_product_beforestepsmultiplyfirstimaginary) /\ (ge_balance_negative_append_product_beforestepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_append_product_beforestepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_append_product_beforestepsmultiplyfirst) = 2 * ge_signed_half_append_product_beforestepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_append_product_beforestepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_append_product_beforestepsmultiplyfirstimaginary) = S ge_signed_half_append_product_beforestepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_append_product_beforestepsmultiply) + ge_balance_negative_append_product_beforestepsmultiplyfirstimaginary = (ge_first_in_append_product_beforestepsmultiply) + ge_balance_positive_append_product_beforestepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_append_product_beforestepsmultiplysecond ge_representation_imaginary_code_append_product_beforestepsmultiplysecond. (((gr_product_factor_append_product_beforesteps) = ((ge_representation_real_code_append_product_beforestepsmultiplysecond) + (ge_representation_imaginary_code_append_product_beforestepsmultiplysecond)) * S ((ge_representation_real_code_append_product_beforestepsmultiplysecond) + (ge_representation_imaginary_code_append_product_beforestepsmultiplysecond)) + ((ge_representation_imaginary_code_append_product_beforestepsmultiplysecond) + (ge_representation_imaginary_code_append_product_beforestepsmultiplysecond))) /\ ((exists ge_balance_positive_append_product_beforestepsmultiplysecondreal ge_balance_negative_append_product_beforestepsmultiplysecondreal. (((((ge_representation_real_code_append_product_beforestepsmultiplysecond) = 2 * (ge_balance_positive_append_product_beforestepsmultiplysecondreal) /\ (ge_balance_negative_append_product_beforestepsmultiplysecondreal) = 0) \/ exists ge_signed_half_append_product_beforestepsmultiplysecondrealdecode. (((ge_representation_real_code_append_product_beforestepsmultiplysecond) = 2 * ge_signed_half_append_product_beforestepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_append_product_beforestepsmultiplysecondreal) = 0) /\ (ge_balance_negative_append_product_beforestepsmultiplysecondreal) = S ge_signed_half_append_product_beforestepsmultiplysecondrealdecode))) /\ ((ge_second_rp_append_product_beforestepsmultiply) + ge_balance_negative_append_product_beforestepsmultiplysecondreal = (ge_second_rn_append_product_beforestepsmultiply) + ge_balance_positive_append_product_beforestepsmultiplysecondreal))) /\ (exists ge_balance_positive_append_product_beforestepsmultiplysecondimaginary ge_balance_negative_append_product_beforestepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_append_product_beforestepsmultiplysecond) = 2 * (ge_balance_positive_append_product_beforestepsmultiplysecondimaginary) /\ (ge_balance_negative_append_product_beforestepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_append_product_beforestepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_append_product_beforestepsmultiplysecond) = 2 * ge_signed_half_append_product_beforestepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_append_product_beforestepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_append_product_beforestepsmultiplysecondimaginary) = S ge_signed_half_append_product_beforestepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_append_product_beforestepsmultiply) + ge_balance_negative_append_product_beforestepsmultiplysecondimaginary = (ge_second_in_append_product_beforestepsmultiply) + ge_balance_positive_append_product_beforestepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_append_product_beforestepsmultiplyoutput ge_representation_imaginary_code_append_product_beforestepsmultiplyoutput. (((gr_product_after_append_product_beforesteps) = ((ge_representation_real_code_append_product_beforestepsmultiplyoutput) + (ge_representation_imaginary_code_append_product_beforestepsmultiplyoutput)) * S ((ge_representation_real_code_append_product_beforestepsmultiplyoutput) + (ge_representation_imaginary_code_append_product_beforestepsmultiplyoutput)) + ((ge_representation_imaginary_code_append_product_beforestepsmultiplyoutput) + (ge_representation_imaginary_code_append_product_beforestepsmultiplyoutput))) /\ ((exists ge_balance_positive_append_product_beforestepsmultiplyoutputreal ge_balance_negative_append_product_beforestepsmultiplyoutputreal. (((((ge_representation_real_code_append_product_beforestepsmultiplyoutput) = 2 * (ge_balance_positive_append_product_beforestepsmultiplyoutputreal) /\ (ge_balance_negative_append_product_beforestepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_append_product_beforestepsmultiplyoutputrealdecode. (((ge_representation_real_code_append_product_beforestepsmultiplyoutput) = 2 * ge_signed_half_append_product_beforestepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_append_product_beforestepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_append_product_beforestepsmultiplyoutputreal) = S ge_signed_half_append_product_beforestepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_append_product_beforestepsmultiply) * (ge_second_rp_append_product_beforestepsmultiply))) + (((ge_first_rn_append_product_beforestepsmultiply) * (ge_second_rn_append_product_beforestepsmultiply))))) + (((((ge_first_ip_append_product_beforestepsmultiply) * (ge_second_in_append_product_beforestepsmultiply))) + (((ge_first_in_append_product_beforestepsmultiply) * (ge_second_ip_append_product_beforestepsmultiply))))))) + ge_balance_negative_append_product_beforestepsmultiplyoutputreal = (((((((ge_first_rp_append_product_beforestepsmultiply) * (ge_second_rn_append_product_beforestepsmultiply))) + (((ge_first_rn_append_product_beforestepsmultiply) * (ge_second_rp_append_product_beforestepsmultiply))))) + (((((ge_first_ip_append_product_beforestepsmultiply) * (ge_second_ip_append_product_beforestepsmultiply))) + (((ge_first_in_append_product_beforestepsmultiply) * (ge_second_in_append_product_beforestepsmultiply))))))) + ge_balance_positive_append_product_beforestepsmultiplyoutputreal))) /\ (exists ge_balance_positive_append_product_beforestepsmultiplyoutputimaginary ge_balance_negative_append_product_beforestepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_append_product_beforestepsmultiplyoutput) = 2 * (ge_balance_positive_append_product_beforestepsmultiplyoutputimaginary) /\ (ge_balance_negative_append_product_beforestepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_append_product_beforestepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_append_product_beforestepsmultiplyoutput) = 2 * ge_signed_half_append_product_beforestepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_append_product_beforestepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_append_product_beforestepsmultiplyoutputimaginary) = S ge_signed_half_append_product_beforestepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_append_product_beforestepsmultiply) * (ge_second_ip_append_product_beforestepsmultiply))) + (((ge_first_rn_append_product_beforestepsmultiply) * (ge_second_in_append_product_beforestepsmultiply))))) + (((((ge_first_ip_append_product_beforestepsmultiply) * (ge_second_rp_append_product_beforestepsmultiply))) + (((ge_first_in_append_product_beforestepsmultiply) * (ge_second_rn_append_product_beforestepsmultiply))))))) + ge_balance_negative_append_product_beforestepsmultiplyoutputimaginary = (((((((ge_first_rp_append_product_beforestepsmultiply) * (ge_second_in_append_product_beforestepsmultiply))) + (((ge_first_rn_append_product_beforestepsmultiply) * (ge_second_ip_append_product_beforestepsmultiply))))) + (((((ge_first_ip_append_product_beforestepsmultiply) * (ge_second_rn_append_product_beforestepsmultiply))) + (((ge_first_in_append_product_beforestepsmultiply) * (ge_second_rp_append_product_beforestepsmultiply))))))) + ge_balance_positive_append_product_beforestepsmultiplyoutputimaginary)))))))))))))))) -> (((exists ff_h_gprod_append_factor. ff_h_gprod_append_factor + S (a) = S ((S (l)) * c)) /\ exists ff_q_gprod_append_factor. b = ff_q_gprod_append_factor * S ((S (l)) * c) + (a))) -> (exists ge_first_rp_append_multiply ge_first_rn_append_multiply ge_first_ip_append_multiply ge_first_in_append_multiply ge_second_rp_append_multiply ge_second_rn_append_multiply ge_second_ip_append_multiply ge_second_in_append_multiply. ((exists ge_representation_real_code_append_multiplyfirst ge_representation_imaginary_code_append_multiplyfirst. (((P) = ((ge_representation_real_code_append_multiplyfirst) + (ge_representation_imaginary_code_append_multiplyfirst)) * S ((ge_representation_real_code_append_multiplyfirst) + (ge_representation_imaginary_code_append_multiplyfirst)) + ((ge_representation_imaginary_code_append_multiplyfirst) + (ge_representation_imaginary_code_append_multiplyfirst))) /\ ((exists ge_balance_positive_append_multiplyfirstreal ge_balance_negative_append_multiplyfirstreal. (((((ge_representation_real_code_append_multiplyfirst) = 2 * (ge_balance_positive_append_multiplyfirstreal) /\ (ge_balance_negative_append_multiplyfirstreal) = 0) \/ exists ge_signed_half_append_multiplyfirstrealdecode. (((ge_representation_real_code_append_multiplyfirst) = 2 * ge_signed_half_append_multiplyfirstrealdecode + 1 /\ (ge_balance_positive_append_multiplyfirstreal) = 0) /\ (ge_balance_negative_append_multiplyfirstreal) = S ge_signed_half_append_multiplyfirstrealdecode))) /\ ((ge_first_rp_append_multiply) + ge_balance_negative_append_multiplyfirstreal = (ge_first_rn_append_multiply) + ge_balance_positive_append_multiplyfirstreal))) /\ (exists ge_balance_positive_append_multiplyfirstimaginary ge_balance_negative_append_multiplyfirstimaginary. (((((ge_representation_imaginary_code_append_multiplyfirst) = 2 * (ge_balance_positive_append_multiplyfirstimaginary) /\ (ge_balance_negative_append_multiplyfirstimaginary) = 0) \/ exists ge_signed_half_append_multiplyfirstimaginarydecode. (((ge_representation_imaginary_code_append_multiplyfirst) = 2 * ge_signed_half_append_multiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_append_multiplyfirstimaginary) = 0) /\ (ge_balance_negative_append_multiplyfirstimaginary) = S ge_signed_half_append_multiplyfirstimaginarydecode))) /\ ((ge_first_ip_append_multiply) + ge_balance_negative_append_multiplyfirstimaginary = (ge_first_in_append_multiply) + ge_balance_positive_append_multiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_append_multiplysecond ge_representation_imaginary_code_append_multiplysecond. (((a) = ((ge_representation_real_code_append_multiplysecond) + (ge_representation_imaginary_code_append_multiplysecond)) * S ((ge_representation_real_code_append_multiplysecond) + (ge_representation_imaginary_code_append_multiplysecond)) + ((ge_representation_imaginary_code_append_multiplysecond) + (ge_representation_imaginary_code_append_multiplysecond))) /\ ((exists ge_balance_positive_append_multiplysecondreal ge_balance_negative_append_multiplysecondreal. (((((ge_representation_real_code_append_multiplysecond) = 2 * (ge_balance_positive_append_multiplysecondreal) /\ (ge_balance_negative_append_multiplysecondreal) = 0) \/ exists ge_signed_half_append_multiplysecondrealdecode. (((ge_representation_real_code_append_multiplysecond) = 2 * ge_signed_half_append_multiplysecondrealdecode + 1 /\ (ge_balance_positive_append_multiplysecondreal) = 0) /\ (ge_balance_negative_append_multiplysecondreal) = S ge_signed_half_append_multiplysecondrealdecode))) /\ ((ge_second_rp_append_multiply) + ge_balance_negative_append_multiplysecondreal = (ge_second_rn_append_multiply) + ge_balance_positive_append_multiplysecondreal))) /\ (exists ge_balance_positive_append_multiplysecondimaginary ge_balance_negative_append_multiplysecondimaginary. (((((ge_representation_imaginary_code_append_multiplysecond) = 2 * (ge_balance_positive_append_multiplysecondimaginary) /\ (ge_balance_negative_append_multiplysecondimaginary) = 0) \/ exists ge_signed_half_append_multiplysecondimaginarydecode. (((ge_representation_imaginary_code_append_multiplysecond) = 2 * ge_signed_half_append_multiplysecondimaginarydecode + 1 /\ (ge_balance_positive_append_multiplysecondimaginary) = 0) /\ (ge_balance_negative_append_multiplysecondimaginary) = S ge_signed_half_append_multiplysecondimaginarydecode))) /\ ((ge_second_ip_append_multiply) + ge_balance_negative_append_multiplysecondimaginary = (ge_second_in_append_multiply) + ge_balance_positive_append_multiplysecondimaginary)))))) /\ (exists ge_representation_real_code_append_multiplyoutput ge_representation_imaginary_code_append_multiplyoutput. (((Q) = ((ge_representation_real_code_append_multiplyoutput) + (ge_representation_imaginary_code_append_multiplyoutput)) * S ((ge_representation_real_code_append_multiplyoutput) + (ge_representation_imaginary_code_append_multiplyoutput)) + ((ge_representation_imaginary_code_append_multiplyoutput) + (ge_representation_imaginary_code_append_multiplyoutput))) /\ ((exists ge_balance_positive_append_multiplyoutputreal ge_balance_negative_append_multiplyoutputreal. (((((ge_representation_real_code_append_multiplyoutput) = 2 * (ge_balance_positive_append_multiplyoutputreal) /\ (ge_balance_negative_append_multiplyoutputreal) = 0) \/ exists ge_signed_half_append_multiplyoutputrealdecode. (((ge_representation_real_code_append_multiplyoutput) = 2 * ge_signed_half_append_multiplyoutputrealdecode + 1 /\ (ge_balance_positive_append_multiplyoutputreal) = 0) /\ (ge_balance_negative_append_multiplyoutputreal) = S ge_signed_half_append_multiplyoutputrealdecode))) /\ ((((((((ge_first_rp_append_multiply) * (ge_second_rp_append_multiply))) + (((ge_first_rn_append_multiply) * (ge_second_rn_append_multiply))))) + (((((ge_first_ip_append_multiply) * (ge_second_in_append_multiply))) + (((ge_first_in_append_multiply) * (ge_second_ip_append_multiply))))))) + ge_balance_negative_append_multiplyoutputreal = (((((((ge_first_rp_append_multiply) * (ge_second_rn_append_multiply))) + (((ge_first_rn_append_multiply) * (ge_second_rp_append_multiply))))) + (((((ge_first_ip_append_multiply) * (ge_second_ip_append_multiply))) + (((ge_first_in_append_multiply) * (ge_second_in_append_multiply))))))) + ge_balance_positive_append_multiplyoutputreal))) /\ (exists ge_balance_positive_append_multiplyoutputimaginary ge_balance_negative_append_multiplyoutputimaginary. (((((ge_representation_imaginary_code_append_multiplyoutput) = 2 * (ge_balance_positive_append_multiplyoutputimaginary) /\ (ge_balance_negative_append_multiplyoutputimaginary) = 0) \/ exists ge_signed_half_append_multiplyoutputimaginarydecode. (((ge_representation_imaginary_code_append_multiplyoutput) = 2 * ge_signed_half_append_multiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_append_multiplyoutputimaginary) = 0) /\ (ge_balance_negative_append_multiplyoutputimaginary) = S ge_signed_half_append_multiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_append_multiply) * (ge_second_ip_append_multiply))) + (((ge_first_rn_append_multiply) * (ge_second_in_append_multiply))))) + (((((ge_first_ip_append_multiply) * (ge_second_rp_append_multiply))) + (((ge_first_in_append_multiply) * (ge_second_rn_append_multiply))))))) + ge_balance_negative_append_multiplyoutputimaginary = (((((((ge_first_rp_append_multiply) * (ge_second_in_append_multiply))) + (((ge_first_rn_append_multiply) * (ge_second_ip_append_multiply))))) + (((((ge_first_ip_append_multiply) * (ge_second_rn_append_multiply))) + (((ge_first_in_append_multiply) * (ge_second_rp_append_multiply))))))) + ge_balance_positive_append_multiplyoutputimaginary))))))))) -> (exists gr_product_trace_append_product_after gr_product_scale_append_product_after. ((((exists ff_h_gprod_append_product_afterstart. ff_h_gprod_append_product_afterstart + S (6) = S ((S (0)) * gr_product_scale_append_product_after)) /\ exists ff_q_gprod_append_product_afterstart. gr_product_trace_append_product_after = ff_q_gprod_append_product_afterstart * S ((S (0)) * gr_product_scale_append_product_after) + (6))) /\ ((((exists ff_h_gprod_append_product_afterend. ff_h_gprod_append_product_afterend + S (Q) = S ((S (S l)) * gr_product_scale_append_product_after)) /\ exists ff_q_gprod_append_product_afterend. gr_product_trace_append_product_after = ff_q_gprod_append_product_afterend * S ((S (S l)) * gr_product_scale_append_product_after) + (Q))) /\ (forall gr_product_index_append_product_aftersteps. (exists ge_gap_append_product_afterstepsindex_bound. ge_gap_append_product_afterstepsindex_bound + S (gr_product_index_append_product_aftersteps) = (S l)) -> exists gr_product_factor_append_product_aftersteps gr_product_before_append_product_aftersteps gr_product_after_append_product_aftersteps. ((((exists ff_h_gprod_append_product_afterstepsfactor. ff_h_gprod_append_product_afterstepsfactor + S (gr_product_factor_append_product_aftersteps) = S ((S (gr_product_index_append_product_aftersteps)) * c)) /\ exists ff_q_gprod_append_product_afterstepsfactor. b = ff_q_gprod_append_product_afterstepsfactor * S ((S (gr_product_index_append_product_aftersteps)) * c) + (gr_product_factor_append_product_aftersteps))) /\ ((((exists ff_h_gprod_append_product_afterstepsbefore. ff_h_gprod_append_product_afterstepsbefore + S (gr_product_before_append_product_aftersteps) = S ((S (gr_product_index_append_product_aftersteps)) * gr_product_scale_append_product_after)) /\ exists ff_q_gprod_append_product_afterstepsbefore. gr_product_trace_append_product_after = ff_q_gprod_append_product_afterstepsbefore * S ((S (gr_product_index_append_product_aftersteps)) * gr_product_scale_append_product_after) + (gr_product_before_append_product_aftersteps))) /\ ((((exists ff_h_gprod_append_product_afterstepsafter. ff_h_gprod_append_product_afterstepsafter + S (gr_product_after_append_product_aftersteps) = S ((S (S (gr_product_index_append_product_aftersteps))) * gr_product_scale_append_product_after)) /\ exists ff_q_gprod_append_product_afterstepsafter. gr_product_trace_append_product_after = ff_q_gprod_append_product_afterstepsafter * S ((S (S (gr_product_index_append_product_aftersteps))) * gr_product_scale_append_product_after) + (gr_product_after_append_product_aftersteps))) /\ (exists ge_first_rp_append_product_afterstepsmultiply ge_first_rn_append_product_afterstepsmultiply ge_first_ip_append_product_afterstepsmultiply ge_first_in_append_product_afterstepsmultiply ge_second_rp_append_product_afterstepsmultiply ge_second_rn_append_product_afterstepsmultiply ge_second_ip_append_product_afterstepsmultiply ge_second_in_append_product_afterstepsmultiply. ((exists ge_representation_real_code_append_product_afterstepsmultiplyfirst ge_representation_imaginary_code_append_product_afterstepsmultiplyfirst. (((gr_product_before_append_product_aftersteps) = ((ge_representation_real_code_append_product_afterstepsmultiplyfirst) + (ge_representation_imaginary_code_append_product_afterstepsmultiplyfirst)) * S ((ge_representation_real_code_append_product_afterstepsmultiplyfirst) + (ge_representation_imaginary_code_append_product_afterstepsmultiplyfirst)) + ((ge_representation_imaginary_code_append_product_afterstepsmultiplyfirst) + (ge_representation_imaginary_code_append_product_afterstepsmultiplyfirst))) /\ ((exists ge_balance_positive_append_product_afterstepsmultiplyfirstreal ge_balance_negative_append_product_afterstepsmultiplyfirstreal. (((((ge_representation_real_code_append_product_afterstepsmultiplyfirst) = 2 * (ge_balance_positive_append_product_afterstepsmultiplyfirstreal) /\ (ge_balance_negative_append_product_afterstepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_append_product_afterstepsmultiplyfirstrealdecode. (((ge_representation_real_code_append_product_afterstepsmultiplyfirst) = 2 * ge_signed_half_append_product_afterstepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_append_product_afterstepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_append_product_afterstepsmultiplyfirstreal) = S ge_signed_half_append_product_afterstepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_append_product_afterstepsmultiply) + ge_balance_negative_append_product_afterstepsmultiplyfirstreal = (ge_first_rn_append_product_afterstepsmultiply) + ge_balance_positive_append_product_afterstepsmultiplyfirstreal))) /\ (exists ge_balance_positive_append_product_afterstepsmultiplyfirstimaginary ge_balance_negative_append_product_afterstepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_append_product_afterstepsmultiplyfirst) = 2 * (ge_balance_positive_append_product_afterstepsmultiplyfirstimaginary) /\ (ge_balance_negative_append_product_afterstepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_append_product_afterstepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_append_product_afterstepsmultiplyfirst) = 2 * ge_signed_half_append_product_afterstepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_append_product_afterstepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_append_product_afterstepsmultiplyfirstimaginary) = S ge_signed_half_append_product_afterstepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_append_product_afterstepsmultiply) + ge_balance_negative_append_product_afterstepsmultiplyfirstimaginary = (ge_first_in_append_product_afterstepsmultiply) + ge_balance_positive_append_product_afterstepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_append_product_afterstepsmultiplysecond ge_representation_imaginary_code_append_product_afterstepsmultiplysecond. (((gr_product_factor_append_product_aftersteps) = ((ge_representation_real_code_append_product_afterstepsmultiplysecond) + (ge_representation_imaginary_code_append_product_afterstepsmultiplysecond)) * S ((ge_representation_real_code_append_product_afterstepsmultiplysecond) + (ge_representation_imaginary_code_append_product_afterstepsmultiplysecond)) + ((ge_representation_imaginary_code_append_product_afterstepsmultiplysecond) + (ge_representation_imaginary_code_append_product_afterstepsmultiplysecond))) /\ ((exists ge_balance_positive_append_product_afterstepsmultiplysecondreal ge_balance_negative_append_product_afterstepsmultiplysecondreal. (((((ge_representation_real_code_append_product_afterstepsmultiplysecond) = 2 * (ge_balance_positive_append_product_afterstepsmultiplysecondreal) /\ (ge_balance_negative_append_product_afterstepsmultiplysecondreal) = 0) \/ exists ge_signed_half_append_product_afterstepsmultiplysecondrealdecode. (((ge_representation_real_code_append_product_afterstepsmultiplysecond) = 2 * ge_signed_half_append_product_afterstepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_append_product_afterstepsmultiplysecondreal) = 0) /\ (ge_balance_negative_append_product_afterstepsmultiplysecondreal) = S ge_signed_half_append_product_afterstepsmultiplysecondrealdecode))) /\ ((ge_second_rp_append_product_afterstepsmultiply) + ge_balance_negative_append_product_afterstepsmultiplysecondreal = (ge_second_rn_append_product_afterstepsmultiply) + ge_balance_positive_append_product_afterstepsmultiplysecondreal))) /\ (exists ge_balance_positive_append_product_afterstepsmultiplysecondimaginary ge_balance_negative_append_product_afterstepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_append_product_afterstepsmultiplysecond) = 2 * (ge_balance_positive_append_product_afterstepsmultiplysecondimaginary) /\ (ge_balance_negative_append_product_afterstepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_append_product_afterstepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_append_product_afterstepsmultiplysecond) = 2 * ge_signed_half_append_product_afterstepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_append_product_afterstepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_append_product_afterstepsmultiplysecondimaginary) = S ge_signed_half_append_product_afterstepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_append_product_afterstepsmultiply) + ge_balance_negative_append_product_afterstepsmultiplysecondimaginary = (ge_second_in_append_product_afterstepsmultiply) + ge_balance_positive_append_product_afterstepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_append_product_afterstepsmultiplyoutput ge_representation_imaginary_code_append_product_afterstepsmultiplyoutput. (((gr_product_after_append_product_aftersteps) = ((ge_representation_real_code_append_product_afterstepsmultiplyoutput) + (ge_representation_imaginary_code_append_product_afterstepsmultiplyoutput)) * S ((ge_representation_real_code_append_product_afterstepsmultiplyoutput) + (ge_representation_imaginary_code_append_product_afterstepsmultiplyoutput)) + ((ge_representation_imaginary_code_append_product_afterstepsmultiplyoutput) + (ge_representation_imaginary_code_append_product_afterstepsmultiplyoutput))) /\ ((exists ge_balance_positive_append_product_afterstepsmultiplyoutputreal ge_balance_negative_append_product_afterstepsmultiplyoutputreal. (((((ge_representation_real_code_append_product_afterstepsmultiplyoutput) = 2 * (ge_balance_positive_append_product_afterstepsmultiplyoutputreal) /\ (ge_balance_negative_append_product_afterstepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_append_product_afterstepsmultiplyoutputrealdecode. (((ge_representation_real_code_append_product_afterstepsmultiplyoutput) = 2 * ge_signed_half_append_product_afterstepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_append_product_afterstepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_append_product_afterstepsmultiplyoutputreal) = S ge_signed_half_append_product_afterstepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_append_product_afterstepsmultiply) * (ge_second_rp_append_product_afterstepsmultiply))) + (((ge_first_rn_append_product_afterstepsmultiply) * (ge_second_rn_append_product_afterstepsmultiply))))) + (((((ge_first_ip_append_product_afterstepsmultiply) * (ge_second_in_append_product_afterstepsmultiply))) + (((ge_first_in_append_product_afterstepsmultiply) * (ge_second_ip_append_product_afterstepsmultiply))))))) + ge_balance_negative_append_product_afterstepsmultiplyoutputreal = (((((((ge_first_rp_append_product_afterstepsmultiply) * (ge_second_rn_append_product_afterstepsmultiply))) + (((ge_first_rn_append_product_afterstepsmultiply) * (ge_second_rp_append_product_afterstepsmultiply))))) + (((((ge_first_ip_append_product_afterstepsmultiply) * (ge_second_ip_append_product_afterstepsmultiply))) + (((ge_first_in_append_product_afterstepsmultiply) * (ge_second_in_append_product_afterstepsmultiply))))))) + ge_balance_positive_append_product_afterstepsmultiplyoutputreal))) /\ (exists ge_balance_positive_append_product_afterstepsmultiplyoutputimaginary ge_balance_negative_append_product_afterstepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_append_product_afterstepsmultiplyoutput) = 2 * (ge_balance_positive_append_product_afterstepsmultiplyoutputimaginary) /\ (ge_balance_negative_append_product_afterstepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_append_product_afterstepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_append_product_afterstepsmultiplyoutput) = 2 * ge_signed_half_append_product_afterstepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_append_product_afterstepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_append_product_afterstepsmultiplyoutputimaginary) = S ge_signed_half_append_product_afterstepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_append_product_afterstepsmultiply) * (ge_second_ip_append_product_afterstepsmultiply))) + (((ge_first_rn_append_product_afterstepsmultiply) * (ge_second_in_append_product_afterstepsmultiply))))) + (((((ge_first_ip_append_product_afterstepsmultiply) * (ge_second_rp_append_product_afterstepsmultiply))) + (((ge_first_in_append_product_afterstepsmultiply) * (ge_second_rn_append_product_afterstepsmultiply))))))) + ge_balance_negative_append_product_afterstepsmultiplyoutputimaginary = (((((((ge_first_rp_append_product_afterstepsmultiply) * (ge_second_in_append_product_afterstepsmultiply))) + (((ge_first_rn_append_product_afterstepsmultiply) * (ge_second_ip_append_product_afterstepsmultiply))))) + (((((ge_first_ip_append_product_afterstepsmultiply) * (ge_second_rn_append_product_afterstepsmultiply))) + (((ge_first_in_append_product_afterstepsmultiply) * (ge_second_rp_append_product_afterstepsmultiply))))))) + ge_balance_positive_append_product_afterstepsmultiplyoutputimaginary))))))))))))))))Constructive proof overview
Generated structural guide
Append a genuine Gaussian multiplication step using a constructed beta extension of the product trace, preserving all previous steps.
The unchanged tactic script uses 8 declared prerequisites and contains 123 exact native proof lines.
Alpha v34 checked-use · first admitted v30 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_prefix_extend Stable theorem; checked-use authorized succ_le_succ Stable theorem; checked-use authorized zero_le Stable theorem; checked-use authorized finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized GF0084 gaussian_product_beta_index_transport le_refl Stable theorem; checked-use authorized lt_of_lt_of_le Stable theorem; checked-use authorized le_succ_self Stable 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.
Named ingredients (1)
01Fix variables and assumptionsL1–9
02Separate the logical casesL10–13
03Establish hextL14–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
04Separate the logical casesL20–22
05Establish hlastL23–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hext witness witness right.
- L23
have hlast : (((exists ff_h_gprod_append_preserved_terminal. ff_h_gprod_append_preserved_terminal + S (P) = S ((S (l)) * x3)) /\ exists ff_q_gprod_append_preserved_terminal. x2 = ff_q_gprod_append_preserved_terminal * S ((S (l)) * x3) + (P))) - L24
specialize hext_witness_witness_right (l) - L25
specialize hext_witness_witness_right (P) - L26
apply hext_witness_witness_right - L27
specialize le_refl (S l) - L28
apply le_refl - L29
exact hp_witness_witness_right_left
06Construct an explicit witnessL30–31
07Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
split
08Use earlier factsL33–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
09Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
10Use earlier factsL43–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hext_witness_witness_left
11Fix variables and assumptionsL44–45
12Establish hcL46–50
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
13Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
cases hc
14Construct an explicit witnessL52–54
15Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
16Use earlier factsL56–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
specialize gaussian_product_beta_index_transport (b) - L57
specialize gaussian_product_beta_index_transport (c) - L58
specialize gaussian_product_beta_index_transport (l) - L59
specialize gaussian_product_beta_index_transport (i) - L60
specialize gaussian_product_beta_index_transport (a) - L61
apply gaussian_product_beta_index_transport
17Calculate and transport equalitiesL62–62
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L62
symm
18Use earlier factsL63–64
19Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
20Use earlier factsL66–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
specialize gaussian_product_beta_index_transport (x2) - L67
specialize gaussian_product_beta_index_transport (x3) - L68
specialize gaussian_product_beta_index_transport (l) - L69
specialize gaussian_product_beta_index_transport (i) - L70
specialize gaussian_product_beta_index_transport (P) - L71
apply gaussian_product_beta_index_transport
21Calculate and transport equalitiesL72–72
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L72
symm
22Use earlier factsL73–74
23Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
split
24Use earlier factsL76–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
specialize gaussian_product_beta_index_transport (x2) - L77
specialize gaussian_product_beta_index_transport (x3) - L78
specialize gaussian_product_beta_index_transport (S l) - L79
specialize gaussian_product_beta_index_transport (S i) - L80
specialize gaussian_product_beta_index_transport (Q) - L81
apply gaussian_product_beta_index_transport
25Calculate and transport equalitiesL82–83
26Use earlier factsL84–86
27Establish hsL87–90
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hp witness witness right right.
- L87
have hs : GProductStep(b,c,x,x1,i)Definitions: GProductStep - L88
specialize hp_witness_witness_right_right (i) - L89
apply hp_witness_witness_right_right - L90
exact hc_right
28Separate the logical casesL91–96
29Construct an explicit witnessL97–99
30Separate the logical casesL100–100
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L100
split
31Use earlier factsL101–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L101
exact hs_witness_witness_witness_left
32Separate the logical casesL102–102
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L102
split
33Use earlier factsL103–112
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
specialize hext_witness_witness_right (i) - L104
specialize hext_witness_witness_right (x5) - L105
apply hext_witness_witness_right - L106
specialize lt_of_lt_of_le (i) - L107
specialize lt_of_lt_of_le (l) - L108
specialize lt_of_lt_of_le (S l) - L109
apply lt_of_lt_of_le - L110
exact hc_right - L111
specialize le_succ_self (l) - L112
apply le_succ_self
34Use earlier factsL113–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L113
exact hs_witness_witness_witness_right_left
35Separate the logical casesL114–114
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L114
split
36Use earlier factsL115–123
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L115
specialize hext_witness_witness_right (S i) - L116
specialize hext_witness_witness_right (x6) - L117
apply hext_witness_witness_right - L118
specialize succ_le_succ (S i) - L119
specialize succ_le_succ (l) - L120
apply succ_le_succ - L121
exact hc_right - L122
exact hs_witness_witness_witness_right_right_left - L123
exact hs_witness_witness_witness_right_right_right
Original exact command ledger · 123 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro P - 0005
intro a - 0006
intro Q - 0007
intro hp - 0008
intro ha - 0009
intro hm - 0010
cases hp - 0011
cases hp_witness - 0012
cases hp_witness_witness - 0013
cases hp_witness_witness_right - 0014
have hext : exists h e. (((((exists ff_h_gprod_append_trace_last. ff_h_gprod_append_trace_last + S (Q) = S ((S (S l)) * e)) /\ exists ff_q_gprod_append_trace_last. h = ff_q_gprod_append_trace_last * S ((S (S l)) * e) + (Q))) /\ (forall pfp_i_append_trace_prefix pfp_a_append_trace_prefix. (exists pfp_gap_append_trace_prefixbound. pfp_gap_append_trace_prefixbound + S (pfp_i_append_trace_prefix) = (S l)) -> (((exists ff_h_pfp_append_trace_prefixold. ff_h_pfp_append_trace_prefixold + S (pfp_a_append_trace_prefix) = S ((S (pfp_i_append_trace_prefix)) * x1)) /\ exists ff_q_pfp_append_trace_prefixold. x = ff_q_pfp_append_trace_prefixold * S ((S (pfp_i_append_trace_prefix)) * x1) + (pfp_a_append_trace_prefix))) -> (((exists ff_h_pfp_append_trace_prefixnew. ff_h_pfp_append_trace_prefixnew + S (pfp_a_append_trace_prefix) = S ((S (pfp_i_append_trace_prefix)) * e)) /\ exists ff_q_pfp_append_trace_prefixnew. h = ff_q_pfp_append_trace_prefixnew * S ((S (pfp_i_append_trace_prefix)) * e) + (pfp_a_append_trace_prefix)))))) - 0015
specialize beta_prefix_extend (S l) - 0016
specialize beta_prefix_extend (x) - 0017
specialize beta_prefix_extend (x1) - 0018
specialize beta_prefix_extend (Q) - 0019
apply beta_prefix_extend - 0020
cases hext - 0021
cases hext_witness - 0022
cases hext_witness_witness - 0023
have hlast : (((exists ff_h_gprod_append_preserved_terminal. ff_h_gprod_append_preserved_terminal + S (P) = S ((S (l)) * x3)) /\ exists ff_q_gprod_append_preserved_terminal. x2 = ff_q_gprod_append_preserved_terminal * S ((S (l)) * x3) + (P))) - 0024
specialize hext_witness_witness_right (l) - 0025
specialize hext_witness_witness_right (P) - 0026
apply hext_witness_witness_right - 0027
specialize le_refl (S l) - 0028
apply le_refl - 0029
exact hp_witness_witness_right_left - 0030
exists (x2) - 0031
exists (x3) - 0032
split - 0033
specialize hext_witness_witness_right (0) - 0034
specialize hext_witness_witness_right (6) - 0035
apply hext_witness_witness_right - 0036
specialize succ_le_succ (0) - 0037
specialize succ_le_succ (l) - 0038
apply succ_le_succ - 0039
specialize zero_le (l) - 0040
apply zero_le - 0041
exact hp_witness_witness_left - 0042
split - 0043
exact hext_witness_witness_left - 0044
intro i - 0045
intro hi - 0046
have hc : i=l \/ (exists ge_gap_append_index_cases. ge_gap_append_index_cases + S (i) = (l)) - 0047
specialize finite_lt_succ_eq_or_lt (l) - 0048
specialize finite_lt_succ_eq_or_lt (i) - 0049
apply finite_lt_succ_eq_or_lt - 0050
exact hi - 0051
cases hc - 0052
exists (a) - 0053
exists (P) - 0054
exists (Q) - 0055
split - 0056
specialize gaussian_product_beta_index_transport (b) - 0057
specialize gaussian_product_beta_index_transport (c) - 0058
specialize gaussian_product_beta_index_transport (l) - 0059
specialize gaussian_product_beta_index_transport (i) - 0060
specialize gaussian_product_beta_index_transport (a) - 0061
apply gaussian_product_beta_index_transport - 0062
symm - 0063
exact hc_left - 0064
exact ha - 0065
split - 0066
specialize gaussian_product_beta_index_transport (x2) - 0067
specialize gaussian_product_beta_index_transport (x3) - 0068
specialize gaussian_product_beta_index_transport (l) - 0069
specialize gaussian_product_beta_index_transport (i) - 0070
specialize gaussian_product_beta_index_transport (P) - 0071
apply gaussian_product_beta_index_transport - 0072
symm - 0073
exact hc_left - 0074
exact hlast - 0075
split - 0076
specialize gaussian_product_beta_index_transport (x2) - 0077
specialize gaussian_product_beta_index_transport (x3) - 0078
specialize gaussian_product_beta_index_transport (S l) - 0079
specialize gaussian_product_beta_index_transport (S i) - 0080
specialize gaussian_product_beta_index_transport (Q) - 0081
apply gaussian_product_beta_index_transport - 0082
congr - 0083
symm - 0084
exact hc_left - 0085
exact hext_witness_witness_left - 0086
exact hm - 0087
have hs : exists a R T. ((((exists ff_h_gprod_append_old_factor. ff_h_gprod_append_old_factor + S (a) = S ((S (i)) * c)) /\ exists ff_q_gprod_append_old_factor. b = ff_q_gprod_append_old_factor * S ((S (i)) * c) + (a))) /\ ((((exists ff_h_gprod_append_old_before. ff_h_gprod_append_old_before + S (R) = S ((S (i)) * x1)) /\ exists ff_q_gprod_append_old_before. x = ff_q_gprod_append_old_before * S ((S (i)) * x1) + (R))) /\ ((((exists ff_h_gprod_append_old_after. ff_h_gprod_append_old_after + S (T) = S ((S (S i)) * x1)) /\ exists ff_q_gprod_append_old_after. x = ff_q_gprod_append_old_after * S ((S (S i)) * x1) + (T))) /\ (exists ge_first_rp_append_old_multiply ge_first_rn_append_old_multiply ge_first_ip_append_old_multiply ge_first_in_append_old_multiply ge_second_rp_append_old_multiply ge_second_rn_append_old_multiply ge_second_ip_append_old_multiply ge_second_in_append_old_multiply. ((exists ge_representation_real_code_append_old_multiplyfirst ge_representation_imaginary_code_append_old_multiplyfirst. (((R) = ((ge_representation_real_code_append_old_multiplyfirst) + (ge_representation_imaginary_code_append_old_multiplyfirst)) * S ((ge_representation_real_code_append_old_multiplyfirst) + (ge_representation_imaginary_code_append_old_multiplyfirst)) + ((ge_representation_imaginary_code_append_old_multiplyfirst) + (ge_representation_imaginary_code_append_old_multiplyfirst))) /\ ((exists ge_balance_positive_append_old_multiplyfirstreal ge_balance_negative_append_old_multiplyfirstreal. (((((ge_representation_real_code_append_old_multiplyfirst) = 2 * (ge_balance_positive_append_old_multiplyfirstreal) /\ (ge_balance_negative_append_old_multiplyfirstreal) = 0) \/ exists ge_signed_half_append_old_multiplyfirstrealdecode. (((ge_representation_real_code_append_old_multiplyfirst) = 2 * ge_signed_half_append_old_multiplyfirstrealdecode + 1 /\ (ge_balance_positive_append_old_multiplyfirstreal) = 0) /\ (ge_balance_negative_append_old_multiplyfirstreal) = S ge_signed_half_append_old_multiplyfirstrealdecode))) /\ ((ge_first_rp_append_old_multiply) + ge_balance_negative_append_old_multiplyfirstreal = (ge_first_rn_append_old_multiply) + ge_balance_positive_append_old_multiplyfirstreal))) /\ (exists ge_balance_positive_append_old_multiplyfirstimaginary ge_balance_negative_append_old_multiplyfirstimaginary. (((((ge_representation_imaginary_code_append_old_multiplyfirst) = 2 * (ge_balance_positive_append_old_multiplyfirstimaginary) /\ (ge_balance_negative_append_old_multiplyfirstimaginary) = 0) \/ exists ge_signed_half_append_old_multiplyfirstimaginarydecode. (((ge_representation_imaginary_code_append_old_multiplyfirst) = 2 * ge_signed_half_append_old_multiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_append_old_multiplyfirstimaginary) = 0) /\ (ge_balance_negative_append_old_multiplyfirstimaginary) = S ge_signed_half_append_old_multiplyfirstimaginarydecode))) /\ ((ge_first_ip_append_old_multiply) + ge_balance_negative_append_old_multiplyfirstimaginary = (ge_first_in_append_old_multiply) + ge_balance_positive_append_old_multiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_append_old_multiplysecond ge_representation_imaginary_code_append_old_multiplysecond. (((a) = ((ge_representation_real_code_append_old_multiplysecond) + (ge_representation_imaginary_code_append_old_multiplysecond)) * S ((ge_representation_real_code_append_old_multiplysecond) + (ge_representation_imaginary_code_append_old_multiplysecond)) + ((ge_representation_imaginary_code_append_old_multiplysecond) + (ge_representation_imaginary_code_append_old_multiplysecond))) /\ ((exists ge_balance_positive_append_old_multiplysecondreal ge_balance_negative_append_old_multiplysecondreal. (((((ge_representation_real_code_append_old_multiplysecond) = 2 * (ge_balance_positive_append_old_multiplysecondreal) /\ (ge_balance_negative_append_old_multiplysecondreal) = 0) \/ exists ge_signed_half_append_old_multiplysecondrealdecode. (((ge_representation_real_code_append_old_multiplysecond) = 2 * ge_signed_half_append_old_multiplysecondrealdecode + 1 /\ (ge_balance_positive_append_old_multiplysecondreal) = 0) /\ (ge_balance_negative_append_old_multiplysecondreal) = S ge_signed_half_append_old_multiplysecondrealdecode))) /\ ((ge_second_rp_append_old_multiply) + ge_balance_negative_append_old_multiplysecondreal = (ge_second_rn_append_old_multiply) + ge_balance_positive_append_old_multiplysecondreal))) /\ (exists ge_balance_positive_append_old_multiplysecondimaginary ge_balance_negative_append_old_multiplysecondimaginary. (((((ge_representation_imaginary_code_append_old_multiplysecond) = 2 * (ge_balance_positive_append_old_multiplysecondimaginary) /\ (ge_balance_negative_append_old_multiplysecondimaginary) = 0) \/ exists ge_signed_half_append_old_multiplysecondimaginarydecode. (((ge_representation_imaginary_code_append_old_multiplysecond) = 2 * ge_signed_half_append_old_multiplysecondimaginarydecode + 1 /\ (ge_balance_positive_append_old_multiplysecondimaginary) = 0) /\ (ge_balance_negative_append_old_multiplysecondimaginary) = S ge_signed_half_append_old_multiplysecondimaginarydecode))) /\ ((ge_second_ip_append_old_multiply) + ge_balance_negative_append_old_multiplysecondimaginary = (ge_second_in_append_old_multiply) + ge_balance_positive_append_old_multiplysecondimaginary)))))) /\ (exists ge_representation_real_code_append_old_multiplyoutput ge_representation_imaginary_code_append_old_multiplyoutput. (((T) = ((ge_representation_real_code_append_old_multiplyoutput) + (ge_representation_imaginary_code_append_old_multiplyoutput)) * S ((ge_representation_real_code_append_old_multiplyoutput) + (ge_representation_imaginary_code_append_old_multiplyoutput)) + ((ge_representation_imaginary_code_append_old_multiplyoutput) + (ge_representation_imaginary_code_append_old_multiplyoutput))) /\ ((exists ge_balance_positive_append_old_multiplyoutputreal ge_balance_negative_append_old_multiplyoutputreal. (((((ge_representation_real_code_append_old_multiplyoutput) = 2 * (ge_balance_positive_append_old_multiplyoutputreal) /\ (ge_balance_negative_append_old_multiplyoutputreal) = 0) \/ exists ge_signed_half_append_old_multiplyoutputrealdecode. (((ge_representation_real_code_append_old_multiplyoutput) = 2 * ge_signed_half_append_old_multiplyoutputrealdecode + 1 /\ (ge_balance_positive_append_old_multiplyoutputreal) = 0) /\ (ge_balance_negative_append_old_multiplyoutputreal) = S ge_signed_half_append_old_multiplyoutputrealdecode))) /\ ((((((((ge_first_rp_append_old_multiply) * (ge_second_rp_append_old_multiply))) + (((ge_first_rn_append_old_multiply) * (ge_second_rn_append_old_multiply))))) + (((((ge_first_ip_append_old_multiply) * (ge_second_in_append_old_multiply))) + (((ge_first_in_append_old_multiply) * (ge_second_ip_append_old_multiply))))))) + ge_balance_negative_append_old_multiplyoutputreal = (((((((ge_first_rp_append_old_multiply) * (ge_second_rn_append_old_multiply))) + (((ge_first_rn_append_old_multiply) * (ge_second_rp_append_old_multiply))))) + (((((ge_first_ip_append_old_multiply) * (ge_second_ip_append_old_multiply))) + (((ge_first_in_append_old_multiply) * (ge_second_in_append_old_multiply))))))) + ge_balance_positive_append_old_multiplyoutputreal))) /\ (exists ge_balance_positive_append_old_multiplyoutputimaginary ge_balance_negative_append_old_multiplyoutputimaginary. (((((ge_representation_imaginary_code_append_old_multiplyoutput) = 2 * (ge_balance_positive_append_old_multiplyoutputimaginary) /\ (ge_balance_negative_append_old_multiplyoutputimaginary) = 0) \/ exists ge_signed_half_append_old_multiplyoutputimaginarydecode. (((ge_representation_imaginary_code_append_old_multiplyoutput) = 2 * ge_signed_half_append_old_multiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_append_old_multiplyoutputimaginary) = 0) /\ (ge_balance_negative_append_old_multiplyoutputimaginary) = S ge_signed_half_append_old_multiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_append_old_multiply) * (ge_second_ip_append_old_multiply))) + (((ge_first_rn_append_old_multiply) * (ge_second_in_append_old_multiply))))) + (((((ge_first_ip_append_old_multiply) * (ge_second_rp_append_old_multiply))) + (((ge_first_in_append_old_multiply) * (ge_second_rn_append_old_multiply))))))) + ge_balance_negative_append_old_multiplyoutputimaginary = (((((((ge_first_rp_append_old_multiply) * (ge_second_in_append_old_multiply))) + (((ge_first_rn_append_old_multiply) * (ge_second_ip_append_old_multiply))))) + (((((ge_first_ip_append_old_multiply) * (ge_second_rn_append_old_multiply))) + (((ge_first_in_append_old_multiply) * (ge_second_rp_append_old_multiply))))))) + ge_balance_positive_append_old_multiplyoutputimaginary)))))))))))) - 0088
specialize hp_witness_witness_right_right (i) - 0089
apply hp_witness_witness_right_right - 0090
exact hc_right - 0091
cases hs - 0092
cases hs_witness - 0093
cases hs_witness_witness - 0094
cases hs_witness_witness_witness - 0095
cases hs_witness_witness_witness_right - 0096
cases hs_witness_witness_witness_right_right - 0097
exists (x4) - 0098
exists (x5) - 0099
exists (x6) - 0100
split - 0101
exact hs_witness_witness_witness_left - 0102
split - 0103
specialize hext_witness_witness_right (i) - 0104
specialize hext_witness_witness_right (x5) - 0105
apply hext_witness_witness_right - 0106
specialize lt_of_lt_of_le (i) - 0107
specialize lt_of_lt_of_le (l) - 0108
specialize lt_of_lt_of_le (S l) - 0109
apply lt_of_lt_of_le - 0110
exact hc_right - 0111
specialize le_succ_self (l) - 0112
apply le_succ_self - 0113
exact hs_witness_witness_witness_right_left - 0114
split - 0115
specialize hext_witness_witness_right (S i) - 0116
specialize hext_witness_witness_right (x6) - 0117
apply hext_witness_witness_right - 0118
specialize succ_le_succ (S i) - 0119
specialize succ_le_succ (l) - 0120
apply succ_le_succ - 0121
exact hc_right - 0122
exact hs_witness_witness_witness_right_right_left - 0123
exact hs_witness_witness_witness_right_right_right