GF00A6

gaussian_product_decompose_at_last

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

Expose the actual prefix product before a specifically decoded last Gaussian factor; beta functionality fixes the chosen factor exactly.

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

Exact expanded first-order arithmetic statement

forall b c l P p. (exists gr_product_trace_last_fixed_product gr_product_scale_last_fixed_product. ((((exists ff_h_gprod_last_fixed_productstart. ff_h_gprod_last_fixed_productstart + S (6) = S ((S (0)) * gr_product_scale_last_fixed_product)) /\ exists ff_q_gprod_last_fixed_productstart. gr_product_trace_last_fixed_product = ff_q_gprod_last_fixed_productstart * S ((S (0)) * gr_product_scale_last_fixed_product) + (6))) /\ ((((exists ff_h_gprod_last_fixed_productend. ff_h_gprod_last_fixed_productend + S (P) = S ((S (S l)) * gr_product_scale_last_fixed_product)) /\ exists ff_q_gprod_last_fixed_productend. gr_product_trace_last_fixed_product = ff_q_gprod_last_fixed_productend * S ((S (S l)) * gr_product_scale_last_fixed_product) + (P))) /\ (forall gr_product_index_last_fixed_productsteps. (exists ge_gap_last_fixed_productstepsindex_bound. ge_gap_last_fixed_productstepsindex_bound + S (gr_product_index_last_fixed_productsteps) = (S l)) -> exists gr_product_factor_last_fixed_productsteps gr_product_before_last_fixed_productsteps gr_product_after_last_fixed_productsteps. ((((exists ff_h_gprod_last_fixed_productstepsfactor. ff_h_gprod_last_fixed_productstepsfactor + S (gr_product_factor_last_fixed_productsteps) = S ((S (gr_product_index_last_fixed_productsteps)) * c)) /\ exists ff_q_gprod_last_fixed_productstepsfactor. b = ff_q_gprod_last_fixed_productstepsfactor * S ((S (gr_product_index_last_fixed_productsteps)) * c) + (gr_product_factor_last_fixed_productsteps))) /\ ((((exists ff_h_gprod_last_fixed_productstepsbefore. ff_h_gprod_last_fixed_productstepsbefore + S (gr_product_before_last_fixed_productsteps) = S ((S (gr_product_index_last_fixed_productsteps)) * gr_product_scale_last_fixed_product)) /\ exists ff_q_gprod_last_fixed_productstepsbefore. gr_product_trace_last_fixed_product = ff_q_gprod_last_fixed_productstepsbefore * S ((S (gr_product_index_last_fixed_productsteps)) * gr_product_scale_last_fixed_product) + (gr_product_before_last_fixed_productsteps))) /\ ((((exists ff_h_gprod_last_fixed_productstepsafter. ff_h_gprod_last_fixed_productstepsafter + S (gr_product_after_last_fixed_productsteps) = S ((S (S (gr_product_index_last_fixed_productsteps))) * gr_product_scale_last_fixed_product)) /\ exists ff_q_gprod_last_fixed_productstepsafter. gr_product_trace_last_fixed_product = ff_q_gprod_last_fixed_productstepsafter * S ((S (S (gr_product_index_last_fixed_productsteps))) * gr_product_scale_last_fixed_product) + (gr_product_after_last_fixed_productsteps))) /\ (exists ge_first_rp_last_fixed_productstepsmultiply ge_first_rn_last_fixed_productstepsmultiply ge_first_ip_last_fixed_productstepsmultiply ge_first_in_last_fixed_productstepsmultiply ge_second_rp_last_fixed_productstepsmultiply ge_second_rn_last_fixed_productstepsmultiply ge_second_ip_last_fixed_productstepsmultiply ge_second_in_last_fixed_productstepsmultiply. ((exists ge_representation_real_code_last_fixed_productstepsmultiplyfirst ge_representation_imaginary_code_last_fixed_productstepsmultiplyfirst. (((gr_product_before_last_fixed_productsteps) = ((ge_representation_real_code_last_fixed_productstepsmultiplyfirst) + (ge_representation_imaginary_code_last_fixed_productstepsmultiplyfirst)) * S ((ge_representation_real_code_last_fixed_productstepsmultiplyfirst) + (ge_representation_imaginary_code_last_fixed_productstepsmultiplyfirst)) + ((ge_representation_imaginary_code_last_fixed_productstepsmultiplyfirst) + (ge_representation_imaginary_code_last_fixed_productstepsmultiplyfirst))) /\ ((exists ge_balance_positive_last_fixed_productstepsmultiplyfirstreal ge_balance_negative_last_fixed_productstepsmultiplyfirstreal. (((((ge_representation_real_code_last_fixed_productstepsmultiplyfirst) = 2 * (ge_balance_positive_last_fixed_productstepsmultiplyfirstreal) /\ (ge_balance_negative_last_fixed_productstepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_last_fixed_productstepsmultiplyfirstrealdecode. (((ge_representation_real_code_last_fixed_productstepsmultiplyfirst) = 2 * ge_signed_half_last_fixed_productstepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_last_fixed_productstepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_last_fixed_productstepsmultiplyfirstreal) = S ge_signed_half_last_fixed_productstepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_last_fixed_productstepsmultiply) + ge_balance_negative_last_fixed_productstepsmultiplyfirstreal = (ge_first_rn_last_fixed_productstepsmultiply) + ge_balance_positive_last_fixed_productstepsmultiplyfirstreal))) /\ (exists ge_balance_positive_last_fixed_productstepsmultiplyfirstimaginary ge_balance_negative_last_fixed_productstepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_last_fixed_productstepsmultiplyfirst) = 2 * (ge_balance_positive_last_fixed_productstepsmultiplyfirstimaginary) /\ (ge_balance_negative_last_fixed_productstepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_last_fixed_productstepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_last_fixed_productstepsmultiplyfirst) = 2 * ge_signed_half_last_fixed_productstepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_productstepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_last_fixed_productstepsmultiplyfirstimaginary) = S ge_signed_half_last_fixed_productstepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_last_fixed_productstepsmultiply) + ge_balance_negative_last_fixed_productstepsmultiplyfirstimaginary = (ge_first_in_last_fixed_productstepsmultiply) + ge_balance_positive_last_fixed_productstepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_last_fixed_productstepsmultiplysecond ge_representation_imaginary_code_last_fixed_productstepsmultiplysecond. (((gr_product_factor_last_fixed_productsteps) = ((ge_representation_real_code_last_fixed_productstepsmultiplysecond) + (ge_representation_imaginary_code_last_fixed_productstepsmultiplysecond)) * S ((ge_representation_real_code_last_fixed_productstepsmultiplysecond) + (ge_representation_imaginary_code_last_fixed_productstepsmultiplysecond)) + ((ge_representation_imaginary_code_last_fixed_productstepsmultiplysecond) + (ge_representation_imaginary_code_last_fixed_productstepsmultiplysecond))) /\ ((exists ge_balance_positive_last_fixed_productstepsmultiplysecondreal ge_balance_negative_last_fixed_productstepsmultiplysecondreal. (((((ge_representation_real_code_last_fixed_productstepsmultiplysecond) = 2 * (ge_balance_positive_last_fixed_productstepsmultiplysecondreal) /\ (ge_balance_negative_last_fixed_productstepsmultiplysecondreal) = 0) \/ exists ge_signed_half_last_fixed_productstepsmultiplysecondrealdecode. (((ge_representation_real_code_last_fixed_productstepsmultiplysecond) = 2 * ge_signed_half_last_fixed_productstepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_last_fixed_productstepsmultiplysecondreal) = 0) /\ (ge_balance_negative_last_fixed_productstepsmultiplysecondreal) = S ge_signed_half_last_fixed_productstepsmultiplysecondrealdecode))) /\ ((ge_second_rp_last_fixed_productstepsmultiply) + ge_balance_negative_last_fixed_productstepsmultiplysecondreal = (ge_second_rn_last_fixed_productstepsmultiply) + ge_balance_positive_last_fixed_productstepsmultiplysecondreal))) /\ (exists ge_balance_positive_last_fixed_productstepsmultiplysecondimaginary ge_balance_negative_last_fixed_productstepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_last_fixed_productstepsmultiplysecond) = 2 * (ge_balance_positive_last_fixed_productstepsmultiplysecondimaginary) /\ (ge_balance_negative_last_fixed_productstepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_last_fixed_productstepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_last_fixed_productstepsmultiplysecond) = 2 * ge_signed_half_last_fixed_productstepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_productstepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_last_fixed_productstepsmultiplysecondimaginary) = S ge_signed_half_last_fixed_productstepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_last_fixed_productstepsmultiply) + ge_balance_negative_last_fixed_productstepsmultiplysecondimaginary = (ge_second_in_last_fixed_productstepsmultiply) + ge_balance_positive_last_fixed_productstepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_last_fixed_productstepsmultiplyoutput ge_representation_imaginary_code_last_fixed_productstepsmultiplyoutput. (((gr_product_after_last_fixed_productsteps) = ((ge_representation_real_code_last_fixed_productstepsmultiplyoutput) + (ge_representation_imaginary_code_last_fixed_productstepsmultiplyoutput)) * S ((ge_representation_real_code_last_fixed_productstepsmultiplyoutput) + (ge_representation_imaginary_code_last_fixed_productstepsmultiplyoutput)) + ((ge_representation_imaginary_code_last_fixed_productstepsmultiplyoutput) + (ge_representation_imaginary_code_last_fixed_productstepsmultiplyoutput))) /\ ((exists ge_balance_positive_last_fixed_productstepsmultiplyoutputreal ge_balance_negative_last_fixed_productstepsmultiplyoutputreal. (((((ge_representation_real_code_last_fixed_productstepsmultiplyoutput) = 2 * (ge_balance_positive_last_fixed_productstepsmultiplyoutputreal) /\ (ge_balance_negative_last_fixed_productstepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_last_fixed_productstepsmultiplyoutputrealdecode. (((ge_representation_real_code_last_fixed_productstepsmultiplyoutput) = 2 * ge_signed_half_last_fixed_productstepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_last_fixed_productstepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_last_fixed_productstepsmultiplyoutputreal) = S ge_signed_half_last_fixed_productstepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_last_fixed_productstepsmultiply) * (ge_second_rp_last_fixed_productstepsmultiply))) + (((ge_first_rn_last_fixed_productstepsmultiply) * (ge_second_rn_last_fixed_productstepsmultiply))))) + (((((ge_first_ip_last_fixed_productstepsmultiply) * (ge_second_in_last_fixed_productstepsmultiply))) + (((ge_first_in_last_fixed_productstepsmultiply) * (ge_second_ip_last_fixed_productstepsmultiply))))))) + ge_balance_negative_last_fixed_productstepsmultiplyoutputreal = (((((((ge_first_rp_last_fixed_productstepsmultiply) * (ge_second_rn_last_fixed_productstepsmultiply))) + (((ge_first_rn_last_fixed_productstepsmultiply) * (ge_second_rp_last_fixed_productstepsmultiply))))) + (((((ge_first_ip_last_fixed_productstepsmultiply) * (ge_second_ip_last_fixed_productstepsmultiply))) + (((ge_first_in_last_fixed_productstepsmultiply) * (ge_second_in_last_fixed_productstepsmultiply))))))) + ge_balance_positive_last_fixed_productstepsmultiplyoutputreal))) /\ (exists ge_balance_positive_last_fixed_productstepsmultiplyoutputimaginary ge_balance_negative_last_fixed_productstepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_last_fixed_productstepsmultiplyoutput) = 2 * (ge_balance_positive_last_fixed_productstepsmultiplyoutputimaginary) /\ (ge_balance_negative_last_fixed_productstepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_last_fixed_productstepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_last_fixed_productstepsmultiplyoutput) = 2 * ge_signed_half_last_fixed_productstepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_productstepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_last_fixed_productstepsmultiplyoutputimaginary) = S ge_signed_half_last_fixed_productstepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_last_fixed_productstepsmultiply) * (ge_second_ip_last_fixed_productstepsmultiply))) + (((ge_first_rn_last_fixed_productstepsmultiply) * (ge_second_in_last_fixed_productstepsmultiply))))) + (((((ge_first_ip_last_fixed_productstepsmultiply) * (ge_second_rp_last_fixed_productstepsmultiply))) + (((ge_first_in_last_fixed_productstepsmultiply) * (ge_second_rn_last_fixed_productstepsmultiply))))))) + ge_balance_negative_last_fixed_productstepsmultiplyoutputimaginary = (((((((ge_first_rp_last_fixed_productstepsmultiply) * (ge_second_in_last_fixed_productstepsmultiply))) + (((ge_first_rn_last_fixed_productstepsmultiply) * (ge_second_ip_last_fixed_productstepsmultiply))))) + (((((ge_first_ip_last_fixed_productstepsmultiply) * (ge_second_rn_last_fixed_productstepsmultiply))) + (((ge_first_in_last_fixed_productstepsmultiply) * (ge_second_rp_last_fixed_productstepsmultiply))))))) + ge_balance_positive_last_fixed_productstepsmultiplyoutputimaginary)))))))))))))))) -> (((exists ff_h_gprod_last_fixed_factor. ff_h_gprod_last_fixed_factor + S (p) = S ((S (l)) * c)) /\ exists ff_q_gprod_last_fixed_factor. b = ff_q_gprod_last_fixed_factor * S ((S (l)) * c) + (p))) -> exists R. ((exists gr_product_trace_last_fixed_prefix gr_product_scale_last_fixed_prefix. ((((exists ff_h_gprod_last_fixed_prefixstart. ff_h_gprod_last_fixed_prefixstart + S (6) = S ((S (0)) * gr_product_scale_last_fixed_prefix)) /\ exists ff_q_gprod_last_fixed_prefixstart. gr_product_trace_last_fixed_prefix = ff_q_gprod_last_fixed_prefixstart * S ((S (0)) * gr_product_scale_last_fixed_prefix) + (6))) /\ ((((exists ff_h_gprod_last_fixed_prefixend. ff_h_gprod_last_fixed_prefixend + S (R) = S ((S (l)) * gr_product_scale_last_fixed_prefix)) /\ exists ff_q_gprod_last_fixed_prefixend. gr_product_trace_last_fixed_prefix = ff_q_gprod_last_fixed_prefixend * S ((S (l)) * gr_product_scale_last_fixed_prefix) + (R))) /\ (forall gr_product_index_last_fixed_prefixsteps. (exists ge_gap_last_fixed_prefixstepsindex_bound. ge_gap_last_fixed_prefixstepsindex_bound + S (gr_product_index_last_fixed_prefixsteps) = (l)) -> exists gr_product_factor_last_fixed_prefixsteps gr_product_before_last_fixed_prefixsteps gr_product_after_last_fixed_prefixsteps. ((((exists ff_h_gprod_last_fixed_prefixstepsfactor. ff_h_gprod_last_fixed_prefixstepsfactor + S (gr_product_factor_last_fixed_prefixsteps) = S ((S (gr_product_index_last_fixed_prefixsteps)) * c)) /\ exists ff_q_gprod_last_fixed_prefixstepsfactor. b = ff_q_gprod_last_fixed_prefixstepsfactor * S ((S (gr_product_index_last_fixed_prefixsteps)) * c) + (gr_product_factor_last_fixed_prefixsteps))) /\ ((((exists ff_h_gprod_last_fixed_prefixstepsbefore. ff_h_gprod_last_fixed_prefixstepsbefore + S (gr_product_before_last_fixed_prefixsteps) = S ((S (gr_product_index_last_fixed_prefixsteps)) * gr_product_scale_last_fixed_prefix)) /\ exists ff_q_gprod_last_fixed_prefixstepsbefore. gr_product_trace_last_fixed_prefix = ff_q_gprod_last_fixed_prefixstepsbefore * S ((S (gr_product_index_last_fixed_prefixsteps)) * gr_product_scale_last_fixed_prefix) + (gr_product_before_last_fixed_prefixsteps))) /\ ((((exists ff_h_gprod_last_fixed_prefixstepsafter. ff_h_gprod_last_fixed_prefixstepsafter + S (gr_product_after_last_fixed_prefixsteps) = S ((S (S (gr_product_index_last_fixed_prefixsteps))) * gr_product_scale_last_fixed_prefix)) /\ exists ff_q_gprod_last_fixed_prefixstepsafter. gr_product_trace_last_fixed_prefix = ff_q_gprod_last_fixed_prefixstepsafter * S ((S (S (gr_product_index_last_fixed_prefixsteps))) * gr_product_scale_last_fixed_prefix) + (gr_product_after_last_fixed_prefixsteps))) /\ (exists ge_first_rp_last_fixed_prefixstepsmultiply ge_first_rn_last_fixed_prefixstepsmultiply ge_first_ip_last_fixed_prefixstepsmultiply ge_first_in_last_fixed_prefixstepsmultiply ge_second_rp_last_fixed_prefixstepsmultiply ge_second_rn_last_fixed_prefixstepsmultiply ge_second_ip_last_fixed_prefixstepsmultiply ge_second_in_last_fixed_prefixstepsmultiply. ((exists ge_representation_real_code_last_fixed_prefixstepsmultiplyfirst ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyfirst. (((gr_product_before_last_fixed_prefixsteps) = ((ge_representation_real_code_last_fixed_prefixstepsmultiplyfirst) + (ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyfirst)) * S ((ge_representation_real_code_last_fixed_prefixstepsmultiplyfirst) + (ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyfirst)) + ((ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyfirst) + (ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyfirst))) /\ ((exists ge_balance_positive_last_fixed_prefixstepsmultiplyfirstreal ge_balance_negative_last_fixed_prefixstepsmultiplyfirstreal. (((((ge_representation_real_code_last_fixed_prefixstepsmultiplyfirst) = 2 * (ge_balance_positive_last_fixed_prefixstepsmultiplyfirstreal) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_last_fixed_prefixstepsmultiplyfirstrealdecode. (((ge_representation_real_code_last_fixed_prefixstepsmultiplyfirst) = 2 * ge_signed_half_last_fixed_prefixstepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_last_fixed_prefixstepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplyfirstreal) = S ge_signed_half_last_fixed_prefixstepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_last_fixed_prefixstepsmultiply) + ge_balance_negative_last_fixed_prefixstepsmultiplyfirstreal = (ge_first_rn_last_fixed_prefixstepsmultiply) + ge_balance_positive_last_fixed_prefixstepsmultiplyfirstreal))) /\ (exists ge_balance_positive_last_fixed_prefixstepsmultiplyfirstimaginary ge_balance_negative_last_fixed_prefixstepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyfirst) = 2 * (ge_balance_positive_last_fixed_prefixstepsmultiplyfirstimaginary) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_last_fixed_prefixstepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyfirst) = 2 * ge_signed_half_last_fixed_prefixstepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_prefixstepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplyfirstimaginary) = S ge_signed_half_last_fixed_prefixstepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_last_fixed_prefixstepsmultiply) + ge_balance_negative_last_fixed_prefixstepsmultiplyfirstimaginary = (ge_first_in_last_fixed_prefixstepsmultiply) + ge_balance_positive_last_fixed_prefixstepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_last_fixed_prefixstepsmultiplysecond ge_representation_imaginary_code_last_fixed_prefixstepsmultiplysecond. (((gr_product_factor_last_fixed_prefixsteps) = ((ge_representation_real_code_last_fixed_prefixstepsmultiplysecond) + (ge_representation_imaginary_code_last_fixed_prefixstepsmultiplysecond)) * S ((ge_representation_real_code_last_fixed_prefixstepsmultiplysecond) + (ge_representation_imaginary_code_last_fixed_prefixstepsmultiplysecond)) + ((ge_representation_imaginary_code_last_fixed_prefixstepsmultiplysecond) + (ge_representation_imaginary_code_last_fixed_prefixstepsmultiplysecond))) /\ ((exists ge_balance_positive_last_fixed_prefixstepsmultiplysecondreal ge_balance_negative_last_fixed_prefixstepsmultiplysecondreal. (((((ge_representation_real_code_last_fixed_prefixstepsmultiplysecond) = 2 * (ge_balance_positive_last_fixed_prefixstepsmultiplysecondreal) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplysecondreal) = 0) \/ exists ge_signed_half_last_fixed_prefixstepsmultiplysecondrealdecode. (((ge_representation_real_code_last_fixed_prefixstepsmultiplysecond) = 2 * ge_signed_half_last_fixed_prefixstepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_last_fixed_prefixstepsmultiplysecondreal) = 0) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplysecondreal) = S ge_signed_half_last_fixed_prefixstepsmultiplysecondrealdecode))) /\ ((ge_second_rp_last_fixed_prefixstepsmultiply) + ge_balance_negative_last_fixed_prefixstepsmultiplysecondreal = (ge_second_rn_last_fixed_prefixstepsmultiply) + ge_balance_positive_last_fixed_prefixstepsmultiplysecondreal))) /\ (exists ge_balance_positive_last_fixed_prefixstepsmultiplysecondimaginary ge_balance_negative_last_fixed_prefixstepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_last_fixed_prefixstepsmultiplysecond) = 2 * (ge_balance_positive_last_fixed_prefixstepsmultiplysecondimaginary) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_last_fixed_prefixstepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_last_fixed_prefixstepsmultiplysecond) = 2 * ge_signed_half_last_fixed_prefixstepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_prefixstepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplysecondimaginary) = S ge_signed_half_last_fixed_prefixstepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_last_fixed_prefixstepsmultiply) + ge_balance_negative_last_fixed_prefixstepsmultiplysecondimaginary = (ge_second_in_last_fixed_prefixstepsmultiply) + ge_balance_positive_last_fixed_prefixstepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_last_fixed_prefixstepsmultiplyoutput ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyoutput. (((gr_product_after_last_fixed_prefixsteps) = ((ge_representation_real_code_last_fixed_prefixstepsmultiplyoutput) + (ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyoutput)) * S ((ge_representation_real_code_last_fixed_prefixstepsmultiplyoutput) + (ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyoutput)) + ((ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyoutput) + (ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyoutput))) /\ ((exists ge_balance_positive_last_fixed_prefixstepsmultiplyoutputreal ge_balance_negative_last_fixed_prefixstepsmultiplyoutputreal. (((((ge_representation_real_code_last_fixed_prefixstepsmultiplyoutput) = 2 * (ge_balance_positive_last_fixed_prefixstepsmultiplyoutputreal) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_last_fixed_prefixstepsmultiplyoutputrealdecode. (((ge_representation_real_code_last_fixed_prefixstepsmultiplyoutput) = 2 * ge_signed_half_last_fixed_prefixstepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_last_fixed_prefixstepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplyoutputreal) = S ge_signed_half_last_fixed_prefixstepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_last_fixed_prefixstepsmultiply) * (ge_second_rp_last_fixed_prefixstepsmultiply))) + (((ge_first_rn_last_fixed_prefixstepsmultiply) * (ge_second_rn_last_fixed_prefixstepsmultiply))))) + (((((ge_first_ip_last_fixed_prefixstepsmultiply) * (ge_second_in_last_fixed_prefixstepsmultiply))) + (((ge_first_in_last_fixed_prefixstepsmultiply) * (ge_second_ip_last_fixed_prefixstepsmultiply))))))) + ge_balance_negative_last_fixed_prefixstepsmultiplyoutputreal = (((((((ge_first_rp_last_fixed_prefixstepsmultiply) * (ge_second_rn_last_fixed_prefixstepsmultiply))) + (((ge_first_rn_last_fixed_prefixstepsmultiply) * (ge_second_rp_last_fixed_prefixstepsmultiply))))) + (((((ge_first_ip_last_fixed_prefixstepsmultiply) * (ge_second_ip_last_fixed_prefixstepsmultiply))) + (((ge_first_in_last_fixed_prefixstepsmultiply) * (ge_second_in_last_fixed_prefixstepsmultiply))))))) + ge_balance_positive_last_fixed_prefixstepsmultiplyoutputreal))) /\ (exists ge_balance_positive_last_fixed_prefixstepsmultiplyoutputimaginary ge_balance_negative_last_fixed_prefixstepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyoutput) = 2 * (ge_balance_positive_last_fixed_prefixstepsmultiplyoutputimaginary) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_last_fixed_prefixstepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_last_fixed_prefixstepsmultiplyoutput) = 2 * ge_signed_half_last_fixed_prefixstepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_prefixstepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_last_fixed_prefixstepsmultiplyoutputimaginary) = S ge_signed_half_last_fixed_prefixstepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_last_fixed_prefixstepsmultiply) * (ge_second_ip_last_fixed_prefixstepsmultiply))) + (((ge_first_rn_last_fixed_prefixstepsmultiply) * (ge_second_in_last_fixed_prefixstepsmultiply))))) + (((((ge_first_ip_last_fixed_prefixstepsmultiply) * (ge_second_rp_last_fixed_prefixstepsmultiply))) + (((ge_first_in_last_fixed_prefixstepsmultiply) * (ge_second_rn_last_fixed_prefixstepsmultiply))))))) + ge_balance_negative_last_fixed_prefixstepsmultiplyoutputimaginary = (((((((ge_first_rp_last_fixed_prefixstepsmultiply) * (ge_second_in_last_fixed_prefixstepsmultiply))) + (((ge_first_rn_last_fixed_prefixstepsmultiply) * (ge_second_ip_last_fixed_prefixstepsmultiply))))) + (((((ge_first_ip_last_fixed_prefixstepsmultiply) * (ge_second_rn_last_fixed_prefixstepsmultiply))) + (((ge_first_in_last_fixed_prefixstepsmultiply) * (ge_second_rp_last_fixed_prefixstepsmultiply))))))) + ge_balance_positive_last_fixed_prefixstepsmultiplyoutputimaginary)))))))))))))))) /\ (exists ge_first_rp_last_fixed_multiply ge_first_rn_last_fixed_multiply ge_first_ip_last_fixed_multiply ge_first_in_last_fixed_multiply ge_second_rp_last_fixed_multiply ge_second_rn_last_fixed_multiply ge_second_ip_last_fixed_multiply ge_second_in_last_fixed_multiply. ((exists ge_representation_real_code_last_fixed_multiplyfirst ge_representation_imaginary_code_last_fixed_multiplyfirst. (((R) = ((ge_representation_real_code_last_fixed_multiplyfirst) + (ge_representation_imaginary_code_last_fixed_multiplyfirst)) * S ((ge_representation_real_code_last_fixed_multiplyfirst) + (ge_representation_imaginary_code_last_fixed_multiplyfirst)) + ((ge_representation_imaginary_code_last_fixed_multiplyfirst) + (ge_representation_imaginary_code_last_fixed_multiplyfirst))) /\ ((exists ge_balance_positive_last_fixed_multiplyfirstreal ge_balance_negative_last_fixed_multiplyfirstreal. (((((ge_representation_real_code_last_fixed_multiplyfirst) = 2 * (ge_balance_positive_last_fixed_multiplyfirstreal) /\ (ge_balance_negative_last_fixed_multiplyfirstreal) = 0) \/ exists ge_signed_half_last_fixed_multiplyfirstrealdecode. (((ge_representation_real_code_last_fixed_multiplyfirst) = 2 * ge_signed_half_last_fixed_multiplyfirstrealdecode + 1 /\ (ge_balance_positive_last_fixed_multiplyfirstreal) = 0) /\ (ge_balance_negative_last_fixed_multiplyfirstreal) = S ge_signed_half_last_fixed_multiplyfirstrealdecode))) /\ ((ge_first_rp_last_fixed_multiply) + ge_balance_negative_last_fixed_multiplyfirstreal = (ge_first_rn_last_fixed_multiply) + ge_balance_positive_last_fixed_multiplyfirstreal))) /\ (exists ge_balance_positive_last_fixed_multiplyfirstimaginary ge_balance_negative_last_fixed_multiplyfirstimaginary. (((((ge_representation_imaginary_code_last_fixed_multiplyfirst) = 2 * (ge_balance_positive_last_fixed_multiplyfirstimaginary) /\ (ge_balance_negative_last_fixed_multiplyfirstimaginary) = 0) \/ exists ge_signed_half_last_fixed_multiplyfirstimaginarydecode. (((ge_representation_imaginary_code_last_fixed_multiplyfirst) = 2 * ge_signed_half_last_fixed_multiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_multiplyfirstimaginary) = 0) /\ (ge_balance_negative_last_fixed_multiplyfirstimaginary) = S ge_signed_half_last_fixed_multiplyfirstimaginarydecode))) /\ ((ge_first_ip_last_fixed_multiply) + ge_balance_negative_last_fixed_multiplyfirstimaginary = (ge_first_in_last_fixed_multiply) + ge_balance_positive_last_fixed_multiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_last_fixed_multiplysecond ge_representation_imaginary_code_last_fixed_multiplysecond. (((p) = ((ge_representation_real_code_last_fixed_multiplysecond) + (ge_representation_imaginary_code_last_fixed_multiplysecond)) * S ((ge_representation_real_code_last_fixed_multiplysecond) + (ge_representation_imaginary_code_last_fixed_multiplysecond)) + ((ge_representation_imaginary_code_last_fixed_multiplysecond) + (ge_representation_imaginary_code_last_fixed_multiplysecond))) /\ ((exists ge_balance_positive_last_fixed_multiplysecondreal ge_balance_negative_last_fixed_multiplysecondreal. (((((ge_representation_real_code_last_fixed_multiplysecond) = 2 * (ge_balance_positive_last_fixed_multiplysecondreal) /\ (ge_balance_negative_last_fixed_multiplysecondreal) = 0) \/ exists ge_signed_half_last_fixed_multiplysecondrealdecode. (((ge_representation_real_code_last_fixed_multiplysecond) = 2 * ge_signed_half_last_fixed_multiplysecondrealdecode + 1 /\ (ge_balance_positive_last_fixed_multiplysecondreal) = 0) /\ (ge_balance_negative_last_fixed_multiplysecondreal) = S ge_signed_half_last_fixed_multiplysecondrealdecode))) /\ ((ge_second_rp_last_fixed_multiply) + ge_balance_negative_last_fixed_multiplysecondreal = (ge_second_rn_last_fixed_multiply) + ge_balance_positive_last_fixed_multiplysecondreal))) /\ (exists ge_balance_positive_last_fixed_multiplysecondimaginary ge_balance_negative_last_fixed_multiplysecondimaginary. (((((ge_representation_imaginary_code_last_fixed_multiplysecond) = 2 * (ge_balance_positive_last_fixed_multiplysecondimaginary) /\ (ge_balance_negative_last_fixed_multiplysecondimaginary) = 0) \/ exists ge_signed_half_last_fixed_multiplysecondimaginarydecode. (((ge_representation_imaginary_code_last_fixed_multiplysecond) = 2 * ge_signed_half_last_fixed_multiplysecondimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_multiplysecondimaginary) = 0) /\ (ge_balance_negative_last_fixed_multiplysecondimaginary) = S ge_signed_half_last_fixed_multiplysecondimaginarydecode))) /\ ((ge_second_ip_last_fixed_multiply) + ge_balance_negative_last_fixed_multiplysecondimaginary = (ge_second_in_last_fixed_multiply) + ge_balance_positive_last_fixed_multiplysecondimaginary)))))) /\ (exists ge_representation_real_code_last_fixed_multiplyoutput ge_representation_imaginary_code_last_fixed_multiplyoutput. (((P) = ((ge_representation_real_code_last_fixed_multiplyoutput) + (ge_representation_imaginary_code_last_fixed_multiplyoutput)) * S ((ge_representation_real_code_last_fixed_multiplyoutput) + (ge_representation_imaginary_code_last_fixed_multiplyoutput)) + ((ge_representation_imaginary_code_last_fixed_multiplyoutput) + (ge_representation_imaginary_code_last_fixed_multiplyoutput))) /\ ((exists ge_balance_positive_last_fixed_multiplyoutputreal ge_balance_negative_last_fixed_multiplyoutputreal. (((((ge_representation_real_code_last_fixed_multiplyoutput) = 2 * (ge_balance_positive_last_fixed_multiplyoutputreal) /\ (ge_balance_negative_last_fixed_multiplyoutputreal) = 0) \/ exists ge_signed_half_last_fixed_multiplyoutputrealdecode. (((ge_representation_real_code_last_fixed_multiplyoutput) = 2 * ge_signed_half_last_fixed_multiplyoutputrealdecode + 1 /\ (ge_balance_positive_last_fixed_multiplyoutputreal) = 0) /\ (ge_balance_negative_last_fixed_multiplyoutputreal) = S ge_signed_half_last_fixed_multiplyoutputrealdecode))) /\ ((((((((ge_first_rp_last_fixed_multiply) * (ge_second_rp_last_fixed_multiply))) + (((ge_first_rn_last_fixed_multiply) * (ge_second_rn_last_fixed_multiply))))) + (((((ge_first_ip_last_fixed_multiply) * (ge_second_in_last_fixed_multiply))) + (((ge_first_in_last_fixed_multiply) * (ge_second_ip_last_fixed_multiply))))))) + ge_balance_negative_last_fixed_multiplyoutputreal = (((((((ge_first_rp_last_fixed_multiply) * (ge_second_rn_last_fixed_multiply))) + (((ge_first_rn_last_fixed_multiply) * (ge_second_rp_last_fixed_multiply))))) + (((((ge_first_ip_last_fixed_multiply) * (ge_second_ip_last_fixed_multiply))) + (((ge_first_in_last_fixed_multiply) * (ge_second_in_last_fixed_multiply))))))) + ge_balance_positive_last_fixed_multiplyoutputreal))) /\ (exists ge_balance_positive_last_fixed_multiplyoutputimaginary ge_balance_negative_last_fixed_multiplyoutputimaginary. (((((ge_representation_imaginary_code_last_fixed_multiplyoutput) = 2 * (ge_balance_positive_last_fixed_multiplyoutputimaginary) /\ (ge_balance_negative_last_fixed_multiplyoutputimaginary) = 0) \/ exists ge_signed_half_last_fixed_multiplyoutputimaginarydecode. (((ge_representation_imaginary_code_last_fixed_multiplyoutput) = 2 * ge_signed_half_last_fixed_multiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_multiplyoutputimaginary) = 0) /\ (ge_balance_negative_last_fixed_multiplyoutputimaginary) = S ge_signed_half_last_fixed_multiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_last_fixed_multiply) * (ge_second_ip_last_fixed_multiply))) + (((ge_first_rn_last_fixed_multiply) * (ge_second_in_last_fixed_multiply))))) + (((((ge_first_ip_last_fixed_multiply) * (ge_second_rp_last_fixed_multiply))) + (((ge_first_in_last_fixed_multiply) * (ge_second_rn_last_fixed_multiply))))))) + ge_balance_negative_last_fixed_multiplyoutputimaginary = (((((((ge_first_rp_last_fixed_multiply) * (ge_second_in_last_fixed_multiply))) + (((ge_first_rn_last_fixed_multiply) * (ge_second_ip_last_fixed_multiply))))) + (((((ge_first_ip_last_fixed_multiply) * (ge_second_rn_last_fixed_multiply))) + (((ge_first_in_last_fixed_multiply) * (ge_second_rp_last_fixed_multiply))))))) + ge_balance_positive_last_fixed_multiplyoutputimaginary))))))))))

Constructive proof overview

Generated structural guide

Expose the actual prefix product before a specifically decoded last Gaussian factor; beta functionality fixes the chosen factor exactly.

The unchanged tactic script uses 2 declared prerequisites and contains 32 exact native proof lines.

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

Proof neighborhood

Direct dependencies

GF0089 gaussian_product_successor_decompose beta_at_unique Stable theorem; checked-use authorized

Direct 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

32 script commands · 9 reading checkpoints · 2 local claims

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

Named ingredients (1)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–7

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

  1. L1
    intro b
  2. L2
    intro c
  3. L3
    intro l
  4. L4
    intro P
  5. L5
    intro p
  6. L6
    intro hP
  7. L7
    intro hp
02Establish hsL8–14

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian product successor decompose.

  1. L8
    have hs : ∃ a. ∃ R. BetaAt(b,c,l,a) ∧ (GProduct(b,c,l,R) ∧ GMul(R,a,P))Definitions: GMulGProductBetaAt
  2. L9
    specialize gaussian_product_successor_decompose (b)
  3. L10
    specialize gaussian_product_successor_decompose (c)
  4. L11
    specialize gaussian_product_successor_decompose (l)
  5. L12
    specialize gaussian_product_successor_decompose (P)
  6. L13
    apply gaussian_product_successor_decompose
  7. L14
    exact hP
03Separate the logical casesL15–18

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

  1. L15
    cases hs
  2. L16
    cases hs_witness
  3. L17
    cases hs_witness_witness
  4. L18
    cases hs_witness_witness_right
04Establish heqL19–27

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

  1. L19
    have heq : x=p
  2. L20
    specialize beta_at_unique (b)
  3. L21
    specialize beta_at_unique (c)
  4. L22
    specialize beta_at_unique (l)
  5. L23
    specialize beta_at_unique (x)
  6. L24
    specialize beta_at_unique (p)
  7. L25
    apply beta_at_unique
  8. L26
    exact hs_witness_witness_left
  9. L27
    exact hp
05Construct an explicit witnessL28–28

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

  1. L28
    exists (x1)
06Separate the logical casesL29–29

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

  1. L29
    split
07Use earlier factsL30–30

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

  1. L30
    exact hs_witness_witness_right_left
08Calculate and transport equalitiesL31–31

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L31
    rewrite heq at hs_witness_witness_right_right
09Use earlier factsL32–32

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

  1. L32
    exact hs_witness_witness_right_right

Library-wide reading audit

Original exact command ledger · 32 lines
  1. 0001intro b
  2. 0002intro c
  3. 0003intro l
  4. 0004intro P
  5. 0005intro p
  6. 0006intro hP
  7. 0007intro hp
  8. 0008have hs : exists a R. ((((exists ff_h_gprod_last_fixed_actual_factor. ff_h_gprod_last_fixed_actual_factor + S (a) = S ((S (l)) * c)) /\ exists ff_q_gprod_last_fixed_actual_factor. b = ff_q_gprod_last_fixed_actual_factor * S ((S (l)) * c) + (a))) /\ ((exists gr_product_trace_last_fixed_actual_prefix gr_product_scale_last_fixed_actual_prefix. ((((exists ff_h_gprod_last_fixed_actual_prefixstart. ff_h_gprod_last_fixed_actual_prefixstart + S (6) = S ((S (0)) * gr_product_scale_last_fixed_actual_prefix)) /\ exists ff_q_gprod_last_fixed_actual_prefixstart. gr_product_trace_last_fixed_actual_prefix = ff_q_gprod_last_fixed_actual_prefixstart * S ((S (0)) * gr_product_scale_last_fixed_actual_prefix) + (6))) /\ ((((exists ff_h_gprod_last_fixed_actual_prefixend. ff_h_gprod_last_fixed_actual_prefixend + S (R) = S ((S (l)) * gr_product_scale_last_fixed_actual_prefix)) /\ exists ff_q_gprod_last_fixed_actual_prefixend. gr_product_trace_last_fixed_actual_prefix = ff_q_gprod_last_fixed_actual_prefixend * S ((S (l)) * gr_product_scale_last_fixed_actual_prefix) + (R))) /\ (forall gr_product_index_last_fixed_actual_prefixsteps. (exists ge_gap_last_fixed_actual_prefixstepsindex_bound. ge_gap_last_fixed_actual_prefixstepsindex_bound + S (gr_product_index_last_fixed_actual_prefixsteps) = (l)) -> exists gr_product_factor_last_fixed_actual_prefixsteps gr_product_before_last_fixed_actual_prefixsteps gr_product_after_last_fixed_actual_prefixsteps. ((((exists ff_h_gprod_last_fixed_actual_prefixstepsfactor. ff_h_gprod_last_fixed_actual_prefixstepsfactor + S (gr_product_factor_last_fixed_actual_prefixsteps) = S ((S (gr_product_index_last_fixed_actual_prefixsteps)) * c)) /\ exists ff_q_gprod_last_fixed_actual_prefixstepsfactor. b = ff_q_gprod_last_fixed_actual_prefixstepsfactor * S ((S (gr_product_index_last_fixed_actual_prefixsteps)) * c) + (gr_product_factor_last_fixed_actual_prefixsteps))) /\ ((((exists ff_h_gprod_last_fixed_actual_prefixstepsbefore. ff_h_gprod_last_fixed_actual_prefixstepsbefore + S (gr_product_before_last_fixed_actual_prefixsteps) = S ((S (gr_product_index_last_fixed_actual_prefixsteps)) * gr_product_scale_last_fixed_actual_prefix)) /\ exists ff_q_gprod_last_fixed_actual_prefixstepsbefore. gr_product_trace_last_fixed_actual_prefix = ff_q_gprod_last_fixed_actual_prefixstepsbefore * S ((S (gr_product_index_last_fixed_actual_prefixsteps)) * gr_product_scale_last_fixed_actual_prefix) + (gr_product_before_last_fixed_actual_prefixsteps))) /\ ((((exists ff_h_gprod_last_fixed_actual_prefixstepsafter. ff_h_gprod_last_fixed_actual_prefixstepsafter + S (gr_product_after_last_fixed_actual_prefixsteps) = S ((S (S (gr_product_index_last_fixed_actual_prefixsteps))) * gr_product_scale_last_fixed_actual_prefix)) /\ exists ff_q_gprod_last_fixed_actual_prefixstepsafter. gr_product_trace_last_fixed_actual_prefix = ff_q_gprod_last_fixed_actual_prefixstepsafter * S ((S (S (gr_product_index_last_fixed_actual_prefixsteps))) * gr_product_scale_last_fixed_actual_prefix) + (gr_product_after_last_fixed_actual_prefixsteps))) /\ (exists ge_first_rp_last_fixed_actual_prefixstepsmultiply ge_first_rn_last_fixed_actual_prefixstepsmultiply ge_first_ip_last_fixed_actual_prefixstepsmultiply ge_first_in_last_fixed_actual_prefixstepsmultiply ge_second_rp_last_fixed_actual_prefixstepsmultiply ge_second_rn_last_fixed_actual_prefixstepsmultiply ge_second_ip_last_fixed_actual_prefixstepsmultiply ge_second_in_last_fixed_actual_prefixstepsmultiply. ((exists ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyfirst ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyfirst. (((gr_product_before_last_fixed_actual_prefixsteps) = ((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyfirst) + (ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyfirst)) * S ((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyfirst) + (ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyfirst)) + ((ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyfirst) + (ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyfirst))) /\ ((exists ge_balance_positive_last_fixed_actual_prefixstepsmultiplyfirstreal ge_balance_negative_last_fixed_actual_prefixstepsmultiplyfirstreal. (((((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyfirst) = 2 * (ge_balance_positive_last_fixed_actual_prefixstepsmultiplyfirstreal) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplyfirstreal) = 0) \/ exists ge_signed_half_last_fixed_actual_prefixstepsmultiplyfirstrealdecode. (((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyfirst) = 2 * ge_signed_half_last_fixed_actual_prefixstepsmultiplyfirstrealdecode + 1 /\ (ge_balance_positive_last_fixed_actual_prefixstepsmultiplyfirstreal) = 0) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplyfirstreal) = S ge_signed_half_last_fixed_actual_prefixstepsmultiplyfirstrealdecode))) /\ ((ge_first_rp_last_fixed_actual_prefixstepsmultiply) + ge_balance_negative_last_fixed_actual_prefixstepsmultiplyfirstreal = (ge_first_rn_last_fixed_actual_prefixstepsmultiply) + ge_balance_positive_last_fixed_actual_prefixstepsmultiplyfirstreal))) /\ (exists ge_balance_positive_last_fixed_actual_prefixstepsmultiplyfirstimaginary ge_balance_negative_last_fixed_actual_prefixstepsmultiplyfirstimaginary. (((((ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyfirst) = 2 * (ge_balance_positive_last_fixed_actual_prefixstepsmultiplyfirstimaginary) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplyfirstimaginary) = 0) \/ exists ge_signed_half_last_fixed_actual_prefixstepsmultiplyfirstimaginarydecode. (((ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyfirst) = 2 * ge_signed_half_last_fixed_actual_prefixstepsmultiplyfirstimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_actual_prefixstepsmultiplyfirstimaginary) = 0) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplyfirstimaginary) = S ge_signed_half_last_fixed_actual_prefixstepsmultiplyfirstimaginarydecode))) /\ ((ge_first_ip_last_fixed_actual_prefixstepsmultiply) + ge_balance_negative_last_fixed_actual_prefixstepsmultiplyfirstimaginary = (ge_first_in_last_fixed_actual_prefixstepsmultiply) + ge_balance_positive_last_fixed_actual_prefixstepsmultiplyfirstimaginary)))))) /\ ((exists ge_representation_real_code_last_fixed_actual_prefixstepsmultiplysecond ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplysecond. (((gr_product_factor_last_fixed_actual_prefixsteps) = ((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplysecond) + (ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplysecond)) * S ((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplysecond) + (ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplysecond)) + ((ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplysecond) + (ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplysecond))) /\ ((exists ge_balance_positive_last_fixed_actual_prefixstepsmultiplysecondreal ge_balance_negative_last_fixed_actual_prefixstepsmultiplysecondreal. (((((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplysecond) = 2 * (ge_balance_positive_last_fixed_actual_prefixstepsmultiplysecondreal) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplysecondreal) = 0) \/ exists ge_signed_half_last_fixed_actual_prefixstepsmultiplysecondrealdecode. (((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplysecond) = 2 * ge_signed_half_last_fixed_actual_prefixstepsmultiplysecondrealdecode + 1 /\ (ge_balance_positive_last_fixed_actual_prefixstepsmultiplysecondreal) = 0) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplysecondreal) = S ge_signed_half_last_fixed_actual_prefixstepsmultiplysecondrealdecode))) /\ ((ge_second_rp_last_fixed_actual_prefixstepsmultiply) + ge_balance_negative_last_fixed_actual_prefixstepsmultiplysecondreal = (ge_second_rn_last_fixed_actual_prefixstepsmultiply) + ge_balance_positive_last_fixed_actual_prefixstepsmultiplysecondreal))) /\ (exists ge_balance_positive_last_fixed_actual_prefixstepsmultiplysecondimaginary ge_balance_negative_last_fixed_actual_prefixstepsmultiplysecondimaginary. (((((ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplysecond) = 2 * (ge_balance_positive_last_fixed_actual_prefixstepsmultiplysecondimaginary) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplysecondimaginary) = 0) \/ exists ge_signed_half_last_fixed_actual_prefixstepsmultiplysecondimaginarydecode. (((ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplysecond) = 2 * ge_signed_half_last_fixed_actual_prefixstepsmultiplysecondimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_actual_prefixstepsmultiplysecondimaginary) = 0) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplysecondimaginary) = S ge_signed_half_last_fixed_actual_prefixstepsmultiplysecondimaginarydecode))) /\ ((ge_second_ip_last_fixed_actual_prefixstepsmultiply) + ge_balance_negative_last_fixed_actual_prefixstepsmultiplysecondimaginary = (ge_second_in_last_fixed_actual_prefixstepsmultiply) + ge_balance_positive_last_fixed_actual_prefixstepsmultiplysecondimaginary)))))) /\ (exists ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyoutput ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyoutput. (((gr_product_after_last_fixed_actual_prefixsteps) = ((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyoutput) + (ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyoutput)) * S ((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyoutput) + (ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyoutput)) + ((ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyoutput) + (ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyoutput))) /\ ((exists ge_balance_positive_last_fixed_actual_prefixstepsmultiplyoutputreal ge_balance_negative_last_fixed_actual_prefixstepsmultiplyoutputreal. (((((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyoutput) = 2 * (ge_balance_positive_last_fixed_actual_prefixstepsmultiplyoutputreal) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplyoutputreal) = 0) \/ exists ge_signed_half_last_fixed_actual_prefixstepsmultiplyoutputrealdecode. (((ge_representation_real_code_last_fixed_actual_prefixstepsmultiplyoutput) = 2 * ge_signed_half_last_fixed_actual_prefixstepsmultiplyoutputrealdecode + 1 /\ (ge_balance_positive_last_fixed_actual_prefixstepsmultiplyoutputreal) = 0) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplyoutputreal) = S ge_signed_half_last_fixed_actual_prefixstepsmultiplyoutputrealdecode))) /\ ((((((((ge_first_rp_last_fixed_actual_prefixstepsmultiply) * (ge_second_rp_last_fixed_actual_prefixstepsmultiply))) + (((ge_first_rn_last_fixed_actual_prefixstepsmultiply) * (ge_second_rn_last_fixed_actual_prefixstepsmultiply))))) + (((((ge_first_ip_last_fixed_actual_prefixstepsmultiply) * (ge_second_in_last_fixed_actual_prefixstepsmultiply))) + (((ge_first_in_last_fixed_actual_prefixstepsmultiply) * (ge_second_ip_last_fixed_actual_prefixstepsmultiply))))))) + ge_balance_negative_last_fixed_actual_prefixstepsmultiplyoutputreal = (((((((ge_first_rp_last_fixed_actual_prefixstepsmultiply) * (ge_second_rn_last_fixed_actual_prefixstepsmultiply))) + (((ge_first_rn_last_fixed_actual_prefixstepsmultiply) * (ge_second_rp_last_fixed_actual_prefixstepsmultiply))))) + (((((ge_first_ip_last_fixed_actual_prefixstepsmultiply) * (ge_second_ip_last_fixed_actual_prefixstepsmultiply))) + (((ge_first_in_last_fixed_actual_prefixstepsmultiply) * (ge_second_in_last_fixed_actual_prefixstepsmultiply))))))) + ge_balance_positive_last_fixed_actual_prefixstepsmultiplyoutputreal))) /\ (exists ge_balance_positive_last_fixed_actual_prefixstepsmultiplyoutputimaginary ge_balance_negative_last_fixed_actual_prefixstepsmultiplyoutputimaginary. (((((ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyoutput) = 2 * (ge_balance_positive_last_fixed_actual_prefixstepsmultiplyoutputimaginary) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplyoutputimaginary) = 0) \/ exists ge_signed_half_last_fixed_actual_prefixstepsmultiplyoutputimaginarydecode. (((ge_representation_imaginary_code_last_fixed_actual_prefixstepsmultiplyoutput) = 2 * ge_signed_half_last_fixed_actual_prefixstepsmultiplyoutputimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_actual_prefixstepsmultiplyoutputimaginary) = 0) /\ (ge_balance_negative_last_fixed_actual_prefixstepsmultiplyoutputimaginary) = S ge_signed_half_last_fixed_actual_prefixstepsmultiplyoutputimaginarydecode))) /\ ((((((((ge_first_rp_last_fixed_actual_prefixstepsmultiply) * (ge_second_ip_last_fixed_actual_prefixstepsmultiply))) + (((ge_first_rn_last_fixed_actual_prefixstepsmultiply) * (ge_second_in_last_fixed_actual_prefixstepsmultiply))))) + (((((ge_first_ip_last_fixed_actual_prefixstepsmultiply) * (ge_second_rp_last_fixed_actual_prefixstepsmultiply))) + (((ge_first_in_last_fixed_actual_prefixstepsmultiply) * (ge_second_rn_last_fixed_actual_prefixstepsmultiply))))))) + ge_balance_negative_last_fixed_actual_prefixstepsmultiplyoutputimaginary = (((((((ge_first_rp_last_fixed_actual_prefixstepsmultiply) * (ge_second_in_last_fixed_actual_prefixstepsmultiply))) + (((ge_first_rn_last_fixed_actual_prefixstepsmultiply) * (ge_second_ip_last_fixed_actual_prefixstepsmultiply))))) + (((((ge_first_ip_last_fixed_actual_prefixstepsmultiply) * (ge_second_rn_last_fixed_actual_prefixstepsmultiply))) + (((ge_first_in_last_fixed_actual_prefixstepsmultiply) * (ge_second_rp_last_fixed_actual_prefixstepsmultiply))))))) + ge_balance_positive_last_fixed_actual_prefixstepsmultiplyoutputimaginary)))))))))))))))) /\ (exists ge_first_rp_last_fixed_actual_step ge_first_rn_last_fixed_actual_step ge_first_ip_last_fixed_actual_step ge_first_in_last_fixed_actual_step ge_second_rp_last_fixed_actual_step ge_second_rn_last_fixed_actual_step ge_second_ip_last_fixed_actual_step ge_second_in_last_fixed_actual_step. ((exists ge_representation_real_code_last_fixed_actual_stepfirst ge_representation_imaginary_code_last_fixed_actual_stepfirst. (((R) = ((ge_representation_real_code_last_fixed_actual_stepfirst) + (ge_representation_imaginary_code_last_fixed_actual_stepfirst)) * S ((ge_representation_real_code_last_fixed_actual_stepfirst) + (ge_representation_imaginary_code_last_fixed_actual_stepfirst)) + ((ge_representation_imaginary_code_last_fixed_actual_stepfirst) + (ge_representation_imaginary_code_last_fixed_actual_stepfirst))) /\ ((exists ge_balance_positive_last_fixed_actual_stepfirstreal ge_balance_negative_last_fixed_actual_stepfirstreal. (((((ge_representation_real_code_last_fixed_actual_stepfirst) = 2 * (ge_balance_positive_last_fixed_actual_stepfirstreal) /\ (ge_balance_negative_last_fixed_actual_stepfirstreal) = 0) \/ exists ge_signed_half_last_fixed_actual_stepfirstrealdecode. (((ge_representation_real_code_last_fixed_actual_stepfirst) = 2 * ge_signed_half_last_fixed_actual_stepfirstrealdecode + 1 /\ (ge_balance_positive_last_fixed_actual_stepfirstreal) = 0) /\ (ge_balance_negative_last_fixed_actual_stepfirstreal) = S ge_signed_half_last_fixed_actual_stepfirstrealdecode))) /\ ((ge_first_rp_last_fixed_actual_step) + ge_balance_negative_last_fixed_actual_stepfirstreal = (ge_first_rn_last_fixed_actual_step) + ge_balance_positive_last_fixed_actual_stepfirstreal))) /\ (exists ge_balance_positive_last_fixed_actual_stepfirstimaginary ge_balance_negative_last_fixed_actual_stepfirstimaginary. (((((ge_representation_imaginary_code_last_fixed_actual_stepfirst) = 2 * (ge_balance_positive_last_fixed_actual_stepfirstimaginary) /\ (ge_balance_negative_last_fixed_actual_stepfirstimaginary) = 0) \/ exists ge_signed_half_last_fixed_actual_stepfirstimaginarydecode. (((ge_representation_imaginary_code_last_fixed_actual_stepfirst) = 2 * ge_signed_half_last_fixed_actual_stepfirstimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_actual_stepfirstimaginary) = 0) /\ (ge_balance_negative_last_fixed_actual_stepfirstimaginary) = S ge_signed_half_last_fixed_actual_stepfirstimaginarydecode))) /\ ((ge_first_ip_last_fixed_actual_step) + ge_balance_negative_last_fixed_actual_stepfirstimaginary = (ge_first_in_last_fixed_actual_step) + ge_balance_positive_last_fixed_actual_stepfirstimaginary)))))) /\ ((exists ge_representation_real_code_last_fixed_actual_stepsecond ge_representation_imaginary_code_last_fixed_actual_stepsecond. (((a) = ((ge_representation_real_code_last_fixed_actual_stepsecond) + (ge_representation_imaginary_code_last_fixed_actual_stepsecond)) * S ((ge_representation_real_code_last_fixed_actual_stepsecond) + (ge_representation_imaginary_code_last_fixed_actual_stepsecond)) + ((ge_representation_imaginary_code_last_fixed_actual_stepsecond) + (ge_representation_imaginary_code_last_fixed_actual_stepsecond))) /\ ((exists ge_balance_positive_last_fixed_actual_stepsecondreal ge_balance_negative_last_fixed_actual_stepsecondreal. (((((ge_representation_real_code_last_fixed_actual_stepsecond) = 2 * (ge_balance_positive_last_fixed_actual_stepsecondreal) /\ (ge_balance_negative_last_fixed_actual_stepsecondreal) = 0) \/ exists ge_signed_half_last_fixed_actual_stepsecondrealdecode. (((ge_representation_real_code_last_fixed_actual_stepsecond) = 2 * ge_signed_half_last_fixed_actual_stepsecondrealdecode + 1 /\ (ge_balance_positive_last_fixed_actual_stepsecondreal) = 0) /\ (ge_balance_negative_last_fixed_actual_stepsecondreal) = S ge_signed_half_last_fixed_actual_stepsecondrealdecode))) /\ ((ge_second_rp_last_fixed_actual_step) + ge_balance_negative_last_fixed_actual_stepsecondreal = (ge_second_rn_last_fixed_actual_step) + ge_balance_positive_last_fixed_actual_stepsecondreal))) /\ (exists ge_balance_positive_last_fixed_actual_stepsecondimaginary ge_balance_negative_last_fixed_actual_stepsecondimaginary. (((((ge_representation_imaginary_code_last_fixed_actual_stepsecond) = 2 * (ge_balance_positive_last_fixed_actual_stepsecondimaginary) /\ (ge_balance_negative_last_fixed_actual_stepsecondimaginary) = 0) \/ exists ge_signed_half_last_fixed_actual_stepsecondimaginarydecode. (((ge_representation_imaginary_code_last_fixed_actual_stepsecond) = 2 * ge_signed_half_last_fixed_actual_stepsecondimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_actual_stepsecondimaginary) = 0) /\ (ge_balance_negative_last_fixed_actual_stepsecondimaginary) = S ge_signed_half_last_fixed_actual_stepsecondimaginarydecode))) /\ ((ge_second_ip_last_fixed_actual_step) + ge_balance_negative_last_fixed_actual_stepsecondimaginary = (ge_second_in_last_fixed_actual_step) + ge_balance_positive_last_fixed_actual_stepsecondimaginary)))))) /\ (exists ge_representation_real_code_last_fixed_actual_stepoutput ge_representation_imaginary_code_last_fixed_actual_stepoutput. (((P) = ((ge_representation_real_code_last_fixed_actual_stepoutput) + (ge_representation_imaginary_code_last_fixed_actual_stepoutput)) * S ((ge_representation_real_code_last_fixed_actual_stepoutput) + (ge_representation_imaginary_code_last_fixed_actual_stepoutput)) + ((ge_representation_imaginary_code_last_fixed_actual_stepoutput) + (ge_representation_imaginary_code_last_fixed_actual_stepoutput))) /\ ((exists ge_balance_positive_last_fixed_actual_stepoutputreal ge_balance_negative_last_fixed_actual_stepoutputreal. (((((ge_representation_real_code_last_fixed_actual_stepoutput) = 2 * (ge_balance_positive_last_fixed_actual_stepoutputreal) /\ (ge_balance_negative_last_fixed_actual_stepoutputreal) = 0) \/ exists ge_signed_half_last_fixed_actual_stepoutputrealdecode. (((ge_representation_real_code_last_fixed_actual_stepoutput) = 2 * ge_signed_half_last_fixed_actual_stepoutputrealdecode + 1 /\ (ge_balance_positive_last_fixed_actual_stepoutputreal) = 0) /\ (ge_balance_negative_last_fixed_actual_stepoutputreal) = S ge_signed_half_last_fixed_actual_stepoutputrealdecode))) /\ ((((((((ge_first_rp_last_fixed_actual_step) * (ge_second_rp_last_fixed_actual_step))) + (((ge_first_rn_last_fixed_actual_step) * (ge_second_rn_last_fixed_actual_step))))) + (((((ge_first_ip_last_fixed_actual_step) * (ge_second_in_last_fixed_actual_step))) + (((ge_first_in_last_fixed_actual_step) * (ge_second_ip_last_fixed_actual_step))))))) + ge_balance_negative_last_fixed_actual_stepoutputreal = (((((((ge_first_rp_last_fixed_actual_step) * (ge_second_rn_last_fixed_actual_step))) + (((ge_first_rn_last_fixed_actual_step) * (ge_second_rp_last_fixed_actual_step))))) + (((((ge_first_ip_last_fixed_actual_step) * (ge_second_ip_last_fixed_actual_step))) + (((ge_first_in_last_fixed_actual_step) * (ge_second_in_last_fixed_actual_step))))))) + ge_balance_positive_last_fixed_actual_stepoutputreal))) /\ (exists ge_balance_positive_last_fixed_actual_stepoutputimaginary ge_balance_negative_last_fixed_actual_stepoutputimaginary. (((((ge_representation_imaginary_code_last_fixed_actual_stepoutput) = 2 * (ge_balance_positive_last_fixed_actual_stepoutputimaginary) /\ (ge_balance_negative_last_fixed_actual_stepoutputimaginary) = 0) \/ exists ge_signed_half_last_fixed_actual_stepoutputimaginarydecode. (((ge_representation_imaginary_code_last_fixed_actual_stepoutput) = 2 * ge_signed_half_last_fixed_actual_stepoutputimaginarydecode + 1 /\ (ge_balance_positive_last_fixed_actual_stepoutputimaginary) = 0) /\ (ge_balance_negative_last_fixed_actual_stepoutputimaginary) = S ge_signed_half_last_fixed_actual_stepoutputimaginarydecode))) /\ ((((((((ge_first_rp_last_fixed_actual_step) * (ge_second_ip_last_fixed_actual_step))) + (((ge_first_rn_last_fixed_actual_step) * (ge_second_in_last_fixed_actual_step))))) + (((((ge_first_ip_last_fixed_actual_step) * (ge_second_rp_last_fixed_actual_step))) + (((ge_first_in_last_fixed_actual_step) * (ge_second_rn_last_fixed_actual_step))))))) + ge_balance_negative_last_fixed_actual_stepoutputimaginary = (((((((ge_first_rp_last_fixed_actual_step) * (ge_second_in_last_fixed_actual_step))) + (((ge_first_rn_last_fixed_actual_step) * (ge_second_ip_last_fixed_actual_step))))) + (((((ge_first_ip_last_fixed_actual_step) * (ge_second_rn_last_fixed_actual_step))) + (((ge_first_in_last_fixed_actual_step) * (ge_second_rp_last_fixed_actual_step))))))) + ge_balance_positive_last_fixed_actual_stepoutputimaginary)))))))))))
  9. 0009specialize gaussian_product_successor_decompose (b)
  10. 0010specialize gaussian_product_successor_decompose (c)
  11. 0011specialize gaussian_product_successor_decompose (l)
  12. 0012specialize gaussian_product_successor_decompose (P)
  13. 0013apply gaussian_product_successor_decompose
  14. 0014exact hP
  15. 0015cases hs
  16. 0016cases hs_witness
  17. 0017cases hs_witness_witness
  18. 0018cases hs_witness_witness_right
  19. 0019have heq : x=p
  20. 0020specialize beta_at_unique (b)
  21. 0021specialize beta_at_unique (c)
  22. 0022specialize beta_at_unique (l)
  23. 0023specialize beta_at_unique (x)
  24. 0024specialize beta_at_unique (p)
  25. 0025apply beta_at_unique
  26. 0026exact hs_witness_witness_left
  27. 0027exact hp
  28. 0028exists (x1)
  29. 0029split
  30. 0030exact hs_witness_witness_right_left
  31. 0031rewrite heq at hs_witness_witness_right_right
  32. 0032exact hs_witness_witness_right_right