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 d z D N. (exists gr_quotient_quotient_divisor. (exists ge_first_rp_quotient_divisorproduct ge_first_rn_quotient_divisorproduct ge_first_ip_quotient_divisorproduct ge_first_in_quotient_divisorproduct ge_second_rp_quotient_divisorproduct ge_second_rn_quotient_divisorproduct ge_second_ip_quotient_divisorproduct ge_second_in_quotient_divisorproduct. ((exists ge_representation_real_code_quotient_divisorproductfirst ge_representation_imaginary_code_quotient_divisorproductfirst. (((d) = ((ge_representation_real_code_quotient_divisorproductfirst) + (ge_representation_imaginary_code_quotient_divisorproductfirst)) * S ((ge_representation_real_code_quotient_divisorproductfirst) + (ge_representation_imaginary_code_quotient_divisorproductfirst)) + ((ge_representation_imaginary_code_quotient_divisorproductfirst) + (ge_representation_imaginary_code_quotient_divisorproductfirst))) /\ ((exists ge_balance_positive_quotient_divisorproductfirstreal ge_balance_negative_quotient_divisorproductfirstreal. (((((ge_representation_real_code_quotient_divisorproductfirst) = 2 * (ge_balance_positive_quotient_divisorproductfirstreal) /\ (ge_balance_negative_quotient_divisorproductfirstreal) = 0) \/ exists ge_signed_half_quotient_divisorproductfirstrealdecode. (((ge_representation_real_code_quotient_divisorproductfirst) = 2 * ge_signed_half_quotient_divisorproductfirstrealdecode + 1 /\ (ge_balance_positive_quotient_divisorproductfirstreal) = 0) /\ (ge_balance_negative_quotient_divisorproductfirstreal) = S ge_signed_half_quotient_divisorproductfirstrealdecode))) /\ ((ge_first_rp_quotient_divisorproduct) + ge_balance_negative_quotient_divisorproductfirstreal = (ge_first_rn_quotient_divisorproduct) + ge_balance_positive_quotient_divisorproductfirstreal))) /\ (exists ge_balance_positive_quotient_divisorproductfirstimaginary ge_balance_negative_quotient_divisorproductfirstimaginary. (((((ge_representation_imaginary_code_quotient_divisorproductfirst) = 2 * (ge_balance_positive_quotient_divisorproductfirstimaginary) /\ (ge_balance_negative_quotient_divisorproductfirstimaginary) = 0) \/ exists ge_signed_half_quotient_divisorproductfirstimaginarydecode. (((ge_representation_imaginary_code_quotient_divisorproductfirst) = 2 * ge_signed_half_quotient_divisorproductfirstimaginarydecode + 1 /\ (ge_balance_positive_quotient_divisorproductfirstimaginary) = 0) /\ (ge_balance_negative_quotient_divisorproductfirstimaginary) = S ge_signed_half_quotient_divisorproductfirstimaginarydecode))) /\ ((ge_first_ip_quotient_divisorproduct) + ge_balance_negative_quotient_divisorproductfirstimaginary = (ge_first_in_quotient_divisorproduct) + ge_balance_positive_quotient_divisorproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_quotient_divisorproductsecond ge_representation_imaginary_code_quotient_divisorproductsecond. (((gr_quotient_quotient_divisor) = ((ge_representation_real_code_quotient_divisorproductsecond) + (ge_representation_imaginary_code_quotient_divisorproductsecond)) * S ((ge_representation_real_code_quotient_divisorproductsecond) + (ge_representation_imaginary_code_quotient_divisorproductsecond)) + ((ge_representation_imaginary_code_quotient_divisorproductsecond) + (ge_representation_imaginary_code_quotient_divisorproductsecond))) /\ ((exists ge_balance_positive_quotient_divisorproductsecondreal ge_balance_negative_quotient_divisorproductsecondreal. (((((ge_representation_real_code_quotient_divisorproductsecond) = 2 * (ge_balance_positive_quotient_divisorproductsecondreal) /\ (ge_balance_negative_quotient_divisorproductsecondreal) = 0) \/ exists ge_signed_half_quotient_divisorproductsecondrealdecode. (((ge_representation_real_code_quotient_divisorproductsecond) = 2 * ge_signed_half_quotient_divisorproductsecondrealdecode + 1 /\ (ge_balance_positive_quotient_divisorproductsecondreal) = 0) /\ (ge_balance_negative_quotient_divisorproductsecondreal) = S ge_signed_half_quotient_divisorproductsecondrealdecode))) /\ ((ge_second_rp_quotient_divisorproduct) + ge_balance_negative_quotient_divisorproductsecondreal = (ge_second_rn_quotient_divisorproduct) + ge_balance_positive_quotient_divisorproductsecondreal))) /\ (exists ge_balance_positive_quotient_divisorproductsecondimaginary ge_balance_negative_quotient_divisorproductsecondimaginary. (((((ge_representation_imaginary_code_quotient_divisorproductsecond) = 2 * (ge_balance_positive_quotient_divisorproductsecondimaginary) /\ (ge_balance_negative_quotient_divisorproductsecondimaginary) = 0) \/ exists ge_signed_half_quotient_divisorproductsecondimaginarydecode. (((ge_representation_imaginary_code_quotient_divisorproductsecond) = 2 * ge_signed_half_quotient_divisorproductsecondimaginarydecode + 1 /\ (ge_balance_positive_quotient_divisorproductsecondimaginary) = 0) /\ (ge_balance_negative_quotient_divisorproductsecondimaginary) = S ge_signed_half_quotient_divisorproductsecondimaginarydecode))) /\ ((ge_second_ip_quotient_divisorproduct) + ge_balance_negative_quotient_divisorproductsecondimaginary = (ge_second_in_quotient_divisorproduct) + ge_balance_positive_quotient_divisorproductsecondimaginary)))))) /\ (exists ge_representation_real_code_quotient_divisorproductoutput ge_representation_imaginary_code_quotient_divisorproductoutput. (((z) = ((ge_representation_real_code_quotient_divisorproductoutput) + (ge_representation_imaginary_code_quotient_divisorproductoutput)) * S ((ge_representation_real_code_quotient_divisorproductoutput) + (ge_representation_imaginary_code_quotient_divisorproductoutput)) + ((ge_representation_imaginary_code_quotient_divisorproductoutput) + (ge_representation_imaginary_code_quotient_divisorproductoutput))) /\ ((exists ge_balance_positive_quotient_divisorproductoutputreal ge_balance_negative_quotient_divisorproductoutputreal. (((((ge_representation_real_code_quotient_divisorproductoutput) = 2 * (ge_balance_positive_quotient_divisorproductoutputreal) /\ (ge_balance_negative_quotient_divisorproductoutputreal) = 0) \/ exists ge_signed_half_quotient_divisorproductoutputrealdecode. (((ge_representation_real_code_quotient_divisorproductoutput) = 2 * ge_signed_half_quotient_divisorproductoutputrealdecode + 1 /\ (ge_balance_positive_quotient_divisorproductoutputreal) = 0) /\ (ge_balance_negative_quotient_divisorproductoutputreal) = S ge_signed_half_quotient_divisorproductoutputrealdecode))) /\ ((((((((ge_first_rp_quotient_divisorproduct) * (ge_second_rp_quotient_divisorproduct))) + (((ge_first_rn_quotient_divisorproduct) * (ge_second_rn_quotient_divisorproduct))))) + (((((ge_first_ip_quotient_divisorproduct) * (ge_second_in_quotient_divisorproduct))) + (((ge_first_in_quotient_divisorproduct) * (ge_second_ip_quotient_divisorproduct))))))) + ge_balance_negative_quotient_divisorproductoutputreal = (((((((ge_first_rp_quotient_divisorproduct) * (ge_second_rn_quotient_divisorproduct))) + (((ge_first_rn_quotient_divisorproduct) * (ge_second_rp_quotient_divisorproduct))))) + (((((ge_first_ip_quotient_divisorproduct) * (ge_second_ip_quotient_divisorproduct))) + (((ge_first_in_quotient_divisorproduct) * (ge_second_in_quotient_divisorproduct))))))) + ge_balance_positive_quotient_divisorproductoutputreal))) /\ (exists ge_balance_positive_quotient_divisorproductoutputimaginary ge_balance_negative_quotient_divisorproductoutputimaginary. (((((ge_representation_imaginary_code_quotient_divisorproductoutput) = 2 * (ge_balance_positive_quotient_divisorproductoutputimaginary) /\ (ge_balance_negative_quotient_divisorproductoutputimaginary) = 0) \/ exists ge_signed_half_quotient_divisorproductoutputimaginarydecode. (((ge_representation_imaginary_code_quotient_divisorproductoutput) = 2 * ge_signed_half_quotient_divisorproductoutputimaginarydecode + 1 /\ (ge_balance_positive_quotient_divisorproductoutputimaginary) = 0) /\ (ge_balance_negative_quotient_divisorproductoutputimaginary) = S ge_signed_half_quotient_divisorproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_quotient_divisorproduct) * (ge_second_ip_quotient_divisorproduct))) + (((ge_first_rn_quotient_divisorproduct) * (ge_second_in_quotient_divisorproduct))))) + (((((ge_first_ip_quotient_divisorproduct) * (ge_second_rp_quotient_divisorproduct))) + (((ge_first_in_quotient_divisorproduct) * (ge_second_rn_quotient_divisorproduct))))))) + ge_balance_negative_quotient_divisorproductoutputimaginary = (((((((ge_first_rp_quotient_divisorproduct) * (ge_second_in_quotient_divisorproduct))) + (((ge_first_rn_quotient_divisorproduct) * (ge_second_ip_quotient_divisorproduct))))) + (((((ge_first_ip_quotient_divisorproduct) * (ge_second_rn_quotient_divisorproduct))) + (((ge_first_in_quotient_divisorproduct) * (ge_second_rp_quotient_divisorproduct))))))) + ge_balance_positive_quotient_divisorproductoutputimaginary)))))))))) -> (exists ge_norm_rp_quotient_divisor_norm ge_norm_rn_quotient_divisor_norm ge_norm_ip_quotient_divisor_norm ge_norm_in_quotient_divisor_norm. ((exists ge_representation_real_code_quotient_divisor_normrepresentation ge_representation_imaginary_code_quotient_divisor_normrepresentation. (((d) = ((ge_representation_real_code_quotient_divisor_normrepresentation) + (ge_representation_imaginary_code_quotient_divisor_normrepresentation)) * S ((ge_representation_real_code_quotient_divisor_normrepresentation) + (ge_representation_imaginary_code_quotient_divisor_normrepresentation)) + ((ge_representation_imaginary_code_quotient_divisor_normrepresentation) + (ge_representation_imaginary_code_quotient_divisor_normrepresentation))) /\ ((exists ge_balance_positive_quotient_divisor_normrepresentationreal ge_balance_negative_quotient_divisor_normrepresentationreal. (((((ge_representation_real_code_quotient_divisor_normrepresentation) = 2 * (ge_balance_positive_quotient_divisor_normrepresentationreal) /\ (ge_balance_negative_quotient_divisor_normrepresentationreal) = 0) \/ exists ge_signed_half_quotient_divisor_normrepresentationrealdecode. (((ge_representation_real_code_quotient_divisor_normrepresentation) = 2 * ge_signed_half_quotient_divisor_normrepresentationrealdecode + 1 /\ (ge_balance_positive_quotient_divisor_normrepresentationreal) = 0) /\ (ge_balance_negative_quotient_divisor_normrepresentationreal) = S ge_signed_half_quotient_divisor_normrepresentationrealdecode))) /\ ((ge_norm_rp_quotient_divisor_norm) + ge_balance_negative_quotient_divisor_normrepresentationreal = (ge_norm_rn_quotient_divisor_norm) + ge_balance_positive_quotient_divisor_normrepresentationreal))) /\ (exists ge_balance_positive_quotient_divisor_normrepresentationimaginary ge_balance_negative_quotient_divisor_normrepresentationimaginary. (((((ge_representation_imaginary_code_quotient_divisor_normrepresentation) = 2 * (ge_balance_positive_quotient_divisor_normrepresentationimaginary) /\ (ge_balance_negative_quotient_divisor_normrepresentationimaginary) = 0) \/ exists ge_signed_half_quotient_divisor_normrepresentationimaginarydecode. (((ge_representation_imaginary_code_quotient_divisor_normrepresentation) = 2 * ge_signed_half_quotient_divisor_normrepresentationimaginarydecode + 1 /\ (ge_balance_positive_quotient_divisor_normrepresentationimaginary) = 0) /\ (ge_balance_negative_quotient_divisor_normrepresentationimaginary) = S ge_signed_half_quotient_divisor_normrepresentationimaginarydecode))) /\ ((ge_norm_ip_quotient_divisor_norm) + ge_balance_negative_quotient_divisor_normrepresentationimaginary = (ge_norm_in_quotient_divisor_norm) + ge_balance_positive_quotient_divisor_normrepresentationimaginary)))))) /\ (exists ge_real_square_quotient_divisor_normsquare ge_imaginary_square_quotient_divisor_normsquare. ((((((ge_norm_rp_quotient_divisor_norm) * (ge_norm_rp_quotient_divisor_norm))) + (((ge_norm_rn_quotient_divisor_norm) * (ge_norm_rn_quotient_divisor_norm)))) = ((ge_real_square_quotient_divisor_normsquare) + (((((ge_norm_rp_quotient_divisor_norm) * (ge_norm_rn_quotient_divisor_norm))) + (((ge_norm_rn_quotient_divisor_norm) * (ge_norm_rp_quotient_divisor_norm))))))) /\ ((((((ge_norm_ip_quotient_divisor_norm) * (ge_norm_ip_quotient_divisor_norm))) + (((ge_norm_in_quotient_divisor_norm) * (ge_norm_in_quotient_divisor_norm)))) = ((ge_imaginary_square_quotient_divisor_normsquare) + (((((ge_norm_ip_quotient_divisor_norm) * (ge_norm_in_quotient_divisor_norm))) + (((ge_norm_in_quotient_divisor_norm) * (ge_norm_ip_quotient_divisor_norm))))))) /\ ((D) = ge_real_square_quotient_divisor_normsquare + ge_imaginary_square_quotient_divisor_normsquare)))))) -> (exists ge_norm_rp_quotient_total_norm ge_norm_rn_quotient_total_norm ge_norm_ip_quotient_total_norm ge_norm_in_quotient_total_norm. ((exists ge_representation_real_code_quotient_total_normrepresentation ge_representation_imaginary_code_quotient_total_normrepresentation. (((z) = ((ge_representation_real_code_quotient_total_normrepresentation) + (ge_representation_imaginary_code_quotient_total_normrepresentation)) * S ((ge_representation_real_code_quotient_total_normrepresentation) + (ge_representation_imaginary_code_quotient_total_normrepresentation)) + ((ge_representation_imaginary_code_quotient_total_normrepresentation) + (ge_representation_imaginary_code_quotient_total_normrepresentation))) /\ ((exists ge_balance_positive_quotient_total_normrepresentationreal ge_balance_negative_quotient_total_normrepresentationreal. (((((ge_representation_real_code_quotient_total_normrepresentation) = 2 * (ge_balance_positive_quotient_total_normrepresentationreal) /\ (ge_balance_negative_quotient_total_normrepresentationreal) = 0) \/ exists ge_signed_half_quotient_total_normrepresentationrealdecode. (((ge_representation_real_code_quotient_total_normrepresentation) = 2 * ge_signed_half_quotient_total_normrepresentationrealdecode + 1 /\ (ge_balance_positive_quotient_total_normrepresentationreal) = 0) /\ (ge_balance_negative_quotient_total_normrepresentationreal) = S ge_signed_half_quotient_total_normrepresentationrealdecode))) /\ ((ge_norm_rp_quotient_total_norm) + ge_balance_negative_quotient_total_normrepresentationreal = (ge_norm_rn_quotient_total_norm) + ge_balance_positive_quotient_total_normrepresentationreal))) /\ (exists ge_balance_positive_quotient_total_normrepresentationimaginary ge_balance_negative_quotient_total_normrepresentationimaginary. (((((ge_representation_imaginary_code_quotient_total_normrepresentation) = 2 * (ge_balance_positive_quotient_total_normrepresentationimaginary) /\ (ge_balance_negative_quotient_total_normrepresentationimaginary) = 0) \/ exists ge_signed_half_quotient_total_normrepresentationimaginarydecode. (((ge_representation_imaginary_code_quotient_total_normrepresentation) = 2 * ge_signed_half_quotient_total_normrepresentationimaginarydecode + 1 /\ (ge_balance_positive_quotient_total_normrepresentationimaginary) = 0) /\ (ge_balance_negative_quotient_total_normrepresentationimaginary) = S ge_signed_half_quotient_total_normrepresentationimaginarydecode))) /\ ((ge_norm_ip_quotient_total_norm) + ge_balance_negative_quotient_total_normrepresentationimaginary = (ge_norm_in_quotient_total_norm) + ge_balance_positive_quotient_total_normrepresentationimaginary)))))) /\ (exists ge_real_square_quotient_total_normsquare ge_imaginary_square_quotient_total_normsquare. ((((((ge_norm_rp_quotient_total_norm) * (ge_norm_rp_quotient_total_norm))) + (((ge_norm_rn_quotient_total_norm) * (ge_norm_rn_quotient_total_norm)))) = ((ge_real_square_quotient_total_normsquare) + (((((ge_norm_rp_quotient_total_norm) * (ge_norm_rn_quotient_total_norm))) + (((ge_norm_rn_quotient_total_norm) * (ge_norm_rp_quotient_total_norm))))))) /\ ((((((ge_norm_ip_quotient_total_norm) * (ge_norm_ip_quotient_total_norm))) + (((ge_norm_in_quotient_total_norm) * (ge_norm_in_quotient_total_norm)))) = ((ge_imaginary_square_quotient_total_normsquare) + (((((ge_norm_ip_quotient_total_norm) * (ge_norm_in_quotient_total_norm))) + (((ge_norm_in_quotient_total_norm) * (ge_norm_ip_quotient_total_norm))))))) /\ ((N) = ge_real_square_quotient_total_normsquare + ge_imaginary_square_quotient_total_normsquare)))))) -> ~(z=0) -> ~(exists gr_inverse_quotient_nonunit. (exists ge_first_rp_quotient_nonunitidentity ge_first_rn_quotient_nonunitidentity ge_first_ip_quotient_nonunitidentity ge_first_in_quotient_nonunitidentity ge_second_rp_quotient_nonunitidentity ge_second_rn_quotient_nonunitidentity ge_second_ip_quotient_nonunitidentity ge_second_in_quotient_nonunitidentity. ((exists ge_representation_real_code_quotient_nonunitidentityfirst ge_representation_imaginary_code_quotient_nonunitidentityfirst. (((d) = ((ge_representation_real_code_quotient_nonunitidentityfirst) + (ge_representation_imaginary_code_quotient_nonunitidentityfirst)) * S ((ge_representation_real_code_quotient_nonunitidentityfirst) + (ge_representation_imaginary_code_quotient_nonunitidentityfirst)) + ((ge_representation_imaginary_code_quotient_nonunitidentityfirst) + (ge_representation_imaginary_code_quotient_nonunitidentityfirst))) /\ ((exists ge_balance_positive_quotient_nonunitidentityfirstreal ge_balance_negative_quotient_nonunitidentityfirstreal. (((((ge_representation_real_code_quotient_nonunitidentityfirst) = 2 * (ge_balance_positive_quotient_nonunitidentityfirstreal) /\ (ge_balance_negative_quotient_nonunitidentityfirstreal) = 0) \/ exists ge_signed_half_quotient_nonunitidentityfirstrealdecode. (((ge_representation_real_code_quotient_nonunitidentityfirst) = 2 * ge_signed_half_quotient_nonunitidentityfirstrealdecode + 1 /\ (ge_balance_positive_quotient_nonunitidentityfirstreal) = 0) /\ (ge_balance_negative_quotient_nonunitidentityfirstreal) = S ge_signed_half_quotient_nonunitidentityfirstrealdecode))) /\ ((ge_first_rp_quotient_nonunitidentity) + ge_balance_negative_quotient_nonunitidentityfirstreal = (ge_first_rn_quotient_nonunitidentity) + ge_balance_positive_quotient_nonunitidentityfirstreal))) /\ (exists ge_balance_positive_quotient_nonunitidentityfirstimaginary ge_balance_negative_quotient_nonunitidentityfirstimaginary. (((((ge_representation_imaginary_code_quotient_nonunitidentityfirst) = 2 * (ge_balance_positive_quotient_nonunitidentityfirstimaginary) /\ (ge_balance_negative_quotient_nonunitidentityfirstimaginary) = 0) \/ exists ge_signed_half_quotient_nonunitidentityfirstimaginarydecode. (((ge_representation_imaginary_code_quotient_nonunitidentityfirst) = 2 * ge_signed_half_quotient_nonunitidentityfirstimaginarydecode + 1 /\ (ge_balance_positive_quotient_nonunitidentityfirstimaginary) = 0) /\ (ge_balance_negative_quotient_nonunitidentityfirstimaginary) = S ge_signed_half_quotient_nonunitidentityfirstimaginarydecode))) /\ ((ge_first_ip_quotient_nonunitidentity) + ge_balance_negative_quotient_nonunitidentityfirstimaginary = (ge_first_in_quotient_nonunitidentity) + ge_balance_positive_quotient_nonunitidentityfirstimaginary)))))) /\ ((exists ge_representation_real_code_quotient_nonunitidentitysecond ge_representation_imaginary_code_quotient_nonunitidentitysecond. (((gr_inverse_quotient_nonunit) = ((ge_representation_real_code_quotient_nonunitidentitysecond) + (ge_representation_imaginary_code_quotient_nonunitidentitysecond)) * S ((ge_representation_real_code_quotient_nonunitidentitysecond) + (ge_representation_imaginary_code_quotient_nonunitidentitysecond)) + ((ge_representation_imaginary_code_quotient_nonunitidentitysecond) + (ge_representation_imaginary_code_quotient_nonunitidentitysecond))) /\ ((exists ge_balance_positive_quotient_nonunitidentitysecondreal ge_balance_negative_quotient_nonunitidentitysecondreal. (((((ge_representation_real_code_quotient_nonunitidentitysecond) = 2 * (ge_balance_positive_quotient_nonunitidentitysecondreal) /\ (ge_balance_negative_quotient_nonunitidentitysecondreal) = 0) \/ exists ge_signed_half_quotient_nonunitidentitysecondrealdecode. (((ge_representation_real_code_quotient_nonunitidentitysecond) = 2 * ge_signed_half_quotient_nonunitidentitysecondrealdecode + 1 /\ (ge_balance_positive_quotient_nonunitidentitysecondreal) = 0) /\ (ge_balance_negative_quotient_nonunitidentitysecondreal) = S ge_signed_half_quotient_nonunitidentitysecondrealdecode))) /\ ((ge_second_rp_quotient_nonunitidentity) + ge_balance_negative_quotient_nonunitidentitysecondreal = (ge_second_rn_quotient_nonunitidentity) + ge_balance_positive_quotient_nonunitidentitysecondreal))) /\ (exists ge_balance_positive_quotient_nonunitidentitysecondimaginary ge_balance_negative_quotient_nonunitidentitysecondimaginary. (((((ge_representation_imaginary_code_quotient_nonunitidentitysecond) = 2 * (ge_balance_positive_quotient_nonunitidentitysecondimaginary) /\ (ge_balance_negative_quotient_nonunitidentitysecondimaginary) = 0) \/ exists ge_signed_half_quotient_nonunitidentitysecondimaginarydecode. (((ge_representation_imaginary_code_quotient_nonunitidentitysecond) = 2 * ge_signed_half_quotient_nonunitidentitysecondimaginarydecode + 1 /\ (ge_balance_positive_quotient_nonunitidentitysecondimaginary) = 0) /\ (ge_balance_negative_quotient_nonunitidentitysecondimaginary) = S ge_signed_half_quotient_nonunitidentitysecondimaginarydecode))) /\ ((ge_second_ip_quotient_nonunitidentity) + ge_balance_negative_quotient_nonunitidentitysecondimaginary = (ge_second_in_quotient_nonunitidentity) + ge_balance_positive_quotient_nonunitidentitysecondimaginary)))))) /\ (exists ge_representation_real_code_quotient_nonunitidentityoutput ge_representation_imaginary_code_quotient_nonunitidentityoutput. (((6) = ((ge_representation_real_code_quotient_nonunitidentityoutput) + (ge_representation_imaginary_code_quotient_nonunitidentityoutput)) * S ((ge_representation_real_code_quotient_nonunitidentityoutput) + (ge_representation_imaginary_code_quotient_nonunitidentityoutput)) + ((ge_representation_imaginary_code_quotient_nonunitidentityoutput) + (ge_representation_imaginary_code_quotient_nonunitidentityoutput))) /\ ((exists ge_balance_positive_quotient_nonunitidentityoutputreal ge_balance_negative_quotient_nonunitidentityoutputreal. (((((ge_representation_real_code_quotient_nonunitidentityoutput) = 2 * (ge_balance_positive_quotient_nonunitidentityoutputreal) /\ (ge_balance_negative_quotient_nonunitidentityoutputreal) = 0) \/ exists ge_signed_half_quotient_nonunitidentityoutputrealdecode. (((ge_representation_real_code_quotient_nonunitidentityoutput) = 2 * ge_signed_half_quotient_nonunitidentityoutputrealdecode + 1 /\ (ge_balance_positive_quotient_nonunitidentityoutputreal) = 0) /\ (ge_balance_negative_quotient_nonunitidentityoutputreal) = S ge_signed_half_quotient_nonunitidentityoutputrealdecode))) /\ ((((((((ge_first_rp_quotient_nonunitidentity) * (ge_second_rp_quotient_nonunitidentity))) + (((ge_first_rn_quotient_nonunitidentity) * (ge_second_rn_quotient_nonunitidentity))))) + (((((ge_first_ip_quotient_nonunitidentity) * (ge_second_in_quotient_nonunitidentity))) + (((ge_first_in_quotient_nonunitidentity) * (ge_second_ip_quotient_nonunitidentity))))))) + ge_balance_negative_quotient_nonunitidentityoutputreal = (((((((ge_first_rp_quotient_nonunitidentity) * (ge_second_rn_quotient_nonunitidentity))) + (((ge_first_rn_quotient_nonunitidentity) * (ge_second_rp_quotient_nonunitidentity))))) + (((((ge_first_ip_quotient_nonunitidentity) * (ge_second_ip_quotient_nonunitidentity))) + (((ge_first_in_quotient_nonunitidentity) * (ge_second_in_quotient_nonunitidentity))))))) + ge_balance_positive_quotient_nonunitidentityoutputreal))) /\ (exists ge_balance_positive_quotient_nonunitidentityoutputimaginary ge_balance_negative_quotient_nonunitidentityoutputimaginary. (((((ge_representation_imaginary_code_quotient_nonunitidentityoutput) = 2 * (ge_balance_positive_quotient_nonunitidentityoutputimaginary) /\ (ge_balance_negative_quotient_nonunitidentityoutputimaginary) = 0) \/ exists ge_signed_half_quotient_nonunitidentityoutputimaginarydecode. (((ge_representation_imaginary_code_quotient_nonunitidentityoutput) = 2 * ge_signed_half_quotient_nonunitidentityoutputimaginarydecode + 1 /\ (ge_balance_positive_quotient_nonunitidentityoutputimaginary) = 0) /\ (ge_balance_negative_quotient_nonunitidentityoutputimaginary) = S ge_signed_half_quotient_nonunitidentityoutputimaginarydecode))) /\ ((((((((ge_first_rp_quotient_nonunitidentity) * (ge_second_ip_quotient_nonunitidentity))) + (((ge_first_rn_quotient_nonunitidentity) * (ge_second_in_quotient_nonunitidentity))))) + (((((ge_first_ip_quotient_nonunitidentity) * (ge_second_rp_quotient_nonunitidentity))) + (((ge_first_in_quotient_nonunitidentity) * (ge_second_rn_quotient_nonunitidentity))))))) + ge_balance_negative_quotient_nonunitidentityoutputimaginary = (((((((ge_first_rp_quotient_nonunitidentity) * (ge_second_in_quotient_nonunitidentity))) + (((ge_first_rn_quotient_nonunitidentity) * (ge_second_ip_quotient_nonunitidentity))))) + (((((ge_first_ip_quotient_nonunitidentity) * (ge_second_rn_quotient_nonunitidentity))) + (((ge_first_in_quotient_nonunitidentity) * (ge_second_rp_quotient_nonunitidentity))))))) + ge_balance_positive_quotient_nonunitidentityoutputimaginary)))))))))) -> exists q Q. ((exists ge_first_rp_quotient_product ge_first_rn_quotient_product ge_first_ip_quotient_product ge_first_in_quotient_product ge_second_rp_quotient_product ge_second_rn_quotient_product ge_second_ip_quotient_product ge_second_in_quotient_product. ((exists ge_representation_real_code_quotient_productfirst ge_representation_imaginary_code_quotient_productfirst. (((d) = ((ge_representation_real_code_quotient_productfirst) + (ge_representation_imaginary_code_quotient_productfirst)) * S ((ge_representation_real_code_quotient_productfirst) + (ge_representation_imaginary_code_quotient_productfirst)) + ((ge_representation_imaginary_code_quotient_productfirst) + (ge_representation_imaginary_code_quotient_productfirst))) /\ ((exists ge_balance_positive_quotient_productfirstreal ge_balance_negative_quotient_productfirstreal. (((((ge_representation_real_code_quotient_productfirst) = 2 * (ge_balance_positive_quotient_productfirstreal) /\ (ge_balance_negative_quotient_productfirstreal) = 0) \/ exists ge_signed_half_quotient_productfirstrealdecode. (((ge_representation_real_code_quotient_productfirst) = 2 * ge_signed_half_quotient_productfirstrealdecode + 1 /\ (ge_balance_positive_quotient_productfirstreal) = 0) /\ (ge_balance_negative_quotient_productfirstreal) = S ge_signed_half_quotient_productfirstrealdecode))) /\ ((ge_first_rp_quotient_product) + ge_balance_negative_quotient_productfirstreal = (ge_first_rn_quotient_product) + ge_balance_positive_quotient_productfirstreal))) /\ (exists ge_balance_positive_quotient_productfirstimaginary ge_balance_negative_quotient_productfirstimaginary. (((((ge_representation_imaginary_code_quotient_productfirst) = 2 * (ge_balance_positive_quotient_productfirstimaginary) /\ (ge_balance_negative_quotient_productfirstimaginary) = 0) \/ exists ge_signed_half_quotient_productfirstimaginarydecode. (((ge_representation_imaginary_code_quotient_productfirst) = 2 * ge_signed_half_quotient_productfirstimaginarydecode + 1 /\ (ge_balance_positive_quotient_productfirstimaginary) = 0) /\ (ge_balance_negative_quotient_productfirstimaginary) = S ge_signed_half_quotient_productfirstimaginarydecode))) /\ ((ge_first_ip_quotient_product) + ge_balance_negative_quotient_productfirstimaginary = (ge_first_in_quotient_product) + ge_balance_positive_quotient_productfirstimaginary)))))) /\ ((exists ge_representation_real_code_quotient_productsecond ge_representation_imaginary_code_quotient_productsecond. (((q) = ((ge_representation_real_code_quotient_productsecond) + (ge_representation_imaginary_code_quotient_productsecond)) * S ((ge_representation_real_code_quotient_productsecond) + (ge_representation_imaginary_code_quotient_productsecond)) + ((ge_representation_imaginary_code_quotient_productsecond) + (ge_representation_imaginary_code_quotient_productsecond))) /\ ((exists ge_balance_positive_quotient_productsecondreal ge_balance_negative_quotient_productsecondreal. (((((ge_representation_real_code_quotient_productsecond) = 2 * (ge_balance_positive_quotient_productsecondreal) /\ (ge_balance_negative_quotient_productsecondreal) = 0) \/ exists ge_signed_half_quotient_productsecondrealdecode. (((ge_representation_real_code_quotient_productsecond) = 2 * ge_signed_half_quotient_productsecondrealdecode + 1 /\ (ge_balance_positive_quotient_productsecondreal) = 0) /\ (ge_balance_negative_quotient_productsecondreal) = S ge_signed_half_quotient_productsecondrealdecode))) /\ ((ge_second_rp_quotient_product) + ge_balance_negative_quotient_productsecondreal = (ge_second_rn_quotient_product) + ge_balance_positive_quotient_productsecondreal))) /\ (exists ge_balance_positive_quotient_productsecondimaginary ge_balance_negative_quotient_productsecondimaginary. (((((ge_representation_imaginary_code_quotient_productsecond) = 2 * (ge_balance_positive_quotient_productsecondimaginary) /\ (ge_balance_negative_quotient_productsecondimaginary) = 0) \/ exists ge_signed_half_quotient_productsecondimaginarydecode. (((ge_representation_imaginary_code_quotient_productsecond) = 2 * ge_signed_half_quotient_productsecondimaginarydecode + 1 /\ (ge_balance_positive_quotient_productsecondimaginary) = 0) /\ (ge_balance_negative_quotient_productsecondimaginary) = S ge_signed_half_quotient_productsecondimaginarydecode))) /\ ((ge_second_ip_quotient_product) + ge_balance_negative_quotient_productsecondimaginary = (ge_second_in_quotient_product) + ge_balance_positive_quotient_productsecondimaginary)))))) /\ (exists ge_representation_real_code_quotient_productoutput ge_representation_imaginary_code_quotient_productoutput. (((z) = ((ge_representation_real_code_quotient_productoutput) + (ge_representation_imaginary_code_quotient_productoutput)) * S ((ge_representation_real_code_quotient_productoutput) + (ge_representation_imaginary_code_quotient_productoutput)) + ((ge_representation_imaginary_code_quotient_productoutput) + (ge_representation_imaginary_code_quotient_productoutput))) /\ ((exists ge_balance_positive_quotient_productoutputreal ge_balance_negative_quotient_productoutputreal. (((((ge_representation_real_code_quotient_productoutput) = 2 * (ge_balance_positive_quotient_productoutputreal) /\ (ge_balance_negative_quotient_productoutputreal) = 0) \/ exists ge_signed_half_quotient_productoutputrealdecode. (((ge_representation_real_code_quotient_productoutput) = 2 * ge_signed_half_quotient_productoutputrealdecode + 1 /\ (ge_balance_positive_quotient_productoutputreal) = 0) /\ (ge_balance_negative_quotient_productoutputreal) = S ge_signed_half_quotient_productoutputrealdecode))) /\ ((((((((ge_first_rp_quotient_product) * (ge_second_rp_quotient_product))) + (((ge_first_rn_quotient_product) * (ge_second_rn_quotient_product))))) + (((((ge_first_ip_quotient_product) * (ge_second_in_quotient_product))) + (((ge_first_in_quotient_product) * (ge_second_ip_quotient_product))))))) + ge_balance_negative_quotient_productoutputreal = (((((((ge_first_rp_quotient_product) * (ge_second_rn_quotient_product))) + (((ge_first_rn_quotient_product) * (ge_second_rp_quotient_product))))) + (((((ge_first_ip_quotient_product) * (ge_second_ip_quotient_product))) + (((ge_first_in_quotient_product) * (ge_second_in_quotient_product))))))) + ge_balance_positive_quotient_productoutputreal))) /\ (exists ge_balance_positive_quotient_productoutputimaginary ge_balance_negative_quotient_productoutputimaginary. (((((ge_representation_imaginary_code_quotient_productoutput) = 2 * (ge_balance_positive_quotient_productoutputimaginary) /\ (ge_balance_negative_quotient_productoutputimaginary) = 0) \/ exists ge_signed_half_quotient_productoutputimaginarydecode. (((ge_representation_imaginary_code_quotient_productoutput) = 2 * ge_signed_half_quotient_productoutputimaginarydecode + 1 /\ (ge_balance_positive_quotient_productoutputimaginary) = 0) /\ (ge_balance_negative_quotient_productoutputimaginary) = S ge_signed_half_quotient_productoutputimaginarydecode))) /\ ((((((((ge_first_rp_quotient_product) * (ge_second_ip_quotient_product))) + (((ge_first_rn_quotient_product) * (ge_second_in_quotient_product))))) + (((((ge_first_ip_quotient_product) * (ge_second_rp_quotient_product))) + (((ge_first_in_quotient_product) * (ge_second_rn_quotient_product))))))) + ge_balance_negative_quotient_productoutputimaginary = (((((((ge_first_rp_quotient_product) * (ge_second_in_quotient_product))) + (((ge_first_rn_quotient_product) * (ge_second_ip_quotient_product))))) + (((((ge_first_ip_quotient_product) * (ge_second_rn_quotient_product))) + (((ge_first_in_quotient_product) * (ge_second_rp_quotient_product))))))) + ge_balance_positive_quotient_productoutputimaginary))))))))) /\ ((exists ge_norm_rp_quotient_norm ge_norm_rn_quotient_norm ge_norm_ip_quotient_norm ge_norm_in_quotient_norm. ((exists ge_representation_real_code_quotient_normrepresentation ge_representation_imaginary_code_quotient_normrepresentation. (((q) = ((ge_representation_real_code_quotient_normrepresentation) + (ge_representation_imaginary_code_quotient_normrepresentation)) * S ((ge_representation_real_code_quotient_normrepresentation) + (ge_representation_imaginary_code_quotient_normrepresentation)) + ((ge_representation_imaginary_code_quotient_normrepresentation) + (ge_representation_imaginary_code_quotient_normrepresentation))) /\ ((exists ge_balance_positive_quotient_normrepresentationreal ge_balance_negative_quotient_normrepresentationreal. (((((ge_representation_real_code_quotient_normrepresentation) = 2 * (ge_balance_positive_quotient_normrepresentationreal) /\ (ge_balance_negative_quotient_normrepresentationreal) = 0) \/ exists ge_signed_half_quotient_normrepresentationrealdecode. (((ge_representation_real_code_quotient_normrepresentation) = 2 * ge_signed_half_quotient_normrepresentationrealdecode + 1 /\ (ge_balance_positive_quotient_normrepresentationreal) = 0) /\ (ge_balance_negative_quotient_normrepresentationreal) = S ge_signed_half_quotient_normrepresentationrealdecode))) /\ ((ge_norm_rp_quotient_norm) + ge_balance_negative_quotient_normrepresentationreal = (ge_norm_rn_quotient_norm) + ge_balance_positive_quotient_normrepresentationreal))) /\ (exists ge_balance_positive_quotient_normrepresentationimaginary ge_balance_negative_quotient_normrepresentationimaginary. (((((ge_representation_imaginary_code_quotient_normrepresentation) = 2 * (ge_balance_positive_quotient_normrepresentationimaginary) /\ (ge_balance_negative_quotient_normrepresentationimaginary) = 0) \/ exists ge_signed_half_quotient_normrepresentationimaginarydecode. (((ge_representation_imaginary_code_quotient_normrepresentation) = 2 * ge_signed_half_quotient_normrepresentationimaginarydecode + 1 /\ (ge_balance_positive_quotient_normrepresentationimaginary) = 0) /\ (ge_balance_negative_quotient_normrepresentationimaginary) = S ge_signed_half_quotient_normrepresentationimaginarydecode))) /\ ((ge_norm_ip_quotient_norm) + ge_balance_negative_quotient_normrepresentationimaginary = (ge_norm_in_quotient_norm) + ge_balance_positive_quotient_normrepresentationimaginary)))))) /\ (exists ge_real_square_quotient_normsquare ge_imaginary_square_quotient_normsquare. ((((((ge_norm_rp_quotient_norm) * (ge_norm_rp_quotient_norm))) + (((ge_norm_rn_quotient_norm) * (ge_norm_rn_quotient_norm)))) = ((ge_real_square_quotient_normsquare) + (((((ge_norm_rp_quotient_norm) * (ge_norm_rn_quotient_norm))) + (((ge_norm_rn_quotient_norm) * (ge_norm_rp_quotient_norm))))))) /\ ((((((ge_norm_ip_quotient_norm) * (ge_norm_ip_quotient_norm))) + (((ge_norm_in_quotient_norm) * (ge_norm_in_quotient_norm)))) = ((ge_imaginary_square_quotient_normsquare) + (((((ge_norm_ip_quotient_norm) * (ge_norm_in_quotient_norm))) + (((ge_norm_in_quotient_norm) * (ge_norm_ip_quotient_norm))))))) /\ ((Q) = ge_real_square_quotient_normsquare + ge_imaginary_square_quotient_normsquare)))))) /\ ((exists ge_gap_quotient_strict. ge_gap_quotient_strict + S (Q) = (N)) /\ (~(q=0)))))Constructive proof overview
Generated structural guide
Dividing a nonzero Gaussian value by an actual nonunit strictly decreases the quotient norm, even when the quotient itself is a unit.
The unchanged tactic script uses 8 declared prerequisites and contains 77 exact native proof lines.
Alpha v34 checked-use · first admitted v30 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
GF005B gaussian_divisor_norm_factor GF0016 gaussian_norm_nonzero factor_nonzero_left Stable theorem; checked-use authorized factor_nonzero_right Alpha theorem; checked-use authorized GF0079 gaussian_search_nonunit_norm_two succ_le_mul_of_two_le_right Alpha theorem; checked-use authorized mul_comm Stable theorem; checked-use authorized GF0018 gaussian_code_zero_implies_norm_zeroDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (4)
01Fix variables and assumptionsL1–9
02Establish hfL10–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian divisor norm factor.
03Separate the logical casesL19–22
04Establish hpositiveL23–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian norm nonzero.
05Establish hDpositiveL31–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor nonzero left.
06Establish hQpositiveL40–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor nonzero right.
07Construct an explicit witnessL49–50
08Separate the logical casesL51–51
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
split
09Use earlier factsL52–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
exact hf_witness_witness_left
10Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
split
11Use earlier factsL54–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
exact hf_witness_witness_right_left
12Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
13Establish heqL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mul comm.
14Use earlier factsL66–70
15Fix variables and assumptionsL71–71
Work with arbitrary variables or the premises of the current implication.
- L71
intro hqzero
16Use earlier factsL72–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 77 lines
- 0001
intro d - 0002
intro z - 0003
intro D - 0004
intro N - 0005
intro hd - 0006
intro hD - 0007
intro hN - 0008
intro hz - 0009
intro hu - 0010
have hf : exists q Q. ((exists ge_first_rp_quotient_constructed_product ge_first_rn_quotient_constructed_product ge_first_ip_quotient_constructed_product ge_first_in_quotient_constructed_product ge_second_rp_quotient_constructed_product ge_second_rn_quotient_constructed_product ge_second_ip_quotient_constructed_product ge_second_in_quotient_constructed_product. ((exists ge_representation_real_code_quotient_constructed_productfirst ge_representation_imaginary_code_quotient_constructed_productfirst. (((d) = ((ge_representation_real_code_quotient_constructed_productfirst) + (ge_representation_imaginary_code_quotient_constructed_productfirst)) * S ((ge_representation_real_code_quotient_constructed_productfirst) + (ge_representation_imaginary_code_quotient_constructed_productfirst)) + ((ge_representation_imaginary_code_quotient_constructed_productfirst) + (ge_representation_imaginary_code_quotient_constructed_productfirst))) /\ ((exists ge_balance_positive_quotient_constructed_productfirstreal ge_balance_negative_quotient_constructed_productfirstreal. (((((ge_representation_real_code_quotient_constructed_productfirst) = 2 * (ge_balance_positive_quotient_constructed_productfirstreal) /\ (ge_balance_negative_quotient_constructed_productfirstreal) = 0) \/ exists ge_signed_half_quotient_constructed_productfirstrealdecode. (((ge_representation_real_code_quotient_constructed_productfirst) = 2 * ge_signed_half_quotient_constructed_productfirstrealdecode + 1 /\ (ge_balance_positive_quotient_constructed_productfirstreal) = 0) /\ (ge_balance_negative_quotient_constructed_productfirstreal) = S ge_signed_half_quotient_constructed_productfirstrealdecode))) /\ ((ge_first_rp_quotient_constructed_product) + ge_balance_negative_quotient_constructed_productfirstreal = (ge_first_rn_quotient_constructed_product) + ge_balance_positive_quotient_constructed_productfirstreal))) /\ (exists ge_balance_positive_quotient_constructed_productfirstimaginary ge_balance_negative_quotient_constructed_productfirstimaginary. (((((ge_representation_imaginary_code_quotient_constructed_productfirst) = 2 * (ge_balance_positive_quotient_constructed_productfirstimaginary) /\ (ge_balance_negative_quotient_constructed_productfirstimaginary) = 0) \/ exists ge_signed_half_quotient_constructed_productfirstimaginarydecode. (((ge_representation_imaginary_code_quotient_constructed_productfirst) = 2 * ge_signed_half_quotient_constructed_productfirstimaginarydecode + 1 /\ (ge_balance_positive_quotient_constructed_productfirstimaginary) = 0) /\ (ge_balance_negative_quotient_constructed_productfirstimaginary) = S ge_signed_half_quotient_constructed_productfirstimaginarydecode))) /\ ((ge_first_ip_quotient_constructed_product) + ge_balance_negative_quotient_constructed_productfirstimaginary = (ge_first_in_quotient_constructed_product) + ge_balance_positive_quotient_constructed_productfirstimaginary)))))) /\ ((exists ge_representation_real_code_quotient_constructed_productsecond ge_representation_imaginary_code_quotient_constructed_productsecond. (((q) = ((ge_representation_real_code_quotient_constructed_productsecond) + (ge_representation_imaginary_code_quotient_constructed_productsecond)) * S ((ge_representation_real_code_quotient_constructed_productsecond) + (ge_representation_imaginary_code_quotient_constructed_productsecond)) + ((ge_representation_imaginary_code_quotient_constructed_productsecond) + (ge_representation_imaginary_code_quotient_constructed_productsecond))) /\ ((exists ge_balance_positive_quotient_constructed_productsecondreal ge_balance_negative_quotient_constructed_productsecondreal. (((((ge_representation_real_code_quotient_constructed_productsecond) = 2 * (ge_balance_positive_quotient_constructed_productsecondreal) /\ (ge_balance_negative_quotient_constructed_productsecondreal) = 0) \/ exists ge_signed_half_quotient_constructed_productsecondrealdecode. (((ge_representation_real_code_quotient_constructed_productsecond) = 2 * ge_signed_half_quotient_constructed_productsecondrealdecode + 1 /\ (ge_balance_positive_quotient_constructed_productsecondreal) = 0) /\ (ge_balance_negative_quotient_constructed_productsecondreal) = S ge_signed_half_quotient_constructed_productsecondrealdecode))) /\ ((ge_second_rp_quotient_constructed_product) + ge_balance_negative_quotient_constructed_productsecondreal = (ge_second_rn_quotient_constructed_product) + ge_balance_positive_quotient_constructed_productsecondreal))) /\ (exists ge_balance_positive_quotient_constructed_productsecondimaginary ge_balance_negative_quotient_constructed_productsecondimaginary. (((((ge_representation_imaginary_code_quotient_constructed_productsecond) = 2 * (ge_balance_positive_quotient_constructed_productsecondimaginary) /\ (ge_balance_negative_quotient_constructed_productsecondimaginary) = 0) \/ exists ge_signed_half_quotient_constructed_productsecondimaginarydecode. (((ge_representation_imaginary_code_quotient_constructed_productsecond) = 2 * ge_signed_half_quotient_constructed_productsecondimaginarydecode + 1 /\ (ge_balance_positive_quotient_constructed_productsecondimaginary) = 0) /\ (ge_balance_negative_quotient_constructed_productsecondimaginary) = S ge_signed_half_quotient_constructed_productsecondimaginarydecode))) /\ ((ge_second_ip_quotient_constructed_product) + ge_balance_negative_quotient_constructed_productsecondimaginary = (ge_second_in_quotient_constructed_product) + ge_balance_positive_quotient_constructed_productsecondimaginary)))))) /\ (exists ge_representation_real_code_quotient_constructed_productoutput ge_representation_imaginary_code_quotient_constructed_productoutput. (((z) = ((ge_representation_real_code_quotient_constructed_productoutput) + (ge_representation_imaginary_code_quotient_constructed_productoutput)) * S ((ge_representation_real_code_quotient_constructed_productoutput) + (ge_representation_imaginary_code_quotient_constructed_productoutput)) + ((ge_representation_imaginary_code_quotient_constructed_productoutput) + (ge_representation_imaginary_code_quotient_constructed_productoutput))) /\ ((exists ge_balance_positive_quotient_constructed_productoutputreal ge_balance_negative_quotient_constructed_productoutputreal. (((((ge_representation_real_code_quotient_constructed_productoutput) = 2 * (ge_balance_positive_quotient_constructed_productoutputreal) /\ (ge_balance_negative_quotient_constructed_productoutputreal) = 0) \/ exists ge_signed_half_quotient_constructed_productoutputrealdecode. (((ge_representation_real_code_quotient_constructed_productoutput) = 2 * ge_signed_half_quotient_constructed_productoutputrealdecode + 1 /\ (ge_balance_positive_quotient_constructed_productoutputreal) = 0) /\ (ge_balance_negative_quotient_constructed_productoutputreal) = S ge_signed_half_quotient_constructed_productoutputrealdecode))) /\ ((((((((ge_first_rp_quotient_constructed_product) * (ge_second_rp_quotient_constructed_product))) + (((ge_first_rn_quotient_constructed_product) * (ge_second_rn_quotient_constructed_product))))) + (((((ge_first_ip_quotient_constructed_product) * (ge_second_in_quotient_constructed_product))) + (((ge_first_in_quotient_constructed_product) * (ge_second_ip_quotient_constructed_product))))))) + ge_balance_negative_quotient_constructed_productoutputreal = (((((((ge_first_rp_quotient_constructed_product) * (ge_second_rn_quotient_constructed_product))) + (((ge_first_rn_quotient_constructed_product) * (ge_second_rp_quotient_constructed_product))))) + (((((ge_first_ip_quotient_constructed_product) * (ge_second_ip_quotient_constructed_product))) + (((ge_first_in_quotient_constructed_product) * (ge_second_in_quotient_constructed_product))))))) + ge_balance_positive_quotient_constructed_productoutputreal))) /\ (exists ge_balance_positive_quotient_constructed_productoutputimaginary ge_balance_negative_quotient_constructed_productoutputimaginary. (((((ge_representation_imaginary_code_quotient_constructed_productoutput) = 2 * (ge_balance_positive_quotient_constructed_productoutputimaginary) /\ (ge_balance_negative_quotient_constructed_productoutputimaginary) = 0) \/ exists ge_signed_half_quotient_constructed_productoutputimaginarydecode. (((ge_representation_imaginary_code_quotient_constructed_productoutput) = 2 * ge_signed_half_quotient_constructed_productoutputimaginarydecode + 1 /\ (ge_balance_positive_quotient_constructed_productoutputimaginary) = 0) /\ (ge_balance_negative_quotient_constructed_productoutputimaginary) = S ge_signed_half_quotient_constructed_productoutputimaginarydecode))) /\ ((((((((ge_first_rp_quotient_constructed_product) * (ge_second_ip_quotient_constructed_product))) + (((ge_first_rn_quotient_constructed_product) * (ge_second_in_quotient_constructed_product))))) + (((((ge_first_ip_quotient_constructed_product) * (ge_second_rp_quotient_constructed_product))) + (((ge_first_in_quotient_constructed_product) * (ge_second_rn_quotient_constructed_product))))))) + ge_balance_negative_quotient_constructed_productoutputimaginary = (((((((ge_first_rp_quotient_constructed_product) * (ge_second_in_quotient_constructed_product))) + (((ge_first_rn_quotient_constructed_product) * (ge_second_ip_quotient_constructed_product))))) + (((((ge_first_ip_quotient_constructed_product) * (ge_second_rn_quotient_constructed_product))) + (((ge_first_in_quotient_constructed_product) * (ge_second_rp_quotient_constructed_product))))))) + ge_balance_positive_quotient_constructed_productoutputimaginary))))))))) /\ ((exists ge_norm_rp_quotient_constructed_norm ge_norm_rn_quotient_constructed_norm ge_norm_ip_quotient_constructed_norm ge_norm_in_quotient_constructed_norm. ((exists ge_representation_real_code_quotient_constructed_normrepresentation ge_representation_imaginary_code_quotient_constructed_normrepresentation. (((q) = ((ge_representation_real_code_quotient_constructed_normrepresentation) + (ge_representation_imaginary_code_quotient_constructed_normrepresentation)) * S ((ge_representation_real_code_quotient_constructed_normrepresentation) + (ge_representation_imaginary_code_quotient_constructed_normrepresentation)) + ((ge_representation_imaginary_code_quotient_constructed_normrepresentation) + (ge_representation_imaginary_code_quotient_constructed_normrepresentation))) /\ ((exists ge_balance_positive_quotient_constructed_normrepresentationreal ge_balance_negative_quotient_constructed_normrepresentationreal. (((((ge_representation_real_code_quotient_constructed_normrepresentation) = 2 * (ge_balance_positive_quotient_constructed_normrepresentationreal) /\ (ge_balance_negative_quotient_constructed_normrepresentationreal) = 0) \/ exists ge_signed_half_quotient_constructed_normrepresentationrealdecode. (((ge_representation_real_code_quotient_constructed_normrepresentation) = 2 * ge_signed_half_quotient_constructed_normrepresentationrealdecode + 1 /\ (ge_balance_positive_quotient_constructed_normrepresentationreal) = 0) /\ (ge_balance_negative_quotient_constructed_normrepresentationreal) = S ge_signed_half_quotient_constructed_normrepresentationrealdecode))) /\ ((ge_norm_rp_quotient_constructed_norm) + ge_balance_negative_quotient_constructed_normrepresentationreal = (ge_norm_rn_quotient_constructed_norm) + ge_balance_positive_quotient_constructed_normrepresentationreal))) /\ (exists ge_balance_positive_quotient_constructed_normrepresentationimaginary ge_balance_negative_quotient_constructed_normrepresentationimaginary. (((((ge_representation_imaginary_code_quotient_constructed_normrepresentation) = 2 * (ge_balance_positive_quotient_constructed_normrepresentationimaginary) /\ (ge_balance_negative_quotient_constructed_normrepresentationimaginary) = 0) \/ exists ge_signed_half_quotient_constructed_normrepresentationimaginarydecode. (((ge_representation_imaginary_code_quotient_constructed_normrepresentation) = 2 * ge_signed_half_quotient_constructed_normrepresentationimaginarydecode + 1 /\ (ge_balance_positive_quotient_constructed_normrepresentationimaginary) = 0) /\ (ge_balance_negative_quotient_constructed_normrepresentationimaginary) = S ge_signed_half_quotient_constructed_normrepresentationimaginarydecode))) /\ ((ge_norm_ip_quotient_constructed_norm) + ge_balance_negative_quotient_constructed_normrepresentationimaginary = (ge_norm_in_quotient_constructed_norm) + ge_balance_positive_quotient_constructed_normrepresentationimaginary)))))) /\ (exists ge_real_square_quotient_constructed_normsquare ge_imaginary_square_quotient_constructed_normsquare. ((((((ge_norm_rp_quotient_constructed_norm) * (ge_norm_rp_quotient_constructed_norm))) + (((ge_norm_rn_quotient_constructed_norm) * (ge_norm_rn_quotient_constructed_norm)))) = ((ge_real_square_quotient_constructed_normsquare) + (((((ge_norm_rp_quotient_constructed_norm) * (ge_norm_rn_quotient_constructed_norm))) + (((ge_norm_rn_quotient_constructed_norm) * (ge_norm_rp_quotient_constructed_norm))))))) /\ ((((((ge_norm_ip_quotient_constructed_norm) * (ge_norm_ip_quotient_constructed_norm))) + (((ge_norm_in_quotient_constructed_norm) * (ge_norm_in_quotient_constructed_norm)))) = ((ge_imaginary_square_quotient_constructed_normsquare) + (((((ge_norm_ip_quotient_constructed_norm) * (ge_norm_in_quotient_constructed_norm))) + (((ge_norm_in_quotient_constructed_norm) * (ge_norm_ip_quotient_constructed_norm))))))) /\ ((Q) = ge_real_square_quotient_constructed_normsquare + ge_imaginary_square_quotient_constructed_normsquare)))))) /\ (N=D*Q))) - 0011
specialize gaussian_divisor_norm_factor (d) - 0012
specialize gaussian_divisor_norm_factor (z) - 0013
specialize gaussian_divisor_norm_factor (D) - 0014
specialize gaussian_divisor_norm_factor (N) - 0015
apply gaussian_divisor_norm_factor - 0016
exact hd - 0017
exact hD - 0018
exact hN - 0019
cases hf - 0020
cases hf_witness - 0021
cases hf_witness_witness - 0022
cases hf_witness_witness_right - 0023
have hpositive : ~(N=0) - 0024
intro hzero - 0025
specialize gaussian_norm_nonzero (z) - 0026
specialize gaussian_norm_nonzero (N) - 0027
apply gaussian_norm_nonzero - 0028
exact hN - 0029
exact hz - 0030
exact hzero - 0031
have hDpositive : ~(D=0) - 0032
intro hzero - 0033
specialize factor_nonzero_left (N) - 0034
specialize factor_nonzero_left (D) - 0035
specialize factor_nonzero_left (x1) - 0036
apply factor_nonzero_left - 0037
exact hpositive - 0038
exact hf_witness_witness_right_right - 0039
exact hzero - 0040
have hQpositive : ~(x1=0) - 0041
intro hzero - 0042
specialize factor_nonzero_right (N) - 0043
specialize factor_nonzero_right (D) - 0044
specialize factor_nonzero_right (x1) - 0045
apply factor_nonzero_right - 0046
exact hpositive - 0047
exact hf_witness_witness_right_right - 0048
exact hzero - 0049
exists (x) - 0050
exists (x1) - 0051
split - 0052
exact hf_witness_witness_left - 0053
split - 0054
exact hf_witness_witness_right_left - 0055
split - 0056
have heq : N=x1*D - 0057
trans D*x1 - 0058
exact hf_witness_witness_right_right - 0059
apply mul_comm - 0060
rewrite heq - 0061
specialize succ_le_mul_of_two_le_right (x1) - 0062
specialize succ_le_mul_of_two_le_right (D) - 0063
apply succ_le_mul_of_two_le_right - 0064
exact hQpositive - 0065
specialize gaussian_search_nonunit_norm_two (d) - 0066
specialize gaussian_search_nonunit_norm_two (D) - 0067
apply gaussian_search_nonunit_norm_two - 0068
exact hD - 0069
exact hDpositive - 0070
exact hu - 0071
intro hqzero - 0072
apply hQpositive - 0073
specialize gaussian_code_zero_implies_norm_zero (x) - 0074
specialize gaussian_code_zero_implies_norm_zero (x1) - 0075
apply gaussian_code_zero_implies_norm_zero - 0076
exact hf_witness_witness_right_left - 0077
exact hqzero