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 k b c d e i p q P Q T. (exists ge_gap_replace_index. ge_gap_replace_index + S (i) = (k)) -> (((exists ff_h_gprod_replace_old_factor. ff_h_gprod_replace_old_factor + S (p) = S ((S (i)) * c)) /\ exists ff_q_gprod_replace_old_factor. b = ff_q_gprod_replace_old_factor * S ((S (i)) * c) + (p))) -> (((exists ff_h_gprod_replace_new_factor. ff_h_gprod_replace_new_factor + S (q) = S ((S (i)) * e)) /\ exists ff_q_gprod_replace_new_factor. d = ff_q_gprod_replace_new_factor * S ((S (i)) * e) + (q))) -> (forall gr_replacement_index_replace_other_factors gr_replacement_value_replace_other_factors. (exists ge_gap_replace_other_factorsbound. ge_gap_replace_other_factorsbound + S (gr_replacement_index_replace_other_factors) = (k)) -> ~(gr_replacement_index_replace_other_factors=(i)) -> (((exists ff_h_gprod_replace_other_factorsold. ff_h_gprod_replace_other_factorsold + S (gr_replacement_value_replace_other_factors) = S ((S (gr_replacement_index_replace_other_factors)) * c)) /\ exists ff_q_gprod_replace_other_factorsold. b = ff_q_gprod_replace_other_factorsold * S ((S (gr_replacement_index_replace_other_factors)) * c) + (gr_replacement_value_replace_other_factors))) -> (((exists ff_h_gprod_replace_other_factorsnew. ff_h_gprod_replace_other_factorsnew + S (gr_replacement_value_replace_other_factors) = S ((S (gr_replacement_index_replace_other_factors)) * e)) /\ exists ff_q_gprod_replace_other_factorsnew. d = ff_q_gprod_replace_other_factorsnew * S ((S (gr_replacement_index_replace_other_factors)) * e) + (gr_replacement_value_replace_other_factors)))) -> (exists gr_product_trace_replace_old_product gr_product_scale_replace_old_product. ((((exists ff_h_gprod_replace_old_productstart. ff_h_gprod_replace_old_productstart + S (6) = S ((S (0)) * gr_product_scale_replace_old_product)) /\ exists ff_q_gprod_replace_old_productstart. gr_product_trace_replace_old_product = ff_q_gprod_replace_old_productstart * S ((S (0)) * gr_product_scale_replace_old_product) + (6))) /\ ((((exists ff_h_gprod_replace_old_productend. ff_h_gprod_replace_old_productend + S (P) = S ((S (k)) * gr_product_scale_replace_old_product)) /\ exists ff_q_gprod_replace_old_productend. gr_product_trace_replace_old_product = ff_q_gprod_replace_old_productend * S ((S (k)) * gr_product_scale_replace_old_product) + (P))) /\ (forall gr_product_index_replace_old_productsteps. (exists ge_gap_replace_old_productstepsindex_bound. ge_gap_replace_old_productstepsindex_bound + S (gr_product_index_replace_old_productsteps) = (k)) -> exists gr_product_factor_replace_old_productsteps gr_product_before_replace_old_productsteps gr_product_after_replace_old_productsteps. ((((exists ff_h_gprod_replace_old_productstepsfactor. ff_h_gprod_replace_old_productstepsfactor + S (gr_product_factor_replace_old_productsteps) = S ((S (gr_product_index_replace_old_productsteps)) * c)) /\ exists ff_q_gprod_replace_old_productstepsfactor. b = ff_q_gprod_replace_old_productstepsfactor * S ((S (gr_product_index_replace_old_productsteps)) * c) + (gr_product_factor_replace_old_productsteps))) /\ ((((exists ff_h_gprod_replace_old_productstepsbefore. ff_h_gprod_replace_old_productstepsbefore + S (gr_product_before_replace_old_productsteps) = S ((S (gr_product_index_replace_old_productsteps)) * gr_product_scale_replace_old_product)) /\ exists ff_q_gprod_replace_old_productstepsbefore. gr_product_trace_replace_old_product = ff_q_gprod_replace_old_productstepsbefore * S ((S (gr_product_index_replace_old_productsteps)) * gr_product_scale_replace_old_product) + (gr_product_before_replace_old_productsteps))) /\ ((((exists ff_h_gprod_replace_old_productstepsafter. ff_h_gprod_replace_old_productstepsafter + S (gr_product_after_replace_old_productsteps) = S ((S (S (gr_product_index_replace_old_productsteps))) * gr_product_scale_replace_old_product)) /\ exists ff_q_gprod_replace_old_productstepsafter. gr_product_trace_replace_old_product = ff_q_gprod_replace_old_productstepsafter * S ((S (S (gr_product_index_replace_old_productsteps))) * gr_product_scale_replace_old_product) + (gr_product_after_replace_old_productsteps))) /\ (exists ge_first_rp_replace_old_productstepsmultiply ge_first_rn_replace_old_productstepsmultiply ge_first_ip_replace_old_productstepsmultiply ge_first_in_replace_old_productstepsmultiply ge_second_rp_replace_old_productstepsmultiply ge_second_rn_replace_old_productstepsmultiply ge_second_ip_replace_old_productstepsmultiply ge_second_in_replace_old_productstepsmultiply. ((exists ge_representation_real_code_replace_old_productstepsmultiplyfirst ge_representation_imaginary_code_replace_old_productstepsmultiplyfirst. (((gr_product_before_replace_old_productsteps) = ((ge_representation_real_code_replace_old_productstepsmultiplyfirst) + (ge_representation_imaginary_code_replace_old_productstepsmultiplyfirst)) * S ((ge_representation_real_code_replace_old_productstepsmultiplyfirst) + (ge_representation_imaginary_code_replace_old_productstepsmultiplyfirst)) + ((ge_representation_imaginary_code_replace_old_productstepsmultiplyfirst) + (ge_representation_imaginary_code_replace_old_productstepsmultiplyfirst))) /\ ((exists ge_balance_positive_replace_old_productstepsmultiplyfirstreal ge_balance_negative_replace_old_productstepsmultiplyfirstreal. (((((ge_representation_real_code_replace_old_productstepsmultiplyfirst) = 2 * (ge_balance_positive_replace_old_productstepsmultiplyfirstreal) /\ (ge_balance_negative_replace_old_productstepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_replace_old_productstepsmultiplyfirstrealdecode. (((ge_representation_real_code_replace_old_productstepsmultiplyfirst) = 2 * ge_signed_half_replace_old_productstepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_replace_old_productstepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_replace_old_productstepsmultiplyfirstreal) = S ge_signed_half_replace_old_productstepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_replace_old_productstepsmultiply) + ge_balance_negative_replace_old_productstepsmultiplyfirstreal = (ge_first_rn_replace_old_productstepsmultiply) + ge_balance_positive_replace_old_productstepsmultiplyfirstreal))) /\ (exists ge_balance_positive_replace_old_productstepsmultiplyfirstimaginary ge_balance_negative_replace_old_productstepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_replace_old_productstepsmultiplyfirst) = 2 * (ge_balance_positive_replace_old_productstepsmultiplyfirstimaginary) /\ (ge_balance_negative_replace_old_productstepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_replace_old_productstepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_replace_old_productstepsmultiplyfirst) = 2 * ge_signed_half_replace_old_productstepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_replace_old_productstepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_replace_old_productstepsmultiplyfirstimaginary) = S ge_signed_half_replace_old_productstepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_replace_old_productstepsmultiply) + ge_balance_negative_replace_old_productstepsmultiplyfirstimaginary = (ge_first_in_replace_old_productstepsmultiply) + ge_balance_positive_replace_old_productstepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_replace_old_productstepsmultiplysecond ge_representation_imaginary_code_replace_old_productstepsmultiplysecond. (((gr_product_factor_replace_old_productsteps) = ((ge_representation_real_code_replace_old_productstepsmultiplysecond) + (ge_representation_imaginary_code_replace_old_productstepsmultiplysecond)) * S ((ge_representation_real_code_replace_old_productstepsmultiplysecond) + (ge_representation_imaginary_code_replace_old_productstepsmultiplysecond)) + ((ge_representation_imaginary_code_replace_old_productstepsmultiplysecond) + (ge_representation_imaginary_code_replace_old_productstepsmultiplysecond))) /\ ((exists ge_balance_positive_replace_old_productstepsmultiplysecondreal ge_balance_negative_replace_old_productstepsmultiplysecondreal. (((((ge_representation_real_code_replace_old_productstepsmultiplysecond) = 2 * (ge_balance_positive_replace_old_productstepsmultiplysecondreal) /\ (ge_balance_negative_replace_old_productstepsmultiplysecondreal) = 0) \/ exists ge_signed_half_replace_old_productstepsmultiplysecondrealdecode. (((ge_representation_real_code_replace_old_productstepsmultiplysecond) = 2 * ge_signed_half_replace_old_productstepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_replace_old_productstepsmultiplysecondreal) = 0) /\ (ge_balance_negative_replace_old_productstepsmultiplysecondreal) = S ge_signed_half_replace_old_productstepsmultiplysecondrealdecode))) /\ ((ge_second_rp_replace_old_productstepsmultiply) + ge_balance_negative_replace_old_productstepsmultiplysecondreal = (ge_second_rn_replace_old_productstepsmultiply) + ge_balance_positive_replace_old_productstepsmultiplysecondreal))) /\ (exists ge_balance_positive_replace_old_productstepsmultiplysecondimaginary ge_balance_negative_replace_old_productstepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_replace_old_productstepsmultiplysecond) = 2 * (ge_balance_positive_replace_old_productstepsmultiplysecondimaginary) /\ (ge_balance_negative_replace_old_productstepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_replace_old_productstepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_replace_old_productstepsmultiplysecond) = 2 * ge_signed_half_replace_old_productstepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_replace_old_productstepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_replace_old_productstepsmultiplysecondimaginary) = S ge_signed_half_replace_old_productstepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_replace_old_productstepsmultiply) + ge_balance_negative_replace_old_productstepsmultiplysecondimaginary = (ge_second_in_replace_old_productstepsmultiply) + ge_balance_positive_replace_old_productstepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_replace_old_productstepsmultiplyoutput ge_representation_imaginary_code_replace_old_productstepsmultiplyoutput. (((gr_product_after_replace_old_productsteps) = ((ge_representation_real_code_replace_old_productstepsmultiplyoutput) + (ge_representation_imaginary_code_replace_old_productstepsmultiplyoutput)) * S ((ge_representation_real_code_replace_old_productstepsmultiplyoutput) + (ge_representation_imaginary_code_replace_old_productstepsmultiplyoutput)) + ((ge_representation_imaginary_code_replace_old_productstepsmultiplyoutput) + (ge_representation_imaginary_code_replace_old_productstepsmultiplyoutput))) /\ ((exists ge_balance_positive_replace_old_productstepsmultiplyoutputreal ge_balance_negative_replace_old_productstepsmultiplyoutputreal. (((((ge_representation_real_code_replace_old_productstepsmultiplyoutput) = 2 * (ge_balance_positive_replace_old_productstepsmultiplyoutputreal) /\ (ge_balance_negative_replace_old_productstepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_replace_old_productstepsmultiplyoutputrealdecode. (((ge_representation_real_code_replace_old_productstepsmultiplyoutput) = 2 * ge_signed_half_replace_old_productstepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_replace_old_productstepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_replace_old_productstepsmultiplyoutputreal) = S ge_signed_half_replace_old_productstepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_replace_old_productstepsmultiply) * (ge_second_rp_replace_old_productstepsmultiply))) + (((ge_first_rn_replace_old_productstepsmultiply) * (ge_second_rn_replace_old_productstepsmultiply))))) + (((((ge_first_ip_replace_old_productstepsmultiply) * (ge_second_in_replace_old_productstepsmultiply))) + (((ge_first_in_replace_old_productstepsmultiply) * (ge_second_ip_replace_old_productstepsmultiply))))))) + ge_balance_negative_replace_old_productstepsmultiplyoutputreal = (((((((ge_first_rp_replace_old_productstepsmultiply) * (ge_second_rn_replace_old_productstepsmultiply))) + (((ge_first_rn_replace_old_productstepsmultiply) * (ge_second_rp_replace_old_productstepsmultiply))))) + (((((ge_first_ip_replace_old_productstepsmultiply) * (ge_second_ip_replace_old_productstepsmultiply))) + (((ge_first_in_replace_old_productstepsmultiply) * (ge_second_in_replace_old_productstepsmultiply))))))) + ge_balance_positive_replace_old_productstepsmultiplyoutputreal))) /\ (exists ge_balance_positive_replace_old_productstepsmultiplyoutputimaginary ge_balance_negative_replace_old_productstepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_replace_old_productstepsmultiplyoutput) = 2 * (ge_balance_positive_replace_old_productstepsmultiplyoutputimaginary) /\ (ge_balance_negative_replace_old_productstepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_replace_old_productstepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_replace_old_productstepsmultiplyoutput) = 2 * ge_signed_half_replace_old_productstepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_replace_old_productstepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_replace_old_productstepsmultiplyoutputimaginary) = S ge_signed_half_replace_old_productstepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_replace_old_productstepsmultiply) * (ge_second_ip_replace_old_productstepsmultiply))) + (((ge_first_rn_replace_old_productstepsmultiply) * (ge_second_in_replace_old_productstepsmultiply))))) + (((((ge_first_ip_replace_old_productstepsmultiply) * (ge_second_rp_replace_old_productstepsmultiply))) + (((ge_first_in_replace_old_productstepsmultiply) * (ge_second_rn_replace_old_productstepsmultiply))))))) + ge_balance_negative_replace_old_productstepsmultiplyoutputimaginary = (((((((ge_first_rp_replace_old_productstepsmultiply) * (ge_second_in_replace_old_productstepsmultiply))) + (((ge_first_rn_replace_old_productstepsmultiply) * (ge_second_ip_replace_old_productstepsmultiply))))) + (((((ge_first_ip_replace_old_productstepsmultiply) * (ge_second_rn_replace_old_productstepsmultiply))) + (((ge_first_in_replace_old_productstepsmultiply) * (ge_second_rp_replace_old_productstepsmultiply))))))) + ge_balance_positive_replace_old_productstepsmultiplyoutputimaginary)))))))))))))))) -> (exists gr_product_trace_replace_new_product gr_product_scale_replace_new_product. ((((exists ff_h_gprod_replace_new_productstart. ff_h_gprod_replace_new_productstart + S (6) = S ((S (0)) * gr_product_scale_replace_new_product)) /\ exists ff_q_gprod_replace_new_productstart. gr_product_trace_replace_new_product = ff_q_gprod_replace_new_productstart * S ((S (0)) * gr_product_scale_replace_new_product) + (6))) /\ ((((exists ff_h_gprod_replace_new_productend. ff_h_gprod_replace_new_productend + S (Q) = S ((S (k)) * gr_product_scale_replace_new_product)) /\ exists ff_q_gprod_replace_new_productend. gr_product_trace_replace_new_product = ff_q_gprod_replace_new_productend * S ((S (k)) * gr_product_scale_replace_new_product) + (Q))) /\ (forall gr_product_index_replace_new_productsteps. (exists ge_gap_replace_new_productstepsindex_bound. ge_gap_replace_new_productstepsindex_bound + S (gr_product_index_replace_new_productsteps) = (k)) -> exists gr_product_factor_replace_new_productsteps gr_product_before_replace_new_productsteps gr_product_after_replace_new_productsteps. ((((exists ff_h_gprod_replace_new_productstepsfactor. ff_h_gprod_replace_new_productstepsfactor + S (gr_product_factor_replace_new_productsteps) = S ((S (gr_product_index_replace_new_productsteps)) * e)) /\ exists ff_q_gprod_replace_new_productstepsfactor. d = ff_q_gprod_replace_new_productstepsfactor * S ((S (gr_product_index_replace_new_productsteps)) * e) + (gr_product_factor_replace_new_productsteps))) /\ ((((exists ff_h_gprod_replace_new_productstepsbefore. ff_h_gprod_replace_new_productstepsbefore + S (gr_product_before_replace_new_productsteps) = S ((S (gr_product_index_replace_new_productsteps)) * gr_product_scale_replace_new_product)) /\ exists ff_q_gprod_replace_new_productstepsbefore. gr_product_trace_replace_new_product = ff_q_gprod_replace_new_productstepsbefore * S ((S (gr_product_index_replace_new_productsteps)) * gr_product_scale_replace_new_product) + (gr_product_before_replace_new_productsteps))) /\ ((((exists ff_h_gprod_replace_new_productstepsafter. ff_h_gprod_replace_new_productstepsafter + S (gr_product_after_replace_new_productsteps) = S ((S (S (gr_product_index_replace_new_productsteps))) * gr_product_scale_replace_new_product)) /\ exists ff_q_gprod_replace_new_productstepsafter. gr_product_trace_replace_new_product = ff_q_gprod_replace_new_productstepsafter * S ((S (S (gr_product_index_replace_new_productsteps))) * gr_product_scale_replace_new_product) + (gr_product_after_replace_new_productsteps))) /\ (exists ge_first_rp_replace_new_productstepsmultiply ge_first_rn_replace_new_productstepsmultiply ge_first_ip_replace_new_productstepsmultiply ge_first_in_replace_new_productstepsmultiply ge_second_rp_replace_new_productstepsmultiply ge_second_rn_replace_new_productstepsmultiply ge_second_ip_replace_new_productstepsmultiply ge_second_in_replace_new_productstepsmultiply. ((exists ge_representation_real_code_replace_new_productstepsmultiplyfirst ge_representation_imaginary_code_replace_new_productstepsmultiplyfirst. (((gr_product_before_replace_new_productsteps) = ((ge_representation_real_code_replace_new_productstepsmultiplyfirst) + (ge_representation_imaginary_code_replace_new_productstepsmultiplyfirst)) * S ((ge_representation_real_code_replace_new_productstepsmultiplyfirst) + (ge_representation_imaginary_code_replace_new_productstepsmultiplyfirst)) + ((ge_representation_imaginary_code_replace_new_productstepsmultiplyfirst) + (ge_representation_imaginary_code_replace_new_productstepsmultiplyfirst))) /\ ((exists ge_balance_positive_replace_new_productstepsmultiplyfirstreal ge_balance_negative_replace_new_productstepsmultiplyfirstreal. (((((ge_representation_real_code_replace_new_productstepsmultiplyfirst) = 2 * (ge_balance_positive_replace_new_productstepsmultiplyfirstreal) /\ (ge_balance_negative_replace_new_productstepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_replace_new_productstepsmultiplyfirstrealdecode. (((ge_representation_real_code_replace_new_productstepsmultiplyfirst) = 2 * ge_signed_half_replace_new_productstepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_replace_new_productstepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_replace_new_productstepsmultiplyfirstreal) = S ge_signed_half_replace_new_productstepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_replace_new_productstepsmultiply) + ge_balance_negative_replace_new_productstepsmultiplyfirstreal = (ge_first_rn_replace_new_productstepsmultiply) + ge_balance_positive_replace_new_productstepsmultiplyfirstreal))) /\ (exists ge_balance_positive_replace_new_productstepsmultiplyfirstimaginary ge_balance_negative_replace_new_productstepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_replace_new_productstepsmultiplyfirst) = 2 * (ge_balance_positive_replace_new_productstepsmultiplyfirstimaginary) /\ (ge_balance_negative_replace_new_productstepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_replace_new_productstepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_replace_new_productstepsmultiplyfirst) = 2 * ge_signed_half_replace_new_productstepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_replace_new_productstepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_replace_new_productstepsmultiplyfirstimaginary) = S ge_signed_half_replace_new_productstepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_replace_new_productstepsmultiply) + ge_balance_negative_replace_new_productstepsmultiplyfirstimaginary = (ge_first_in_replace_new_productstepsmultiply) + ge_balance_positive_replace_new_productstepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_replace_new_productstepsmultiplysecond ge_representation_imaginary_code_replace_new_productstepsmultiplysecond. (((gr_product_factor_replace_new_productsteps) = ((ge_representation_real_code_replace_new_productstepsmultiplysecond) + (ge_representation_imaginary_code_replace_new_productstepsmultiplysecond)) * S ((ge_representation_real_code_replace_new_productstepsmultiplysecond) + (ge_representation_imaginary_code_replace_new_productstepsmultiplysecond)) + ((ge_representation_imaginary_code_replace_new_productstepsmultiplysecond) + (ge_representation_imaginary_code_replace_new_productstepsmultiplysecond))) /\ ((exists ge_balance_positive_replace_new_productstepsmultiplysecondreal ge_balance_negative_replace_new_productstepsmultiplysecondreal. (((((ge_representation_real_code_replace_new_productstepsmultiplysecond) = 2 * (ge_balance_positive_replace_new_productstepsmultiplysecondreal) /\ (ge_balance_negative_replace_new_productstepsmultiplysecondreal) = 0) \/ exists ge_signed_half_replace_new_productstepsmultiplysecondrealdecode. (((ge_representation_real_code_replace_new_productstepsmultiplysecond) = 2 * ge_signed_half_replace_new_productstepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_replace_new_productstepsmultiplysecondreal) = 0) /\ (ge_balance_negative_replace_new_productstepsmultiplysecondreal) = S ge_signed_half_replace_new_productstepsmultiplysecondrealdecode))) /\ ((ge_second_rp_replace_new_productstepsmultiply) + ge_balance_negative_replace_new_productstepsmultiplysecondreal = (ge_second_rn_replace_new_productstepsmultiply) + ge_balance_positive_replace_new_productstepsmultiplysecondreal))) /\ (exists ge_balance_positive_replace_new_productstepsmultiplysecondimaginary ge_balance_negative_replace_new_productstepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_replace_new_productstepsmultiplysecond) = 2 * (ge_balance_positive_replace_new_productstepsmultiplysecondimaginary) /\ (ge_balance_negative_replace_new_productstepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_replace_new_productstepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_replace_new_productstepsmultiplysecond) = 2 * ge_signed_half_replace_new_productstepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_replace_new_productstepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_replace_new_productstepsmultiplysecondimaginary) = S ge_signed_half_replace_new_productstepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_replace_new_productstepsmultiply) + ge_balance_negative_replace_new_productstepsmultiplysecondimaginary = (ge_second_in_replace_new_productstepsmultiply) + ge_balance_positive_replace_new_productstepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_replace_new_productstepsmultiplyoutput ge_representation_imaginary_code_replace_new_productstepsmultiplyoutput. (((gr_product_after_replace_new_productsteps) = ((ge_representation_real_code_replace_new_productstepsmultiplyoutput) + (ge_representation_imaginary_code_replace_new_productstepsmultiplyoutput)) * S ((ge_representation_real_code_replace_new_productstepsmultiplyoutput) + (ge_representation_imaginary_code_replace_new_productstepsmultiplyoutput)) + ((ge_representation_imaginary_code_replace_new_productstepsmultiplyoutput) + (ge_representation_imaginary_code_replace_new_productstepsmultiplyoutput))) /\ ((exists ge_balance_positive_replace_new_productstepsmultiplyoutputreal ge_balance_negative_replace_new_productstepsmultiplyoutputreal. (((((ge_representation_real_code_replace_new_productstepsmultiplyoutput) = 2 * (ge_balance_positive_replace_new_productstepsmultiplyoutputreal) /\ (ge_balance_negative_replace_new_productstepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_replace_new_productstepsmultiplyoutputrealdecode. (((ge_representation_real_code_replace_new_productstepsmultiplyoutput) = 2 * ge_signed_half_replace_new_productstepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_replace_new_productstepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_replace_new_productstepsmultiplyoutputreal) = S ge_signed_half_replace_new_productstepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_replace_new_productstepsmultiply) * (ge_second_rp_replace_new_productstepsmultiply))) + (((ge_first_rn_replace_new_productstepsmultiply) * (ge_second_rn_replace_new_productstepsmultiply))))) + (((((ge_first_ip_replace_new_productstepsmultiply) * (ge_second_in_replace_new_productstepsmultiply))) + (((ge_first_in_replace_new_productstepsmultiply) * (ge_second_ip_replace_new_productstepsmultiply))))))) + ge_balance_negative_replace_new_productstepsmultiplyoutputreal = (((((((ge_first_rp_replace_new_productstepsmultiply) * (ge_second_rn_replace_new_productstepsmultiply))) + (((ge_first_rn_replace_new_productstepsmultiply) * (ge_second_rp_replace_new_productstepsmultiply))))) + (((((ge_first_ip_replace_new_productstepsmultiply) * (ge_second_ip_replace_new_productstepsmultiply))) + (((ge_first_in_replace_new_productstepsmultiply) * (ge_second_in_replace_new_productstepsmultiply))))))) + ge_balance_positive_replace_new_productstepsmultiplyoutputreal))) /\ (exists ge_balance_positive_replace_new_productstepsmultiplyoutputimaginary ge_balance_negative_replace_new_productstepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_replace_new_productstepsmultiplyoutput) = 2 * (ge_balance_positive_replace_new_productstepsmultiplyoutputimaginary) /\ (ge_balance_negative_replace_new_productstepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_replace_new_productstepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_replace_new_productstepsmultiplyoutput) = 2 * ge_signed_half_replace_new_productstepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_replace_new_productstepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_replace_new_productstepsmultiplyoutputimaginary) = S ge_signed_half_replace_new_productstepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_replace_new_productstepsmultiply) * (ge_second_ip_replace_new_productstepsmultiply))) + (((ge_first_rn_replace_new_productstepsmultiply) * (ge_second_in_replace_new_productstepsmultiply))))) + (((((ge_first_ip_replace_new_productstepsmultiply) * (ge_second_rp_replace_new_productstepsmultiply))) + (((ge_first_in_replace_new_productstepsmultiply) * (ge_second_rn_replace_new_productstepsmultiply))))))) + ge_balance_negative_replace_new_productstepsmultiplyoutputimaginary = (((((((ge_first_rp_replace_new_productstepsmultiply) * (ge_second_in_replace_new_productstepsmultiply))) + (((ge_first_rn_replace_new_productstepsmultiply) * (ge_second_ip_replace_new_productstepsmultiply))))) + (((((ge_first_ip_replace_new_productstepsmultiply) * (ge_second_rn_replace_new_productstepsmultiply))) + (((ge_first_in_replace_new_productstepsmultiply) * (ge_second_rp_replace_new_productstepsmultiply))))))) + ge_balance_positive_replace_new_productstepsmultiplyoutputimaginary)))))))))))))))) -> (exists ge_first_rp_replace_balance_source ge_first_rn_replace_balance_source ge_first_ip_replace_balance_source ge_first_in_replace_balance_source ge_second_rp_replace_balance_source ge_second_rn_replace_balance_source ge_second_ip_replace_balance_source ge_second_in_replace_balance_source. ((exists ge_representation_real_code_replace_balance_sourcefirst ge_representation_imaginary_code_replace_balance_sourcefirst. (((Q) = ((ge_representation_real_code_replace_balance_sourcefirst) + (ge_representation_imaginary_code_replace_balance_sourcefirst)) * S ((ge_representation_real_code_replace_balance_sourcefirst) + (ge_representation_imaginary_code_replace_balance_sourcefirst)) + ((ge_representation_imaginary_code_replace_balance_sourcefirst) + (ge_representation_imaginary_code_replace_balance_sourcefirst))) /\ ((exists ge_balance_positive_replace_balance_sourcefirstreal ge_balance_negative_replace_balance_sourcefirstreal. (((((ge_representation_real_code_replace_balance_sourcefirst) = 2 * (ge_balance_positive_replace_balance_sourcefirstreal) /\ (ge_balance_negative_replace_balance_sourcefirstreal) = 0) \/ exists ge_signed_half_replace_balance_sourcefirstrealdecode. (((ge_representation_real_code_replace_balance_sourcefirst) = 2 * ge_signed_half_replace_balance_sourcefirstrealdecode + 1 /\ (ge_balance_positive_replace_balance_sourcefirstreal) = 0) /\ (ge_balance_negative_replace_balance_sourcefirstreal) = S ge_signed_half_replace_balance_sourcefirstrealdecode))) /\ ((ge_first_rp_replace_balance_source) + ge_balance_negative_replace_balance_sourcefirstreal = (ge_first_rn_replace_balance_source) + ge_balance_positive_replace_balance_sourcefirstreal))) /\ (exists ge_balance_positive_replace_balance_sourcefirstimaginary ge_balance_negative_replace_balance_sourcefirstimaginary. (((((ge_representation_imaginary_code_replace_balance_sourcefirst) = 2 * (ge_balance_positive_replace_balance_sourcefirstimaginary) /\ (ge_balance_negative_replace_balance_sourcefirstimaginary) = 0) \/ exists ge_signed_half_replace_balance_sourcefirstimaginarydecode. (((ge_representation_imaginary_code_replace_balance_sourcefirst) = 2 * ge_signed_half_replace_balance_sourcefirstimaginarydecode + 1 /\ (ge_balance_positive_replace_balance_sourcefirstimaginary) = 0) /\ (ge_balance_negative_replace_balance_sourcefirstimaginary) = S ge_signed_half_replace_balance_sourcefirstimaginarydecode))) /\ ((ge_first_ip_replace_balance_source) + ge_balance_negative_replace_balance_sourcefirstimaginary = (ge_first_in_replace_balance_source) + ge_balance_positive_replace_balance_sourcefirstimaginary)))))) /\ ((exists ge_representation_real_code_replace_balance_sourcesecond ge_representation_imaginary_code_replace_balance_sourcesecond. (((p) = ((ge_representation_real_code_replace_balance_sourcesecond) + (ge_representation_imaginary_code_replace_balance_sourcesecond)) * S ((ge_representation_real_code_replace_balance_sourcesecond) + (ge_representation_imaginary_code_replace_balance_sourcesecond)) + ((ge_representation_imaginary_code_replace_balance_sourcesecond) + (ge_representation_imaginary_code_replace_balance_sourcesecond))) /\ ((exists ge_balance_positive_replace_balance_sourcesecondreal ge_balance_negative_replace_balance_sourcesecondreal. (((((ge_representation_real_code_replace_balance_sourcesecond) = 2 * (ge_balance_positive_replace_balance_sourcesecondreal) /\ (ge_balance_negative_replace_balance_sourcesecondreal) = 0) \/ exists ge_signed_half_replace_balance_sourcesecondrealdecode. (((ge_representation_real_code_replace_balance_sourcesecond) = 2 * ge_signed_half_replace_balance_sourcesecondrealdecode + 1 /\ (ge_balance_positive_replace_balance_sourcesecondreal) = 0) /\ (ge_balance_negative_replace_balance_sourcesecondreal) = S ge_signed_half_replace_balance_sourcesecondrealdecode))) /\ ((ge_second_rp_replace_balance_source) + ge_balance_negative_replace_balance_sourcesecondreal = (ge_second_rn_replace_balance_source) + ge_balance_positive_replace_balance_sourcesecondreal))) /\ (exists ge_balance_positive_replace_balance_sourcesecondimaginary ge_balance_negative_replace_balance_sourcesecondimaginary. (((((ge_representation_imaginary_code_replace_balance_sourcesecond) = 2 * (ge_balance_positive_replace_balance_sourcesecondimaginary) /\ (ge_balance_negative_replace_balance_sourcesecondimaginary) = 0) \/ exists ge_signed_half_replace_balance_sourcesecondimaginarydecode. (((ge_representation_imaginary_code_replace_balance_sourcesecond) = 2 * ge_signed_half_replace_balance_sourcesecondimaginarydecode + 1 /\ (ge_balance_positive_replace_balance_sourcesecondimaginary) = 0) /\ (ge_balance_negative_replace_balance_sourcesecondimaginary) = S ge_signed_half_replace_balance_sourcesecondimaginarydecode))) /\ ((ge_second_ip_replace_balance_source) + ge_balance_negative_replace_balance_sourcesecondimaginary = (ge_second_in_replace_balance_source) + ge_balance_positive_replace_balance_sourcesecondimaginary)))))) /\ (exists ge_representation_real_code_replace_balance_sourceoutput ge_representation_imaginary_code_replace_balance_sourceoutput. (((T) = ((ge_representation_real_code_replace_balance_sourceoutput) + (ge_representation_imaginary_code_replace_balance_sourceoutput)) * S ((ge_representation_real_code_replace_balance_sourceoutput) + (ge_representation_imaginary_code_replace_balance_sourceoutput)) + ((ge_representation_imaginary_code_replace_balance_sourceoutput) + (ge_representation_imaginary_code_replace_balance_sourceoutput))) /\ ((exists ge_balance_positive_replace_balance_sourceoutputreal ge_balance_negative_replace_balance_sourceoutputreal. (((((ge_representation_real_code_replace_balance_sourceoutput) = 2 * (ge_balance_positive_replace_balance_sourceoutputreal) /\ (ge_balance_negative_replace_balance_sourceoutputreal) = 0) \/ exists ge_signed_half_replace_balance_sourceoutputrealdecode. (((ge_representation_real_code_replace_balance_sourceoutput) = 2 * ge_signed_half_replace_balance_sourceoutputrealdecode + 1 /\ (ge_balance_positive_replace_balance_sourceoutputreal) = 0) /\ (ge_balance_negative_replace_balance_sourceoutputreal) = S ge_signed_half_replace_balance_sourceoutputrealdecode))) /\ ((((((((ge_first_rp_replace_balance_source) * (ge_second_rp_replace_balance_source))) + (((ge_first_rn_replace_balance_source) * (ge_second_rn_replace_balance_source))))) + (((((ge_first_ip_replace_balance_source) * (ge_second_in_replace_balance_source))) + (((ge_first_in_replace_balance_source) * (ge_second_ip_replace_balance_source))))))) + ge_balance_negative_replace_balance_sourceoutputreal = (((((((ge_first_rp_replace_balance_source) * (ge_second_rn_replace_balance_source))) + (((ge_first_rn_replace_balance_source) * (ge_second_rp_replace_balance_source))))) + (((((ge_first_ip_replace_balance_source) * (ge_second_ip_replace_balance_source))) + (((ge_first_in_replace_balance_source) * (ge_second_in_replace_balance_source))))))) + ge_balance_positive_replace_balance_sourceoutputreal))) /\ (exists ge_balance_positive_replace_balance_sourceoutputimaginary ge_balance_negative_replace_balance_sourceoutputimaginary. (((((ge_representation_imaginary_code_replace_balance_sourceoutput) = 2 * (ge_balance_positive_replace_balance_sourceoutputimaginary) /\ (ge_balance_negative_replace_balance_sourceoutputimaginary) = 0) \/ exists ge_signed_half_replace_balance_sourceoutputimaginarydecode. (((ge_representation_imaginary_code_replace_balance_sourceoutput) = 2 * ge_signed_half_replace_balance_sourceoutputimaginarydecode + 1 /\ (ge_balance_positive_replace_balance_sourceoutputimaginary) = 0) /\ (ge_balance_negative_replace_balance_sourceoutputimaginary) = S ge_signed_half_replace_balance_sourceoutputimaginarydecode))) /\ ((((((((ge_first_rp_replace_balance_source) * (ge_second_ip_replace_balance_source))) + (((ge_first_rn_replace_balance_source) * (ge_second_in_replace_balance_source))))) + (((((ge_first_ip_replace_balance_source) * (ge_second_rp_replace_balance_source))) + (((ge_first_in_replace_balance_source) * (ge_second_rn_replace_balance_source))))))) + ge_balance_negative_replace_balance_sourceoutputimaginary = (((((((ge_first_rp_replace_balance_source) * (ge_second_in_replace_balance_source))) + (((ge_first_rn_replace_balance_source) * (ge_second_ip_replace_balance_source))))) + (((((ge_first_ip_replace_balance_source) * (ge_second_rn_replace_balance_source))) + (((ge_first_in_replace_balance_source) * (ge_second_rp_replace_balance_source))))))) + ge_balance_positive_replace_balance_sourceoutputimaginary))))))))) -> (exists ge_first_rp_replace_balance_target ge_first_rn_replace_balance_target ge_first_ip_replace_balance_target ge_first_in_replace_balance_target ge_second_rp_replace_balance_target ge_second_rn_replace_balance_target ge_second_ip_replace_balance_target ge_second_in_replace_balance_target. ((exists ge_representation_real_code_replace_balance_targetfirst ge_representation_imaginary_code_replace_balance_targetfirst. (((P) = ((ge_representation_real_code_replace_balance_targetfirst) + (ge_representation_imaginary_code_replace_balance_targetfirst)) * S ((ge_representation_real_code_replace_balance_targetfirst) + (ge_representation_imaginary_code_replace_balance_targetfirst)) + ((ge_representation_imaginary_code_replace_balance_targetfirst) + (ge_representation_imaginary_code_replace_balance_targetfirst))) /\ ((exists ge_balance_positive_replace_balance_targetfirstreal ge_balance_negative_replace_balance_targetfirstreal. (((((ge_representation_real_code_replace_balance_targetfirst) = 2 * (ge_balance_positive_replace_balance_targetfirstreal) /\ (ge_balance_negative_replace_balance_targetfirstreal) = 0) \/ exists ge_signed_half_replace_balance_targetfirstrealdecode. (((ge_representation_real_code_replace_balance_targetfirst) = 2 * ge_signed_half_replace_balance_targetfirstrealdecode + 1 /\ (ge_balance_positive_replace_balance_targetfirstreal) = 0) /\ (ge_balance_negative_replace_balance_targetfirstreal) = S ge_signed_half_replace_balance_targetfirstrealdecode))) /\ ((ge_first_rp_replace_balance_target) + ge_balance_negative_replace_balance_targetfirstreal = (ge_first_rn_replace_balance_target) + ge_balance_positive_replace_balance_targetfirstreal))) /\ (exists ge_balance_positive_replace_balance_targetfirstimaginary ge_balance_negative_replace_balance_targetfirstimaginary. (((((ge_representation_imaginary_code_replace_balance_targetfirst) = 2 * (ge_balance_positive_replace_balance_targetfirstimaginary) /\ (ge_balance_negative_replace_balance_targetfirstimaginary) = 0) \/ exists ge_signed_half_replace_balance_targetfirstimaginarydecode. (((ge_representation_imaginary_code_replace_balance_targetfirst) = 2 * ge_signed_half_replace_balance_targetfirstimaginarydecode + 1 /\ (ge_balance_positive_replace_balance_targetfirstimaginary) = 0) /\ (ge_balance_negative_replace_balance_targetfirstimaginary) = S ge_signed_half_replace_balance_targetfirstimaginarydecode))) /\ ((ge_first_ip_replace_balance_target) + ge_balance_negative_replace_balance_targetfirstimaginary = (ge_first_in_replace_balance_target) + ge_balance_positive_replace_balance_targetfirstimaginary)))))) /\ ((exists ge_representation_real_code_replace_balance_targetsecond ge_representation_imaginary_code_replace_balance_targetsecond. (((q) = ((ge_representation_real_code_replace_balance_targetsecond) + (ge_representation_imaginary_code_replace_balance_targetsecond)) * S ((ge_representation_real_code_replace_balance_targetsecond) + (ge_representation_imaginary_code_replace_balance_targetsecond)) + ((ge_representation_imaginary_code_replace_balance_targetsecond) + (ge_representation_imaginary_code_replace_balance_targetsecond))) /\ ((exists ge_balance_positive_replace_balance_targetsecondreal ge_balance_negative_replace_balance_targetsecondreal. (((((ge_representation_real_code_replace_balance_targetsecond) = 2 * (ge_balance_positive_replace_balance_targetsecondreal) /\ (ge_balance_negative_replace_balance_targetsecondreal) = 0) \/ exists ge_signed_half_replace_balance_targetsecondrealdecode. (((ge_representation_real_code_replace_balance_targetsecond) = 2 * ge_signed_half_replace_balance_targetsecondrealdecode + 1 /\ (ge_balance_positive_replace_balance_targetsecondreal) = 0) /\ (ge_balance_negative_replace_balance_targetsecondreal) = S ge_signed_half_replace_balance_targetsecondrealdecode))) /\ ((ge_second_rp_replace_balance_target) + ge_balance_negative_replace_balance_targetsecondreal = (ge_second_rn_replace_balance_target) + ge_balance_positive_replace_balance_targetsecondreal))) /\ (exists ge_balance_positive_replace_balance_targetsecondimaginary ge_balance_negative_replace_balance_targetsecondimaginary. (((((ge_representation_imaginary_code_replace_balance_targetsecond) = 2 * (ge_balance_positive_replace_balance_targetsecondimaginary) /\ (ge_balance_negative_replace_balance_targetsecondimaginary) = 0) \/ exists ge_signed_half_replace_balance_targetsecondimaginarydecode. (((ge_representation_imaginary_code_replace_balance_targetsecond) = 2 * ge_signed_half_replace_balance_targetsecondimaginarydecode + 1 /\ (ge_balance_positive_replace_balance_targetsecondimaginary) = 0) /\ (ge_balance_negative_replace_balance_targetsecondimaginary) = S ge_signed_half_replace_balance_targetsecondimaginarydecode))) /\ ((ge_second_ip_replace_balance_target) + ge_balance_negative_replace_balance_targetsecondimaginary = (ge_second_in_replace_balance_target) + ge_balance_positive_replace_balance_targetsecondimaginary)))))) /\ (exists ge_representation_real_code_replace_balance_targetoutput ge_representation_imaginary_code_replace_balance_targetoutput. (((T) = ((ge_representation_real_code_replace_balance_targetoutput) + (ge_representation_imaginary_code_replace_balance_targetoutput)) * S ((ge_representation_real_code_replace_balance_targetoutput) + (ge_representation_imaginary_code_replace_balance_targetoutput)) + ((ge_representation_imaginary_code_replace_balance_targetoutput) + (ge_representation_imaginary_code_replace_balance_targetoutput))) /\ ((exists ge_balance_positive_replace_balance_targetoutputreal ge_balance_negative_replace_balance_targetoutputreal. (((((ge_representation_real_code_replace_balance_targetoutput) = 2 * (ge_balance_positive_replace_balance_targetoutputreal) /\ (ge_balance_negative_replace_balance_targetoutputreal) = 0) \/ exists ge_signed_half_replace_balance_targetoutputrealdecode. (((ge_representation_real_code_replace_balance_targetoutput) = 2 * ge_signed_half_replace_balance_targetoutputrealdecode + 1 /\ (ge_balance_positive_replace_balance_targetoutputreal) = 0) /\ (ge_balance_negative_replace_balance_targetoutputreal) = S ge_signed_half_replace_balance_targetoutputrealdecode))) /\ ((((((((ge_first_rp_replace_balance_target) * (ge_second_rp_replace_balance_target))) + (((ge_first_rn_replace_balance_target) * (ge_second_rn_replace_balance_target))))) + (((((ge_first_ip_replace_balance_target) * (ge_second_in_replace_balance_target))) + (((ge_first_in_replace_balance_target) * (ge_second_ip_replace_balance_target))))))) + ge_balance_negative_replace_balance_targetoutputreal = (((((((ge_first_rp_replace_balance_target) * (ge_second_rn_replace_balance_target))) + (((ge_first_rn_replace_balance_target) * (ge_second_rp_replace_balance_target))))) + (((((ge_first_ip_replace_balance_target) * (ge_second_ip_replace_balance_target))) + (((ge_first_in_replace_balance_target) * (ge_second_in_replace_balance_target))))))) + ge_balance_positive_replace_balance_targetoutputreal))) /\ (exists ge_balance_positive_replace_balance_targetoutputimaginary ge_balance_negative_replace_balance_targetoutputimaginary. (((((ge_representation_imaginary_code_replace_balance_targetoutput) = 2 * (ge_balance_positive_replace_balance_targetoutputimaginary) /\ (ge_balance_negative_replace_balance_targetoutputimaginary) = 0) \/ exists ge_signed_half_replace_balance_targetoutputimaginarydecode. (((ge_representation_imaginary_code_replace_balance_targetoutput) = 2 * ge_signed_half_replace_balance_targetoutputimaginarydecode + 1 /\ (ge_balance_positive_replace_balance_targetoutputimaginary) = 0) /\ (ge_balance_negative_replace_balance_targetoutputimaginary) = S ge_signed_half_replace_balance_targetoutputimaginarydecode))) /\ ((((((((ge_first_rp_replace_balance_target) * (ge_second_ip_replace_balance_target))) + (((ge_first_rn_replace_balance_target) * (ge_second_in_replace_balance_target))))) + (((((ge_first_ip_replace_balance_target) * (ge_second_rp_replace_balance_target))) + (((ge_first_in_replace_balance_target) * (ge_second_rn_replace_balance_target))))))) + ge_balance_negative_replace_balance_targetoutputimaginary = (((((((ge_first_rp_replace_balance_target) * (ge_second_in_replace_balance_target))) + (((ge_first_rn_replace_balance_target) * (ge_second_ip_replace_balance_target))))) + (((((ge_first_ip_replace_balance_target) * (ge_second_rn_replace_balance_target))) + (((ge_first_in_replace_balance_target) * (ge_second_rp_replace_balance_target))))))) + ge_balance_positive_replace_balance_targetoutputimaginary)))))))))Constructive proof overview
Generated structural guide
Ordinary induction proves the actual Gaussian replacement balance Q*p=P*q with genuine product traces and actual common output code, including zero and unit factors.
The unchanged tactic script uses 14 declared prerequisites and contains 241 exact native proof lines.
Alpha v34 checked-use · first admitted v30 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
GF0071 gaussian_search_no_index_below_zero finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized GF0089 gaussian_product_successor_decompose beta_at_unique Stable theorem; checked-use authorized GF0084 gaussian_product_beta_index_transport GF0088 gaussian_product_prefix_recode le_succ Stable theorem; checked-use authorized lt_irrefl_expanded Stable theorem; checked-use authorized GF008D gaussian_product_functional GF0031 gaussian_multiply_swap_tail le_refl Stable theorem; checked-use authorized gaussian_multiply_exists Alpha theorem; checked-use authorized GF008E gaussian_product_result_valid GF0008 gaussian_multiply_input_right_validDirect 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 (8)
01Induction on kL1–10
02Fix variables and assumptionsL11–18
03Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
exfalso
04Use earlier factsL20–22
05Fix variables and assumptionsL23–32
06Fix variables and assumptionsL33–39
07Establish hcasesL40–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
08Establish holdL45–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product successor decompose.
09Establish hnewL52–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product successor decompose.
10Separate the logical casesL59–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
11Establish hlastoldL68–77
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L68
have hlastold : x=p - L69
specialize beta_at_unique (b) - L70
specialize beta_at_unique (c) - L71
specialize beta_at_unique (k) - L72
specialize beta_at_unique (x) - L73
specialize beta_at_unique (p) - L74
apply beta_at_unique - L75
exact hold_witness_witness_left - L76
specialize gaussian_product_beta_index_transport (b) - L77
specialize gaussian_product_beta_index_transport (c)
12Use earlier factsL78–83
Instantiate or apply named facts and discharge the corresponding proof obligations.
13Establish hlastnewL84–93
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L84
have hlastnew : x2=q - L85
specialize beta_at_unique (d) - L86
specialize beta_at_unique (e) - L87
specialize beta_at_unique (k) - L88
specialize beta_at_unique (x2) - L89
specialize beta_at_unique (q) - L90
apply beta_at_unique - L91
exact hnew_witness_witness_left - L92
specialize gaussian_product_beta_index_transport (d) - L93
specialize gaussian_product_beta_index_transport (e)
14Use earlier factsL94–99
Instantiate or apply named facts and discharge the corresponding proof obligations.
15Establish hprefixL100–109
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product prefix recode.
- L100
have hprefix : GProduct(d,e,k,x1)Definitions: GProduct - L101
specialize gaussian_product_prefix_recode (b) - L102
specialize gaussian_product_prefix_recode (c) - L103
specialize gaussian_product_prefix_recode (d) - L104
specialize gaussian_product_prefix_recode (e) - L105
specialize gaussian_product_prefix_recode (k) - L106
specialize gaussian_product_prefix_recode (x1) - L107
apply gaussian_product_prefix_recode - L108
exact hold_witness_witness_right_left - L109
intro j
16Fix variables and assumptionsL110–112
17Use earlier factsL113–119
18Fix variables and assumptionsL120–120
Work with arbitrary variables or the premises of the current implication.
- L120
intro heq
19Use earlier factsL121–122
20Calculate and transport equalitiesL123–124
21Use earlier factsL125–126
22Establish hprefixeqL127–136
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product functional.
- L127
have hprefixeq : x1=x3 - L128
specialize gaussian_product_functional (k) - L129
specialize gaussian_product_functional (d) - L130
specialize gaussian_product_functional (e) - L131
specialize gaussian_product_functional (x1) - L132
specialize gaussian_product_functional (x3) - L133
apply gaussian_product_functional - L134
exact hprefix - L135
exact hnew_witness_witness_right_left - L136
rewrite hlastold at hold_witness_witness_right_right
23Calculate and transport equalitiesL137–138
24Use earlier factsL139–148
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L139
specialize gaussian_multiply_swap_tail (x3) - L140
specialize gaussian_multiply_swap_tail (q) - L141
specialize gaussian_multiply_swap_tail (p) - L142
specialize gaussian_multiply_swap_tail (Q) - L143
specialize gaussian_multiply_swap_tail (P) - L144
specialize gaussian_multiply_swap_tail (T) - L145
apply gaussian_multiply_swap_tail - L146
exact hnew_witness_witness_right_right - L147
exact hmultiply - L148
exact hold_witness_witness_right_right
25Establish hkiL149–154
26Establish hlastL155–162
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpreserve.
- L155
have hlast : ((exists ff_h_gprod_replacement_preserved_last. ff_h_gprod_replacement_preserved_last + S (x) = S ((S (k)) * e)) /\ exists ff_q_gprod_replacement_preserved_last. d = ff_q_gprod_replacement_preserved_last * S ((S (k)) * e) + (x)) - L156
specialize hpreserve (k) - L157
specialize hpreserve (x) - L158
apply hpreserve - L159
specialize le_refl (S k) - L160
apply le_refl - L161
exact hki - L162
exact hold_witness_witness_left
27Establish hlastmatchL163–172
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L163
have hlastmatch : x2=x - L164
specialize beta_at_unique (d) - L165
specialize beta_at_unique (e) - L166
specialize beta_at_unique (k) - L167
specialize beta_at_unique (x2) - L168
specialize beta_at_unique (x) - L169
apply beta_at_unique - L170
exact hnew_witness_witness_left - L171
exact hlast - L172
rewrite hlastmatch at hnew_witness_witness_right_right
28Establish hRL173–182
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply exists.
- L173
have hR : ∃ R. GMul(x3,p,R)Definitions: GMul - L174
specialize gaussian_multiply_exists (x3) - L175
specialize gaussian_multiply_exists (p) - L176
apply gaussian_multiply_exists - L177
specialize gaussian_product_result_valid (k) - L178
specialize gaussian_product_result_valid (d) - L179
specialize gaussian_product_result_valid (e) - L180
specialize gaussian_product_result_valid (x3) - L181
apply gaussian_product_result_valid - L182
exact hnew_witness_witness_right_left
29Use earlier factsL183–187
Instantiate or apply named facts and discharge the corresponding proof obligations.
30Separate the logical casesL188–188
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L188
cases hR
31Establish hmiddleL189–198
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian multiply swap tail.
- L189
have hmiddle : GMul(x4,x,T)Definitions: GMul - L190
specialize gaussian_multiply_swap_tail (x3) - L191
specialize gaussian_multiply_swap_tail (x) - L192
specialize gaussian_multiply_swap_tail (p) - L193
specialize gaussian_multiply_swap_tail (Q) - L194
specialize gaussian_multiply_swap_tail (x4) - L195
specialize gaussian_multiply_swap_tail (T) - L196
apply gaussian_multiply_swap_tail - L197
exact hnew_witness_witness_right_right - L198
exact hmultiply
32Use earlier factsL199–199
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L199
exact hR_witness
33Establish hbalanceL200–209
Establish this local claim before using it. It is not an additional assumption.
34Use earlier factsL210–214
35Fix variables and assumptionsL215–219
36Use earlier factsL220–229
Instantiate or apply named facts and discharge the corresponding proof obligations.
37Use earlier factsL230–239
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L230
exact hnew_witness_witness_right_left - L231
exact hR_witness - L232
specialize gaussian_multiply_swap_tail (x1) - L233
specialize gaussian_multiply_swap_tail (q) - L234
specialize gaussian_multiply_swap_tail (x) - L235
specialize gaussian_multiply_swap_tail (x4) - L236
specialize gaussian_multiply_swap_tail (P) - L237
specialize gaussian_multiply_swap_tail (T) - L238
apply gaussian_multiply_swap_tail - L239
exact hbalance
Original exact command ledger · 241 lines
- 0001
induction k - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro i - 0007
intro p - 0008
intro q - 0009
intro P - 0010
intro Q - 0011
intro T - 0012
intro hi - 0013
intro hp - 0014
intro hq - 0015
intro hpreserve - 0016
intro hP - 0017
intro hQ - 0018
intro hmultiply - 0019
exfalso - 0020
specialize gaussian_search_no_index_below_zero (i) - 0021
apply gaussian_search_no_index_below_zero - 0022
exact hi - 0023
intro b - 0024
intro c - 0025
intro d - 0026
intro e - 0027
intro i - 0028
intro p - 0029
intro q - 0030
intro P - 0031
intro Q - 0032
intro T - 0033
intro hi - 0034
intro hp - 0035
intro hq - 0036
intro hpreserve - 0037
intro hP - 0038
intro hQ - 0039
intro hmultiply - 0040
have hcases : i=k \/ (exists ge_gap_replacement_last_cases. ge_gap_replacement_last_cases + S (i) = (k)) - 0041
specialize finite_lt_succ_eq_or_lt (k) - 0042
specialize finite_lt_succ_eq_or_lt (i) - 0043
apply finite_lt_succ_eq_or_lt - 0044
exact hi - 0045
have hold : exists a R. ((((exists ff_h_gprod_replacement_oldfactor. ff_h_gprod_replacement_oldfactor + S (a) = S ((S (k)) * c)) /\ exists ff_q_gprod_replacement_oldfactor. b = ff_q_gprod_replacement_oldfactor * S ((S (k)) * c) + (a))) /\ ((exists gr_product_trace_replacement_oldprefix gr_product_scale_replacement_oldprefix. ((((exists ff_h_gprod_replacement_oldprefixstart. ff_h_gprod_replacement_oldprefixstart + S (6) = S ((S (0)) * gr_product_scale_replacement_oldprefix)) /\ exists ff_q_gprod_replacement_oldprefixstart. gr_product_trace_replacement_oldprefix = ff_q_gprod_replacement_oldprefixstart * S ((S (0)) * gr_product_scale_replacement_oldprefix) + (6))) /\ ((((exists ff_h_gprod_replacement_oldprefixend. ff_h_gprod_replacement_oldprefixend + S (R) = S ((S (k)) * gr_product_scale_replacement_oldprefix)) /\ exists ff_q_gprod_replacement_oldprefixend. gr_product_trace_replacement_oldprefix = ff_q_gprod_replacement_oldprefixend * S ((S (k)) * gr_product_scale_replacement_oldprefix) + (R))) /\ (forall gr_product_index_replacement_oldprefixsteps. (exists ge_gap_replacement_oldprefixstepsindex_bound. ge_gap_replacement_oldprefixstepsindex_bound + S (gr_product_index_replacement_oldprefixsteps) = (k)) -> exists gr_product_factor_replacement_oldprefixsteps gr_product_before_replacement_oldprefixsteps gr_product_after_replacement_oldprefixsteps. ((((exists ff_h_gprod_replacement_oldprefixstepsfactor. ff_h_gprod_replacement_oldprefixstepsfactor + S (gr_product_factor_replacement_oldprefixsteps) = S ((S (gr_product_index_replacement_oldprefixsteps)) * c)) /\ exists ff_q_gprod_replacement_oldprefixstepsfactor. b = ff_q_gprod_replacement_oldprefixstepsfactor * S ((S (gr_product_index_replacement_oldprefixsteps)) * c) + (gr_product_factor_replacement_oldprefixsteps))) /\ ((((exists ff_h_gprod_replacement_oldprefixstepsbefore. ff_h_gprod_replacement_oldprefixstepsbefore + S (gr_product_before_replacement_oldprefixsteps) = S ((S (gr_product_index_replacement_oldprefixsteps)) * gr_product_scale_replacement_oldprefix)) /\ exists ff_q_gprod_replacement_oldprefixstepsbefore. gr_product_trace_replacement_oldprefix = ff_q_gprod_replacement_oldprefixstepsbefore * S ((S (gr_product_index_replacement_oldprefixsteps)) * gr_product_scale_replacement_oldprefix) + (gr_product_before_replacement_oldprefixsteps))) /\ ((((exists ff_h_gprod_replacement_oldprefixstepsafter. ff_h_gprod_replacement_oldprefixstepsafter + S (gr_product_after_replacement_oldprefixsteps) = S ((S (S (gr_product_index_replacement_oldprefixsteps))) * gr_product_scale_replacement_oldprefix)) /\ exists ff_q_gprod_replacement_oldprefixstepsafter. gr_product_trace_replacement_oldprefix = ff_q_gprod_replacement_oldprefixstepsafter * S ((S (S (gr_product_index_replacement_oldprefixsteps))) * gr_product_scale_replacement_oldprefix) + (gr_product_after_replacement_oldprefixsteps))) /\ (exists ge_first_rp_replacement_oldprefixstepsmultiply ge_first_rn_replacement_oldprefixstepsmultiply ge_first_ip_replacement_oldprefixstepsmultiply ge_first_in_replacement_oldprefixstepsmultiply ge_second_rp_replacement_oldprefixstepsmultiply ge_second_rn_replacement_oldprefixstepsmultiply ge_second_ip_replacement_oldprefixstepsmultiply ge_second_in_replacement_oldprefixstepsmultiply. ((exists ge_representation_real_code_replacement_oldprefixstepsmultiplyfirst ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyfirst. (((gr_product_before_replacement_oldprefixsteps) = ((ge_representation_real_code_replacement_oldprefixstepsmultiplyfirst) + (ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyfirst)) * S ((ge_representation_real_code_replacement_oldprefixstepsmultiplyfirst) + (ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyfirst)) + ((ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyfirst) + (ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyfirst))) /\ ((exists ge_balance_positive_replacement_oldprefixstepsmultiplyfirstreal ge_balance_negative_replacement_oldprefixstepsmultiplyfirstreal. (((((ge_representation_real_code_replacement_oldprefixstepsmultiplyfirst) = 2 * (ge_balance_positive_replacement_oldprefixstepsmultiplyfirstreal) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_replacement_oldprefixstepsmultiplyfirstrealdecode. (((ge_representation_real_code_replacement_oldprefixstepsmultiplyfirst) = 2 * ge_signed_half_replacement_oldprefixstepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_replacement_oldprefixstepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplyfirstreal) = S ge_signed_half_replacement_oldprefixstepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_replacement_oldprefixstepsmultiply) + ge_balance_negative_replacement_oldprefixstepsmultiplyfirstreal = (ge_first_rn_replacement_oldprefixstepsmultiply) + ge_balance_positive_replacement_oldprefixstepsmultiplyfirstreal))) /\ (exists ge_balance_positive_replacement_oldprefixstepsmultiplyfirstimaginary ge_balance_negative_replacement_oldprefixstepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyfirst) = 2 * (ge_balance_positive_replacement_oldprefixstepsmultiplyfirstimaginary) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_replacement_oldprefixstepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyfirst) = 2 * ge_signed_half_replacement_oldprefixstepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_replacement_oldprefixstepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplyfirstimaginary) = S ge_signed_half_replacement_oldprefixstepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_replacement_oldprefixstepsmultiply) + ge_balance_negative_replacement_oldprefixstepsmultiplyfirstimaginary = (ge_first_in_replacement_oldprefixstepsmultiply) + ge_balance_positive_replacement_oldprefixstepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_replacement_oldprefixstepsmultiplysecond ge_representation_imaginary_code_replacement_oldprefixstepsmultiplysecond. (((gr_product_factor_replacement_oldprefixsteps) = ((ge_representation_real_code_replacement_oldprefixstepsmultiplysecond) + (ge_representation_imaginary_code_replacement_oldprefixstepsmultiplysecond)) * S ((ge_representation_real_code_replacement_oldprefixstepsmultiplysecond) + (ge_representation_imaginary_code_replacement_oldprefixstepsmultiplysecond)) + ((ge_representation_imaginary_code_replacement_oldprefixstepsmultiplysecond) + (ge_representation_imaginary_code_replacement_oldprefixstepsmultiplysecond))) /\ ((exists ge_balance_positive_replacement_oldprefixstepsmultiplysecondreal ge_balance_negative_replacement_oldprefixstepsmultiplysecondreal. (((((ge_representation_real_code_replacement_oldprefixstepsmultiplysecond) = 2 * (ge_balance_positive_replacement_oldprefixstepsmultiplysecondreal) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplysecondreal) = 0) \/ exists ge_signed_half_replacement_oldprefixstepsmultiplysecondrealdecode. (((ge_representation_real_code_replacement_oldprefixstepsmultiplysecond) = 2 * ge_signed_half_replacement_oldprefixstepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_replacement_oldprefixstepsmultiplysecondreal) = 0) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplysecondreal) = S ge_signed_half_replacement_oldprefixstepsmultiplysecondrealdecode))) /\ ((ge_second_rp_replacement_oldprefixstepsmultiply) + ge_balance_negative_replacement_oldprefixstepsmultiplysecondreal = (ge_second_rn_replacement_oldprefixstepsmultiply) + ge_balance_positive_replacement_oldprefixstepsmultiplysecondreal))) /\ (exists ge_balance_positive_replacement_oldprefixstepsmultiplysecondimaginary ge_balance_negative_replacement_oldprefixstepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_replacement_oldprefixstepsmultiplysecond) = 2 * (ge_balance_positive_replacement_oldprefixstepsmultiplysecondimaginary) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_replacement_oldprefixstepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_replacement_oldprefixstepsmultiplysecond) = 2 * ge_signed_half_replacement_oldprefixstepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_replacement_oldprefixstepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplysecondimaginary) = S ge_signed_half_replacement_oldprefixstepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_replacement_oldprefixstepsmultiply) + ge_balance_negative_replacement_oldprefixstepsmultiplysecondimaginary = (ge_second_in_replacement_oldprefixstepsmultiply) + ge_balance_positive_replacement_oldprefixstepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_replacement_oldprefixstepsmultiplyoutput ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyoutput. (((gr_product_after_replacement_oldprefixsteps) = ((ge_representation_real_code_replacement_oldprefixstepsmultiplyoutput) + (ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyoutput)) * S ((ge_representation_real_code_replacement_oldprefixstepsmultiplyoutput) + (ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyoutput)) + ((ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyoutput) + (ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyoutput))) /\ ((exists ge_balance_positive_replacement_oldprefixstepsmultiplyoutputreal ge_balance_negative_replacement_oldprefixstepsmultiplyoutputreal. (((((ge_representation_real_code_replacement_oldprefixstepsmultiplyoutput) = 2 * (ge_balance_positive_replacement_oldprefixstepsmultiplyoutputreal) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_replacement_oldprefixstepsmultiplyoutputrealdecode. (((ge_representation_real_code_replacement_oldprefixstepsmultiplyoutput) = 2 * ge_signed_half_replacement_oldprefixstepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_replacement_oldprefixstepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplyoutputreal) = S ge_signed_half_replacement_oldprefixstepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_replacement_oldprefixstepsmultiply) * (ge_second_rp_replacement_oldprefixstepsmultiply))) + (((ge_first_rn_replacement_oldprefixstepsmultiply) * (ge_second_rn_replacement_oldprefixstepsmultiply))))) + (((((ge_first_ip_replacement_oldprefixstepsmultiply) * (ge_second_in_replacement_oldprefixstepsmultiply))) + (((ge_first_in_replacement_oldprefixstepsmultiply) * (ge_second_ip_replacement_oldprefixstepsmultiply))))))) + ge_balance_negative_replacement_oldprefixstepsmultiplyoutputreal = (((((((ge_first_rp_replacement_oldprefixstepsmultiply) * (ge_second_rn_replacement_oldprefixstepsmultiply))) + (((ge_first_rn_replacement_oldprefixstepsmultiply) * (ge_second_rp_replacement_oldprefixstepsmultiply))))) + (((((ge_first_ip_replacement_oldprefixstepsmultiply) * (ge_second_ip_replacement_oldprefixstepsmultiply))) + (((ge_first_in_replacement_oldprefixstepsmultiply) * (ge_second_in_replacement_oldprefixstepsmultiply))))))) + ge_balance_positive_replacement_oldprefixstepsmultiplyoutputreal))) /\ (exists ge_balance_positive_replacement_oldprefixstepsmultiplyoutputimaginary ge_balance_negative_replacement_oldprefixstepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyoutput) = 2 * (ge_balance_positive_replacement_oldprefixstepsmultiplyoutputimaginary) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_replacement_oldprefixstepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_replacement_oldprefixstepsmultiplyoutput) = 2 * ge_signed_half_replacement_oldprefixstepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_replacement_oldprefixstepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_replacement_oldprefixstepsmultiplyoutputimaginary) = S ge_signed_half_replacement_oldprefixstepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_replacement_oldprefixstepsmultiply) * (ge_second_ip_replacement_oldprefixstepsmultiply))) + (((ge_first_rn_replacement_oldprefixstepsmultiply) * (ge_second_in_replacement_oldprefixstepsmultiply))))) + (((((ge_first_ip_replacement_oldprefixstepsmultiply) * (ge_second_rp_replacement_oldprefixstepsmultiply))) + (((ge_first_in_replacement_oldprefixstepsmultiply) * (ge_second_rn_replacement_oldprefixstepsmultiply))))))) + ge_balance_negative_replacement_oldprefixstepsmultiplyoutputimaginary = (((((((ge_first_rp_replacement_oldprefixstepsmultiply) * (ge_second_in_replacement_oldprefixstepsmultiply))) + (((ge_first_rn_replacement_oldprefixstepsmultiply) * (ge_second_ip_replacement_oldprefixstepsmultiply))))) + (((((ge_first_ip_replacement_oldprefixstepsmultiply) * (ge_second_rn_replacement_oldprefixstepsmultiply))) + (((ge_first_in_replacement_oldprefixstepsmultiply) * (ge_second_rp_replacement_oldprefixstepsmultiply))))))) + ge_balance_positive_replacement_oldprefixstepsmultiplyoutputimaginary)))))))))))))))) /\ (exists ge_first_rp_replacement_oldlast ge_first_rn_replacement_oldlast ge_first_ip_replacement_oldlast ge_first_in_replacement_oldlast ge_second_rp_replacement_oldlast ge_second_rn_replacement_oldlast ge_second_ip_replacement_oldlast ge_second_in_replacement_oldlast. ((exists ge_representation_real_code_replacement_oldlastfirst ge_representation_imaginary_code_replacement_oldlastfirst. (((R) = ((ge_representation_real_code_replacement_oldlastfirst) + (ge_representation_imaginary_code_replacement_oldlastfirst)) * S ((ge_representation_real_code_replacement_oldlastfirst) + (ge_representation_imaginary_code_replacement_oldlastfirst)) + ((ge_representation_imaginary_code_replacement_oldlastfirst) + (ge_representation_imaginary_code_replacement_oldlastfirst))) /\ ((exists ge_balance_positive_replacement_oldlastfirstreal ge_balance_negative_replacement_oldlastfirstreal. (((((ge_representation_real_code_replacement_oldlastfirst) = 2 * (ge_balance_positive_replacement_oldlastfirstreal) /\ (ge_balance_negative_replacement_oldlastfirstreal) = 0) \/ exists ge_signed_half_replacement_oldlastfirstrealdecode. (((ge_representation_real_code_replacement_oldlastfirst) = 2 * ge_signed_half_replacement_oldlastfirstrealdecode + 1 /\ (ge_balance_positive_replacement_oldlastfirstreal) = 0) /\ (ge_balance_negative_replacement_oldlastfirstreal) = S ge_signed_half_replacement_oldlastfirstrealdecode))) /\ ((ge_first_rp_replacement_oldlast) + ge_balance_negative_replacement_oldlastfirstreal = (ge_first_rn_replacement_oldlast) + ge_balance_positive_replacement_oldlastfirstreal))) /\ (exists ge_balance_positive_replacement_oldlastfirstimaginary ge_balance_negative_replacement_oldlastfirstimaginary. (((((ge_representation_imaginary_code_replacement_oldlastfirst) = 2 * (ge_balance_positive_replacement_oldlastfirstimaginary) /\ (ge_balance_negative_replacement_oldlastfirstimaginary) = 0) \/ exists ge_signed_half_replacement_oldlastfirstimaginarydecode. (((ge_representation_imaginary_code_replacement_oldlastfirst) = 2 * ge_signed_half_replacement_oldlastfirstimaginarydecode + 1 /\ (ge_balance_positive_replacement_oldlastfirstimaginary) = 0) /\ (ge_balance_negative_replacement_oldlastfirstimaginary) = S ge_signed_half_replacement_oldlastfirstimaginarydecode))) /\ ((ge_first_ip_replacement_oldlast) + ge_balance_negative_replacement_oldlastfirstimaginary = (ge_first_in_replacement_oldlast) + ge_balance_positive_replacement_oldlastfirstimaginary)))))) /\ ((exists ge_representation_real_code_replacement_oldlastsecond ge_representation_imaginary_code_replacement_oldlastsecond. (((a) = ((ge_representation_real_code_replacement_oldlastsecond) + (ge_representation_imaginary_code_replacement_oldlastsecond)) * S ((ge_representation_real_code_replacement_oldlastsecond) + (ge_representation_imaginary_code_replacement_oldlastsecond)) + ((ge_representation_imaginary_code_replacement_oldlastsecond) + (ge_representation_imaginary_code_replacement_oldlastsecond))) /\ ((exists ge_balance_positive_replacement_oldlastsecondreal ge_balance_negative_replacement_oldlastsecondreal. (((((ge_representation_real_code_replacement_oldlastsecond) = 2 * (ge_balance_positive_replacement_oldlastsecondreal) /\ (ge_balance_negative_replacement_oldlastsecondreal) = 0) \/ exists ge_signed_half_replacement_oldlastsecondrealdecode. (((ge_representation_real_code_replacement_oldlastsecond) = 2 * ge_signed_half_replacement_oldlastsecondrealdecode + 1 /\ (ge_balance_positive_replacement_oldlastsecondreal) = 0) /\ (ge_balance_negative_replacement_oldlastsecondreal) = S ge_signed_half_replacement_oldlastsecondrealdecode))) /\ ((ge_second_rp_replacement_oldlast) + ge_balance_negative_replacement_oldlastsecondreal = (ge_second_rn_replacement_oldlast) + ge_balance_positive_replacement_oldlastsecondreal))) /\ (exists ge_balance_positive_replacement_oldlastsecondimaginary ge_balance_negative_replacement_oldlastsecondimaginary. (((((ge_representation_imaginary_code_replacement_oldlastsecond) = 2 * (ge_balance_positive_replacement_oldlastsecondimaginary) /\ (ge_balance_negative_replacement_oldlastsecondimaginary) = 0) \/ exists ge_signed_half_replacement_oldlastsecondimaginarydecode. (((ge_representation_imaginary_code_replacement_oldlastsecond) = 2 * ge_signed_half_replacement_oldlastsecondimaginarydecode + 1 /\ (ge_balance_positive_replacement_oldlastsecondimaginary) = 0) /\ (ge_balance_negative_replacement_oldlastsecondimaginary) = S ge_signed_half_replacement_oldlastsecondimaginarydecode))) /\ ((ge_second_ip_replacement_oldlast) + ge_balance_negative_replacement_oldlastsecondimaginary = (ge_second_in_replacement_oldlast) + ge_balance_positive_replacement_oldlastsecondimaginary)))))) /\ (exists ge_representation_real_code_replacement_oldlastoutput ge_representation_imaginary_code_replacement_oldlastoutput. (((P) = ((ge_representation_real_code_replacement_oldlastoutput) + (ge_representation_imaginary_code_replacement_oldlastoutput)) * S ((ge_representation_real_code_replacement_oldlastoutput) + (ge_representation_imaginary_code_replacement_oldlastoutput)) + ((ge_representation_imaginary_code_replacement_oldlastoutput) + (ge_representation_imaginary_code_replacement_oldlastoutput))) /\ ((exists ge_balance_positive_replacement_oldlastoutputreal ge_balance_negative_replacement_oldlastoutputreal. (((((ge_representation_real_code_replacement_oldlastoutput) = 2 * (ge_balance_positive_replacement_oldlastoutputreal) /\ (ge_balance_negative_replacement_oldlastoutputreal) = 0) \/ exists ge_signed_half_replacement_oldlastoutputrealdecode. (((ge_representation_real_code_replacement_oldlastoutput) = 2 * ge_signed_half_replacement_oldlastoutputrealdecode + 1 /\ (ge_balance_positive_replacement_oldlastoutputreal) = 0) /\ (ge_balance_negative_replacement_oldlastoutputreal) = S ge_signed_half_replacement_oldlastoutputrealdecode))) /\ ((((((((ge_first_rp_replacement_oldlast) * (ge_second_rp_replacement_oldlast))) + (((ge_first_rn_replacement_oldlast) * (ge_second_rn_replacement_oldlast))))) + (((((ge_first_ip_replacement_oldlast) * (ge_second_in_replacement_oldlast))) + (((ge_first_in_replacement_oldlast) * (ge_second_ip_replacement_oldlast))))))) + ge_balance_negative_replacement_oldlastoutputreal = (((((((ge_first_rp_replacement_oldlast) * (ge_second_rn_replacement_oldlast))) + (((ge_first_rn_replacement_oldlast) * (ge_second_rp_replacement_oldlast))))) + (((((ge_first_ip_replacement_oldlast) * (ge_second_ip_replacement_oldlast))) + (((ge_first_in_replacement_oldlast) * (ge_second_in_replacement_oldlast))))))) + ge_balance_positive_replacement_oldlastoutputreal))) /\ (exists ge_balance_positive_replacement_oldlastoutputimaginary ge_balance_negative_replacement_oldlastoutputimaginary. (((((ge_representation_imaginary_code_replacement_oldlastoutput) = 2 * (ge_balance_positive_replacement_oldlastoutputimaginary) /\ (ge_balance_negative_replacement_oldlastoutputimaginary) = 0) \/ exists ge_signed_half_replacement_oldlastoutputimaginarydecode. (((ge_representation_imaginary_code_replacement_oldlastoutput) = 2 * ge_signed_half_replacement_oldlastoutputimaginarydecode + 1 /\ (ge_balance_positive_replacement_oldlastoutputimaginary) = 0) /\ (ge_balance_negative_replacement_oldlastoutputimaginary) = S ge_signed_half_replacement_oldlastoutputimaginarydecode))) /\ ((((((((ge_first_rp_replacement_oldlast) * (ge_second_ip_replacement_oldlast))) + (((ge_first_rn_replacement_oldlast) * (ge_second_in_replacement_oldlast))))) + (((((ge_first_ip_replacement_oldlast) * (ge_second_rp_replacement_oldlast))) + (((ge_first_in_replacement_oldlast) * (ge_second_rn_replacement_oldlast))))))) + ge_balance_negative_replacement_oldlastoutputimaginary = (((((((ge_first_rp_replacement_oldlast) * (ge_second_in_replacement_oldlast))) + (((ge_first_rn_replacement_oldlast) * (ge_second_ip_replacement_oldlast))))) + (((((ge_first_ip_replacement_oldlast) * (ge_second_rn_replacement_oldlast))) + (((ge_first_in_replacement_oldlast) * (ge_second_rp_replacement_oldlast))))))) + ge_balance_positive_replacement_oldlastoutputimaginary))))))))))) - 0046
specialize gaussian_product_successor_decompose (b) - 0047
specialize gaussian_product_successor_decompose (c) - 0048
specialize gaussian_product_successor_decompose (k) - 0049
specialize gaussian_product_successor_decompose (P) - 0050
apply gaussian_product_successor_decompose - 0051
exact hP - 0052
have hnew : exists a R. ((((exists ff_h_gprod_replacement_newfactor. ff_h_gprod_replacement_newfactor + S (a) = S ((S (k)) * e)) /\ exists ff_q_gprod_replacement_newfactor. d = ff_q_gprod_replacement_newfactor * S ((S (k)) * e) + (a))) /\ ((exists gr_product_trace_replacement_newprefix gr_product_scale_replacement_newprefix. ((((exists ff_h_gprod_replacement_newprefixstart. ff_h_gprod_replacement_newprefixstart + S (6) = S ((S (0)) * gr_product_scale_replacement_newprefix)) /\ exists ff_q_gprod_replacement_newprefixstart. gr_product_trace_replacement_newprefix = ff_q_gprod_replacement_newprefixstart * S ((S (0)) * gr_product_scale_replacement_newprefix) + (6))) /\ ((((exists ff_h_gprod_replacement_newprefixend. ff_h_gprod_replacement_newprefixend + S (R) = S ((S (k)) * gr_product_scale_replacement_newprefix)) /\ exists ff_q_gprod_replacement_newprefixend. gr_product_trace_replacement_newprefix = ff_q_gprod_replacement_newprefixend * S ((S (k)) * gr_product_scale_replacement_newprefix) + (R))) /\ (forall gr_product_index_replacement_newprefixsteps. (exists ge_gap_replacement_newprefixstepsindex_bound. ge_gap_replacement_newprefixstepsindex_bound + S (gr_product_index_replacement_newprefixsteps) = (k)) -> exists gr_product_factor_replacement_newprefixsteps gr_product_before_replacement_newprefixsteps gr_product_after_replacement_newprefixsteps. ((((exists ff_h_gprod_replacement_newprefixstepsfactor. ff_h_gprod_replacement_newprefixstepsfactor + S (gr_product_factor_replacement_newprefixsteps) = S ((S (gr_product_index_replacement_newprefixsteps)) * e)) /\ exists ff_q_gprod_replacement_newprefixstepsfactor. d = ff_q_gprod_replacement_newprefixstepsfactor * S ((S (gr_product_index_replacement_newprefixsteps)) * e) + (gr_product_factor_replacement_newprefixsteps))) /\ ((((exists ff_h_gprod_replacement_newprefixstepsbefore. ff_h_gprod_replacement_newprefixstepsbefore + S (gr_product_before_replacement_newprefixsteps) = S ((S (gr_product_index_replacement_newprefixsteps)) * gr_product_scale_replacement_newprefix)) /\ exists ff_q_gprod_replacement_newprefixstepsbefore. gr_product_trace_replacement_newprefix = ff_q_gprod_replacement_newprefixstepsbefore * S ((S (gr_product_index_replacement_newprefixsteps)) * gr_product_scale_replacement_newprefix) + (gr_product_before_replacement_newprefixsteps))) /\ ((((exists ff_h_gprod_replacement_newprefixstepsafter. ff_h_gprod_replacement_newprefixstepsafter + S (gr_product_after_replacement_newprefixsteps) = S ((S (S (gr_product_index_replacement_newprefixsteps))) * gr_product_scale_replacement_newprefix)) /\ exists ff_q_gprod_replacement_newprefixstepsafter. gr_product_trace_replacement_newprefix = ff_q_gprod_replacement_newprefixstepsafter * S ((S (S (gr_product_index_replacement_newprefixsteps))) * gr_product_scale_replacement_newprefix) + (gr_product_after_replacement_newprefixsteps))) /\ (exists ge_first_rp_replacement_newprefixstepsmultiply ge_first_rn_replacement_newprefixstepsmultiply ge_first_ip_replacement_newprefixstepsmultiply ge_first_in_replacement_newprefixstepsmultiply ge_second_rp_replacement_newprefixstepsmultiply ge_second_rn_replacement_newprefixstepsmultiply ge_second_ip_replacement_newprefixstepsmultiply ge_second_in_replacement_newprefixstepsmultiply. ((exists ge_representation_real_code_replacement_newprefixstepsmultiplyfirst ge_representation_imaginary_code_replacement_newprefixstepsmultiplyfirst. (((gr_product_before_replacement_newprefixsteps) = ((ge_representation_real_code_replacement_newprefixstepsmultiplyfirst) + (ge_representation_imaginary_code_replacement_newprefixstepsmultiplyfirst)) * S ((ge_representation_real_code_replacement_newprefixstepsmultiplyfirst) + (ge_representation_imaginary_code_replacement_newprefixstepsmultiplyfirst)) + ((ge_representation_imaginary_code_replacement_newprefixstepsmultiplyfirst) + (ge_representation_imaginary_code_replacement_newprefixstepsmultiplyfirst))) /\ ((exists ge_balance_positive_replacement_newprefixstepsmultiplyfirstreal ge_balance_negative_replacement_newprefixstepsmultiplyfirstreal. (((((ge_representation_real_code_replacement_newprefixstepsmultiplyfirst) = 2 * (ge_balance_positive_replacement_newprefixstepsmultiplyfirstreal) /\ (ge_balance_negative_replacement_newprefixstepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_replacement_newprefixstepsmultiplyfirstrealdecode. (((ge_representation_real_code_replacement_newprefixstepsmultiplyfirst) = 2 * ge_signed_half_replacement_newprefixstepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_replacement_newprefixstepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_replacement_newprefixstepsmultiplyfirstreal) = S ge_signed_half_replacement_newprefixstepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_replacement_newprefixstepsmultiply) + ge_balance_negative_replacement_newprefixstepsmultiplyfirstreal = (ge_first_rn_replacement_newprefixstepsmultiply) + ge_balance_positive_replacement_newprefixstepsmultiplyfirstreal))) /\ (exists ge_balance_positive_replacement_newprefixstepsmultiplyfirstimaginary ge_balance_negative_replacement_newprefixstepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_replacement_newprefixstepsmultiplyfirst) = 2 * (ge_balance_positive_replacement_newprefixstepsmultiplyfirstimaginary) /\ (ge_balance_negative_replacement_newprefixstepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_replacement_newprefixstepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_replacement_newprefixstepsmultiplyfirst) = 2 * ge_signed_half_replacement_newprefixstepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_replacement_newprefixstepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_replacement_newprefixstepsmultiplyfirstimaginary) = S ge_signed_half_replacement_newprefixstepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_replacement_newprefixstepsmultiply) + ge_balance_negative_replacement_newprefixstepsmultiplyfirstimaginary = (ge_first_in_replacement_newprefixstepsmultiply) + ge_balance_positive_replacement_newprefixstepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_replacement_newprefixstepsmultiplysecond ge_representation_imaginary_code_replacement_newprefixstepsmultiplysecond. (((gr_product_factor_replacement_newprefixsteps) = ((ge_representation_real_code_replacement_newprefixstepsmultiplysecond) + (ge_representation_imaginary_code_replacement_newprefixstepsmultiplysecond)) * S ((ge_representation_real_code_replacement_newprefixstepsmultiplysecond) + (ge_representation_imaginary_code_replacement_newprefixstepsmultiplysecond)) + ((ge_representation_imaginary_code_replacement_newprefixstepsmultiplysecond) + (ge_representation_imaginary_code_replacement_newprefixstepsmultiplysecond))) /\ ((exists ge_balance_positive_replacement_newprefixstepsmultiplysecondreal ge_balance_negative_replacement_newprefixstepsmultiplysecondreal. (((((ge_representation_real_code_replacement_newprefixstepsmultiplysecond) = 2 * (ge_balance_positive_replacement_newprefixstepsmultiplysecondreal) /\ (ge_balance_negative_replacement_newprefixstepsmultiplysecondreal) = 0) \/ exists ge_signed_half_replacement_newprefixstepsmultiplysecondrealdecode. (((ge_representation_real_code_replacement_newprefixstepsmultiplysecond) = 2 * ge_signed_half_replacement_newprefixstepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_replacement_newprefixstepsmultiplysecondreal) = 0) /\ (ge_balance_negative_replacement_newprefixstepsmultiplysecondreal) = S ge_signed_half_replacement_newprefixstepsmultiplysecondrealdecode))) /\ ((ge_second_rp_replacement_newprefixstepsmultiply) + ge_balance_negative_replacement_newprefixstepsmultiplysecondreal = (ge_second_rn_replacement_newprefixstepsmultiply) + ge_balance_positive_replacement_newprefixstepsmultiplysecondreal))) /\ (exists ge_balance_positive_replacement_newprefixstepsmultiplysecondimaginary ge_balance_negative_replacement_newprefixstepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_replacement_newprefixstepsmultiplysecond) = 2 * (ge_balance_positive_replacement_newprefixstepsmultiplysecondimaginary) /\ (ge_balance_negative_replacement_newprefixstepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_replacement_newprefixstepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_replacement_newprefixstepsmultiplysecond) = 2 * ge_signed_half_replacement_newprefixstepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_replacement_newprefixstepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_replacement_newprefixstepsmultiplysecondimaginary) = S ge_signed_half_replacement_newprefixstepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_replacement_newprefixstepsmultiply) + ge_balance_negative_replacement_newprefixstepsmultiplysecondimaginary = (ge_second_in_replacement_newprefixstepsmultiply) + ge_balance_positive_replacement_newprefixstepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_replacement_newprefixstepsmultiplyoutput ge_representation_imaginary_code_replacement_newprefixstepsmultiplyoutput. (((gr_product_after_replacement_newprefixsteps) = ((ge_representation_real_code_replacement_newprefixstepsmultiplyoutput) + (ge_representation_imaginary_code_replacement_newprefixstepsmultiplyoutput)) * S ((ge_representation_real_code_replacement_newprefixstepsmultiplyoutput) + (ge_representation_imaginary_code_replacement_newprefixstepsmultiplyoutput)) + ((ge_representation_imaginary_code_replacement_newprefixstepsmultiplyoutput) + (ge_representation_imaginary_code_replacement_newprefixstepsmultiplyoutput))) /\ ((exists ge_balance_positive_replacement_newprefixstepsmultiplyoutputreal ge_balance_negative_replacement_newprefixstepsmultiplyoutputreal. (((((ge_representation_real_code_replacement_newprefixstepsmultiplyoutput) = 2 * (ge_balance_positive_replacement_newprefixstepsmultiplyoutputreal) /\ (ge_balance_negative_replacement_newprefixstepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_replacement_newprefixstepsmultiplyoutputrealdecode. (((ge_representation_real_code_replacement_newprefixstepsmultiplyoutput) = 2 * ge_signed_half_replacement_newprefixstepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_replacement_newprefixstepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_replacement_newprefixstepsmultiplyoutputreal) = S ge_signed_half_replacement_newprefixstepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_replacement_newprefixstepsmultiply) * (ge_second_rp_replacement_newprefixstepsmultiply))) + (((ge_first_rn_replacement_newprefixstepsmultiply) * (ge_second_rn_replacement_newprefixstepsmultiply))))) + (((((ge_first_ip_replacement_newprefixstepsmultiply) * (ge_second_in_replacement_newprefixstepsmultiply))) + (((ge_first_in_replacement_newprefixstepsmultiply) * (ge_second_ip_replacement_newprefixstepsmultiply))))))) + ge_balance_negative_replacement_newprefixstepsmultiplyoutputreal = (((((((ge_first_rp_replacement_newprefixstepsmultiply) * (ge_second_rn_replacement_newprefixstepsmultiply))) + (((ge_first_rn_replacement_newprefixstepsmultiply) * (ge_second_rp_replacement_newprefixstepsmultiply))))) + (((((ge_first_ip_replacement_newprefixstepsmultiply) * (ge_second_ip_replacement_newprefixstepsmultiply))) + (((ge_first_in_replacement_newprefixstepsmultiply) * (ge_second_in_replacement_newprefixstepsmultiply))))))) + ge_balance_positive_replacement_newprefixstepsmultiplyoutputreal))) /\ (exists ge_balance_positive_replacement_newprefixstepsmultiplyoutputimaginary ge_balance_negative_replacement_newprefixstepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_replacement_newprefixstepsmultiplyoutput) = 2 * (ge_balance_positive_replacement_newprefixstepsmultiplyoutputimaginary) /\ (ge_balance_negative_replacement_newprefixstepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_replacement_newprefixstepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_replacement_newprefixstepsmultiplyoutput) = 2 * ge_signed_half_replacement_newprefixstepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_replacement_newprefixstepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_replacement_newprefixstepsmultiplyoutputimaginary) = S ge_signed_half_replacement_newprefixstepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_replacement_newprefixstepsmultiply) * (ge_second_ip_replacement_newprefixstepsmultiply))) + (((ge_first_rn_replacement_newprefixstepsmultiply) * (ge_second_in_replacement_newprefixstepsmultiply))))) + (((((ge_first_ip_replacement_newprefixstepsmultiply) * (ge_second_rp_replacement_newprefixstepsmultiply))) + (((ge_first_in_replacement_newprefixstepsmultiply) * (ge_second_rn_replacement_newprefixstepsmultiply))))))) + ge_balance_negative_replacement_newprefixstepsmultiplyoutputimaginary = (((((((ge_first_rp_replacement_newprefixstepsmultiply) * (ge_second_in_replacement_newprefixstepsmultiply))) + (((ge_first_rn_replacement_newprefixstepsmultiply) * (ge_second_ip_replacement_newprefixstepsmultiply))))) + (((((ge_first_ip_replacement_newprefixstepsmultiply) * (ge_second_rn_replacement_newprefixstepsmultiply))) + (((ge_first_in_replacement_newprefixstepsmultiply) * (ge_second_rp_replacement_newprefixstepsmultiply))))))) + ge_balance_positive_replacement_newprefixstepsmultiplyoutputimaginary)))))))))))))))) /\ (exists ge_first_rp_replacement_newlast ge_first_rn_replacement_newlast ge_first_ip_replacement_newlast ge_first_in_replacement_newlast ge_second_rp_replacement_newlast ge_second_rn_replacement_newlast ge_second_ip_replacement_newlast ge_second_in_replacement_newlast. ((exists ge_representation_real_code_replacement_newlastfirst ge_representation_imaginary_code_replacement_newlastfirst. (((R) = ((ge_representation_real_code_replacement_newlastfirst) + (ge_representation_imaginary_code_replacement_newlastfirst)) * S ((ge_representation_real_code_replacement_newlastfirst) + (ge_representation_imaginary_code_replacement_newlastfirst)) + ((ge_representation_imaginary_code_replacement_newlastfirst) + (ge_representation_imaginary_code_replacement_newlastfirst))) /\ ((exists ge_balance_positive_replacement_newlastfirstreal ge_balance_negative_replacement_newlastfirstreal. (((((ge_representation_real_code_replacement_newlastfirst) = 2 * (ge_balance_positive_replacement_newlastfirstreal) /\ (ge_balance_negative_replacement_newlastfirstreal) = 0) \/ exists ge_signed_half_replacement_newlastfirstrealdecode. (((ge_representation_real_code_replacement_newlastfirst) = 2 * ge_signed_half_replacement_newlastfirstrealdecode + 1 /\ (ge_balance_positive_replacement_newlastfirstreal) = 0) /\ (ge_balance_negative_replacement_newlastfirstreal) = S ge_signed_half_replacement_newlastfirstrealdecode))) /\ ((ge_first_rp_replacement_newlast) + ge_balance_negative_replacement_newlastfirstreal = (ge_first_rn_replacement_newlast) + ge_balance_positive_replacement_newlastfirstreal))) /\ (exists ge_balance_positive_replacement_newlastfirstimaginary ge_balance_negative_replacement_newlastfirstimaginary. (((((ge_representation_imaginary_code_replacement_newlastfirst) = 2 * (ge_balance_positive_replacement_newlastfirstimaginary) /\ (ge_balance_negative_replacement_newlastfirstimaginary) = 0) \/ exists ge_signed_half_replacement_newlastfirstimaginarydecode. (((ge_representation_imaginary_code_replacement_newlastfirst) = 2 * ge_signed_half_replacement_newlastfirstimaginarydecode + 1 /\ (ge_balance_positive_replacement_newlastfirstimaginary) = 0) /\ (ge_balance_negative_replacement_newlastfirstimaginary) = S ge_signed_half_replacement_newlastfirstimaginarydecode))) /\ ((ge_first_ip_replacement_newlast) + ge_balance_negative_replacement_newlastfirstimaginary = (ge_first_in_replacement_newlast) + ge_balance_positive_replacement_newlastfirstimaginary)))))) /\ ((exists ge_representation_real_code_replacement_newlastsecond ge_representation_imaginary_code_replacement_newlastsecond. (((a) = ((ge_representation_real_code_replacement_newlastsecond) + (ge_representation_imaginary_code_replacement_newlastsecond)) * S ((ge_representation_real_code_replacement_newlastsecond) + (ge_representation_imaginary_code_replacement_newlastsecond)) + ((ge_representation_imaginary_code_replacement_newlastsecond) + (ge_representation_imaginary_code_replacement_newlastsecond))) /\ ((exists ge_balance_positive_replacement_newlastsecondreal ge_balance_negative_replacement_newlastsecondreal. (((((ge_representation_real_code_replacement_newlastsecond) = 2 * (ge_balance_positive_replacement_newlastsecondreal) /\ (ge_balance_negative_replacement_newlastsecondreal) = 0) \/ exists ge_signed_half_replacement_newlastsecondrealdecode. (((ge_representation_real_code_replacement_newlastsecond) = 2 * ge_signed_half_replacement_newlastsecondrealdecode + 1 /\ (ge_balance_positive_replacement_newlastsecondreal) = 0) /\ (ge_balance_negative_replacement_newlastsecondreal) = S ge_signed_half_replacement_newlastsecondrealdecode))) /\ ((ge_second_rp_replacement_newlast) + ge_balance_negative_replacement_newlastsecondreal = (ge_second_rn_replacement_newlast) + ge_balance_positive_replacement_newlastsecondreal))) /\ (exists ge_balance_positive_replacement_newlastsecondimaginary ge_balance_negative_replacement_newlastsecondimaginary. (((((ge_representation_imaginary_code_replacement_newlastsecond) = 2 * (ge_balance_positive_replacement_newlastsecondimaginary) /\ (ge_balance_negative_replacement_newlastsecondimaginary) = 0) \/ exists ge_signed_half_replacement_newlastsecondimaginarydecode. (((ge_representation_imaginary_code_replacement_newlastsecond) = 2 * ge_signed_half_replacement_newlastsecondimaginarydecode + 1 /\ (ge_balance_positive_replacement_newlastsecondimaginary) = 0) /\ (ge_balance_negative_replacement_newlastsecondimaginary) = S ge_signed_half_replacement_newlastsecondimaginarydecode))) /\ ((ge_second_ip_replacement_newlast) + ge_balance_negative_replacement_newlastsecondimaginary = (ge_second_in_replacement_newlast) + ge_balance_positive_replacement_newlastsecondimaginary)))))) /\ (exists ge_representation_real_code_replacement_newlastoutput ge_representation_imaginary_code_replacement_newlastoutput. (((Q) = ((ge_representation_real_code_replacement_newlastoutput) + (ge_representation_imaginary_code_replacement_newlastoutput)) * S ((ge_representation_real_code_replacement_newlastoutput) + (ge_representation_imaginary_code_replacement_newlastoutput)) + ((ge_representation_imaginary_code_replacement_newlastoutput) + (ge_representation_imaginary_code_replacement_newlastoutput))) /\ ((exists ge_balance_positive_replacement_newlastoutputreal ge_balance_negative_replacement_newlastoutputreal. (((((ge_representation_real_code_replacement_newlastoutput) = 2 * (ge_balance_positive_replacement_newlastoutputreal) /\ (ge_balance_negative_replacement_newlastoutputreal) = 0) \/ exists ge_signed_half_replacement_newlastoutputrealdecode. (((ge_representation_real_code_replacement_newlastoutput) = 2 * ge_signed_half_replacement_newlastoutputrealdecode + 1 /\ (ge_balance_positive_replacement_newlastoutputreal) = 0) /\ (ge_balance_negative_replacement_newlastoutputreal) = S ge_signed_half_replacement_newlastoutputrealdecode))) /\ ((((((((ge_first_rp_replacement_newlast) * (ge_second_rp_replacement_newlast))) + (((ge_first_rn_replacement_newlast) * (ge_second_rn_replacement_newlast))))) + (((((ge_first_ip_replacement_newlast) * (ge_second_in_replacement_newlast))) + (((ge_first_in_replacement_newlast) * (ge_second_ip_replacement_newlast))))))) + ge_balance_negative_replacement_newlastoutputreal = (((((((ge_first_rp_replacement_newlast) * (ge_second_rn_replacement_newlast))) + (((ge_first_rn_replacement_newlast) * (ge_second_rp_replacement_newlast))))) + (((((ge_first_ip_replacement_newlast) * (ge_second_ip_replacement_newlast))) + (((ge_first_in_replacement_newlast) * (ge_second_in_replacement_newlast))))))) + ge_balance_positive_replacement_newlastoutputreal))) /\ (exists ge_balance_positive_replacement_newlastoutputimaginary ge_balance_negative_replacement_newlastoutputimaginary. (((((ge_representation_imaginary_code_replacement_newlastoutput) = 2 * (ge_balance_positive_replacement_newlastoutputimaginary) /\ (ge_balance_negative_replacement_newlastoutputimaginary) = 0) \/ exists ge_signed_half_replacement_newlastoutputimaginarydecode. (((ge_representation_imaginary_code_replacement_newlastoutput) = 2 * ge_signed_half_replacement_newlastoutputimaginarydecode + 1 /\ (ge_balance_positive_replacement_newlastoutputimaginary) = 0) /\ (ge_balance_negative_replacement_newlastoutputimaginary) = S ge_signed_half_replacement_newlastoutputimaginarydecode))) /\ ((((((((ge_first_rp_replacement_newlast) * (ge_second_ip_replacement_newlast))) + (((ge_first_rn_replacement_newlast) * (ge_second_in_replacement_newlast))))) + (((((ge_first_ip_replacement_newlast) * (ge_second_rp_replacement_newlast))) + (((ge_first_in_replacement_newlast) * (ge_second_rn_replacement_newlast))))))) + ge_balance_negative_replacement_newlastoutputimaginary = (((((((ge_first_rp_replacement_newlast) * (ge_second_in_replacement_newlast))) + (((ge_first_rn_replacement_newlast) * (ge_second_ip_replacement_newlast))))) + (((((ge_first_ip_replacement_newlast) * (ge_second_rn_replacement_newlast))) + (((ge_first_in_replacement_newlast) * (ge_second_rp_replacement_newlast))))))) + ge_balance_positive_replacement_newlastoutputimaginary))))))))))) - 0053
specialize gaussian_product_successor_decompose (d) - 0054
specialize gaussian_product_successor_decompose (e) - 0055
specialize gaussian_product_successor_decompose (k) - 0056
specialize gaussian_product_successor_decompose (Q) - 0057
apply gaussian_product_successor_decompose - 0058
exact hQ - 0059
cases hold - 0060
cases hold_witness - 0061
cases hold_witness_witness - 0062
cases hold_witness_witness_right - 0063
cases hnew - 0064
cases hnew_witness - 0065
cases hnew_witness_witness - 0066
cases hnew_witness_witness_right - 0067
cases hcases - 0068
have hlastold : x=p - 0069
specialize beta_at_unique (b) - 0070
specialize beta_at_unique (c) - 0071
specialize beta_at_unique (k) - 0072
specialize beta_at_unique (x) - 0073
specialize beta_at_unique (p) - 0074
apply beta_at_unique - 0075
exact hold_witness_witness_left - 0076
specialize gaussian_product_beta_index_transport (b) - 0077
specialize gaussian_product_beta_index_transport (c) - 0078
specialize gaussian_product_beta_index_transport (i) - 0079
specialize gaussian_product_beta_index_transport (k) - 0080
specialize gaussian_product_beta_index_transport (p) - 0081
apply gaussian_product_beta_index_transport - 0082
exact hcases_left - 0083
exact hp - 0084
have hlastnew : x2=q - 0085
specialize beta_at_unique (d) - 0086
specialize beta_at_unique (e) - 0087
specialize beta_at_unique (k) - 0088
specialize beta_at_unique (x2) - 0089
specialize beta_at_unique (q) - 0090
apply beta_at_unique - 0091
exact hnew_witness_witness_left - 0092
specialize gaussian_product_beta_index_transport (d) - 0093
specialize gaussian_product_beta_index_transport (e) - 0094
specialize gaussian_product_beta_index_transport (i) - 0095
specialize gaussian_product_beta_index_transport (k) - 0096
specialize gaussian_product_beta_index_transport (q) - 0097
apply gaussian_product_beta_index_transport - 0098
exact hcases_left - 0099
exact hq - 0100
have hprefix : exists gr_product_trace_replacement_equal_prefix gr_product_scale_replacement_equal_prefix. ((((exists ff_h_gprod_replacement_equal_prefixstart. ff_h_gprod_replacement_equal_prefixstart + S (6) = S ((S (0)) * gr_product_scale_replacement_equal_prefix)) /\ exists ff_q_gprod_replacement_equal_prefixstart. gr_product_trace_replacement_equal_prefix = ff_q_gprod_replacement_equal_prefixstart * S ((S (0)) * gr_product_scale_replacement_equal_prefix) + (6))) /\ ((((exists ff_h_gprod_replacement_equal_prefixend. ff_h_gprod_replacement_equal_prefixend + S (x1) = S ((S (k)) * gr_product_scale_replacement_equal_prefix)) /\ exists ff_q_gprod_replacement_equal_prefixend. gr_product_trace_replacement_equal_prefix = ff_q_gprod_replacement_equal_prefixend * S ((S (k)) * gr_product_scale_replacement_equal_prefix) + (x1))) /\ (forall gr_product_index_replacement_equal_prefixsteps. (exists ge_gap_replacement_equal_prefixstepsindex_bound. ge_gap_replacement_equal_prefixstepsindex_bound + S (gr_product_index_replacement_equal_prefixsteps) = (k)) -> exists gr_product_factor_replacement_equal_prefixsteps gr_product_before_replacement_equal_prefixsteps gr_product_after_replacement_equal_prefixsteps. ((((exists ff_h_gprod_replacement_equal_prefixstepsfactor. ff_h_gprod_replacement_equal_prefixstepsfactor + S (gr_product_factor_replacement_equal_prefixsteps) = S ((S (gr_product_index_replacement_equal_prefixsteps)) * e)) /\ exists ff_q_gprod_replacement_equal_prefixstepsfactor. d = ff_q_gprod_replacement_equal_prefixstepsfactor * S ((S (gr_product_index_replacement_equal_prefixsteps)) * e) + (gr_product_factor_replacement_equal_prefixsteps))) /\ ((((exists ff_h_gprod_replacement_equal_prefixstepsbefore. ff_h_gprod_replacement_equal_prefixstepsbefore + S (gr_product_before_replacement_equal_prefixsteps) = S ((S (gr_product_index_replacement_equal_prefixsteps)) * gr_product_scale_replacement_equal_prefix)) /\ exists ff_q_gprod_replacement_equal_prefixstepsbefore. gr_product_trace_replacement_equal_prefix = ff_q_gprod_replacement_equal_prefixstepsbefore * S ((S (gr_product_index_replacement_equal_prefixsteps)) * gr_product_scale_replacement_equal_prefix) + (gr_product_before_replacement_equal_prefixsteps))) /\ ((((exists ff_h_gprod_replacement_equal_prefixstepsafter. ff_h_gprod_replacement_equal_prefixstepsafter + S (gr_product_after_replacement_equal_prefixsteps) = S ((S (S (gr_product_index_replacement_equal_prefixsteps))) * gr_product_scale_replacement_equal_prefix)) /\ exists ff_q_gprod_replacement_equal_prefixstepsafter. gr_product_trace_replacement_equal_prefix = ff_q_gprod_replacement_equal_prefixstepsafter * S ((S (S (gr_product_index_replacement_equal_prefixsteps))) * gr_product_scale_replacement_equal_prefix) + (gr_product_after_replacement_equal_prefixsteps))) /\ (exists ge_first_rp_replacement_equal_prefixstepsmultiply ge_first_rn_replacement_equal_prefixstepsmultiply ge_first_ip_replacement_equal_prefixstepsmultiply ge_first_in_replacement_equal_prefixstepsmultiply ge_second_rp_replacement_equal_prefixstepsmultiply ge_second_rn_replacement_equal_prefixstepsmultiply ge_second_ip_replacement_equal_prefixstepsmultiply ge_second_in_replacement_equal_prefixstepsmultiply. ((exists ge_representation_real_code_replacement_equal_prefixstepsmultiplyfirst ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyfirst. (((gr_product_before_replacement_equal_prefixsteps) = ((ge_representation_real_code_replacement_equal_prefixstepsmultiplyfirst) + (ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyfirst)) * S ((ge_representation_real_code_replacement_equal_prefixstepsmultiplyfirst) + (ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyfirst)) + ((ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyfirst) + (ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyfirst))) /\ ((exists ge_balance_positive_replacement_equal_prefixstepsmultiplyfirstreal ge_balance_negative_replacement_equal_prefixstepsmultiplyfirstreal. (((((ge_representation_real_code_replacement_equal_prefixstepsmultiplyfirst) = 2 * (ge_balance_positive_replacement_equal_prefixstepsmultiplyfirstreal) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_replacement_equal_prefixstepsmultiplyfirstrealdecode. (((ge_representation_real_code_replacement_equal_prefixstepsmultiplyfirst) = 2 * ge_signed_half_replacement_equal_prefixstepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_replacement_equal_prefixstepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplyfirstreal) = S ge_signed_half_replacement_equal_prefixstepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_replacement_equal_prefixstepsmultiply) + ge_balance_negative_replacement_equal_prefixstepsmultiplyfirstreal = (ge_first_rn_replacement_equal_prefixstepsmultiply) + ge_balance_positive_replacement_equal_prefixstepsmultiplyfirstreal))) /\ (exists ge_balance_positive_replacement_equal_prefixstepsmultiplyfirstimaginary ge_balance_negative_replacement_equal_prefixstepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyfirst) = 2 * (ge_balance_positive_replacement_equal_prefixstepsmultiplyfirstimaginary) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_replacement_equal_prefixstepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyfirst) = 2 * ge_signed_half_replacement_equal_prefixstepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_replacement_equal_prefixstepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplyfirstimaginary) = S ge_signed_half_replacement_equal_prefixstepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_replacement_equal_prefixstepsmultiply) + ge_balance_negative_replacement_equal_prefixstepsmultiplyfirstimaginary = (ge_first_in_replacement_equal_prefixstepsmultiply) + ge_balance_positive_replacement_equal_prefixstepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_replacement_equal_prefixstepsmultiplysecond ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplysecond. (((gr_product_factor_replacement_equal_prefixsteps) = ((ge_representation_real_code_replacement_equal_prefixstepsmultiplysecond) + (ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplysecond)) * S ((ge_representation_real_code_replacement_equal_prefixstepsmultiplysecond) + (ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplysecond)) + ((ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplysecond) + (ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplysecond))) /\ ((exists ge_balance_positive_replacement_equal_prefixstepsmultiplysecondreal ge_balance_negative_replacement_equal_prefixstepsmultiplysecondreal. (((((ge_representation_real_code_replacement_equal_prefixstepsmultiplysecond) = 2 * (ge_balance_positive_replacement_equal_prefixstepsmultiplysecondreal) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplysecondreal) = 0) \/ exists ge_signed_half_replacement_equal_prefixstepsmultiplysecondrealdecode. (((ge_representation_real_code_replacement_equal_prefixstepsmultiplysecond) = 2 * ge_signed_half_replacement_equal_prefixstepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_replacement_equal_prefixstepsmultiplysecondreal) = 0) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplysecondreal) = S ge_signed_half_replacement_equal_prefixstepsmultiplysecondrealdecode))) /\ ((ge_second_rp_replacement_equal_prefixstepsmultiply) + ge_balance_negative_replacement_equal_prefixstepsmultiplysecondreal = (ge_second_rn_replacement_equal_prefixstepsmultiply) + ge_balance_positive_replacement_equal_prefixstepsmultiplysecondreal))) /\ (exists ge_balance_positive_replacement_equal_prefixstepsmultiplysecondimaginary ge_balance_negative_replacement_equal_prefixstepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplysecond) = 2 * (ge_balance_positive_replacement_equal_prefixstepsmultiplysecondimaginary) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_replacement_equal_prefixstepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplysecond) = 2 * ge_signed_half_replacement_equal_prefixstepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_replacement_equal_prefixstepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplysecondimaginary) = S ge_signed_half_replacement_equal_prefixstepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_replacement_equal_prefixstepsmultiply) + ge_balance_negative_replacement_equal_prefixstepsmultiplysecondimaginary = (ge_second_in_replacement_equal_prefixstepsmultiply) + ge_balance_positive_replacement_equal_prefixstepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_replacement_equal_prefixstepsmultiplyoutput ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyoutput. (((gr_product_after_replacement_equal_prefixsteps) = ((ge_representation_real_code_replacement_equal_prefixstepsmultiplyoutput) + (ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyoutput)) * S ((ge_representation_real_code_replacement_equal_prefixstepsmultiplyoutput) + (ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyoutput)) + ((ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyoutput) + (ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyoutput))) /\ ((exists ge_balance_positive_replacement_equal_prefixstepsmultiplyoutputreal ge_balance_negative_replacement_equal_prefixstepsmultiplyoutputreal. (((((ge_representation_real_code_replacement_equal_prefixstepsmultiplyoutput) = 2 * (ge_balance_positive_replacement_equal_prefixstepsmultiplyoutputreal) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_replacement_equal_prefixstepsmultiplyoutputrealdecode. (((ge_representation_real_code_replacement_equal_prefixstepsmultiplyoutput) = 2 * ge_signed_half_replacement_equal_prefixstepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_replacement_equal_prefixstepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplyoutputreal) = S ge_signed_half_replacement_equal_prefixstepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_replacement_equal_prefixstepsmultiply) * (ge_second_rp_replacement_equal_prefixstepsmultiply))) + (((ge_first_rn_replacement_equal_prefixstepsmultiply) * (ge_second_rn_replacement_equal_prefixstepsmultiply))))) + (((((ge_first_ip_replacement_equal_prefixstepsmultiply) * (ge_second_in_replacement_equal_prefixstepsmultiply))) + (((ge_first_in_replacement_equal_prefixstepsmultiply) * (ge_second_ip_replacement_equal_prefixstepsmultiply))))))) + ge_balance_negative_replacement_equal_prefixstepsmultiplyoutputreal = (((((((ge_first_rp_replacement_equal_prefixstepsmultiply) * (ge_second_rn_replacement_equal_prefixstepsmultiply))) + (((ge_first_rn_replacement_equal_prefixstepsmultiply) * (ge_second_rp_replacement_equal_prefixstepsmultiply))))) + (((((ge_first_ip_replacement_equal_prefixstepsmultiply) * (ge_second_ip_replacement_equal_prefixstepsmultiply))) + (((ge_first_in_replacement_equal_prefixstepsmultiply) * (ge_second_in_replacement_equal_prefixstepsmultiply))))))) + ge_balance_positive_replacement_equal_prefixstepsmultiplyoutputreal))) /\ (exists ge_balance_positive_replacement_equal_prefixstepsmultiplyoutputimaginary ge_balance_negative_replacement_equal_prefixstepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyoutput) = 2 * (ge_balance_positive_replacement_equal_prefixstepsmultiplyoutputimaginary) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_replacement_equal_prefixstepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_replacement_equal_prefixstepsmultiplyoutput) = 2 * ge_signed_half_replacement_equal_prefixstepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_replacement_equal_prefixstepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_replacement_equal_prefixstepsmultiplyoutputimaginary) = S ge_signed_half_replacement_equal_prefixstepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_replacement_equal_prefixstepsmultiply) * (ge_second_ip_replacement_equal_prefixstepsmultiply))) + (((ge_first_rn_replacement_equal_prefixstepsmultiply) * (ge_second_in_replacement_equal_prefixstepsmultiply))))) + (((((ge_first_ip_replacement_equal_prefixstepsmultiply) * (ge_second_rp_replacement_equal_prefixstepsmultiply))) + (((ge_first_in_replacement_equal_prefixstepsmultiply) * (ge_second_rn_replacement_equal_prefixstepsmultiply))))))) + ge_balance_negative_replacement_equal_prefixstepsmultiplyoutputimaginary = (((((((ge_first_rp_replacement_equal_prefixstepsmultiply) * (ge_second_in_replacement_equal_prefixstepsmultiply))) + (((ge_first_rn_replacement_equal_prefixstepsmultiply) * (ge_second_ip_replacement_equal_prefixstepsmultiply))))) + (((((ge_first_ip_replacement_equal_prefixstepsmultiply) * (ge_second_rn_replacement_equal_prefixstepsmultiply))) + (((ge_first_in_replacement_equal_prefixstepsmultiply) * (ge_second_rp_replacement_equal_prefixstepsmultiply))))))) + ge_balance_positive_replacement_equal_prefixstepsmultiplyoutputimaginary))))))))))))))) - 0101
specialize gaussian_product_prefix_recode (b) - 0102
specialize gaussian_product_prefix_recode (c) - 0103
specialize gaussian_product_prefix_recode (d) - 0104
specialize gaussian_product_prefix_recode (e) - 0105
specialize gaussian_product_prefix_recode (k) - 0106
specialize gaussian_product_prefix_recode (x1) - 0107
apply gaussian_product_prefix_recode - 0108
exact hold_witness_witness_right_left - 0109
intro j - 0110
intro a - 0111
intro hj - 0112
intro hentry - 0113
specialize hpreserve (j) - 0114
specialize hpreserve (a) - 0115
apply hpreserve - 0116
specialize le_succ (S j) - 0117
specialize le_succ (k) - 0118
apply le_succ - 0119
exact hj - 0120
intro heq - 0121
specialize lt_irrefl_expanded (k) - 0122
apply lt_irrefl_expanded - 0123
rewrite heq at hj - 0124
rewrite hcases_left at hj - 0125
exact hj - 0126
exact hentry - 0127
have hprefixeq : x1=x3 - 0128
specialize gaussian_product_functional (k) - 0129
specialize gaussian_product_functional (d) - 0130
specialize gaussian_product_functional (e) - 0131
specialize gaussian_product_functional (x1) - 0132
specialize gaussian_product_functional (x3) - 0133
apply gaussian_product_functional - 0134
exact hprefix - 0135
exact hnew_witness_witness_right_left - 0136
rewrite hlastold at hold_witness_witness_right_right - 0137
rewrite hprefixeq at hold_witness_witness_right_right - 0138
rewrite hlastnew at hnew_witness_witness_right_right - 0139
specialize gaussian_multiply_swap_tail (x3) - 0140
specialize gaussian_multiply_swap_tail (q) - 0141
specialize gaussian_multiply_swap_tail (p) - 0142
specialize gaussian_multiply_swap_tail (Q) - 0143
specialize gaussian_multiply_swap_tail (P) - 0144
specialize gaussian_multiply_swap_tail (T) - 0145
apply gaussian_multiply_swap_tail - 0146
exact hnew_witness_witness_right_right - 0147
exact hmultiply - 0148
exact hold_witness_witness_right_right - 0149
have hki : ~(k=i) - 0150
intro heq - 0151
specialize lt_irrefl_expanded (k) - 0152
apply lt_irrefl_expanded - 0153
rewrite <- heq at hcases_right - 0154
exact hcases_right - 0155
have hlast : ((exists ff_h_gprod_replacement_preserved_last. ff_h_gprod_replacement_preserved_last + S (x) = S ((S (k)) * e)) /\ exists ff_q_gprod_replacement_preserved_last. d = ff_q_gprod_replacement_preserved_last * S ((S (k)) * e) + (x)) - 0156
specialize hpreserve (k) - 0157
specialize hpreserve (x) - 0158
apply hpreserve - 0159
specialize le_refl (S k) - 0160
apply le_refl - 0161
exact hki - 0162
exact hold_witness_witness_left - 0163
have hlastmatch : x2=x - 0164
specialize beta_at_unique (d) - 0165
specialize beta_at_unique (e) - 0166
specialize beta_at_unique (k) - 0167
specialize beta_at_unique (x2) - 0168
specialize beta_at_unique (x) - 0169
apply beta_at_unique - 0170
exact hnew_witness_witness_left - 0171
exact hlast - 0172
rewrite hlastmatch at hnew_witness_witness_right_right - 0173
have hR : exists R. (exists ge_first_rp_replacement_short_balance_product ge_first_rn_replacement_short_balance_product ge_first_ip_replacement_short_balance_product ge_first_in_replacement_short_balance_product ge_second_rp_replacement_short_balance_product ge_second_rn_replacement_short_balance_product ge_second_ip_replacement_short_balance_product ge_second_in_replacement_short_balance_product. ((exists ge_representation_real_code_replacement_short_balance_productfirst ge_representation_imaginary_code_replacement_short_balance_productfirst. (((x3) = ((ge_representation_real_code_replacement_short_balance_productfirst) + (ge_representation_imaginary_code_replacement_short_balance_productfirst)) * S ((ge_representation_real_code_replacement_short_balance_productfirst) + (ge_representation_imaginary_code_replacement_short_balance_productfirst)) + ((ge_representation_imaginary_code_replacement_short_balance_productfirst) + (ge_representation_imaginary_code_replacement_short_balance_productfirst))) /\ ((exists ge_balance_positive_replacement_short_balance_productfirstreal ge_balance_negative_replacement_short_balance_productfirstreal. (((((ge_representation_real_code_replacement_short_balance_productfirst) = 2 * (ge_balance_positive_replacement_short_balance_productfirstreal) /\ (ge_balance_negative_replacement_short_balance_productfirstreal) = 0) \/ exists ge_signed_half_replacement_short_balance_productfirstrealdecode. (((ge_representation_real_code_replacement_short_balance_productfirst) = 2 * ge_signed_half_replacement_short_balance_productfirstrealdecode + 1 /\ (ge_balance_positive_replacement_short_balance_productfirstreal) = 0) /\ (ge_balance_negative_replacement_short_balance_productfirstreal) = S ge_signed_half_replacement_short_balance_productfirstrealdecode))) /\ ((ge_first_rp_replacement_short_balance_product) + ge_balance_negative_replacement_short_balance_productfirstreal = (ge_first_rn_replacement_short_balance_product) + ge_balance_positive_replacement_short_balance_productfirstreal))) /\ (exists ge_balance_positive_replacement_short_balance_productfirstimaginary ge_balance_negative_replacement_short_balance_productfirstimaginary. (((((ge_representation_imaginary_code_replacement_short_balance_productfirst) = 2 * (ge_balance_positive_replacement_short_balance_productfirstimaginary) /\ (ge_balance_negative_replacement_short_balance_productfirstimaginary) = 0) \/ exists ge_signed_half_replacement_short_balance_productfirstimaginarydecode. (((ge_representation_imaginary_code_replacement_short_balance_productfirst) = 2 * ge_signed_half_replacement_short_balance_productfirstimaginarydecode + 1 /\ (ge_balance_positive_replacement_short_balance_productfirstimaginary) = 0) /\ (ge_balance_negative_replacement_short_balance_productfirstimaginary) = S ge_signed_half_replacement_short_balance_productfirstimaginarydecode))) /\ ((ge_first_ip_replacement_short_balance_product) + ge_balance_negative_replacement_short_balance_productfirstimaginary = (ge_first_in_replacement_short_balance_product) + ge_balance_positive_replacement_short_balance_productfirstimaginary)))))) /\ ((exists ge_representation_real_code_replacement_short_balance_productsecond ge_representation_imaginary_code_replacement_short_balance_productsecond. (((p) = ((ge_representation_real_code_replacement_short_balance_productsecond) + (ge_representation_imaginary_code_replacement_short_balance_productsecond)) * S ((ge_representation_real_code_replacement_short_balance_productsecond) + (ge_representation_imaginary_code_replacement_short_balance_productsecond)) + ((ge_representation_imaginary_code_replacement_short_balance_productsecond) + (ge_representation_imaginary_code_replacement_short_balance_productsecond))) /\ ((exists ge_balance_positive_replacement_short_balance_productsecondreal ge_balance_negative_replacement_short_balance_productsecondreal. (((((ge_representation_real_code_replacement_short_balance_productsecond) = 2 * (ge_balance_positive_replacement_short_balance_productsecondreal) /\ (ge_balance_negative_replacement_short_balance_productsecondreal) = 0) \/ exists ge_signed_half_replacement_short_balance_productsecondrealdecode. (((ge_representation_real_code_replacement_short_balance_productsecond) = 2 * ge_signed_half_replacement_short_balance_productsecondrealdecode + 1 /\ (ge_balance_positive_replacement_short_balance_productsecondreal) = 0) /\ (ge_balance_negative_replacement_short_balance_productsecondreal) = S ge_signed_half_replacement_short_balance_productsecondrealdecode))) /\ ((ge_second_rp_replacement_short_balance_product) + ge_balance_negative_replacement_short_balance_productsecondreal = (ge_second_rn_replacement_short_balance_product) + ge_balance_positive_replacement_short_balance_productsecondreal))) /\ (exists ge_balance_positive_replacement_short_balance_productsecondimaginary ge_balance_negative_replacement_short_balance_productsecondimaginary. (((((ge_representation_imaginary_code_replacement_short_balance_productsecond) = 2 * (ge_balance_positive_replacement_short_balance_productsecondimaginary) /\ (ge_balance_negative_replacement_short_balance_productsecondimaginary) = 0) \/ exists ge_signed_half_replacement_short_balance_productsecondimaginarydecode. (((ge_representation_imaginary_code_replacement_short_balance_productsecond) = 2 * ge_signed_half_replacement_short_balance_productsecondimaginarydecode + 1 /\ (ge_balance_positive_replacement_short_balance_productsecondimaginary) = 0) /\ (ge_balance_negative_replacement_short_balance_productsecondimaginary) = S ge_signed_half_replacement_short_balance_productsecondimaginarydecode))) /\ ((ge_second_ip_replacement_short_balance_product) + ge_balance_negative_replacement_short_balance_productsecondimaginary = (ge_second_in_replacement_short_balance_product) + ge_balance_positive_replacement_short_balance_productsecondimaginary)))))) /\ (exists ge_representation_real_code_replacement_short_balance_productoutput ge_representation_imaginary_code_replacement_short_balance_productoutput. (((R) = ((ge_representation_real_code_replacement_short_balance_productoutput) + (ge_representation_imaginary_code_replacement_short_balance_productoutput)) * S ((ge_representation_real_code_replacement_short_balance_productoutput) + (ge_representation_imaginary_code_replacement_short_balance_productoutput)) + ((ge_representation_imaginary_code_replacement_short_balance_productoutput) + (ge_representation_imaginary_code_replacement_short_balance_productoutput))) /\ ((exists ge_balance_positive_replacement_short_balance_productoutputreal ge_balance_negative_replacement_short_balance_productoutputreal. (((((ge_representation_real_code_replacement_short_balance_productoutput) = 2 * (ge_balance_positive_replacement_short_balance_productoutputreal) /\ (ge_balance_negative_replacement_short_balance_productoutputreal) = 0) \/ exists ge_signed_half_replacement_short_balance_productoutputrealdecode. (((ge_representation_real_code_replacement_short_balance_productoutput) = 2 * ge_signed_half_replacement_short_balance_productoutputrealdecode + 1 /\ (ge_balance_positive_replacement_short_balance_productoutputreal) = 0) /\ (ge_balance_negative_replacement_short_balance_productoutputreal) = S ge_signed_half_replacement_short_balance_productoutputrealdecode))) /\ ((((((((ge_first_rp_replacement_short_balance_product) * (ge_second_rp_replacement_short_balance_product))) + (((ge_first_rn_replacement_short_balance_product) * (ge_second_rn_replacement_short_balance_product))))) + (((((ge_first_ip_replacement_short_balance_product) * (ge_second_in_replacement_short_balance_product))) + (((ge_first_in_replacement_short_balance_product) * (ge_second_ip_replacement_short_balance_product))))))) + ge_balance_negative_replacement_short_balance_productoutputreal = (((((((ge_first_rp_replacement_short_balance_product) * (ge_second_rn_replacement_short_balance_product))) + (((ge_first_rn_replacement_short_balance_product) * (ge_second_rp_replacement_short_balance_product))))) + (((((ge_first_ip_replacement_short_balance_product) * (ge_second_ip_replacement_short_balance_product))) + (((ge_first_in_replacement_short_balance_product) * (ge_second_in_replacement_short_balance_product))))))) + ge_balance_positive_replacement_short_balance_productoutputreal))) /\ (exists ge_balance_positive_replacement_short_balance_productoutputimaginary ge_balance_negative_replacement_short_balance_productoutputimaginary. (((((ge_representation_imaginary_code_replacement_short_balance_productoutput) = 2 * (ge_balance_positive_replacement_short_balance_productoutputimaginary) /\ (ge_balance_negative_replacement_short_balance_productoutputimaginary) = 0) \/ exists ge_signed_half_replacement_short_balance_productoutputimaginarydecode. (((ge_representation_imaginary_code_replacement_short_balance_productoutput) = 2 * ge_signed_half_replacement_short_balance_productoutputimaginarydecode + 1 /\ (ge_balance_positive_replacement_short_balance_productoutputimaginary) = 0) /\ (ge_balance_negative_replacement_short_balance_productoutputimaginary) = S ge_signed_half_replacement_short_balance_productoutputimaginarydecode))) /\ ((((((((ge_first_rp_replacement_short_balance_product) * (ge_second_ip_replacement_short_balance_product))) + (((ge_first_rn_replacement_short_balance_product) * (ge_second_in_replacement_short_balance_product))))) + (((((ge_first_ip_replacement_short_balance_product) * (ge_second_rp_replacement_short_balance_product))) + (((ge_first_in_replacement_short_balance_product) * (ge_second_rn_replacement_short_balance_product))))))) + ge_balance_negative_replacement_short_balance_productoutputimaginary = (((((((ge_first_rp_replacement_short_balance_product) * (ge_second_in_replacement_short_balance_product))) + (((ge_first_rn_replacement_short_balance_product) * (ge_second_ip_replacement_short_balance_product))))) + (((((ge_first_ip_replacement_short_balance_product) * (ge_second_rn_replacement_short_balance_product))) + (((ge_first_in_replacement_short_balance_product) * (ge_second_rp_replacement_short_balance_product))))))) + ge_balance_positive_replacement_short_balance_productoutputimaginary))))))))) - 0174
specialize gaussian_multiply_exists (x3) - 0175
specialize gaussian_multiply_exists (p) - 0176
apply gaussian_multiply_exists - 0177
specialize gaussian_product_result_valid (k) - 0178
specialize gaussian_product_result_valid (d) - 0179
specialize gaussian_product_result_valid (e) - 0180
specialize gaussian_product_result_valid (x3) - 0181
apply gaussian_product_result_valid - 0182
exact hnew_witness_witness_right_left - 0183
specialize gaussian_multiply_input_right_valid (Q) - 0184
specialize gaussian_multiply_input_right_valid (p) - 0185
specialize gaussian_multiply_input_right_valid (T) - 0186
apply gaussian_multiply_input_right_valid - 0187
exact hmultiply - 0188
cases hR - 0189
have hmiddle : exists ge_first_rp_replacement_balanced_tail ge_first_rn_replacement_balanced_tail ge_first_ip_replacement_balanced_tail ge_first_in_replacement_balanced_tail ge_second_rp_replacement_balanced_tail ge_second_rn_replacement_balanced_tail ge_second_ip_replacement_balanced_tail ge_second_in_replacement_balanced_tail. ((exists ge_representation_real_code_replacement_balanced_tailfirst ge_representation_imaginary_code_replacement_balanced_tailfirst. (((x4) = ((ge_representation_real_code_replacement_balanced_tailfirst) + (ge_representation_imaginary_code_replacement_balanced_tailfirst)) * S ((ge_representation_real_code_replacement_balanced_tailfirst) + (ge_representation_imaginary_code_replacement_balanced_tailfirst)) + ((ge_representation_imaginary_code_replacement_balanced_tailfirst) + (ge_representation_imaginary_code_replacement_balanced_tailfirst))) /\ ((exists ge_balance_positive_replacement_balanced_tailfirstreal ge_balance_negative_replacement_balanced_tailfirstreal. (((((ge_representation_real_code_replacement_balanced_tailfirst) = 2 * (ge_balance_positive_replacement_balanced_tailfirstreal) /\ (ge_balance_negative_replacement_balanced_tailfirstreal) = 0) \/ exists ge_signed_half_replacement_balanced_tailfirstrealdecode. (((ge_representation_real_code_replacement_balanced_tailfirst) = 2 * ge_signed_half_replacement_balanced_tailfirstrealdecode + 1 /\ (ge_balance_positive_replacement_balanced_tailfirstreal) = 0) /\ (ge_balance_negative_replacement_balanced_tailfirstreal) = S ge_signed_half_replacement_balanced_tailfirstrealdecode))) /\ ((ge_first_rp_replacement_balanced_tail) + ge_balance_negative_replacement_balanced_tailfirstreal = (ge_first_rn_replacement_balanced_tail) + ge_balance_positive_replacement_balanced_tailfirstreal))) /\ (exists ge_balance_positive_replacement_balanced_tailfirstimaginary ge_balance_negative_replacement_balanced_tailfirstimaginary. (((((ge_representation_imaginary_code_replacement_balanced_tailfirst) = 2 * (ge_balance_positive_replacement_balanced_tailfirstimaginary) /\ (ge_balance_negative_replacement_balanced_tailfirstimaginary) = 0) \/ exists ge_signed_half_replacement_balanced_tailfirstimaginarydecode. (((ge_representation_imaginary_code_replacement_balanced_tailfirst) = 2 * ge_signed_half_replacement_balanced_tailfirstimaginarydecode + 1 /\ (ge_balance_positive_replacement_balanced_tailfirstimaginary) = 0) /\ (ge_balance_negative_replacement_balanced_tailfirstimaginary) = S ge_signed_half_replacement_balanced_tailfirstimaginarydecode))) /\ ((ge_first_ip_replacement_balanced_tail) + ge_balance_negative_replacement_balanced_tailfirstimaginary = (ge_first_in_replacement_balanced_tail) + ge_balance_positive_replacement_balanced_tailfirstimaginary)))))) /\ ((exists ge_representation_real_code_replacement_balanced_tailsecond ge_representation_imaginary_code_replacement_balanced_tailsecond. (((x) = ((ge_representation_real_code_replacement_balanced_tailsecond) + (ge_representation_imaginary_code_replacement_balanced_tailsecond)) * S ((ge_representation_real_code_replacement_balanced_tailsecond) + (ge_representation_imaginary_code_replacement_balanced_tailsecond)) + ((ge_representation_imaginary_code_replacement_balanced_tailsecond) + (ge_representation_imaginary_code_replacement_balanced_tailsecond))) /\ ((exists ge_balance_positive_replacement_balanced_tailsecondreal ge_balance_negative_replacement_balanced_tailsecondreal. (((((ge_representation_real_code_replacement_balanced_tailsecond) = 2 * (ge_balance_positive_replacement_balanced_tailsecondreal) /\ (ge_balance_negative_replacement_balanced_tailsecondreal) = 0) \/ exists ge_signed_half_replacement_balanced_tailsecondrealdecode. (((ge_representation_real_code_replacement_balanced_tailsecond) = 2 * ge_signed_half_replacement_balanced_tailsecondrealdecode + 1 /\ (ge_balance_positive_replacement_balanced_tailsecondreal) = 0) /\ (ge_balance_negative_replacement_balanced_tailsecondreal) = S ge_signed_half_replacement_balanced_tailsecondrealdecode))) /\ ((ge_second_rp_replacement_balanced_tail) + ge_balance_negative_replacement_balanced_tailsecondreal = (ge_second_rn_replacement_balanced_tail) + ge_balance_positive_replacement_balanced_tailsecondreal))) /\ (exists ge_balance_positive_replacement_balanced_tailsecondimaginary ge_balance_negative_replacement_balanced_tailsecondimaginary. (((((ge_representation_imaginary_code_replacement_balanced_tailsecond) = 2 * (ge_balance_positive_replacement_balanced_tailsecondimaginary) /\ (ge_balance_negative_replacement_balanced_tailsecondimaginary) = 0) \/ exists ge_signed_half_replacement_balanced_tailsecondimaginarydecode. (((ge_representation_imaginary_code_replacement_balanced_tailsecond) = 2 * ge_signed_half_replacement_balanced_tailsecondimaginarydecode + 1 /\ (ge_balance_positive_replacement_balanced_tailsecondimaginary) = 0) /\ (ge_balance_negative_replacement_balanced_tailsecondimaginary) = S ge_signed_half_replacement_balanced_tailsecondimaginarydecode))) /\ ((ge_second_ip_replacement_balanced_tail) + ge_balance_negative_replacement_balanced_tailsecondimaginary = (ge_second_in_replacement_balanced_tail) + ge_balance_positive_replacement_balanced_tailsecondimaginary)))))) /\ (exists ge_representation_real_code_replacement_balanced_tailoutput ge_representation_imaginary_code_replacement_balanced_tailoutput. (((T) = ((ge_representation_real_code_replacement_balanced_tailoutput) + (ge_representation_imaginary_code_replacement_balanced_tailoutput)) * S ((ge_representation_real_code_replacement_balanced_tailoutput) + (ge_representation_imaginary_code_replacement_balanced_tailoutput)) + ((ge_representation_imaginary_code_replacement_balanced_tailoutput) + (ge_representation_imaginary_code_replacement_balanced_tailoutput))) /\ ((exists ge_balance_positive_replacement_balanced_tailoutputreal ge_balance_negative_replacement_balanced_tailoutputreal. (((((ge_representation_real_code_replacement_balanced_tailoutput) = 2 * (ge_balance_positive_replacement_balanced_tailoutputreal) /\ (ge_balance_negative_replacement_balanced_tailoutputreal) = 0) \/ exists ge_signed_half_replacement_balanced_tailoutputrealdecode. (((ge_representation_real_code_replacement_balanced_tailoutput) = 2 * ge_signed_half_replacement_balanced_tailoutputrealdecode + 1 /\ (ge_balance_positive_replacement_balanced_tailoutputreal) = 0) /\ (ge_balance_negative_replacement_balanced_tailoutputreal) = S ge_signed_half_replacement_balanced_tailoutputrealdecode))) /\ ((((((((ge_first_rp_replacement_balanced_tail) * (ge_second_rp_replacement_balanced_tail))) + (((ge_first_rn_replacement_balanced_tail) * (ge_second_rn_replacement_balanced_tail))))) + (((((ge_first_ip_replacement_balanced_tail) * (ge_second_in_replacement_balanced_tail))) + (((ge_first_in_replacement_balanced_tail) * (ge_second_ip_replacement_balanced_tail))))))) + ge_balance_negative_replacement_balanced_tailoutputreal = (((((((ge_first_rp_replacement_balanced_tail) * (ge_second_rn_replacement_balanced_tail))) + (((ge_first_rn_replacement_balanced_tail) * (ge_second_rp_replacement_balanced_tail))))) + (((((ge_first_ip_replacement_balanced_tail) * (ge_second_ip_replacement_balanced_tail))) + (((ge_first_in_replacement_balanced_tail) * (ge_second_in_replacement_balanced_tail))))))) + ge_balance_positive_replacement_balanced_tailoutputreal))) /\ (exists ge_balance_positive_replacement_balanced_tailoutputimaginary ge_balance_negative_replacement_balanced_tailoutputimaginary. (((((ge_representation_imaginary_code_replacement_balanced_tailoutput) = 2 * (ge_balance_positive_replacement_balanced_tailoutputimaginary) /\ (ge_balance_negative_replacement_balanced_tailoutputimaginary) = 0) \/ exists ge_signed_half_replacement_balanced_tailoutputimaginarydecode. (((ge_representation_imaginary_code_replacement_balanced_tailoutput) = 2 * ge_signed_half_replacement_balanced_tailoutputimaginarydecode + 1 /\ (ge_balance_positive_replacement_balanced_tailoutputimaginary) = 0) /\ (ge_balance_negative_replacement_balanced_tailoutputimaginary) = S ge_signed_half_replacement_balanced_tailoutputimaginarydecode))) /\ ((((((((ge_first_rp_replacement_balanced_tail) * (ge_second_ip_replacement_balanced_tail))) + (((ge_first_rn_replacement_balanced_tail) * (ge_second_in_replacement_balanced_tail))))) + (((((ge_first_ip_replacement_balanced_tail) * (ge_second_rp_replacement_balanced_tail))) + (((ge_first_in_replacement_balanced_tail) * (ge_second_rn_replacement_balanced_tail))))))) + ge_balance_negative_replacement_balanced_tailoutputimaginary = (((((((ge_first_rp_replacement_balanced_tail) * (ge_second_in_replacement_balanced_tail))) + (((ge_first_rn_replacement_balanced_tail) * (ge_second_ip_replacement_balanced_tail))))) + (((((ge_first_ip_replacement_balanced_tail) * (ge_second_rn_replacement_balanced_tail))) + (((ge_first_in_replacement_balanced_tail) * (ge_second_rp_replacement_balanced_tail))))))) + ge_balance_positive_replacement_balanced_tailoutputimaginary)))))))) - 0190
specialize gaussian_multiply_swap_tail (x3) - 0191
specialize gaussian_multiply_swap_tail (x) - 0192
specialize gaussian_multiply_swap_tail (p) - 0193
specialize gaussian_multiply_swap_tail (Q) - 0194
specialize gaussian_multiply_swap_tail (x4) - 0195
specialize gaussian_multiply_swap_tail (T) - 0196
apply gaussian_multiply_swap_tail - 0197
exact hnew_witness_witness_right_right - 0198
exact hmultiply - 0199
exact hR_witness - 0200
have hbalance : exists ge_first_rp_replacement_recursive_balance ge_first_rn_replacement_recursive_balance ge_first_ip_replacement_recursive_balance ge_first_in_replacement_recursive_balance ge_second_rp_replacement_recursive_balance ge_second_rn_replacement_recursive_balance ge_second_ip_replacement_recursive_balance ge_second_in_replacement_recursive_balance. ((exists ge_representation_real_code_replacement_recursive_balancefirst ge_representation_imaginary_code_replacement_recursive_balancefirst. (((x1) = ((ge_representation_real_code_replacement_recursive_balancefirst) + (ge_representation_imaginary_code_replacement_recursive_balancefirst)) * S ((ge_representation_real_code_replacement_recursive_balancefirst) + (ge_representation_imaginary_code_replacement_recursive_balancefirst)) + ((ge_representation_imaginary_code_replacement_recursive_balancefirst) + (ge_representation_imaginary_code_replacement_recursive_balancefirst))) /\ ((exists ge_balance_positive_replacement_recursive_balancefirstreal ge_balance_negative_replacement_recursive_balancefirstreal. (((((ge_representation_real_code_replacement_recursive_balancefirst) = 2 * (ge_balance_positive_replacement_recursive_balancefirstreal) /\ (ge_balance_negative_replacement_recursive_balancefirstreal) = 0) \/ exists ge_signed_half_replacement_recursive_balancefirstrealdecode. (((ge_representation_real_code_replacement_recursive_balancefirst) = 2 * ge_signed_half_replacement_recursive_balancefirstrealdecode + 1 /\ (ge_balance_positive_replacement_recursive_balancefirstreal) = 0) /\ (ge_balance_negative_replacement_recursive_balancefirstreal) = S ge_signed_half_replacement_recursive_balancefirstrealdecode))) /\ ((ge_first_rp_replacement_recursive_balance) + ge_balance_negative_replacement_recursive_balancefirstreal = (ge_first_rn_replacement_recursive_balance) + ge_balance_positive_replacement_recursive_balancefirstreal))) /\ (exists ge_balance_positive_replacement_recursive_balancefirstimaginary ge_balance_negative_replacement_recursive_balancefirstimaginary. (((((ge_representation_imaginary_code_replacement_recursive_balancefirst) = 2 * (ge_balance_positive_replacement_recursive_balancefirstimaginary) /\ (ge_balance_negative_replacement_recursive_balancefirstimaginary) = 0) \/ exists ge_signed_half_replacement_recursive_balancefirstimaginarydecode. (((ge_representation_imaginary_code_replacement_recursive_balancefirst) = 2 * ge_signed_half_replacement_recursive_balancefirstimaginarydecode + 1 /\ (ge_balance_positive_replacement_recursive_balancefirstimaginary) = 0) /\ (ge_balance_negative_replacement_recursive_balancefirstimaginary) = S ge_signed_half_replacement_recursive_balancefirstimaginarydecode))) /\ ((ge_first_ip_replacement_recursive_balance) + ge_balance_negative_replacement_recursive_balancefirstimaginary = (ge_first_in_replacement_recursive_balance) + ge_balance_positive_replacement_recursive_balancefirstimaginary)))))) /\ ((exists ge_representation_real_code_replacement_recursive_balancesecond ge_representation_imaginary_code_replacement_recursive_balancesecond. (((q) = ((ge_representation_real_code_replacement_recursive_balancesecond) + (ge_representation_imaginary_code_replacement_recursive_balancesecond)) * S ((ge_representation_real_code_replacement_recursive_balancesecond) + (ge_representation_imaginary_code_replacement_recursive_balancesecond)) + ((ge_representation_imaginary_code_replacement_recursive_balancesecond) + (ge_representation_imaginary_code_replacement_recursive_balancesecond))) /\ ((exists ge_balance_positive_replacement_recursive_balancesecondreal ge_balance_negative_replacement_recursive_balancesecondreal. (((((ge_representation_real_code_replacement_recursive_balancesecond) = 2 * (ge_balance_positive_replacement_recursive_balancesecondreal) /\ (ge_balance_negative_replacement_recursive_balancesecondreal) = 0) \/ exists ge_signed_half_replacement_recursive_balancesecondrealdecode. (((ge_representation_real_code_replacement_recursive_balancesecond) = 2 * ge_signed_half_replacement_recursive_balancesecondrealdecode + 1 /\ (ge_balance_positive_replacement_recursive_balancesecondreal) = 0) /\ (ge_balance_negative_replacement_recursive_balancesecondreal) = S ge_signed_half_replacement_recursive_balancesecondrealdecode))) /\ ((ge_second_rp_replacement_recursive_balance) + ge_balance_negative_replacement_recursive_balancesecondreal = (ge_second_rn_replacement_recursive_balance) + ge_balance_positive_replacement_recursive_balancesecondreal))) /\ (exists ge_balance_positive_replacement_recursive_balancesecondimaginary ge_balance_negative_replacement_recursive_balancesecondimaginary. (((((ge_representation_imaginary_code_replacement_recursive_balancesecond) = 2 * (ge_balance_positive_replacement_recursive_balancesecondimaginary) /\ (ge_balance_negative_replacement_recursive_balancesecondimaginary) = 0) \/ exists ge_signed_half_replacement_recursive_balancesecondimaginarydecode. (((ge_representation_imaginary_code_replacement_recursive_balancesecond) = 2 * ge_signed_half_replacement_recursive_balancesecondimaginarydecode + 1 /\ (ge_balance_positive_replacement_recursive_balancesecondimaginary) = 0) /\ (ge_balance_negative_replacement_recursive_balancesecondimaginary) = S ge_signed_half_replacement_recursive_balancesecondimaginarydecode))) /\ ((ge_second_ip_replacement_recursive_balance) + ge_balance_negative_replacement_recursive_balancesecondimaginary = (ge_second_in_replacement_recursive_balance) + ge_balance_positive_replacement_recursive_balancesecondimaginary)))))) /\ (exists ge_representation_real_code_replacement_recursive_balanceoutput ge_representation_imaginary_code_replacement_recursive_balanceoutput. (((x4) = ((ge_representation_real_code_replacement_recursive_balanceoutput) + (ge_representation_imaginary_code_replacement_recursive_balanceoutput)) * S ((ge_representation_real_code_replacement_recursive_balanceoutput) + (ge_representation_imaginary_code_replacement_recursive_balanceoutput)) + ((ge_representation_imaginary_code_replacement_recursive_balanceoutput) + (ge_representation_imaginary_code_replacement_recursive_balanceoutput))) /\ ((exists ge_balance_positive_replacement_recursive_balanceoutputreal ge_balance_negative_replacement_recursive_balanceoutputreal. (((((ge_representation_real_code_replacement_recursive_balanceoutput) = 2 * (ge_balance_positive_replacement_recursive_balanceoutputreal) /\ (ge_balance_negative_replacement_recursive_balanceoutputreal) = 0) \/ exists ge_signed_half_replacement_recursive_balanceoutputrealdecode. (((ge_representation_real_code_replacement_recursive_balanceoutput) = 2 * ge_signed_half_replacement_recursive_balanceoutputrealdecode + 1 /\ (ge_balance_positive_replacement_recursive_balanceoutputreal) = 0) /\ (ge_balance_negative_replacement_recursive_balanceoutputreal) = S ge_signed_half_replacement_recursive_balanceoutputrealdecode))) /\ ((((((((ge_first_rp_replacement_recursive_balance) * (ge_second_rp_replacement_recursive_balance))) + (((ge_first_rn_replacement_recursive_balance) * (ge_second_rn_replacement_recursive_balance))))) + (((((ge_first_ip_replacement_recursive_balance) * (ge_second_in_replacement_recursive_balance))) + (((ge_first_in_replacement_recursive_balance) * (ge_second_ip_replacement_recursive_balance))))))) + ge_balance_negative_replacement_recursive_balanceoutputreal = (((((((ge_first_rp_replacement_recursive_balance) * (ge_second_rn_replacement_recursive_balance))) + (((ge_first_rn_replacement_recursive_balance) * (ge_second_rp_replacement_recursive_balance))))) + (((((ge_first_ip_replacement_recursive_balance) * (ge_second_ip_replacement_recursive_balance))) + (((ge_first_in_replacement_recursive_balance) * (ge_second_in_replacement_recursive_balance))))))) + ge_balance_positive_replacement_recursive_balanceoutputreal))) /\ (exists ge_balance_positive_replacement_recursive_balanceoutputimaginary ge_balance_negative_replacement_recursive_balanceoutputimaginary. (((((ge_representation_imaginary_code_replacement_recursive_balanceoutput) = 2 * (ge_balance_positive_replacement_recursive_balanceoutputimaginary) /\ (ge_balance_negative_replacement_recursive_balanceoutputimaginary) = 0) \/ exists ge_signed_half_replacement_recursive_balanceoutputimaginarydecode. (((ge_representation_imaginary_code_replacement_recursive_balanceoutput) = 2 * ge_signed_half_replacement_recursive_balanceoutputimaginarydecode + 1 /\ (ge_balance_positive_replacement_recursive_balanceoutputimaginary) = 0) /\ (ge_balance_negative_replacement_recursive_balanceoutputimaginary) = S ge_signed_half_replacement_recursive_balanceoutputimaginarydecode))) /\ ((((((((ge_first_rp_replacement_recursive_balance) * (ge_second_ip_replacement_recursive_balance))) + (((ge_first_rn_replacement_recursive_balance) * (ge_second_in_replacement_recursive_balance))))) + (((((ge_first_ip_replacement_recursive_balance) * (ge_second_rp_replacement_recursive_balance))) + (((ge_first_in_replacement_recursive_balance) * (ge_second_rn_replacement_recursive_balance))))))) + ge_balance_negative_replacement_recursive_balanceoutputimaginary = (((((((ge_first_rp_replacement_recursive_balance) * (ge_second_in_replacement_recursive_balance))) + (((ge_first_rn_replacement_recursive_balance) * (ge_second_ip_replacement_recursive_balance))))) + (((((ge_first_ip_replacement_recursive_balance) * (ge_second_rn_replacement_recursive_balance))) + (((ge_first_in_replacement_recursive_balance) * (ge_second_rp_replacement_recursive_balance))))))) + ge_balance_positive_replacement_recursive_balanceoutputimaginary)))))))) - 0201
specialize IH (b) - 0202
specialize IH (c) - 0203
specialize IH (d) - 0204
specialize IH (e) - 0205
specialize IH (i) - 0206
specialize IH (p) - 0207
specialize IH (q) - 0208
specialize IH (x1) - 0209
specialize IH (x3) - 0210
specialize IH (x4) - 0211
apply IH - 0212
exact hcases_right - 0213
exact hp - 0214
exact hq - 0215
intro j - 0216
intro a - 0217
intro hj - 0218
intro hne - 0219
intro hentry - 0220
specialize hpreserve (j) - 0221
specialize hpreserve (a) - 0222
apply hpreserve - 0223
specialize le_succ (S j) - 0224
specialize le_succ (k) - 0225
apply le_succ - 0226
exact hj - 0227
exact hne - 0228
exact hentry - 0229
exact hold_witness_witness_right_left - 0230
exact hnew_witness_witness_right_left - 0231
exact hR_witness - 0232
specialize gaussian_multiply_swap_tail (x1) - 0233
specialize gaussian_multiply_swap_tail (q) - 0234
specialize gaussian_multiply_swap_tail (x) - 0235
specialize gaussian_multiply_swap_tail (x4) - 0236
specialize gaussian_multiply_swap_tail (P) - 0237
specialize gaussian_multiply_swap_tail (T) - 0238
apply gaussian_multiply_swap_tail - 0239
exact hbalance - 0240
exact hmiddle - 0241
exact hold_witness_witness_right_right