GF007B

gaussian_nonunit_factor_is_proper_norm_divisor

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

Every actual product of two nonunits supplies a genuine proper-norm divisor, so the finite search cannot miss a reducible nonzero value.

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 z N a b. (exists ge_norm_rp_factor_target_norm ge_norm_rn_factor_target_norm ge_norm_ip_factor_target_norm ge_norm_in_factor_target_norm. ((exists ge_representation_real_code_factor_target_normrepresentation ge_representation_imaginary_code_factor_target_normrepresentation. (((z) = ((ge_representation_real_code_factor_target_normrepresentation) + (ge_representation_imaginary_code_factor_target_normrepresentation)) * S ((ge_representation_real_code_factor_target_normrepresentation) + (ge_representation_imaginary_code_factor_target_normrepresentation)) + ((ge_representation_imaginary_code_factor_target_normrepresentation) + (ge_representation_imaginary_code_factor_target_normrepresentation))) /\ ((exists ge_balance_positive_factor_target_normrepresentationreal ge_balance_negative_factor_target_normrepresentationreal. (((((ge_representation_real_code_factor_target_normrepresentation) = 2 * (ge_balance_positive_factor_target_normrepresentationreal) /\ (ge_balance_negative_factor_target_normrepresentationreal) = 0) \/ exists ge_signed_half_factor_target_normrepresentationrealdecode. (((ge_representation_real_code_factor_target_normrepresentation) = 2 * ge_signed_half_factor_target_normrepresentationrealdecode + 1 /\ (ge_balance_positive_factor_target_normrepresentationreal) = 0) /\ (ge_balance_negative_factor_target_normrepresentationreal) = S ge_signed_half_factor_target_normrepresentationrealdecode))) /\ ((ge_norm_rp_factor_target_norm) + ge_balance_negative_factor_target_normrepresentationreal = (ge_norm_rn_factor_target_norm) + ge_balance_positive_factor_target_normrepresentationreal))) /\ (exists ge_balance_positive_factor_target_normrepresentationimaginary ge_balance_negative_factor_target_normrepresentationimaginary. (((((ge_representation_imaginary_code_factor_target_normrepresentation) = 2 * (ge_balance_positive_factor_target_normrepresentationimaginary) /\ (ge_balance_negative_factor_target_normrepresentationimaginary) = 0) \/ exists ge_signed_half_factor_target_normrepresentationimaginarydecode. (((ge_representation_imaginary_code_factor_target_normrepresentation) = 2 * ge_signed_half_factor_target_normrepresentationimaginarydecode + 1 /\ (ge_balance_positive_factor_target_normrepresentationimaginary) = 0) /\ (ge_balance_negative_factor_target_normrepresentationimaginary) = S ge_signed_half_factor_target_normrepresentationimaginarydecode))) /\ ((ge_norm_ip_factor_target_norm) + ge_balance_negative_factor_target_normrepresentationimaginary = (ge_norm_in_factor_target_norm) + ge_balance_positive_factor_target_normrepresentationimaginary)))))) /\ (exists ge_real_square_factor_target_normsquare ge_imaginary_square_factor_target_normsquare. ((((((ge_norm_rp_factor_target_norm) * (ge_norm_rp_factor_target_norm))) + (((ge_norm_rn_factor_target_norm) * (ge_norm_rn_factor_target_norm)))) = ((ge_real_square_factor_target_normsquare) + (((((ge_norm_rp_factor_target_norm) * (ge_norm_rn_factor_target_norm))) + (((ge_norm_rn_factor_target_norm) * (ge_norm_rp_factor_target_norm))))))) /\ ((((((ge_norm_ip_factor_target_norm) * (ge_norm_ip_factor_target_norm))) + (((ge_norm_in_factor_target_norm) * (ge_norm_in_factor_target_norm)))) = ((ge_imaginary_square_factor_target_normsquare) + (((((ge_norm_ip_factor_target_norm) * (ge_norm_in_factor_target_norm))) + (((ge_norm_in_factor_target_norm) * (ge_norm_ip_factor_target_norm))))))) /\ ((N) = ge_real_square_factor_target_normsquare + ge_imaginary_square_factor_target_normsquare)))))) -> (exists ge_first_rp_factor_actual_product ge_first_rn_factor_actual_product ge_first_ip_factor_actual_product ge_first_in_factor_actual_product ge_second_rp_factor_actual_product ge_second_rn_factor_actual_product ge_second_ip_factor_actual_product ge_second_in_factor_actual_product. ((exists ge_representation_real_code_factor_actual_productfirst ge_representation_imaginary_code_factor_actual_productfirst. (((a) = ((ge_representation_real_code_factor_actual_productfirst) + (ge_representation_imaginary_code_factor_actual_productfirst)) * S ((ge_representation_real_code_factor_actual_productfirst) + (ge_representation_imaginary_code_factor_actual_productfirst)) + ((ge_representation_imaginary_code_factor_actual_productfirst) + (ge_representation_imaginary_code_factor_actual_productfirst))) /\ ((exists ge_balance_positive_factor_actual_productfirstreal ge_balance_negative_factor_actual_productfirstreal. (((((ge_representation_real_code_factor_actual_productfirst) = 2 * (ge_balance_positive_factor_actual_productfirstreal) /\ (ge_balance_negative_factor_actual_productfirstreal) = 0) \/ exists ge_signed_half_factor_actual_productfirstrealdecode. (((ge_representation_real_code_factor_actual_productfirst) = 2 * ge_signed_half_factor_actual_productfirstrealdecode + 1 /\ (ge_balance_positive_factor_actual_productfirstreal) = 0) /\ (ge_balance_negative_factor_actual_productfirstreal) = S ge_signed_half_factor_actual_productfirstrealdecode))) /\ ((ge_first_rp_factor_actual_product) + ge_balance_negative_factor_actual_productfirstreal = (ge_first_rn_factor_actual_product) + ge_balance_positive_factor_actual_productfirstreal))) /\ (exists ge_balance_positive_factor_actual_productfirstimaginary ge_balance_negative_factor_actual_productfirstimaginary. (((((ge_representation_imaginary_code_factor_actual_productfirst) = 2 * (ge_balance_positive_factor_actual_productfirstimaginary) /\ (ge_balance_negative_factor_actual_productfirstimaginary) = 0) \/ exists ge_signed_half_factor_actual_productfirstimaginarydecode. (((ge_representation_imaginary_code_factor_actual_productfirst) = 2 * ge_signed_half_factor_actual_productfirstimaginarydecode + 1 /\ (ge_balance_positive_factor_actual_productfirstimaginary) = 0) /\ (ge_balance_negative_factor_actual_productfirstimaginary) = S ge_signed_half_factor_actual_productfirstimaginarydecode))) /\ ((ge_first_ip_factor_actual_product) + ge_balance_negative_factor_actual_productfirstimaginary = (ge_first_in_factor_actual_product) + ge_balance_positive_factor_actual_productfirstimaginary)))))) /\ ((exists ge_representation_real_code_factor_actual_productsecond ge_representation_imaginary_code_factor_actual_productsecond. (((b) = ((ge_representation_real_code_factor_actual_productsecond) + (ge_representation_imaginary_code_factor_actual_productsecond)) * S ((ge_representation_real_code_factor_actual_productsecond) + (ge_representation_imaginary_code_factor_actual_productsecond)) + ((ge_representation_imaginary_code_factor_actual_productsecond) + (ge_representation_imaginary_code_factor_actual_productsecond))) /\ ((exists ge_balance_positive_factor_actual_productsecondreal ge_balance_negative_factor_actual_productsecondreal. (((((ge_representation_real_code_factor_actual_productsecond) = 2 * (ge_balance_positive_factor_actual_productsecondreal) /\ (ge_balance_negative_factor_actual_productsecondreal) = 0) \/ exists ge_signed_half_factor_actual_productsecondrealdecode. (((ge_representation_real_code_factor_actual_productsecond) = 2 * ge_signed_half_factor_actual_productsecondrealdecode + 1 /\ (ge_balance_positive_factor_actual_productsecondreal) = 0) /\ (ge_balance_negative_factor_actual_productsecondreal) = S ge_signed_half_factor_actual_productsecondrealdecode))) /\ ((ge_second_rp_factor_actual_product) + ge_balance_negative_factor_actual_productsecondreal = (ge_second_rn_factor_actual_product) + ge_balance_positive_factor_actual_productsecondreal))) /\ (exists ge_balance_positive_factor_actual_productsecondimaginary ge_balance_negative_factor_actual_productsecondimaginary. (((((ge_representation_imaginary_code_factor_actual_productsecond) = 2 * (ge_balance_positive_factor_actual_productsecondimaginary) /\ (ge_balance_negative_factor_actual_productsecondimaginary) = 0) \/ exists ge_signed_half_factor_actual_productsecondimaginarydecode. (((ge_representation_imaginary_code_factor_actual_productsecond) = 2 * ge_signed_half_factor_actual_productsecondimaginarydecode + 1 /\ (ge_balance_positive_factor_actual_productsecondimaginary) = 0) /\ (ge_balance_negative_factor_actual_productsecondimaginary) = S ge_signed_half_factor_actual_productsecondimaginarydecode))) /\ ((ge_second_ip_factor_actual_product) + ge_balance_negative_factor_actual_productsecondimaginary = (ge_second_in_factor_actual_product) + ge_balance_positive_factor_actual_productsecondimaginary)))))) /\ (exists ge_representation_real_code_factor_actual_productoutput ge_representation_imaginary_code_factor_actual_productoutput. (((z) = ((ge_representation_real_code_factor_actual_productoutput) + (ge_representation_imaginary_code_factor_actual_productoutput)) * S ((ge_representation_real_code_factor_actual_productoutput) + (ge_representation_imaginary_code_factor_actual_productoutput)) + ((ge_representation_imaginary_code_factor_actual_productoutput) + (ge_representation_imaginary_code_factor_actual_productoutput))) /\ ((exists ge_balance_positive_factor_actual_productoutputreal ge_balance_negative_factor_actual_productoutputreal. (((((ge_representation_real_code_factor_actual_productoutput) = 2 * (ge_balance_positive_factor_actual_productoutputreal) /\ (ge_balance_negative_factor_actual_productoutputreal) = 0) \/ exists ge_signed_half_factor_actual_productoutputrealdecode. (((ge_representation_real_code_factor_actual_productoutput) = 2 * ge_signed_half_factor_actual_productoutputrealdecode + 1 /\ (ge_balance_positive_factor_actual_productoutputreal) = 0) /\ (ge_balance_negative_factor_actual_productoutputreal) = S ge_signed_half_factor_actual_productoutputrealdecode))) /\ ((((((((ge_first_rp_factor_actual_product) * (ge_second_rp_factor_actual_product))) + (((ge_first_rn_factor_actual_product) * (ge_second_rn_factor_actual_product))))) + (((((ge_first_ip_factor_actual_product) * (ge_second_in_factor_actual_product))) + (((ge_first_in_factor_actual_product) * (ge_second_ip_factor_actual_product))))))) + ge_balance_negative_factor_actual_productoutputreal = (((((((ge_first_rp_factor_actual_product) * (ge_second_rn_factor_actual_product))) + (((ge_first_rn_factor_actual_product) * (ge_second_rp_factor_actual_product))))) + (((((ge_first_ip_factor_actual_product) * (ge_second_ip_factor_actual_product))) + (((ge_first_in_factor_actual_product) * (ge_second_in_factor_actual_product))))))) + ge_balance_positive_factor_actual_productoutputreal))) /\ (exists ge_balance_positive_factor_actual_productoutputimaginary ge_balance_negative_factor_actual_productoutputimaginary. (((((ge_representation_imaginary_code_factor_actual_productoutput) = 2 * (ge_balance_positive_factor_actual_productoutputimaginary) /\ (ge_balance_negative_factor_actual_productoutputimaginary) = 0) \/ exists ge_signed_half_factor_actual_productoutputimaginarydecode. (((ge_representation_imaginary_code_factor_actual_productoutput) = 2 * ge_signed_half_factor_actual_productoutputimaginarydecode + 1 /\ (ge_balance_positive_factor_actual_productoutputimaginary) = 0) /\ (ge_balance_negative_factor_actual_productoutputimaginary) = S ge_signed_half_factor_actual_productoutputimaginarydecode))) /\ ((((((((ge_first_rp_factor_actual_product) * (ge_second_ip_factor_actual_product))) + (((ge_first_rn_factor_actual_product) * (ge_second_in_factor_actual_product))))) + (((((ge_first_ip_factor_actual_product) * (ge_second_rp_factor_actual_product))) + (((ge_first_in_factor_actual_product) * (ge_second_rn_factor_actual_product))))))) + ge_balance_negative_factor_actual_productoutputimaginary = (((((((ge_first_rp_factor_actual_product) * (ge_second_in_factor_actual_product))) + (((ge_first_rn_factor_actual_product) * (ge_second_ip_factor_actual_product))))) + (((((ge_first_ip_factor_actual_product) * (ge_second_rn_factor_actual_product))) + (((ge_first_in_factor_actual_product) * (ge_second_rp_factor_actual_product))))))) + ge_balance_positive_factor_actual_productoutputimaginary))))))))) -> ~(z=0) -> ~(exists gr_inverse_factor_first_nonunit. (exists ge_first_rp_factor_first_nonunitidentity ge_first_rn_factor_first_nonunitidentity ge_first_ip_factor_first_nonunitidentity ge_first_in_factor_first_nonunitidentity ge_second_rp_factor_first_nonunitidentity ge_second_rn_factor_first_nonunitidentity ge_second_ip_factor_first_nonunitidentity ge_second_in_factor_first_nonunitidentity. ((exists ge_representation_real_code_factor_first_nonunitidentityfirst ge_representation_imaginary_code_factor_first_nonunitidentityfirst. (((a) = ((ge_representation_real_code_factor_first_nonunitidentityfirst) + (ge_representation_imaginary_code_factor_first_nonunitidentityfirst)) * S ((ge_representation_real_code_factor_first_nonunitidentityfirst) + (ge_representation_imaginary_code_factor_first_nonunitidentityfirst)) + ((ge_representation_imaginary_code_factor_first_nonunitidentityfirst) + (ge_representation_imaginary_code_factor_first_nonunitidentityfirst))) /\ ((exists ge_balance_positive_factor_first_nonunitidentityfirstreal ge_balance_negative_factor_first_nonunitidentityfirstreal. (((((ge_representation_real_code_factor_first_nonunitidentityfirst) = 2 * (ge_balance_positive_factor_first_nonunitidentityfirstreal) /\ (ge_balance_negative_factor_first_nonunitidentityfirstreal) = 0) \/ exists ge_signed_half_factor_first_nonunitidentityfirstrealdecode. (((ge_representation_real_code_factor_first_nonunitidentityfirst) = 2 * ge_signed_half_factor_first_nonunitidentityfirstrealdecode + 1 /\ (ge_balance_positive_factor_first_nonunitidentityfirstreal) = 0) /\ (ge_balance_negative_factor_first_nonunitidentityfirstreal) = S ge_signed_half_factor_first_nonunitidentityfirstrealdecode))) /\ ((ge_first_rp_factor_first_nonunitidentity) + ge_balance_negative_factor_first_nonunitidentityfirstreal = (ge_first_rn_factor_first_nonunitidentity) + ge_balance_positive_factor_first_nonunitidentityfirstreal))) /\ (exists ge_balance_positive_factor_first_nonunitidentityfirstimaginary ge_balance_negative_factor_first_nonunitidentityfirstimaginary. (((((ge_representation_imaginary_code_factor_first_nonunitidentityfirst) = 2 * (ge_balance_positive_factor_first_nonunitidentityfirstimaginary) /\ (ge_balance_negative_factor_first_nonunitidentityfirstimaginary) = 0) \/ exists ge_signed_half_factor_first_nonunitidentityfirstimaginarydecode. (((ge_representation_imaginary_code_factor_first_nonunitidentityfirst) = 2 * ge_signed_half_factor_first_nonunitidentityfirstimaginarydecode + 1 /\ (ge_balance_positive_factor_first_nonunitidentityfirstimaginary) = 0) /\ (ge_balance_negative_factor_first_nonunitidentityfirstimaginary) = S ge_signed_half_factor_first_nonunitidentityfirstimaginarydecode))) /\ ((ge_first_ip_factor_first_nonunitidentity) + ge_balance_negative_factor_first_nonunitidentityfirstimaginary = (ge_first_in_factor_first_nonunitidentity) + ge_balance_positive_factor_first_nonunitidentityfirstimaginary)))))) /\ ((exists ge_representation_real_code_factor_first_nonunitidentitysecond ge_representation_imaginary_code_factor_first_nonunitidentitysecond. (((gr_inverse_factor_first_nonunit) = ((ge_representation_real_code_factor_first_nonunitidentitysecond) + (ge_representation_imaginary_code_factor_first_nonunitidentitysecond)) * S ((ge_representation_real_code_factor_first_nonunitidentitysecond) + (ge_representation_imaginary_code_factor_first_nonunitidentitysecond)) + ((ge_representation_imaginary_code_factor_first_nonunitidentitysecond) + (ge_representation_imaginary_code_factor_first_nonunitidentitysecond))) /\ ((exists ge_balance_positive_factor_first_nonunitidentitysecondreal ge_balance_negative_factor_first_nonunitidentitysecondreal. (((((ge_representation_real_code_factor_first_nonunitidentitysecond) = 2 * (ge_balance_positive_factor_first_nonunitidentitysecondreal) /\ (ge_balance_negative_factor_first_nonunitidentitysecondreal) = 0) \/ exists ge_signed_half_factor_first_nonunitidentitysecondrealdecode. (((ge_representation_real_code_factor_first_nonunitidentitysecond) = 2 * ge_signed_half_factor_first_nonunitidentitysecondrealdecode + 1 /\ (ge_balance_positive_factor_first_nonunitidentitysecondreal) = 0) /\ (ge_balance_negative_factor_first_nonunitidentitysecondreal) = S ge_signed_half_factor_first_nonunitidentitysecondrealdecode))) /\ ((ge_second_rp_factor_first_nonunitidentity) + ge_balance_negative_factor_first_nonunitidentitysecondreal = (ge_second_rn_factor_first_nonunitidentity) + ge_balance_positive_factor_first_nonunitidentitysecondreal))) /\ (exists ge_balance_positive_factor_first_nonunitidentitysecondimaginary ge_balance_negative_factor_first_nonunitidentitysecondimaginary. (((((ge_representation_imaginary_code_factor_first_nonunitidentitysecond) = 2 * (ge_balance_positive_factor_first_nonunitidentitysecondimaginary) /\ (ge_balance_negative_factor_first_nonunitidentitysecondimaginary) = 0) \/ exists ge_signed_half_factor_first_nonunitidentitysecondimaginarydecode. (((ge_representation_imaginary_code_factor_first_nonunitidentitysecond) = 2 * ge_signed_half_factor_first_nonunitidentitysecondimaginarydecode + 1 /\ (ge_balance_positive_factor_first_nonunitidentitysecondimaginary) = 0) /\ (ge_balance_negative_factor_first_nonunitidentitysecondimaginary) = S ge_signed_half_factor_first_nonunitidentitysecondimaginarydecode))) /\ ((ge_second_ip_factor_first_nonunitidentity) + ge_balance_negative_factor_first_nonunitidentitysecondimaginary = (ge_second_in_factor_first_nonunitidentity) + ge_balance_positive_factor_first_nonunitidentitysecondimaginary)))))) /\ (exists ge_representation_real_code_factor_first_nonunitidentityoutput ge_representation_imaginary_code_factor_first_nonunitidentityoutput. (((6) = ((ge_representation_real_code_factor_first_nonunitidentityoutput) + (ge_representation_imaginary_code_factor_first_nonunitidentityoutput)) * S ((ge_representation_real_code_factor_first_nonunitidentityoutput) + (ge_representation_imaginary_code_factor_first_nonunitidentityoutput)) + ((ge_representation_imaginary_code_factor_first_nonunitidentityoutput) + (ge_representation_imaginary_code_factor_first_nonunitidentityoutput))) /\ ((exists ge_balance_positive_factor_first_nonunitidentityoutputreal ge_balance_negative_factor_first_nonunitidentityoutputreal. (((((ge_representation_real_code_factor_first_nonunitidentityoutput) = 2 * (ge_balance_positive_factor_first_nonunitidentityoutputreal) /\ (ge_balance_negative_factor_first_nonunitidentityoutputreal) = 0) \/ exists ge_signed_half_factor_first_nonunitidentityoutputrealdecode. (((ge_representation_real_code_factor_first_nonunitidentityoutput) = 2 * ge_signed_half_factor_first_nonunitidentityoutputrealdecode + 1 /\ (ge_balance_positive_factor_first_nonunitidentityoutputreal) = 0) /\ (ge_balance_negative_factor_first_nonunitidentityoutputreal) = S ge_signed_half_factor_first_nonunitidentityoutputrealdecode))) /\ ((((((((ge_first_rp_factor_first_nonunitidentity) * (ge_second_rp_factor_first_nonunitidentity))) + (((ge_first_rn_factor_first_nonunitidentity) * (ge_second_rn_factor_first_nonunitidentity))))) + (((((ge_first_ip_factor_first_nonunitidentity) * (ge_second_in_factor_first_nonunitidentity))) + (((ge_first_in_factor_first_nonunitidentity) * (ge_second_ip_factor_first_nonunitidentity))))))) + ge_balance_negative_factor_first_nonunitidentityoutputreal = (((((((ge_first_rp_factor_first_nonunitidentity) * (ge_second_rn_factor_first_nonunitidentity))) + (((ge_first_rn_factor_first_nonunitidentity) * (ge_second_rp_factor_first_nonunitidentity))))) + (((((ge_first_ip_factor_first_nonunitidentity) * (ge_second_ip_factor_first_nonunitidentity))) + (((ge_first_in_factor_first_nonunitidentity) * (ge_second_in_factor_first_nonunitidentity))))))) + ge_balance_positive_factor_first_nonunitidentityoutputreal))) /\ (exists ge_balance_positive_factor_first_nonunitidentityoutputimaginary ge_balance_negative_factor_first_nonunitidentityoutputimaginary. (((((ge_representation_imaginary_code_factor_first_nonunitidentityoutput) = 2 * (ge_balance_positive_factor_first_nonunitidentityoutputimaginary) /\ (ge_balance_negative_factor_first_nonunitidentityoutputimaginary) = 0) \/ exists ge_signed_half_factor_first_nonunitidentityoutputimaginarydecode. (((ge_representation_imaginary_code_factor_first_nonunitidentityoutput) = 2 * ge_signed_half_factor_first_nonunitidentityoutputimaginarydecode + 1 /\ (ge_balance_positive_factor_first_nonunitidentityoutputimaginary) = 0) /\ (ge_balance_negative_factor_first_nonunitidentityoutputimaginary) = S ge_signed_half_factor_first_nonunitidentityoutputimaginarydecode))) /\ ((((((((ge_first_rp_factor_first_nonunitidentity) * (ge_second_ip_factor_first_nonunitidentity))) + (((ge_first_rn_factor_first_nonunitidentity) * (ge_second_in_factor_first_nonunitidentity))))) + (((((ge_first_ip_factor_first_nonunitidentity) * (ge_second_rp_factor_first_nonunitidentity))) + (((ge_first_in_factor_first_nonunitidentity) * (ge_second_rn_factor_first_nonunitidentity))))))) + ge_balance_negative_factor_first_nonunitidentityoutputimaginary = (((((((ge_first_rp_factor_first_nonunitidentity) * (ge_second_in_factor_first_nonunitidentity))) + (((ge_first_rn_factor_first_nonunitidentity) * (ge_second_ip_factor_first_nonunitidentity))))) + (((((ge_first_ip_factor_first_nonunitidentity) * (ge_second_rn_factor_first_nonunitidentity))) + (((ge_first_in_factor_first_nonunitidentity) * (ge_second_rp_factor_first_nonunitidentity))))))) + ge_balance_positive_factor_first_nonunitidentityoutputimaginary)))))))))) -> ~(exists gr_inverse_factor_second_nonunit. (exists ge_first_rp_factor_second_nonunitidentity ge_first_rn_factor_second_nonunitidentity ge_first_ip_factor_second_nonunitidentity ge_first_in_factor_second_nonunitidentity ge_second_rp_factor_second_nonunitidentity ge_second_rn_factor_second_nonunitidentity ge_second_ip_factor_second_nonunitidentity ge_second_in_factor_second_nonunitidentity. ((exists ge_representation_real_code_factor_second_nonunitidentityfirst ge_representation_imaginary_code_factor_second_nonunitidentityfirst. (((b) = ((ge_representation_real_code_factor_second_nonunitidentityfirst) + (ge_representation_imaginary_code_factor_second_nonunitidentityfirst)) * S ((ge_representation_real_code_factor_second_nonunitidentityfirst) + (ge_representation_imaginary_code_factor_second_nonunitidentityfirst)) + ((ge_representation_imaginary_code_factor_second_nonunitidentityfirst) + (ge_representation_imaginary_code_factor_second_nonunitidentityfirst))) /\ ((exists ge_balance_positive_factor_second_nonunitidentityfirstreal ge_balance_negative_factor_second_nonunitidentityfirstreal. (((((ge_representation_real_code_factor_second_nonunitidentityfirst) = 2 * (ge_balance_positive_factor_second_nonunitidentityfirstreal) /\ (ge_balance_negative_factor_second_nonunitidentityfirstreal) = 0) \/ exists ge_signed_half_factor_second_nonunitidentityfirstrealdecode. (((ge_representation_real_code_factor_second_nonunitidentityfirst) = 2 * ge_signed_half_factor_second_nonunitidentityfirstrealdecode + 1 /\ (ge_balance_positive_factor_second_nonunitidentityfirstreal) = 0) /\ (ge_balance_negative_factor_second_nonunitidentityfirstreal) = S ge_signed_half_factor_second_nonunitidentityfirstrealdecode))) /\ ((ge_first_rp_factor_second_nonunitidentity) + ge_balance_negative_factor_second_nonunitidentityfirstreal = (ge_first_rn_factor_second_nonunitidentity) + ge_balance_positive_factor_second_nonunitidentityfirstreal))) /\ (exists ge_balance_positive_factor_second_nonunitidentityfirstimaginary ge_balance_negative_factor_second_nonunitidentityfirstimaginary. (((((ge_representation_imaginary_code_factor_second_nonunitidentityfirst) = 2 * (ge_balance_positive_factor_second_nonunitidentityfirstimaginary) /\ (ge_balance_negative_factor_second_nonunitidentityfirstimaginary) = 0) \/ exists ge_signed_half_factor_second_nonunitidentityfirstimaginarydecode. (((ge_representation_imaginary_code_factor_second_nonunitidentityfirst) = 2 * ge_signed_half_factor_second_nonunitidentityfirstimaginarydecode + 1 /\ (ge_balance_positive_factor_second_nonunitidentityfirstimaginary) = 0) /\ (ge_balance_negative_factor_second_nonunitidentityfirstimaginary) = S ge_signed_half_factor_second_nonunitidentityfirstimaginarydecode))) /\ ((ge_first_ip_factor_second_nonunitidentity) + ge_balance_negative_factor_second_nonunitidentityfirstimaginary = (ge_first_in_factor_second_nonunitidentity) + ge_balance_positive_factor_second_nonunitidentityfirstimaginary)))))) /\ ((exists ge_representation_real_code_factor_second_nonunitidentitysecond ge_representation_imaginary_code_factor_second_nonunitidentitysecond. (((gr_inverse_factor_second_nonunit) = ((ge_representation_real_code_factor_second_nonunitidentitysecond) + (ge_representation_imaginary_code_factor_second_nonunitidentitysecond)) * S ((ge_representation_real_code_factor_second_nonunitidentitysecond) + (ge_representation_imaginary_code_factor_second_nonunitidentitysecond)) + ((ge_representation_imaginary_code_factor_second_nonunitidentitysecond) + (ge_representation_imaginary_code_factor_second_nonunitidentitysecond))) /\ ((exists ge_balance_positive_factor_second_nonunitidentitysecondreal ge_balance_negative_factor_second_nonunitidentitysecondreal. (((((ge_representation_real_code_factor_second_nonunitidentitysecond) = 2 * (ge_balance_positive_factor_second_nonunitidentitysecondreal) /\ (ge_balance_negative_factor_second_nonunitidentitysecondreal) = 0) \/ exists ge_signed_half_factor_second_nonunitidentitysecondrealdecode. (((ge_representation_real_code_factor_second_nonunitidentitysecond) = 2 * ge_signed_half_factor_second_nonunitidentitysecondrealdecode + 1 /\ (ge_balance_positive_factor_second_nonunitidentitysecondreal) = 0) /\ (ge_balance_negative_factor_second_nonunitidentitysecondreal) = S ge_signed_half_factor_second_nonunitidentitysecondrealdecode))) /\ ((ge_second_rp_factor_second_nonunitidentity) + ge_balance_negative_factor_second_nonunitidentitysecondreal = (ge_second_rn_factor_second_nonunitidentity) + ge_balance_positive_factor_second_nonunitidentitysecondreal))) /\ (exists ge_balance_positive_factor_second_nonunitidentitysecondimaginary ge_balance_negative_factor_second_nonunitidentitysecondimaginary. (((((ge_representation_imaginary_code_factor_second_nonunitidentitysecond) = 2 * (ge_balance_positive_factor_second_nonunitidentitysecondimaginary) /\ (ge_balance_negative_factor_second_nonunitidentitysecondimaginary) = 0) \/ exists ge_signed_half_factor_second_nonunitidentitysecondimaginarydecode. (((ge_representation_imaginary_code_factor_second_nonunitidentitysecond) = 2 * ge_signed_half_factor_second_nonunitidentitysecondimaginarydecode + 1 /\ (ge_balance_positive_factor_second_nonunitidentitysecondimaginary) = 0) /\ (ge_balance_negative_factor_second_nonunitidentitysecondimaginary) = S ge_signed_half_factor_second_nonunitidentitysecondimaginarydecode))) /\ ((ge_second_ip_factor_second_nonunitidentity) + ge_balance_negative_factor_second_nonunitidentitysecondimaginary = (ge_second_in_factor_second_nonunitidentity) + ge_balance_positive_factor_second_nonunitidentitysecondimaginary)))))) /\ (exists ge_representation_real_code_factor_second_nonunitidentityoutput ge_representation_imaginary_code_factor_second_nonunitidentityoutput. (((6) = ((ge_representation_real_code_factor_second_nonunitidentityoutput) + (ge_representation_imaginary_code_factor_second_nonunitidentityoutput)) * S ((ge_representation_real_code_factor_second_nonunitidentityoutput) + (ge_representation_imaginary_code_factor_second_nonunitidentityoutput)) + ((ge_representation_imaginary_code_factor_second_nonunitidentityoutput) + (ge_representation_imaginary_code_factor_second_nonunitidentityoutput))) /\ ((exists ge_balance_positive_factor_second_nonunitidentityoutputreal ge_balance_negative_factor_second_nonunitidentityoutputreal. (((((ge_representation_real_code_factor_second_nonunitidentityoutput) = 2 * (ge_balance_positive_factor_second_nonunitidentityoutputreal) /\ (ge_balance_negative_factor_second_nonunitidentityoutputreal) = 0) \/ exists ge_signed_half_factor_second_nonunitidentityoutputrealdecode. (((ge_representation_real_code_factor_second_nonunitidentityoutput) = 2 * ge_signed_half_factor_second_nonunitidentityoutputrealdecode + 1 /\ (ge_balance_positive_factor_second_nonunitidentityoutputreal) = 0) /\ (ge_balance_negative_factor_second_nonunitidentityoutputreal) = S ge_signed_half_factor_second_nonunitidentityoutputrealdecode))) /\ ((((((((ge_first_rp_factor_second_nonunitidentity) * (ge_second_rp_factor_second_nonunitidentity))) + (((ge_first_rn_factor_second_nonunitidentity) * (ge_second_rn_factor_second_nonunitidentity))))) + (((((ge_first_ip_factor_second_nonunitidentity) * (ge_second_in_factor_second_nonunitidentity))) + (((ge_first_in_factor_second_nonunitidentity) * (ge_second_ip_factor_second_nonunitidentity))))))) + ge_balance_negative_factor_second_nonunitidentityoutputreal = (((((((ge_first_rp_factor_second_nonunitidentity) * (ge_second_rn_factor_second_nonunitidentity))) + (((ge_first_rn_factor_second_nonunitidentity) * (ge_second_rp_factor_second_nonunitidentity))))) + (((((ge_first_ip_factor_second_nonunitidentity) * (ge_second_ip_factor_second_nonunitidentity))) + (((ge_first_in_factor_second_nonunitidentity) * (ge_second_in_factor_second_nonunitidentity))))))) + ge_balance_positive_factor_second_nonunitidentityoutputreal))) /\ (exists ge_balance_positive_factor_second_nonunitidentityoutputimaginary ge_balance_negative_factor_second_nonunitidentityoutputimaginary. (((((ge_representation_imaginary_code_factor_second_nonunitidentityoutput) = 2 * (ge_balance_positive_factor_second_nonunitidentityoutputimaginary) /\ (ge_balance_negative_factor_second_nonunitidentityoutputimaginary) = 0) \/ exists ge_signed_half_factor_second_nonunitidentityoutputimaginarydecode. (((ge_representation_imaginary_code_factor_second_nonunitidentityoutput) = 2 * ge_signed_half_factor_second_nonunitidentityoutputimaginarydecode + 1 /\ (ge_balance_positive_factor_second_nonunitidentityoutputimaginary) = 0) /\ (ge_balance_negative_factor_second_nonunitidentityoutputimaginary) = S ge_signed_half_factor_second_nonunitidentityoutputimaginarydecode))) /\ ((((((((ge_first_rp_factor_second_nonunitidentity) * (ge_second_ip_factor_second_nonunitidentity))) + (((ge_first_rn_factor_second_nonunitidentity) * (ge_second_in_factor_second_nonunitidentity))))) + (((((ge_first_ip_factor_second_nonunitidentity) * (ge_second_rp_factor_second_nonunitidentity))) + (((ge_first_in_factor_second_nonunitidentity) * (ge_second_rn_factor_second_nonunitidentity))))))) + ge_balance_negative_factor_second_nonunitidentityoutputimaginary = (((((((ge_first_rp_factor_second_nonunitidentity) * (ge_second_in_factor_second_nonunitidentity))) + (((ge_first_rn_factor_second_nonunitidentity) * (ge_second_ip_factor_second_nonunitidentity))))) + (((((ge_first_ip_factor_second_nonunitidentity) * (ge_second_rn_factor_second_nonunitidentity))) + (((ge_first_in_factor_second_nonunitidentity) * (ge_second_rp_factor_second_nonunitidentity))))))) + ge_balance_positive_factor_second_nonunitidentityoutputimaginary)))))))))) -> (((~(exists gr_inverse_factor_proper_divisornonunit. (exists ge_first_rp_factor_proper_divisornonunitidentity ge_first_rn_factor_proper_divisornonunitidentity ge_first_ip_factor_proper_divisornonunitidentity ge_first_in_factor_proper_divisornonunitidentity ge_second_rp_factor_proper_divisornonunitidentity ge_second_rn_factor_proper_divisornonunitidentity ge_second_ip_factor_proper_divisornonunitidentity ge_second_in_factor_proper_divisornonunitidentity. ((exists ge_representation_real_code_factor_proper_divisornonunitidentityfirst ge_representation_imaginary_code_factor_proper_divisornonunitidentityfirst. (((a) = ((ge_representation_real_code_factor_proper_divisornonunitidentityfirst) + (ge_representation_imaginary_code_factor_proper_divisornonunitidentityfirst)) * S ((ge_representation_real_code_factor_proper_divisornonunitidentityfirst) + (ge_representation_imaginary_code_factor_proper_divisornonunitidentityfirst)) + ((ge_representation_imaginary_code_factor_proper_divisornonunitidentityfirst) + (ge_representation_imaginary_code_factor_proper_divisornonunitidentityfirst))) /\ ((exists ge_balance_positive_factor_proper_divisornonunitidentityfirstreal ge_balance_negative_factor_proper_divisornonunitidentityfirstreal. (((((ge_representation_real_code_factor_proper_divisornonunitidentityfirst) = 2 * (ge_balance_positive_factor_proper_divisornonunitidentityfirstreal) /\ (ge_balance_negative_factor_proper_divisornonunitidentityfirstreal) = 0) \/ exists ge_signed_half_factor_proper_divisornonunitidentityfirstrealdecode. (((ge_representation_real_code_factor_proper_divisornonunitidentityfirst) = 2 * ge_signed_half_factor_proper_divisornonunitidentityfirstrealdecode + 1 /\ (ge_balance_positive_factor_proper_divisornonunitidentityfirstreal) = 0) /\ (ge_balance_negative_factor_proper_divisornonunitidentityfirstreal) = S ge_signed_half_factor_proper_divisornonunitidentityfirstrealdecode))) /\ ((ge_first_rp_factor_proper_divisornonunitidentity) + ge_balance_negative_factor_proper_divisornonunitidentityfirstreal = (ge_first_rn_factor_proper_divisornonunitidentity) + ge_balance_positive_factor_proper_divisornonunitidentityfirstreal))) /\ (exists ge_balance_positive_factor_proper_divisornonunitidentityfirstimaginary ge_balance_negative_factor_proper_divisornonunitidentityfirstimaginary. (((((ge_representation_imaginary_code_factor_proper_divisornonunitidentityfirst) = 2 * (ge_balance_positive_factor_proper_divisornonunitidentityfirstimaginary) /\ (ge_balance_negative_factor_proper_divisornonunitidentityfirstimaginary) = 0) \/ exists ge_signed_half_factor_proper_divisornonunitidentityfirstimaginarydecode. (((ge_representation_imaginary_code_factor_proper_divisornonunitidentityfirst) = 2 * ge_signed_half_factor_proper_divisornonunitidentityfirstimaginarydecode + 1 /\ (ge_balance_positive_factor_proper_divisornonunitidentityfirstimaginary) = 0) /\ (ge_balance_negative_factor_proper_divisornonunitidentityfirstimaginary) = S ge_signed_half_factor_proper_divisornonunitidentityfirstimaginarydecode))) /\ ((ge_first_ip_factor_proper_divisornonunitidentity) + ge_balance_negative_factor_proper_divisornonunitidentityfirstimaginary = (ge_first_in_factor_proper_divisornonunitidentity) + ge_balance_positive_factor_proper_divisornonunitidentityfirstimaginary)))))) /\ ((exists ge_representation_real_code_factor_proper_divisornonunitidentitysecond ge_representation_imaginary_code_factor_proper_divisornonunitidentitysecond. (((gr_inverse_factor_proper_divisornonunit) = ((ge_representation_real_code_factor_proper_divisornonunitidentitysecond) + (ge_representation_imaginary_code_factor_proper_divisornonunitidentitysecond)) * S ((ge_representation_real_code_factor_proper_divisornonunitidentitysecond) + (ge_representation_imaginary_code_factor_proper_divisornonunitidentitysecond)) + ((ge_representation_imaginary_code_factor_proper_divisornonunitidentitysecond) + (ge_representation_imaginary_code_factor_proper_divisornonunitidentitysecond))) /\ ((exists ge_balance_positive_factor_proper_divisornonunitidentitysecondreal ge_balance_negative_factor_proper_divisornonunitidentitysecondreal. (((((ge_representation_real_code_factor_proper_divisornonunitidentitysecond) = 2 * (ge_balance_positive_factor_proper_divisornonunitidentitysecondreal) /\ (ge_balance_negative_factor_proper_divisornonunitidentitysecondreal) = 0) \/ exists ge_signed_half_factor_proper_divisornonunitidentitysecondrealdecode. (((ge_representation_real_code_factor_proper_divisornonunitidentitysecond) = 2 * ge_signed_half_factor_proper_divisornonunitidentitysecondrealdecode + 1 /\ (ge_balance_positive_factor_proper_divisornonunitidentitysecondreal) = 0) /\ (ge_balance_negative_factor_proper_divisornonunitidentitysecondreal) = S ge_signed_half_factor_proper_divisornonunitidentitysecondrealdecode))) /\ ((ge_second_rp_factor_proper_divisornonunitidentity) + ge_balance_negative_factor_proper_divisornonunitidentitysecondreal = (ge_second_rn_factor_proper_divisornonunitidentity) + ge_balance_positive_factor_proper_divisornonunitidentitysecondreal))) /\ (exists ge_balance_positive_factor_proper_divisornonunitidentitysecondimaginary ge_balance_negative_factor_proper_divisornonunitidentitysecondimaginary. (((((ge_representation_imaginary_code_factor_proper_divisornonunitidentitysecond) = 2 * (ge_balance_positive_factor_proper_divisornonunitidentitysecondimaginary) /\ (ge_balance_negative_factor_proper_divisornonunitidentitysecondimaginary) = 0) \/ exists ge_signed_half_factor_proper_divisornonunitidentitysecondimaginarydecode. (((ge_representation_imaginary_code_factor_proper_divisornonunitidentitysecond) = 2 * ge_signed_half_factor_proper_divisornonunitidentitysecondimaginarydecode + 1 /\ (ge_balance_positive_factor_proper_divisornonunitidentitysecondimaginary) = 0) /\ (ge_balance_negative_factor_proper_divisornonunitidentitysecondimaginary) = S ge_signed_half_factor_proper_divisornonunitidentitysecondimaginarydecode))) /\ ((ge_second_ip_factor_proper_divisornonunitidentity) + ge_balance_negative_factor_proper_divisornonunitidentitysecondimaginary = (ge_second_in_factor_proper_divisornonunitidentity) + ge_balance_positive_factor_proper_divisornonunitidentitysecondimaginary)))))) /\ (exists ge_representation_real_code_factor_proper_divisornonunitidentityoutput ge_representation_imaginary_code_factor_proper_divisornonunitidentityoutput. (((6) = ((ge_representation_real_code_factor_proper_divisornonunitidentityoutput) + (ge_representation_imaginary_code_factor_proper_divisornonunitidentityoutput)) * S ((ge_representation_real_code_factor_proper_divisornonunitidentityoutput) + (ge_representation_imaginary_code_factor_proper_divisornonunitidentityoutput)) + ((ge_representation_imaginary_code_factor_proper_divisornonunitidentityoutput) + (ge_representation_imaginary_code_factor_proper_divisornonunitidentityoutput))) /\ ((exists ge_balance_positive_factor_proper_divisornonunitidentityoutputreal ge_balance_negative_factor_proper_divisornonunitidentityoutputreal. (((((ge_representation_real_code_factor_proper_divisornonunitidentityoutput) = 2 * (ge_balance_positive_factor_proper_divisornonunitidentityoutputreal) /\ (ge_balance_negative_factor_proper_divisornonunitidentityoutputreal) = 0) \/ exists ge_signed_half_factor_proper_divisornonunitidentityoutputrealdecode. (((ge_representation_real_code_factor_proper_divisornonunitidentityoutput) = 2 * ge_signed_half_factor_proper_divisornonunitidentityoutputrealdecode + 1 /\ (ge_balance_positive_factor_proper_divisornonunitidentityoutputreal) = 0) /\ (ge_balance_negative_factor_proper_divisornonunitidentityoutputreal) = S ge_signed_half_factor_proper_divisornonunitidentityoutputrealdecode))) /\ ((((((((ge_first_rp_factor_proper_divisornonunitidentity) * (ge_second_rp_factor_proper_divisornonunitidentity))) + (((ge_first_rn_factor_proper_divisornonunitidentity) * (ge_second_rn_factor_proper_divisornonunitidentity))))) + (((((ge_first_ip_factor_proper_divisornonunitidentity) * (ge_second_in_factor_proper_divisornonunitidentity))) + (((ge_first_in_factor_proper_divisornonunitidentity) * (ge_second_ip_factor_proper_divisornonunitidentity))))))) + ge_balance_negative_factor_proper_divisornonunitidentityoutputreal = (((((((ge_first_rp_factor_proper_divisornonunitidentity) * (ge_second_rn_factor_proper_divisornonunitidentity))) + (((ge_first_rn_factor_proper_divisornonunitidentity) * (ge_second_rp_factor_proper_divisornonunitidentity))))) + (((((ge_first_ip_factor_proper_divisornonunitidentity) * (ge_second_ip_factor_proper_divisornonunitidentity))) + (((ge_first_in_factor_proper_divisornonunitidentity) * (ge_second_in_factor_proper_divisornonunitidentity))))))) + ge_balance_positive_factor_proper_divisornonunitidentityoutputreal))) /\ (exists ge_balance_positive_factor_proper_divisornonunitidentityoutputimaginary ge_balance_negative_factor_proper_divisornonunitidentityoutputimaginary. (((((ge_representation_imaginary_code_factor_proper_divisornonunitidentityoutput) = 2 * (ge_balance_positive_factor_proper_divisornonunitidentityoutputimaginary) /\ (ge_balance_negative_factor_proper_divisornonunitidentityoutputimaginary) = 0) \/ exists ge_signed_half_factor_proper_divisornonunitidentityoutputimaginarydecode. (((ge_representation_imaginary_code_factor_proper_divisornonunitidentityoutput) = 2 * ge_signed_half_factor_proper_divisornonunitidentityoutputimaginarydecode + 1 /\ (ge_balance_positive_factor_proper_divisornonunitidentityoutputimaginary) = 0) /\ (ge_balance_negative_factor_proper_divisornonunitidentityoutputimaginary) = S ge_signed_half_factor_proper_divisornonunitidentityoutputimaginarydecode))) /\ ((((((((ge_first_rp_factor_proper_divisornonunitidentity) * (ge_second_ip_factor_proper_divisornonunitidentity))) + (((ge_first_rn_factor_proper_divisornonunitidentity) * (ge_second_in_factor_proper_divisornonunitidentity))))) + (((((ge_first_ip_factor_proper_divisornonunitidentity) * (ge_second_rp_factor_proper_divisornonunitidentity))) + (((ge_first_in_factor_proper_divisornonunitidentity) * (ge_second_rn_factor_proper_divisornonunitidentity))))))) + ge_balance_negative_factor_proper_divisornonunitidentityoutputimaginary = (((((((ge_first_rp_factor_proper_divisornonunitidentity) * (ge_second_in_factor_proper_divisornonunitidentity))) + (((ge_first_rn_factor_proper_divisornonunitidentity) * (ge_second_ip_factor_proper_divisornonunitidentity))))) + (((((ge_first_ip_factor_proper_divisornonunitidentity) * (ge_second_rn_factor_proper_divisornonunitidentity))) + (((ge_first_in_factor_proper_divisornonunitidentity) * (ge_second_rp_factor_proper_divisornonunitidentity))))))) + ge_balance_positive_factor_proper_divisornonunitidentityoutputimaginary))))))))))) /\ ((exists gr_quotient_factor_proper_divisorquotient. (exists ge_first_rp_factor_proper_divisorquotientproduct ge_first_rn_factor_proper_divisorquotientproduct ge_first_ip_factor_proper_divisorquotientproduct ge_first_in_factor_proper_divisorquotientproduct ge_second_rp_factor_proper_divisorquotientproduct ge_second_rn_factor_proper_divisorquotientproduct ge_second_ip_factor_proper_divisorquotientproduct ge_second_in_factor_proper_divisorquotientproduct. ((exists ge_representation_real_code_factor_proper_divisorquotientproductfirst ge_representation_imaginary_code_factor_proper_divisorquotientproductfirst. (((a) = ((ge_representation_real_code_factor_proper_divisorquotientproductfirst) + (ge_representation_imaginary_code_factor_proper_divisorquotientproductfirst)) * S ((ge_representation_real_code_factor_proper_divisorquotientproductfirst) + (ge_representation_imaginary_code_factor_proper_divisorquotientproductfirst)) + ((ge_representation_imaginary_code_factor_proper_divisorquotientproductfirst) + (ge_representation_imaginary_code_factor_proper_divisorquotientproductfirst))) /\ ((exists ge_balance_positive_factor_proper_divisorquotientproductfirstreal ge_balance_negative_factor_proper_divisorquotientproductfirstreal. (((((ge_representation_real_code_factor_proper_divisorquotientproductfirst) = 2 * (ge_balance_positive_factor_proper_divisorquotientproductfirstreal) /\ (ge_balance_negative_factor_proper_divisorquotientproductfirstreal) = 0) \/ exists ge_signed_half_factor_proper_divisorquotientproductfirstrealdecode. (((ge_representation_real_code_factor_proper_divisorquotientproductfirst) = 2 * ge_signed_half_factor_proper_divisorquotientproductfirstrealdecode + 1 /\ (ge_balance_positive_factor_proper_divisorquotientproductfirstreal) = 0) /\ (ge_balance_negative_factor_proper_divisorquotientproductfirstreal) = S ge_signed_half_factor_proper_divisorquotientproductfirstrealdecode))) /\ ((ge_first_rp_factor_proper_divisorquotientproduct) + ge_balance_negative_factor_proper_divisorquotientproductfirstreal = (ge_first_rn_factor_proper_divisorquotientproduct) + ge_balance_positive_factor_proper_divisorquotientproductfirstreal))) /\ (exists ge_balance_positive_factor_proper_divisorquotientproductfirstimaginary ge_balance_negative_factor_proper_divisorquotientproductfirstimaginary. (((((ge_representation_imaginary_code_factor_proper_divisorquotientproductfirst) = 2 * (ge_balance_positive_factor_proper_divisorquotientproductfirstimaginary) /\ (ge_balance_negative_factor_proper_divisorquotientproductfirstimaginary) = 0) \/ exists ge_signed_half_factor_proper_divisorquotientproductfirstimaginarydecode. (((ge_representation_imaginary_code_factor_proper_divisorquotientproductfirst) = 2 * ge_signed_half_factor_proper_divisorquotientproductfirstimaginarydecode + 1 /\ (ge_balance_positive_factor_proper_divisorquotientproductfirstimaginary) = 0) /\ (ge_balance_negative_factor_proper_divisorquotientproductfirstimaginary) = S ge_signed_half_factor_proper_divisorquotientproductfirstimaginarydecode))) /\ ((ge_first_ip_factor_proper_divisorquotientproduct) + ge_balance_negative_factor_proper_divisorquotientproductfirstimaginary = (ge_first_in_factor_proper_divisorquotientproduct) + ge_balance_positive_factor_proper_divisorquotientproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_factor_proper_divisorquotientproductsecond ge_representation_imaginary_code_factor_proper_divisorquotientproductsecond. (((gr_quotient_factor_proper_divisorquotient) = ((ge_representation_real_code_factor_proper_divisorquotientproductsecond) + (ge_representation_imaginary_code_factor_proper_divisorquotientproductsecond)) * S ((ge_representation_real_code_factor_proper_divisorquotientproductsecond) + (ge_representation_imaginary_code_factor_proper_divisorquotientproductsecond)) + ((ge_representation_imaginary_code_factor_proper_divisorquotientproductsecond) + (ge_representation_imaginary_code_factor_proper_divisorquotientproductsecond))) /\ ((exists ge_balance_positive_factor_proper_divisorquotientproductsecondreal ge_balance_negative_factor_proper_divisorquotientproductsecondreal. (((((ge_representation_real_code_factor_proper_divisorquotientproductsecond) = 2 * (ge_balance_positive_factor_proper_divisorquotientproductsecondreal) /\ (ge_balance_negative_factor_proper_divisorquotientproductsecondreal) = 0) \/ exists ge_signed_half_factor_proper_divisorquotientproductsecondrealdecode. (((ge_representation_real_code_factor_proper_divisorquotientproductsecond) = 2 * ge_signed_half_factor_proper_divisorquotientproductsecondrealdecode + 1 /\ (ge_balance_positive_factor_proper_divisorquotientproductsecondreal) = 0) /\ (ge_balance_negative_factor_proper_divisorquotientproductsecondreal) = S ge_signed_half_factor_proper_divisorquotientproductsecondrealdecode))) /\ ((ge_second_rp_factor_proper_divisorquotientproduct) + ge_balance_negative_factor_proper_divisorquotientproductsecondreal = (ge_second_rn_factor_proper_divisorquotientproduct) + ge_balance_positive_factor_proper_divisorquotientproductsecondreal))) /\ (exists ge_balance_positive_factor_proper_divisorquotientproductsecondimaginary ge_balance_negative_factor_proper_divisorquotientproductsecondimaginary. (((((ge_representation_imaginary_code_factor_proper_divisorquotientproductsecond) = 2 * (ge_balance_positive_factor_proper_divisorquotientproductsecondimaginary) /\ (ge_balance_negative_factor_proper_divisorquotientproductsecondimaginary) = 0) \/ exists ge_signed_half_factor_proper_divisorquotientproductsecondimaginarydecode. (((ge_representation_imaginary_code_factor_proper_divisorquotientproductsecond) = 2 * ge_signed_half_factor_proper_divisorquotientproductsecondimaginarydecode + 1 /\ (ge_balance_positive_factor_proper_divisorquotientproductsecondimaginary) = 0) /\ (ge_balance_negative_factor_proper_divisorquotientproductsecondimaginary) = S ge_signed_half_factor_proper_divisorquotientproductsecondimaginarydecode))) /\ ((ge_second_ip_factor_proper_divisorquotientproduct) + ge_balance_negative_factor_proper_divisorquotientproductsecondimaginary = (ge_second_in_factor_proper_divisorquotientproduct) + ge_balance_positive_factor_proper_divisorquotientproductsecondimaginary)))))) /\ (exists ge_representation_real_code_factor_proper_divisorquotientproductoutput ge_representation_imaginary_code_factor_proper_divisorquotientproductoutput. (((z) = ((ge_representation_real_code_factor_proper_divisorquotientproductoutput) + (ge_representation_imaginary_code_factor_proper_divisorquotientproductoutput)) * S ((ge_representation_real_code_factor_proper_divisorquotientproductoutput) + (ge_representation_imaginary_code_factor_proper_divisorquotientproductoutput)) + ((ge_representation_imaginary_code_factor_proper_divisorquotientproductoutput) + (ge_representation_imaginary_code_factor_proper_divisorquotientproductoutput))) /\ ((exists ge_balance_positive_factor_proper_divisorquotientproductoutputreal ge_balance_negative_factor_proper_divisorquotientproductoutputreal. (((((ge_representation_real_code_factor_proper_divisorquotientproductoutput) = 2 * (ge_balance_positive_factor_proper_divisorquotientproductoutputreal) /\ (ge_balance_negative_factor_proper_divisorquotientproductoutputreal) = 0) \/ exists ge_signed_half_factor_proper_divisorquotientproductoutputrealdecode. (((ge_representation_real_code_factor_proper_divisorquotientproductoutput) = 2 * ge_signed_half_factor_proper_divisorquotientproductoutputrealdecode + 1 /\ (ge_balance_positive_factor_proper_divisorquotientproductoutputreal) = 0) /\ (ge_balance_negative_factor_proper_divisorquotientproductoutputreal) = S ge_signed_half_factor_proper_divisorquotientproductoutputrealdecode))) /\ ((((((((ge_first_rp_factor_proper_divisorquotientproduct) * (ge_second_rp_factor_proper_divisorquotientproduct))) + (((ge_first_rn_factor_proper_divisorquotientproduct) * (ge_second_rn_factor_proper_divisorquotientproduct))))) + (((((ge_first_ip_factor_proper_divisorquotientproduct) * (ge_second_in_factor_proper_divisorquotientproduct))) + (((ge_first_in_factor_proper_divisorquotientproduct) * (ge_second_ip_factor_proper_divisorquotientproduct))))))) + ge_balance_negative_factor_proper_divisorquotientproductoutputreal = (((((((ge_first_rp_factor_proper_divisorquotientproduct) * (ge_second_rn_factor_proper_divisorquotientproduct))) + (((ge_first_rn_factor_proper_divisorquotientproduct) * (ge_second_rp_factor_proper_divisorquotientproduct))))) + (((((ge_first_ip_factor_proper_divisorquotientproduct) * (ge_second_ip_factor_proper_divisorquotientproduct))) + (((ge_first_in_factor_proper_divisorquotientproduct) * (ge_second_in_factor_proper_divisorquotientproduct))))))) + ge_balance_positive_factor_proper_divisorquotientproductoutputreal))) /\ (exists ge_balance_positive_factor_proper_divisorquotientproductoutputimaginary ge_balance_negative_factor_proper_divisorquotientproductoutputimaginary. (((((ge_representation_imaginary_code_factor_proper_divisorquotientproductoutput) = 2 * (ge_balance_positive_factor_proper_divisorquotientproductoutputimaginary) /\ (ge_balance_negative_factor_proper_divisorquotientproductoutputimaginary) = 0) \/ exists ge_signed_half_factor_proper_divisorquotientproductoutputimaginarydecode. (((ge_representation_imaginary_code_factor_proper_divisorquotientproductoutput) = 2 * ge_signed_half_factor_proper_divisorquotientproductoutputimaginarydecode + 1 /\ (ge_balance_positive_factor_proper_divisorquotientproductoutputimaginary) = 0) /\ (ge_balance_negative_factor_proper_divisorquotientproductoutputimaginary) = S ge_signed_half_factor_proper_divisorquotientproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_factor_proper_divisorquotientproduct) * (ge_second_ip_factor_proper_divisorquotientproduct))) + (((ge_first_rn_factor_proper_divisorquotientproduct) * (ge_second_in_factor_proper_divisorquotientproduct))))) + (((((ge_first_ip_factor_proper_divisorquotientproduct) * (ge_second_rp_factor_proper_divisorquotientproduct))) + (((ge_first_in_factor_proper_divisorquotientproduct) * (ge_second_rn_factor_proper_divisorquotientproduct))))))) + ge_balance_negative_factor_proper_divisorquotientproductoutputimaginary = (((((((ge_first_rp_factor_proper_divisorquotientproduct) * (ge_second_in_factor_proper_divisorquotientproduct))) + (((ge_first_rn_factor_proper_divisorquotientproduct) * (ge_second_ip_factor_proper_divisorquotientproduct))))) + (((((ge_first_ip_factor_proper_divisorquotientproduct) * (ge_second_rn_factor_proper_divisorquotientproduct))) + (((ge_first_in_factor_proper_divisorquotientproduct) * (ge_second_rp_factor_proper_divisorquotientproduct))))))) + ge_balance_positive_factor_proper_divisorquotientproductoutputimaginary)))))))))) /\ (exists gr_proper_divisor_norm_factor_proper_divisor. ((exists ge_norm_rp_factor_proper_divisornorm ge_norm_rn_factor_proper_divisornorm ge_norm_ip_factor_proper_divisornorm ge_norm_in_factor_proper_divisornorm. ((exists ge_representation_real_code_factor_proper_divisornormrepresentation ge_representation_imaginary_code_factor_proper_divisornormrepresentation. (((a) = ((ge_representation_real_code_factor_proper_divisornormrepresentation) + (ge_representation_imaginary_code_factor_proper_divisornormrepresentation)) * S ((ge_representation_real_code_factor_proper_divisornormrepresentation) + (ge_representation_imaginary_code_factor_proper_divisornormrepresentation)) + ((ge_representation_imaginary_code_factor_proper_divisornormrepresentation) + (ge_representation_imaginary_code_factor_proper_divisornormrepresentation))) /\ ((exists ge_balance_positive_factor_proper_divisornormrepresentationreal ge_balance_negative_factor_proper_divisornormrepresentationreal. (((((ge_representation_real_code_factor_proper_divisornormrepresentation) = 2 * (ge_balance_positive_factor_proper_divisornormrepresentationreal) /\ (ge_balance_negative_factor_proper_divisornormrepresentationreal) = 0) \/ exists ge_signed_half_factor_proper_divisornormrepresentationrealdecode. (((ge_representation_real_code_factor_proper_divisornormrepresentation) = 2 * ge_signed_half_factor_proper_divisornormrepresentationrealdecode + 1 /\ (ge_balance_positive_factor_proper_divisornormrepresentationreal) = 0) /\ (ge_balance_negative_factor_proper_divisornormrepresentationreal) = S ge_signed_half_factor_proper_divisornormrepresentationrealdecode))) /\ ((ge_norm_rp_factor_proper_divisornorm) + ge_balance_negative_factor_proper_divisornormrepresentationreal = (ge_norm_rn_factor_proper_divisornorm) + ge_balance_positive_factor_proper_divisornormrepresentationreal))) /\ (exists ge_balance_positive_factor_proper_divisornormrepresentationimaginary ge_balance_negative_factor_proper_divisornormrepresentationimaginary. (((((ge_representation_imaginary_code_factor_proper_divisornormrepresentation) = 2 * (ge_balance_positive_factor_proper_divisornormrepresentationimaginary) /\ (ge_balance_negative_factor_proper_divisornormrepresentationimaginary) = 0) \/ exists ge_signed_half_factor_proper_divisornormrepresentationimaginarydecode. (((ge_representation_imaginary_code_factor_proper_divisornormrepresentation) = 2 * ge_signed_half_factor_proper_divisornormrepresentationimaginarydecode + 1 /\ (ge_balance_positive_factor_proper_divisornormrepresentationimaginary) = 0) /\ (ge_balance_negative_factor_proper_divisornormrepresentationimaginary) = S ge_signed_half_factor_proper_divisornormrepresentationimaginarydecode))) /\ ((ge_norm_ip_factor_proper_divisornorm) + ge_balance_negative_factor_proper_divisornormrepresentationimaginary = (ge_norm_in_factor_proper_divisornorm) + ge_balance_positive_factor_proper_divisornormrepresentationimaginary)))))) /\ (exists ge_real_square_factor_proper_divisornormsquare ge_imaginary_square_factor_proper_divisornormsquare. ((((((ge_norm_rp_factor_proper_divisornorm) * (ge_norm_rp_factor_proper_divisornorm))) + (((ge_norm_rn_factor_proper_divisornorm) * (ge_norm_rn_factor_proper_divisornorm)))) = ((ge_real_square_factor_proper_divisornormsquare) + (((((ge_norm_rp_factor_proper_divisornorm) * (ge_norm_rn_factor_proper_divisornorm))) + (((ge_norm_rn_factor_proper_divisornorm) * (ge_norm_rp_factor_proper_divisornorm))))))) /\ ((((((ge_norm_ip_factor_proper_divisornorm) * (ge_norm_ip_factor_proper_divisornorm))) + (((ge_norm_in_factor_proper_divisornorm) * (ge_norm_in_factor_proper_divisornorm)))) = ((ge_imaginary_square_factor_proper_divisornormsquare) + (((((ge_norm_ip_factor_proper_divisornorm) * (ge_norm_in_factor_proper_divisornorm))) + (((ge_norm_in_factor_proper_divisornorm) * (ge_norm_ip_factor_proper_divisornorm))))))) /\ ((gr_proper_divisor_norm_factor_proper_divisor) = ge_real_square_factor_proper_divisornormsquare + ge_imaginary_square_factor_proper_divisornormsquare)))))) /\ (exists ge_gap_factor_proper_divisorstrict. ge_gap_factor_proper_divisorstrict + S (gr_proper_divisor_norm_factor_proper_divisor) = (N)))))))

Constructive proof overview

Generated structural guide

Every actual product of two nonunits supplies a genuine proper-norm divisor, so the finite search cannot miss a reducible nonzero value.

The unchanged tactic script uses 7 declared prerequisites and contains 71 exact native proof lines.

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

Proof neighborhood

Direct dependencies

gaussian_norm_exists Alpha theorem; checked-use authorized GF0007 gaussian_multiply_input_left_valid GF0008 gaussian_multiply_input_right_valid gaussian_norm_functional Alpha theorem; checked-use authorized gaussian_norm_multiply Alpha theorem; checked-use authorized GF007A gaussian_search_norm_factors_strict GF0016 gaussian_norm_nonzero

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

71 script commands · 18 reading checkpoints · 4 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 (4)

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–9

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

  1. L1
    intro z
  2. L2
    intro N
  3. L3
    intro a
  4. L4
    intro b
  5. L5
    intro hn
  6. L6
    intro hm
  7. L7
    intro hz
  8. L8
    intro hu
  9. L9
    intro hv
02Establish hAL10–17

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

  1. L10
    have hA : ∃ A. GNorm(a,A)Definitions: GNorm
  2. L11
    specialize gaussian_norm_exists (a)
  3. L12
    apply gaussian_norm_exists
  4. L13
    specialize gaussian_multiply_input_left_valid (a)
  5. L14
    specialize gaussian_multiply_input_left_valid (b)
  6. L15
    specialize gaussian_multiply_input_left_valid (z)
  7. L16
    apply gaussian_multiply_input_left_valid
  8. L17
    exact hm
03Separate the logical casesL18–18

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

  1. L18
    cases hA
04Establish hBL19–26

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

  1. L19
    have hB : ∃ B. GNorm(b,B)Definitions: GNorm
  2. L20
    specialize gaussian_norm_exists (b)
  3. L21
    apply gaussian_norm_exists
  4. L22
    specialize gaussian_multiply_input_right_valid (a)
  5. L23
    specialize gaussian_multiply_input_right_valid (b)
  6. L24
    specialize gaussian_multiply_input_right_valid (z)
  7. L25
    apply gaussian_multiply_input_right_valid
  8. L26
    exact hm
05Separate the logical casesL27–27

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

  1. L27
    cases hB
06Establish heqL28–37

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

  1. L28
    have heq : N=x*x1
  2. L29
    specialize gaussian_norm_functional (z)
  3. L30
    specialize gaussian_norm_functional (N)
  4. L31
    specialize gaussian_norm_functional (x*x1)
  5. L32
    apply gaussian_norm_functional
  6. L33
    exact hn
  7. L34
    specialize gaussian_norm_multiply (a)
  8. L35
    specialize gaussian_norm_multiply (b)
  9. L36
    specialize gaussian_norm_multiply (z)
  10. L37
    specialize gaussian_norm_multiply (x)
07Use earlier factsL38–42

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

  1. L38
    specialize gaussian_norm_multiply (x1)
  2. L39
    apply gaussian_norm_multiply
  3. L40
    exact hA_witness
  4. L41
    exact hB_witness
  5. L42
    exact hm
08Establish hstrictL43–52

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian search norm factors strict.

  1. L43
    have hstrict : ((exists ge_gap_factor_strict_first. ge_gap_factor_strict_first + S (x) = (N)) /\ (exists ge_gap_factor_strict_second. ge_gap_factor_strict_second + S (x1) = (N)))
  2. L44
    specialize gaussian_search_norm_factors_strict (a)
  3. L45
    specialize gaussian_search_norm_factors_strict (b)
  4. L46
    specialize gaussian_search_norm_factors_strict (x)
  5. L47
    specialize gaussian_search_norm_factors_strict (x1)
  6. L48
    specialize gaussian_search_norm_factors_strict (N)
  7. L49
    apply gaussian_search_norm_factors_strict
  8. L50
    exact hA_witness
  9. L51
    exact hB_witness
  10. L52
    exact heq
09Fix variables and assumptionsL53–53

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

  1. L53
    intro hzero
10Use earlier factsL54–61

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

  1. L54
    specialize gaussian_norm_nonzero (z)
  2. L55
    specialize gaussian_norm_nonzero (N)
  3. L56
    apply gaussian_norm_nonzero
  4. L57
    exact hn
  5. L58
    exact hz
  6. L59
    exact hzero
  7. L60
    exact hu
  8. L61
    exact hv
11Separate the logical casesL62–63

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

  1. L62
    cases hstrict
  2. L63
    split
12Use earlier factsL64–64

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

  1. L64
    exact hu
13Separate the logical casesL65–65

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

  1. L65
    split
14Construct an explicit witnessL66–66

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

  1. L66
    exists (b)
15Use earlier factsL67–67

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

  1. L67
    exact hm
16Construct an explicit witnessL68–68

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

  1. L68
    exists (x)
17Separate the logical casesL69–69

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

  1. L69
    split
18Use earlier factsL70–71

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

  1. L70
    exact hA_witness
  2. L71
    exact hstrict_left

Library-wide reading audit

Original exact command ledger · 71 lines
  1. 0001intro z
  2. 0002intro N
  3. 0003intro a
  4. 0004intro b
  5. 0005intro hn
  6. 0006intro hm
  7. 0007intro hz
  8. 0008intro hu
  9. 0009intro hv
  10. 0010have hA : exists A. (exists ge_norm_rp_factor_first_norm ge_norm_rn_factor_first_norm ge_norm_ip_factor_first_norm ge_norm_in_factor_first_norm. ((exists ge_representation_real_code_factor_first_normrepresentation ge_representation_imaginary_code_factor_first_normrepresentation. (((a) = ((ge_representation_real_code_factor_first_normrepresentation) + (ge_representation_imaginary_code_factor_first_normrepresentation)) * S ((ge_representation_real_code_factor_first_normrepresentation) + (ge_representation_imaginary_code_factor_first_normrepresentation)) + ((ge_representation_imaginary_code_factor_first_normrepresentation) + (ge_representation_imaginary_code_factor_first_normrepresentation))) /\ ((exists ge_balance_positive_factor_first_normrepresentationreal ge_balance_negative_factor_first_normrepresentationreal. (((((ge_representation_real_code_factor_first_normrepresentation) = 2 * (ge_balance_positive_factor_first_normrepresentationreal) /\ (ge_balance_negative_factor_first_normrepresentationreal) = 0) \/ exists ge_signed_half_factor_first_normrepresentationrealdecode. (((ge_representation_real_code_factor_first_normrepresentation) = 2 * ge_signed_half_factor_first_normrepresentationrealdecode + 1 /\ (ge_balance_positive_factor_first_normrepresentationreal) = 0) /\ (ge_balance_negative_factor_first_normrepresentationreal) = S ge_signed_half_factor_first_normrepresentationrealdecode))) /\ ((ge_norm_rp_factor_first_norm) + ge_balance_negative_factor_first_normrepresentationreal = (ge_norm_rn_factor_first_norm) + ge_balance_positive_factor_first_normrepresentationreal))) /\ (exists ge_balance_positive_factor_first_normrepresentationimaginary ge_balance_negative_factor_first_normrepresentationimaginary. (((((ge_representation_imaginary_code_factor_first_normrepresentation) = 2 * (ge_balance_positive_factor_first_normrepresentationimaginary) /\ (ge_balance_negative_factor_first_normrepresentationimaginary) = 0) \/ exists ge_signed_half_factor_first_normrepresentationimaginarydecode. (((ge_representation_imaginary_code_factor_first_normrepresentation) = 2 * ge_signed_half_factor_first_normrepresentationimaginarydecode + 1 /\ (ge_balance_positive_factor_first_normrepresentationimaginary) = 0) /\ (ge_balance_negative_factor_first_normrepresentationimaginary) = S ge_signed_half_factor_first_normrepresentationimaginarydecode))) /\ ((ge_norm_ip_factor_first_norm) + ge_balance_negative_factor_first_normrepresentationimaginary = (ge_norm_in_factor_first_norm) + ge_balance_positive_factor_first_normrepresentationimaginary)))))) /\ (exists ge_real_square_factor_first_normsquare ge_imaginary_square_factor_first_normsquare. ((((((ge_norm_rp_factor_first_norm) * (ge_norm_rp_factor_first_norm))) + (((ge_norm_rn_factor_first_norm) * (ge_norm_rn_factor_first_norm)))) = ((ge_real_square_factor_first_normsquare) + (((((ge_norm_rp_factor_first_norm) * (ge_norm_rn_factor_first_norm))) + (((ge_norm_rn_factor_first_norm) * (ge_norm_rp_factor_first_norm))))))) /\ ((((((ge_norm_ip_factor_first_norm) * (ge_norm_ip_factor_first_norm))) + (((ge_norm_in_factor_first_norm) * (ge_norm_in_factor_first_norm)))) = ((ge_imaginary_square_factor_first_normsquare) + (((((ge_norm_ip_factor_first_norm) * (ge_norm_in_factor_first_norm))) + (((ge_norm_in_factor_first_norm) * (ge_norm_ip_factor_first_norm))))))) /\ ((A) = ge_real_square_factor_first_normsquare + ge_imaginary_square_factor_first_normsquare))))))
  11. 0011specialize gaussian_norm_exists (a)
  12. 0012apply gaussian_norm_exists
  13. 0013specialize gaussian_multiply_input_left_valid (a)
  14. 0014specialize gaussian_multiply_input_left_valid (b)
  15. 0015specialize gaussian_multiply_input_left_valid (z)
  16. 0016apply gaussian_multiply_input_left_valid
  17. 0017exact hm
  18. 0018cases hA
  19. 0019have hB : exists B. (exists ge_norm_rp_factor_second_norm ge_norm_rn_factor_second_norm ge_norm_ip_factor_second_norm ge_norm_in_factor_second_norm. ((exists ge_representation_real_code_factor_second_normrepresentation ge_representation_imaginary_code_factor_second_normrepresentation. (((b) = ((ge_representation_real_code_factor_second_normrepresentation) + (ge_representation_imaginary_code_factor_second_normrepresentation)) * S ((ge_representation_real_code_factor_second_normrepresentation) + (ge_representation_imaginary_code_factor_second_normrepresentation)) + ((ge_representation_imaginary_code_factor_second_normrepresentation) + (ge_representation_imaginary_code_factor_second_normrepresentation))) /\ ((exists ge_balance_positive_factor_second_normrepresentationreal ge_balance_negative_factor_second_normrepresentationreal. (((((ge_representation_real_code_factor_second_normrepresentation) = 2 * (ge_balance_positive_factor_second_normrepresentationreal) /\ (ge_balance_negative_factor_second_normrepresentationreal) = 0) \/ exists ge_signed_half_factor_second_normrepresentationrealdecode. (((ge_representation_real_code_factor_second_normrepresentation) = 2 * ge_signed_half_factor_second_normrepresentationrealdecode + 1 /\ (ge_balance_positive_factor_second_normrepresentationreal) = 0) /\ (ge_balance_negative_factor_second_normrepresentationreal) = S ge_signed_half_factor_second_normrepresentationrealdecode))) /\ ((ge_norm_rp_factor_second_norm) + ge_balance_negative_factor_second_normrepresentationreal = (ge_norm_rn_factor_second_norm) + ge_balance_positive_factor_second_normrepresentationreal))) /\ (exists ge_balance_positive_factor_second_normrepresentationimaginary ge_balance_negative_factor_second_normrepresentationimaginary. (((((ge_representation_imaginary_code_factor_second_normrepresentation) = 2 * (ge_balance_positive_factor_second_normrepresentationimaginary) /\ (ge_balance_negative_factor_second_normrepresentationimaginary) = 0) \/ exists ge_signed_half_factor_second_normrepresentationimaginarydecode. (((ge_representation_imaginary_code_factor_second_normrepresentation) = 2 * ge_signed_half_factor_second_normrepresentationimaginarydecode + 1 /\ (ge_balance_positive_factor_second_normrepresentationimaginary) = 0) /\ (ge_balance_negative_factor_second_normrepresentationimaginary) = S ge_signed_half_factor_second_normrepresentationimaginarydecode))) /\ ((ge_norm_ip_factor_second_norm) + ge_balance_negative_factor_second_normrepresentationimaginary = (ge_norm_in_factor_second_norm) + ge_balance_positive_factor_second_normrepresentationimaginary)))))) /\ (exists ge_real_square_factor_second_normsquare ge_imaginary_square_factor_second_normsquare. ((((((ge_norm_rp_factor_second_norm) * (ge_norm_rp_factor_second_norm))) + (((ge_norm_rn_factor_second_norm) * (ge_norm_rn_factor_second_norm)))) = ((ge_real_square_factor_second_normsquare) + (((((ge_norm_rp_factor_second_norm) * (ge_norm_rn_factor_second_norm))) + (((ge_norm_rn_factor_second_norm) * (ge_norm_rp_factor_second_norm))))))) /\ ((((((ge_norm_ip_factor_second_norm) * (ge_norm_ip_factor_second_norm))) + (((ge_norm_in_factor_second_norm) * (ge_norm_in_factor_second_norm)))) = ((ge_imaginary_square_factor_second_normsquare) + (((((ge_norm_ip_factor_second_norm) * (ge_norm_in_factor_second_norm))) + (((ge_norm_in_factor_second_norm) * (ge_norm_ip_factor_second_norm))))))) /\ ((B) = ge_real_square_factor_second_normsquare + ge_imaginary_square_factor_second_normsquare))))))
  20. 0020specialize gaussian_norm_exists (b)
  21. 0021apply gaussian_norm_exists
  22. 0022specialize gaussian_multiply_input_right_valid (a)
  23. 0023specialize gaussian_multiply_input_right_valid (b)
  24. 0024specialize gaussian_multiply_input_right_valid (z)
  25. 0025apply gaussian_multiply_input_right_valid
  26. 0026exact hm
  27. 0027cases hB
  28. 0028have heq : N=x*x1
  29. 0029specialize gaussian_norm_functional (z)
  30. 0030specialize gaussian_norm_functional (N)
  31. 0031specialize gaussian_norm_functional (x*x1)
  32. 0032apply gaussian_norm_functional
  33. 0033exact hn
  34. 0034specialize gaussian_norm_multiply (a)
  35. 0035specialize gaussian_norm_multiply (b)
  36. 0036specialize gaussian_norm_multiply (z)
  37. 0037specialize gaussian_norm_multiply (x)
  38. 0038specialize gaussian_norm_multiply (x1)
  39. 0039apply gaussian_norm_multiply
  40. 0040exact hA_witness
  41. 0041exact hB_witness
  42. 0042exact hm
  43. 0043have hstrict : ((exists ge_gap_factor_strict_first. ge_gap_factor_strict_first + S (x) = (N)) /\ (exists ge_gap_factor_strict_second. ge_gap_factor_strict_second + S (x1) = (N)))
  44. 0044specialize gaussian_search_norm_factors_strict (a)
  45. 0045specialize gaussian_search_norm_factors_strict (b)
  46. 0046specialize gaussian_search_norm_factors_strict (x)
  47. 0047specialize gaussian_search_norm_factors_strict (x1)
  48. 0048specialize gaussian_search_norm_factors_strict (N)
  49. 0049apply gaussian_search_norm_factors_strict
  50. 0050exact hA_witness
  51. 0051exact hB_witness
  52. 0052exact heq
  53. 0053intro hzero
  54. 0054specialize gaussian_norm_nonzero (z)
  55. 0055specialize gaussian_norm_nonzero (N)
  56. 0056apply gaussian_norm_nonzero
  57. 0057exact hn
  58. 0058exact hz
  59. 0059exact hzero
  60. 0060exact hu
  61. 0061exact hv
  62. 0062cases hstrict
  63. 0063split
  64. 0064exact hu
  65. 0065split
  66. 0066exists (b)
  67. 0067exact hm
  68. 0068exists (x)
  69. 0069split
  70. 0070exact hA_witness
  71. 0071exact hstrict_left