GF0068

gaussian_nonzero_product_divisor_unit_cofactor

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

If a nonzero actual Gaussian product divides one factor, its other factor has a constructed inverse; no abstract domain axiom is assumed.

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 p a b. ~(p=0) -> (exists ge_first_rp_cofactor_product ge_first_rn_cofactor_product ge_first_ip_cofactor_product ge_first_in_cofactor_product ge_second_rp_cofactor_product ge_second_rn_cofactor_product ge_second_ip_cofactor_product ge_second_in_cofactor_product. ((exists ge_representation_real_code_cofactor_productfirst ge_representation_imaginary_code_cofactor_productfirst. (((a) = ((ge_representation_real_code_cofactor_productfirst) + (ge_representation_imaginary_code_cofactor_productfirst)) * S ((ge_representation_real_code_cofactor_productfirst) + (ge_representation_imaginary_code_cofactor_productfirst)) + ((ge_representation_imaginary_code_cofactor_productfirst) + (ge_representation_imaginary_code_cofactor_productfirst))) /\ ((exists ge_balance_positive_cofactor_productfirstreal ge_balance_negative_cofactor_productfirstreal. (((((ge_representation_real_code_cofactor_productfirst) = 2 * (ge_balance_positive_cofactor_productfirstreal) /\ (ge_balance_negative_cofactor_productfirstreal) = 0) \/ exists ge_signed_half_cofactor_productfirstrealdecode. (((ge_representation_real_code_cofactor_productfirst) = 2 * ge_signed_half_cofactor_productfirstrealdecode + 1 /\ (ge_balance_positive_cofactor_productfirstreal) = 0) /\ (ge_balance_negative_cofactor_productfirstreal) = S ge_signed_half_cofactor_productfirstrealdecode))) /\ ((ge_first_rp_cofactor_product) + ge_balance_negative_cofactor_productfirstreal = (ge_first_rn_cofactor_product) + ge_balance_positive_cofactor_productfirstreal))) /\ (exists ge_balance_positive_cofactor_productfirstimaginary ge_balance_negative_cofactor_productfirstimaginary. (((((ge_representation_imaginary_code_cofactor_productfirst) = 2 * (ge_balance_positive_cofactor_productfirstimaginary) /\ (ge_balance_negative_cofactor_productfirstimaginary) = 0) \/ exists ge_signed_half_cofactor_productfirstimaginarydecode. (((ge_representation_imaginary_code_cofactor_productfirst) = 2 * ge_signed_half_cofactor_productfirstimaginarydecode + 1 /\ (ge_balance_positive_cofactor_productfirstimaginary) = 0) /\ (ge_balance_negative_cofactor_productfirstimaginary) = S ge_signed_half_cofactor_productfirstimaginarydecode))) /\ ((ge_first_ip_cofactor_product) + ge_balance_negative_cofactor_productfirstimaginary = (ge_first_in_cofactor_product) + ge_balance_positive_cofactor_productfirstimaginary)))))) /\ ((exists ge_representation_real_code_cofactor_productsecond ge_representation_imaginary_code_cofactor_productsecond. (((b) = ((ge_representation_real_code_cofactor_productsecond) + (ge_representation_imaginary_code_cofactor_productsecond)) * S ((ge_representation_real_code_cofactor_productsecond) + (ge_representation_imaginary_code_cofactor_productsecond)) + ((ge_representation_imaginary_code_cofactor_productsecond) + (ge_representation_imaginary_code_cofactor_productsecond))) /\ ((exists ge_balance_positive_cofactor_productsecondreal ge_balance_negative_cofactor_productsecondreal. (((((ge_representation_real_code_cofactor_productsecond) = 2 * (ge_balance_positive_cofactor_productsecondreal) /\ (ge_balance_negative_cofactor_productsecondreal) = 0) \/ exists ge_signed_half_cofactor_productsecondrealdecode. (((ge_representation_real_code_cofactor_productsecond) = 2 * ge_signed_half_cofactor_productsecondrealdecode + 1 /\ (ge_balance_positive_cofactor_productsecondreal) = 0) /\ (ge_balance_negative_cofactor_productsecondreal) = S ge_signed_half_cofactor_productsecondrealdecode))) /\ ((ge_second_rp_cofactor_product) + ge_balance_negative_cofactor_productsecondreal = (ge_second_rn_cofactor_product) + ge_balance_positive_cofactor_productsecondreal))) /\ (exists ge_balance_positive_cofactor_productsecondimaginary ge_balance_negative_cofactor_productsecondimaginary. (((((ge_representation_imaginary_code_cofactor_productsecond) = 2 * (ge_balance_positive_cofactor_productsecondimaginary) /\ (ge_balance_negative_cofactor_productsecondimaginary) = 0) \/ exists ge_signed_half_cofactor_productsecondimaginarydecode. (((ge_representation_imaginary_code_cofactor_productsecond) = 2 * ge_signed_half_cofactor_productsecondimaginarydecode + 1 /\ (ge_balance_positive_cofactor_productsecondimaginary) = 0) /\ (ge_balance_negative_cofactor_productsecondimaginary) = S ge_signed_half_cofactor_productsecondimaginarydecode))) /\ ((ge_second_ip_cofactor_product) + ge_balance_negative_cofactor_productsecondimaginary = (ge_second_in_cofactor_product) + ge_balance_positive_cofactor_productsecondimaginary)))))) /\ (exists ge_representation_real_code_cofactor_productoutput ge_representation_imaginary_code_cofactor_productoutput. (((p) = ((ge_representation_real_code_cofactor_productoutput) + (ge_representation_imaginary_code_cofactor_productoutput)) * S ((ge_representation_real_code_cofactor_productoutput) + (ge_representation_imaginary_code_cofactor_productoutput)) + ((ge_representation_imaginary_code_cofactor_productoutput) + (ge_representation_imaginary_code_cofactor_productoutput))) /\ ((exists ge_balance_positive_cofactor_productoutputreal ge_balance_negative_cofactor_productoutputreal. (((((ge_representation_real_code_cofactor_productoutput) = 2 * (ge_balance_positive_cofactor_productoutputreal) /\ (ge_balance_negative_cofactor_productoutputreal) = 0) \/ exists ge_signed_half_cofactor_productoutputrealdecode. (((ge_representation_real_code_cofactor_productoutput) = 2 * ge_signed_half_cofactor_productoutputrealdecode + 1 /\ (ge_balance_positive_cofactor_productoutputreal) = 0) /\ (ge_balance_negative_cofactor_productoutputreal) = S ge_signed_half_cofactor_productoutputrealdecode))) /\ ((((((((ge_first_rp_cofactor_product) * (ge_second_rp_cofactor_product))) + (((ge_first_rn_cofactor_product) * (ge_second_rn_cofactor_product))))) + (((((ge_first_ip_cofactor_product) * (ge_second_in_cofactor_product))) + (((ge_first_in_cofactor_product) * (ge_second_ip_cofactor_product))))))) + ge_balance_negative_cofactor_productoutputreal = (((((((ge_first_rp_cofactor_product) * (ge_second_rn_cofactor_product))) + (((ge_first_rn_cofactor_product) * (ge_second_rp_cofactor_product))))) + (((((ge_first_ip_cofactor_product) * (ge_second_ip_cofactor_product))) + (((ge_first_in_cofactor_product) * (ge_second_in_cofactor_product))))))) + ge_balance_positive_cofactor_productoutputreal))) /\ (exists ge_balance_positive_cofactor_productoutputimaginary ge_balance_negative_cofactor_productoutputimaginary. (((((ge_representation_imaginary_code_cofactor_productoutput) = 2 * (ge_balance_positive_cofactor_productoutputimaginary) /\ (ge_balance_negative_cofactor_productoutputimaginary) = 0) \/ exists ge_signed_half_cofactor_productoutputimaginarydecode. (((ge_representation_imaginary_code_cofactor_productoutput) = 2 * ge_signed_half_cofactor_productoutputimaginarydecode + 1 /\ (ge_balance_positive_cofactor_productoutputimaginary) = 0) /\ (ge_balance_negative_cofactor_productoutputimaginary) = S ge_signed_half_cofactor_productoutputimaginarydecode))) /\ ((((((((ge_first_rp_cofactor_product) * (ge_second_ip_cofactor_product))) + (((ge_first_rn_cofactor_product) * (ge_second_in_cofactor_product))))) + (((((ge_first_ip_cofactor_product) * (ge_second_rp_cofactor_product))) + (((ge_first_in_cofactor_product) * (ge_second_rn_cofactor_product))))))) + ge_balance_negative_cofactor_productoutputimaginary = (((((((ge_first_rp_cofactor_product) * (ge_second_in_cofactor_product))) + (((ge_first_rn_cofactor_product) * (ge_second_ip_cofactor_product))))) + (((((ge_first_ip_cofactor_product) * (ge_second_rn_cofactor_product))) + (((ge_first_in_cofactor_product) * (ge_second_rp_cofactor_product))))))) + ge_balance_positive_cofactor_productoutputimaginary))))))))) -> (exists gr_quotient_cofactor_reverse_divisor. (exists ge_first_rp_cofactor_reverse_divisorproduct ge_first_rn_cofactor_reverse_divisorproduct ge_first_ip_cofactor_reverse_divisorproduct ge_first_in_cofactor_reverse_divisorproduct ge_second_rp_cofactor_reverse_divisorproduct ge_second_rn_cofactor_reverse_divisorproduct ge_second_ip_cofactor_reverse_divisorproduct ge_second_in_cofactor_reverse_divisorproduct. ((exists ge_representation_real_code_cofactor_reverse_divisorproductfirst ge_representation_imaginary_code_cofactor_reverse_divisorproductfirst. (((p) = ((ge_representation_real_code_cofactor_reverse_divisorproductfirst) + (ge_representation_imaginary_code_cofactor_reverse_divisorproductfirst)) * S ((ge_representation_real_code_cofactor_reverse_divisorproductfirst) + (ge_representation_imaginary_code_cofactor_reverse_divisorproductfirst)) + ((ge_representation_imaginary_code_cofactor_reverse_divisorproductfirst) + (ge_representation_imaginary_code_cofactor_reverse_divisorproductfirst))) /\ ((exists ge_balance_positive_cofactor_reverse_divisorproductfirstreal ge_balance_negative_cofactor_reverse_divisorproductfirstreal. (((((ge_representation_real_code_cofactor_reverse_divisorproductfirst) = 2 * (ge_balance_positive_cofactor_reverse_divisorproductfirstreal) /\ (ge_balance_negative_cofactor_reverse_divisorproductfirstreal) = 0) \/ exists ge_signed_half_cofactor_reverse_divisorproductfirstrealdecode. (((ge_representation_real_code_cofactor_reverse_divisorproductfirst) = 2 * ge_signed_half_cofactor_reverse_divisorproductfirstrealdecode + 1 /\ (ge_balance_positive_cofactor_reverse_divisorproductfirstreal) = 0) /\ (ge_balance_negative_cofactor_reverse_divisorproductfirstreal) = S ge_signed_half_cofactor_reverse_divisorproductfirstrealdecode))) /\ ((ge_first_rp_cofactor_reverse_divisorproduct) + ge_balance_negative_cofactor_reverse_divisorproductfirstreal = (ge_first_rn_cofactor_reverse_divisorproduct) + ge_balance_positive_cofactor_reverse_divisorproductfirstreal))) /\ (exists ge_balance_positive_cofactor_reverse_divisorproductfirstimaginary ge_balance_negative_cofactor_reverse_divisorproductfirstimaginary. (((((ge_representation_imaginary_code_cofactor_reverse_divisorproductfirst) = 2 * (ge_balance_positive_cofactor_reverse_divisorproductfirstimaginary) /\ (ge_balance_negative_cofactor_reverse_divisorproductfirstimaginary) = 0) \/ exists ge_signed_half_cofactor_reverse_divisorproductfirstimaginarydecode. (((ge_representation_imaginary_code_cofactor_reverse_divisorproductfirst) = 2 * ge_signed_half_cofactor_reverse_divisorproductfirstimaginarydecode + 1 /\ (ge_balance_positive_cofactor_reverse_divisorproductfirstimaginary) = 0) /\ (ge_balance_negative_cofactor_reverse_divisorproductfirstimaginary) = S ge_signed_half_cofactor_reverse_divisorproductfirstimaginarydecode))) /\ ((ge_first_ip_cofactor_reverse_divisorproduct) + ge_balance_negative_cofactor_reverse_divisorproductfirstimaginary = (ge_first_in_cofactor_reverse_divisorproduct) + ge_balance_positive_cofactor_reverse_divisorproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_cofactor_reverse_divisorproductsecond ge_representation_imaginary_code_cofactor_reverse_divisorproductsecond. (((gr_quotient_cofactor_reverse_divisor) = ((ge_representation_real_code_cofactor_reverse_divisorproductsecond) + (ge_representation_imaginary_code_cofactor_reverse_divisorproductsecond)) * S ((ge_representation_real_code_cofactor_reverse_divisorproductsecond) + (ge_representation_imaginary_code_cofactor_reverse_divisorproductsecond)) + ((ge_representation_imaginary_code_cofactor_reverse_divisorproductsecond) + (ge_representation_imaginary_code_cofactor_reverse_divisorproductsecond))) /\ ((exists ge_balance_positive_cofactor_reverse_divisorproductsecondreal ge_balance_negative_cofactor_reverse_divisorproductsecondreal. (((((ge_representation_real_code_cofactor_reverse_divisorproductsecond) = 2 * (ge_balance_positive_cofactor_reverse_divisorproductsecondreal) /\ (ge_balance_negative_cofactor_reverse_divisorproductsecondreal) = 0) \/ exists ge_signed_half_cofactor_reverse_divisorproductsecondrealdecode. (((ge_representation_real_code_cofactor_reverse_divisorproductsecond) = 2 * ge_signed_half_cofactor_reverse_divisorproductsecondrealdecode + 1 /\ (ge_balance_positive_cofactor_reverse_divisorproductsecondreal) = 0) /\ (ge_balance_negative_cofactor_reverse_divisorproductsecondreal) = S ge_signed_half_cofactor_reverse_divisorproductsecondrealdecode))) /\ ((ge_second_rp_cofactor_reverse_divisorproduct) + ge_balance_negative_cofactor_reverse_divisorproductsecondreal = (ge_second_rn_cofactor_reverse_divisorproduct) + ge_balance_positive_cofactor_reverse_divisorproductsecondreal))) /\ (exists ge_balance_positive_cofactor_reverse_divisorproductsecondimaginary ge_balance_negative_cofactor_reverse_divisorproductsecondimaginary. (((((ge_representation_imaginary_code_cofactor_reverse_divisorproductsecond) = 2 * (ge_balance_positive_cofactor_reverse_divisorproductsecondimaginary) /\ (ge_balance_negative_cofactor_reverse_divisorproductsecondimaginary) = 0) \/ exists ge_signed_half_cofactor_reverse_divisorproductsecondimaginarydecode. (((ge_representation_imaginary_code_cofactor_reverse_divisorproductsecond) = 2 * ge_signed_half_cofactor_reverse_divisorproductsecondimaginarydecode + 1 /\ (ge_balance_positive_cofactor_reverse_divisorproductsecondimaginary) = 0) /\ (ge_balance_negative_cofactor_reverse_divisorproductsecondimaginary) = S ge_signed_half_cofactor_reverse_divisorproductsecondimaginarydecode))) /\ ((ge_second_ip_cofactor_reverse_divisorproduct) + ge_balance_negative_cofactor_reverse_divisorproductsecondimaginary = (ge_second_in_cofactor_reverse_divisorproduct) + ge_balance_positive_cofactor_reverse_divisorproductsecondimaginary)))))) /\ (exists ge_representation_real_code_cofactor_reverse_divisorproductoutput ge_representation_imaginary_code_cofactor_reverse_divisorproductoutput. (((a) = ((ge_representation_real_code_cofactor_reverse_divisorproductoutput) + (ge_representation_imaginary_code_cofactor_reverse_divisorproductoutput)) * S ((ge_representation_real_code_cofactor_reverse_divisorproductoutput) + (ge_representation_imaginary_code_cofactor_reverse_divisorproductoutput)) + ((ge_representation_imaginary_code_cofactor_reverse_divisorproductoutput) + (ge_representation_imaginary_code_cofactor_reverse_divisorproductoutput))) /\ ((exists ge_balance_positive_cofactor_reverse_divisorproductoutputreal ge_balance_negative_cofactor_reverse_divisorproductoutputreal. (((((ge_representation_real_code_cofactor_reverse_divisorproductoutput) = 2 * (ge_balance_positive_cofactor_reverse_divisorproductoutputreal) /\ (ge_balance_negative_cofactor_reverse_divisorproductoutputreal) = 0) \/ exists ge_signed_half_cofactor_reverse_divisorproductoutputrealdecode. (((ge_representation_real_code_cofactor_reverse_divisorproductoutput) = 2 * ge_signed_half_cofactor_reverse_divisorproductoutputrealdecode + 1 /\ (ge_balance_positive_cofactor_reverse_divisorproductoutputreal) = 0) /\ (ge_balance_negative_cofactor_reverse_divisorproductoutputreal) = S ge_signed_half_cofactor_reverse_divisorproductoutputrealdecode))) /\ ((((((((ge_first_rp_cofactor_reverse_divisorproduct) * (ge_second_rp_cofactor_reverse_divisorproduct))) + (((ge_first_rn_cofactor_reverse_divisorproduct) * (ge_second_rn_cofactor_reverse_divisorproduct))))) + (((((ge_first_ip_cofactor_reverse_divisorproduct) * (ge_second_in_cofactor_reverse_divisorproduct))) + (((ge_first_in_cofactor_reverse_divisorproduct) * (ge_second_ip_cofactor_reverse_divisorproduct))))))) + ge_balance_negative_cofactor_reverse_divisorproductoutputreal = (((((((ge_first_rp_cofactor_reverse_divisorproduct) * (ge_second_rn_cofactor_reverse_divisorproduct))) + (((ge_first_rn_cofactor_reverse_divisorproduct) * (ge_second_rp_cofactor_reverse_divisorproduct))))) + (((((ge_first_ip_cofactor_reverse_divisorproduct) * (ge_second_ip_cofactor_reverse_divisorproduct))) + (((ge_first_in_cofactor_reverse_divisorproduct) * (ge_second_in_cofactor_reverse_divisorproduct))))))) + ge_balance_positive_cofactor_reverse_divisorproductoutputreal))) /\ (exists ge_balance_positive_cofactor_reverse_divisorproductoutputimaginary ge_balance_negative_cofactor_reverse_divisorproductoutputimaginary. (((((ge_representation_imaginary_code_cofactor_reverse_divisorproductoutput) = 2 * (ge_balance_positive_cofactor_reverse_divisorproductoutputimaginary) /\ (ge_balance_negative_cofactor_reverse_divisorproductoutputimaginary) = 0) \/ exists ge_signed_half_cofactor_reverse_divisorproductoutputimaginarydecode. (((ge_representation_imaginary_code_cofactor_reverse_divisorproductoutput) = 2 * ge_signed_half_cofactor_reverse_divisorproductoutputimaginarydecode + 1 /\ (ge_balance_positive_cofactor_reverse_divisorproductoutputimaginary) = 0) /\ (ge_balance_negative_cofactor_reverse_divisorproductoutputimaginary) = S ge_signed_half_cofactor_reverse_divisorproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_cofactor_reverse_divisorproduct) * (ge_second_ip_cofactor_reverse_divisorproduct))) + (((ge_first_rn_cofactor_reverse_divisorproduct) * (ge_second_in_cofactor_reverse_divisorproduct))))) + (((((ge_first_ip_cofactor_reverse_divisorproduct) * (ge_second_rp_cofactor_reverse_divisorproduct))) + (((ge_first_in_cofactor_reverse_divisorproduct) * (ge_second_rn_cofactor_reverse_divisorproduct))))))) + ge_balance_negative_cofactor_reverse_divisorproductoutputimaginary = (((((((ge_first_rp_cofactor_reverse_divisorproduct) * (ge_second_in_cofactor_reverse_divisorproduct))) + (((ge_first_rn_cofactor_reverse_divisorproduct) * (ge_second_ip_cofactor_reverse_divisorproduct))))) + (((((ge_first_ip_cofactor_reverse_divisorproduct) * (ge_second_rn_cofactor_reverse_divisorproduct))) + (((ge_first_in_cofactor_reverse_divisorproduct) * (ge_second_rp_cofactor_reverse_divisorproduct))))))) + ge_balance_positive_cofactor_reverse_divisorproductoutputimaginary)))))))))) -> (exists gr_inverse_cofactor_unit. (exists ge_first_rp_cofactor_unitidentity ge_first_rn_cofactor_unitidentity ge_first_ip_cofactor_unitidentity ge_first_in_cofactor_unitidentity ge_second_rp_cofactor_unitidentity ge_second_rn_cofactor_unitidentity ge_second_ip_cofactor_unitidentity ge_second_in_cofactor_unitidentity. ((exists ge_representation_real_code_cofactor_unitidentityfirst ge_representation_imaginary_code_cofactor_unitidentityfirst. (((b) = ((ge_representation_real_code_cofactor_unitidentityfirst) + (ge_representation_imaginary_code_cofactor_unitidentityfirst)) * S ((ge_representation_real_code_cofactor_unitidentityfirst) + (ge_representation_imaginary_code_cofactor_unitidentityfirst)) + ((ge_representation_imaginary_code_cofactor_unitidentityfirst) + (ge_representation_imaginary_code_cofactor_unitidentityfirst))) /\ ((exists ge_balance_positive_cofactor_unitidentityfirstreal ge_balance_negative_cofactor_unitidentityfirstreal. (((((ge_representation_real_code_cofactor_unitidentityfirst) = 2 * (ge_balance_positive_cofactor_unitidentityfirstreal) /\ (ge_balance_negative_cofactor_unitidentityfirstreal) = 0) \/ exists ge_signed_half_cofactor_unitidentityfirstrealdecode. (((ge_representation_real_code_cofactor_unitidentityfirst) = 2 * ge_signed_half_cofactor_unitidentityfirstrealdecode + 1 /\ (ge_balance_positive_cofactor_unitidentityfirstreal) = 0) /\ (ge_balance_negative_cofactor_unitidentityfirstreal) = S ge_signed_half_cofactor_unitidentityfirstrealdecode))) /\ ((ge_first_rp_cofactor_unitidentity) + ge_balance_negative_cofactor_unitidentityfirstreal = (ge_first_rn_cofactor_unitidentity) + ge_balance_positive_cofactor_unitidentityfirstreal))) /\ (exists ge_balance_positive_cofactor_unitidentityfirstimaginary ge_balance_negative_cofactor_unitidentityfirstimaginary. (((((ge_representation_imaginary_code_cofactor_unitidentityfirst) = 2 * (ge_balance_positive_cofactor_unitidentityfirstimaginary) /\ (ge_balance_negative_cofactor_unitidentityfirstimaginary) = 0) \/ exists ge_signed_half_cofactor_unitidentityfirstimaginarydecode. (((ge_representation_imaginary_code_cofactor_unitidentityfirst) = 2 * ge_signed_half_cofactor_unitidentityfirstimaginarydecode + 1 /\ (ge_balance_positive_cofactor_unitidentityfirstimaginary) = 0) /\ (ge_balance_negative_cofactor_unitidentityfirstimaginary) = S ge_signed_half_cofactor_unitidentityfirstimaginarydecode))) /\ ((ge_first_ip_cofactor_unitidentity) + ge_balance_negative_cofactor_unitidentityfirstimaginary = (ge_first_in_cofactor_unitidentity) + ge_balance_positive_cofactor_unitidentityfirstimaginary)))))) /\ ((exists ge_representation_real_code_cofactor_unitidentitysecond ge_representation_imaginary_code_cofactor_unitidentitysecond. (((gr_inverse_cofactor_unit) = ((ge_representation_real_code_cofactor_unitidentitysecond) + (ge_representation_imaginary_code_cofactor_unitidentitysecond)) * S ((ge_representation_real_code_cofactor_unitidentitysecond) + (ge_representation_imaginary_code_cofactor_unitidentitysecond)) + ((ge_representation_imaginary_code_cofactor_unitidentitysecond) + (ge_representation_imaginary_code_cofactor_unitidentitysecond))) /\ ((exists ge_balance_positive_cofactor_unitidentitysecondreal ge_balance_negative_cofactor_unitidentitysecondreal. (((((ge_representation_real_code_cofactor_unitidentitysecond) = 2 * (ge_balance_positive_cofactor_unitidentitysecondreal) /\ (ge_balance_negative_cofactor_unitidentitysecondreal) = 0) \/ exists ge_signed_half_cofactor_unitidentitysecondrealdecode. (((ge_representation_real_code_cofactor_unitidentitysecond) = 2 * ge_signed_half_cofactor_unitidentitysecondrealdecode + 1 /\ (ge_balance_positive_cofactor_unitidentitysecondreal) = 0) /\ (ge_balance_negative_cofactor_unitidentitysecondreal) = S ge_signed_half_cofactor_unitidentitysecondrealdecode))) /\ ((ge_second_rp_cofactor_unitidentity) + ge_balance_negative_cofactor_unitidentitysecondreal = (ge_second_rn_cofactor_unitidentity) + ge_balance_positive_cofactor_unitidentitysecondreal))) /\ (exists ge_balance_positive_cofactor_unitidentitysecondimaginary ge_balance_negative_cofactor_unitidentitysecondimaginary. (((((ge_representation_imaginary_code_cofactor_unitidentitysecond) = 2 * (ge_balance_positive_cofactor_unitidentitysecondimaginary) /\ (ge_balance_negative_cofactor_unitidentitysecondimaginary) = 0) \/ exists ge_signed_half_cofactor_unitidentitysecondimaginarydecode. (((ge_representation_imaginary_code_cofactor_unitidentitysecond) = 2 * ge_signed_half_cofactor_unitidentitysecondimaginarydecode + 1 /\ (ge_balance_positive_cofactor_unitidentitysecondimaginary) = 0) /\ (ge_balance_negative_cofactor_unitidentitysecondimaginary) = S ge_signed_half_cofactor_unitidentitysecondimaginarydecode))) /\ ((ge_second_ip_cofactor_unitidentity) + ge_balance_negative_cofactor_unitidentitysecondimaginary = (ge_second_in_cofactor_unitidentity) + ge_balance_positive_cofactor_unitidentitysecondimaginary)))))) /\ (exists ge_representation_real_code_cofactor_unitidentityoutput ge_representation_imaginary_code_cofactor_unitidentityoutput. (((6) = ((ge_representation_real_code_cofactor_unitidentityoutput) + (ge_representation_imaginary_code_cofactor_unitidentityoutput)) * S ((ge_representation_real_code_cofactor_unitidentityoutput) + (ge_representation_imaginary_code_cofactor_unitidentityoutput)) + ((ge_representation_imaginary_code_cofactor_unitidentityoutput) + (ge_representation_imaginary_code_cofactor_unitidentityoutput))) /\ ((exists ge_balance_positive_cofactor_unitidentityoutputreal ge_balance_negative_cofactor_unitidentityoutputreal. (((((ge_representation_real_code_cofactor_unitidentityoutput) = 2 * (ge_balance_positive_cofactor_unitidentityoutputreal) /\ (ge_balance_negative_cofactor_unitidentityoutputreal) = 0) \/ exists ge_signed_half_cofactor_unitidentityoutputrealdecode. (((ge_representation_real_code_cofactor_unitidentityoutput) = 2 * ge_signed_half_cofactor_unitidentityoutputrealdecode + 1 /\ (ge_balance_positive_cofactor_unitidentityoutputreal) = 0) /\ (ge_balance_negative_cofactor_unitidentityoutputreal) = S ge_signed_half_cofactor_unitidentityoutputrealdecode))) /\ ((((((((ge_first_rp_cofactor_unitidentity) * (ge_second_rp_cofactor_unitidentity))) + (((ge_first_rn_cofactor_unitidentity) * (ge_second_rn_cofactor_unitidentity))))) + (((((ge_first_ip_cofactor_unitidentity) * (ge_second_in_cofactor_unitidentity))) + (((ge_first_in_cofactor_unitidentity) * (ge_second_ip_cofactor_unitidentity))))))) + ge_balance_negative_cofactor_unitidentityoutputreal = (((((((ge_first_rp_cofactor_unitidentity) * (ge_second_rn_cofactor_unitidentity))) + (((ge_first_rn_cofactor_unitidentity) * (ge_second_rp_cofactor_unitidentity))))) + (((((ge_first_ip_cofactor_unitidentity) * (ge_second_ip_cofactor_unitidentity))) + (((ge_first_in_cofactor_unitidentity) * (ge_second_in_cofactor_unitidentity))))))) + ge_balance_positive_cofactor_unitidentityoutputreal))) /\ (exists ge_balance_positive_cofactor_unitidentityoutputimaginary ge_balance_negative_cofactor_unitidentityoutputimaginary. (((((ge_representation_imaginary_code_cofactor_unitidentityoutput) = 2 * (ge_balance_positive_cofactor_unitidentityoutputimaginary) /\ (ge_balance_negative_cofactor_unitidentityoutputimaginary) = 0) \/ exists ge_signed_half_cofactor_unitidentityoutputimaginarydecode. (((ge_representation_imaginary_code_cofactor_unitidentityoutput) = 2 * ge_signed_half_cofactor_unitidentityoutputimaginarydecode + 1 /\ (ge_balance_positive_cofactor_unitidentityoutputimaginary) = 0) /\ (ge_balance_negative_cofactor_unitidentityoutputimaginary) = S ge_signed_half_cofactor_unitidentityoutputimaginarydecode))) /\ ((((((((ge_first_rp_cofactor_unitidentity) * (ge_second_ip_cofactor_unitidentity))) + (((ge_first_rn_cofactor_unitidentity) * (ge_second_in_cofactor_unitidentity))))) + (((((ge_first_ip_cofactor_unitidentity) * (ge_second_rp_cofactor_unitidentity))) + (((ge_first_in_cofactor_unitidentity) * (ge_second_rn_cofactor_unitidentity))))))) + ge_balance_negative_cofactor_unitidentityoutputimaginary = (((((((ge_first_rp_cofactor_unitidentity) * (ge_second_in_cofactor_unitidentity))) + (((ge_first_rn_cofactor_unitidentity) * (ge_second_ip_cofactor_unitidentity))))) + (((((ge_first_ip_cofactor_unitidentity) * (ge_second_rn_cofactor_unitidentity))) + (((ge_first_in_cofactor_unitidentity) * (ge_second_rp_cofactor_unitidentity))))))) + ge_balance_positive_cofactor_unitidentityoutputimaginary))))))))))

Constructive proof overview

Generated structural guide

If a nonzero actual Gaussian product divides one factor, its other factor has a constructed inverse; no abstract domain axiom is assumed.

The unchanged tactic script uses 8 declared prerequisites and contains 60 exact native proof lines.

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

Proof neighborhood

Direct dependencies

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

60 script commands · 12 reading checkpoints · 3 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 (7)

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

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

  1. L1
    intro p
  2. L2
    intro a
  3. L3
    intro b
  4. L4
    intro hn
  5. L5
    intro hprod
  6. L6
    intro hdiv
02Separate the logical casesL7–7

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

  1. L7
    cases hdiv
03Establish hqL8–17

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

  1. L8
    have hq : ∃ q. GMul(x,b,q)Definitions: GMul
  2. L9
    specialize gaussian_multiply_exists (x)
  3. L10
    specialize gaussian_multiply_exists (b)
  4. L11
    apply gaussian_multiply_exists
  5. L12
    specialize gaussian_multiply_input_right_valid (p)
  6. L13
    specialize gaussian_multiply_input_right_valid (x)
  7. L14
    specialize gaussian_multiply_input_right_valid (a)
  8. L15
    apply gaussian_multiply_input_right_valid
  9. L16
    exact hdiv_witness
  10. L17
    specialize gaussian_multiply_input_right_valid (a)
04Use earlier factsL18–21

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

  1. L18
    specialize gaussian_multiply_input_right_valid (b)
  2. L19
    specialize gaussian_multiply_input_right_valid (p)
  3. L20
    apply gaussian_multiply_input_right_valid
  4. L21
    exact hprod
05Separate the logical casesL22–22

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

  1. L22
    cases hq
06Establish hselfL23–32

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

  1. L23
    have hself : GMul(p,x1,p)Definitions: GMul
  2. L24
    specialize gaussian_multiply_associative (p)
  3. L25
    specialize gaussian_multiply_associative (x)
  4. L26
    specialize gaussian_multiply_associative (b)
  5. L27
    specialize gaussian_multiply_associative (a)
  6. L28
    specialize gaussian_multiply_associative (x1)
  7. L29
    specialize gaussian_multiply_associative (p)
  8. L30
    apply gaussian_multiply_associative
  9. L31
    exact hdiv_witness
  10. L32
    exact hprod
07Use earlier factsL33–33

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

  1. L33
    exact hq_witness
08Establish heqL34–43

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

  1. L34
    have heq : x1=6
  2. L35
    specialize gaussian_multiply_cancel_left (p)
  3. L36
    specialize gaussian_multiply_cancel_left (x1)
  4. L37
    specialize gaussian_multiply_cancel_left (6)
  5. L38
    specialize gaussian_multiply_cancel_left (p)
  6. L39
    apply gaussian_multiply_cancel_left
  7. L40
    exact hn
  8. L41
    exact hself
  9. L42
    specialize gaussian_multiply_one_right (p)
  10. L43
    apply gaussian_multiply_one_right
09Use earlier factsL44–48

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

  1. L44
    specialize gaussian_multiply_input_left_valid (p)
  2. L45
    specialize gaussian_multiply_input_left_valid (x)
  3. L46
    specialize gaussian_multiply_input_left_valid (a)
  4. L47
    apply gaussian_multiply_input_left_valid
  5. L48
    exact hdiv_witness
10Construct an explicit witnessL49–49

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

  1. L49
    exists (x)
11Use earlier factsL50–59

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

  1. L50
    specialize gaussian_multiply_commutative (x)
  2. L51
    specialize gaussian_multiply_commutative (b)
  3. L52
    specialize gaussian_multiply_commutative (6)
  4. L53
    apply gaussian_multiply_commutative
  5. L54
    specialize gaussian_multiply_output_transport (x)
  6. L55
    specialize gaussian_multiply_output_transport (b)
  7. L56
    specialize gaussian_multiply_output_transport (x1)
  8. L57
    specialize gaussian_multiply_output_transport (6)
  9. L58
    apply gaussian_multiply_output_transport
  10. L59
    exact heq
12Use earlier factsL60–60

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

  1. L60
    exact hq_witness

Library-wide reading audit

Original exact command ledger · 60 lines
  1. 0001intro p
  2. 0002intro a
  3. 0003intro b
  4. 0004intro hn
  5. 0005intro hprod
  6. 0006intro hdiv
  7. 0007cases hdiv
  8. 0008have hq : exists q. (exists ge_first_rp_cofactor_inverse_product ge_first_rn_cofactor_inverse_product ge_first_ip_cofactor_inverse_product ge_first_in_cofactor_inverse_product ge_second_rp_cofactor_inverse_product ge_second_rn_cofactor_inverse_product ge_second_ip_cofactor_inverse_product ge_second_in_cofactor_inverse_product. ((exists ge_representation_real_code_cofactor_inverse_productfirst ge_representation_imaginary_code_cofactor_inverse_productfirst. (((x) = ((ge_representation_real_code_cofactor_inverse_productfirst) + (ge_representation_imaginary_code_cofactor_inverse_productfirst)) * S ((ge_representation_real_code_cofactor_inverse_productfirst) + (ge_representation_imaginary_code_cofactor_inverse_productfirst)) + ((ge_representation_imaginary_code_cofactor_inverse_productfirst) + (ge_representation_imaginary_code_cofactor_inverse_productfirst))) /\ ((exists ge_balance_positive_cofactor_inverse_productfirstreal ge_balance_negative_cofactor_inverse_productfirstreal. (((((ge_representation_real_code_cofactor_inverse_productfirst) = 2 * (ge_balance_positive_cofactor_inverse_productfirstreal) /\ (ge_balance_negative_cofactor_inverse_productfirstreal) = 0) \/ exists ge_signed_half_cofactor_inverse_productfirstrealdecode. (((ge_representation_real_code_cofactor_inverse_productfirst) = 2 * ge_signed_half_cofactor_inverse_productfirstrealdecode + 1 /\ (ge_balance_positive_cofactor_inverse_productfirstreal) = 0) /\ (ge_balance_negative_cofactor_inverse_productfirstreal) = S ge_signed_half_cofactor_inverse_productfirstrealdecode))) /\ ((ge_first_rp_cofactor_inverse_product) + ge_balance_negative_cofactor_inverse_productfirstreal = (ge_first_rn_cofactor_inverse_product) + ge_balance_positive_cofactor_inverse_productfirstreal))) /\ (exists ge_balance_positive_cofactor_inverse_productfirstimaginary ge_balance_negative_cofactor_inverse_productfirstimaginary. (((((ge_representation_imaginary_code_cofactor_inverse_productfirst) = 2 * (ge_balance_positive_cofactor_inverse_productfirstimaginary) /\ (ge_balance_negative_cofactor_inverse_productfirstimaginary) = 0) \/ exists ge_signed_half_cofactor_inverse_productfirstimaginarydecode. (((ge_representation_imaginary_code_cofactor_inverse_productfirst) = 2 * ge_signed_half_cofactor_inverse_productfirstimaginarydecode + 1 /\ (ge_balance_positive_cofactor_inverse_productfirstimaginary) = 0) /\ (ge_balance_negative_cofactor_inverse_productfirstimaginary) = S ge_signed_half_cofactor_inverse_productfirstimaginarydecode))) /\ ((ge_first_ip_cofactor_inverse_product) + ge_balance_negative_cofactor_inverse_productfirstimaginary = (ge_first_in_cofactor_inverse_product) + ge_balance_positive_cofactor_inverse_productfirstimaginary)))))) /\ ((exists ge_representation_real_code_cofactor_inverse_productsecond ge_representation_imaginary_code_cofactor_inverse_productsecond. (((b) = ((ge_representation_real_code_cofactor_inverse_productsecond) + (ge_representation_imaginary_code_cofactor_inverse_productsecond)) * S ((ge_representation_real_code_cofactor_inverse_productsecond) + (ge_representation_imaginary_code_cofactor_inverse_productsecond)) + ((ge_representation_imaginary_code_cofactor_inverse_productsecond) + (ge_representation_imaginary_code_cofactor_inverse_productsecond))) /\ ((exists ge_balance_positive_cofactor_inverse_productsecondreal ge_balance_negative_cofactor_inverse_productsecondreal. (((((ge_representation_real_code_cofactor_inverse_productsecond) = 2 * (ge_balance_positive_cofactor_inverse_productsecondreal) /\ (ge_balance_negative_cofactor_inverse_productsecondreal) = 0) \/ exists ge_signed_half_cofactor_inverse_productsecondrealdecode. (((ge_representation_real_code_cofactor_inverse_productsecond) = 2 * ge_signed_half_cofactor_inverse_productsecondrealdecode + 1 /\ (ge_balance_positive_cofactor_inverse_productsecondreal) = 0) /\ (ge_balance_negative_cofactor_inverse_productsecondreal) = S ge_signed_half_cofactor_inverse_productsecondrealdecode))) /\ ((ge_second_rp_cofactor_inverse_product) + ge_balance_negative_cofactor_inverse_productsecondreal = (ge_second_rn_cofactor_inverse_product) + ge_balance_positive_cofactor_inverse_productsecondreal))) /\ (exists ge_balance_positive_cofactor_inverse_productsecondimaginary ge_balance_negative_cofactor_inverse_productsecondimaginary. (((((ge_representation_imaginary_code_cofactor_inverse_productsecond) = 2 * (ge_balance_positive_cofactor_inverse_productsecondimaginary) /\ (ge_balance_negative_cofactor_inverse_productsecondimaginary) = 0) \/ exists ge_signed_half_cofactor_inverse_productsecondimaginarydecode. (((ge_representation_imaginary_code_cofactor_inverse_productsecond) = 2 * ge_signed_half_cofactor_inverse_productsecondimaginarydecode + 1 /\ (ge_balance_positive_cofactor_inverse_productsecondimaginary) = 0) /\ (ge_balance_negative_cofactor_inverse_productsecondimaginary) = S ge_signed_half_cofactor_inverse_productsecondimaginarydecode))) /\ ((ge_second_ip_cofactor_inverse_product) + ge_balance_negative_cofactor_inverse_productsecondimaginary = (ge_second_in_cofactor_inverse_product) + ge_balance_positive_cofactor_inverse_productsecondimaginary)))))) /\ (exists ge_representation_real_code_cofactor_inverse_productoutput ge_representation_imaginary_code_cofactor_inverse_productoutput. (((q) = ((ge_representation_real_code_cofactor_inverse_productoutput) + (ge_representation_imaginary_code_cofactor_inverse_productoutput)) * S ((ge_representation_real_code_cofactor_inverse_productoutput) + (ge_representation_imaginary_code_cofactor_inverse_productoutput)) + ((ge_representation_imaginary_code_cofactor_inverse_productoutput) + (ge_representation_imaginary_code_cofactor_inverse_productoutput))) /\ ((exists ge_balance_positive_cofactor_inverse_productoutputreal ge_balance_negative_cofactor_inverse_productoutputreal. (((((ge_representation_real_code_cofactor_inverse_productoutput) = 2 * (ge_balance_positive_cofactor_inverse_productoutputreal) /\ (ge_balance_negative_cofactor_inverse_productoutputreal) = 0) \/ exists ge_signed_half_cofactor_inverse_productoutputrealdecode. (((ge_representation_real_code_cofactor_inverse_productoutput) = 2 * ge_signed_half_cofactor_inverse_productoutputrealdecode + 1 /\ (ge_balance_positive_cofactor_inverse_productoutputreal) = 0) /\ (ge_balance_negative_cofactor_inverse_productoutputreal) = S ge_signed_half_cofactor_inverse_productoutputrealdecode))) /\ ((((((((ge_first_rp_cofactor_inverse_product) * (ge_second_rp_cofactor_inverse_product))) + (((ge_first_rn_cofactor_inverse_product) * (ge_second_rn_cofactor_inverse_product))))) + (((((ge_first_ip_cofactor_inverse_product) * (ge_second_in_cofactor_inverse_product))) + (((ge_first_in_cofactor_inverse_product) * (ge_second_ip_cofactor_inverse_product))))))) + ge_balance_negative_cofactor_inverse_productoutputreal = (((((((ge_first_rp_cofactor_inverse_product) * (ge_second_rn_cofactor_inverse_product))) + (((ge_first_rn_cofactor_inverse_product) * (ge_second_rp_cofactor_inverse_product))))) + (((((ge_first_ip_cofactor_inverse_product) * (ge_second_ip_cofactor_inverse_product))) + (((ge_first_in_cofactor_inverse_product) * (ge_second_in_cofactor_inverse_product))))))) + ge_balance_positive_cofactor_inverse_productoutputreal))) /\ (exists ge_balance_positive_cofactor_inverse_productoutputimaginary ge_balance_negative_cofactor_inverse_productoutputimaginary. (((((ge_representation_imaginary_code_cofactor_inverse_productoutput) = 2 * (ge_balance_positive_cofactor_inverse_productoutputimaginary) /\ (ge_balance_negative_cofactor_inverse_productoutputimaginary) = 0) \/ exists ge_signed_half_cofactor_inverse_productoutputimaginarydecode. (((ge_representation_imaginary_code_cofactor_inverse_productoutput) = 2 * ge_signed_half_cofactor_inverse_productoutputimaginarydecode + 1 /\ (ge_balance_positive_cofactor_inverse_productoutputimaginary) = 0) /\ (ge_balance_negative_cofactor_inverse_productoutputimaginary) = S ge_signed_half_cofactor_inverse_productoutputimaginarydecode))) /\ ((((((((ge_first_rp_cofactor_inverse_product) * (ge_second_ip_cofactor_inverse_product))) + (((ge_first_rn_cofactor_inverse_product) * (ge_second_in_cofactor_inverse_product))))) + (((((ge_first_ip_cofactor_inverse_product) * (ge_second_rp_cofactor_inverse_product))) + (((ge_first_in_cofactor_inverse_product) * (ge_second_rn_cofactor_inverse_product))))))) + ge_balance_negative_cofactor_inverse_productoutputimaginary = (((((((ge_first_rp_cofactor_inverse_product) * (ge_second_in_cofactor_inverse_product))) + (((ge_first_rn_cofactor_inverse_product) * (ge_second_ip_cofactor_inverse_product))))) + (((((ge_first_ip_cofactor_inverse_product) * (ge_second_rn_cofactor_inverse_product))) + (((ge_first_in_cofactor_inverse_product) * (ge_second_rp_cofactor_inverse_product))))))) + ge_balance_positive_cofactor_inverse_productoutputimaginary)))))))))
  9. 0009specialize gaussian_multiply_exists (x)
  10. 0010specialize gaussian_multiply_exists (b)
  11. 0011apply gaussian_multiply_exists
  12. 0012specialize gaussian_multiply_input_right_valid (p)
  13. 0013specialize gaussian_multiply_input_right_valid (x)
  14. 0014specialize gaussian_multiply_input_right_valid (a)
  15. 0015apply gaussian_multiply_input_right_valid
  16. 0016exact hdiv_witness
  17. 0017specialize gaussian_multiply_input_right_valid (a)
  18. 0018specialize gaussian_multiply_input_right_valid (b)
  19. 0019specialize gaussian_multiply_input_right_valid (p)
  20. 0020apply gaussian_multiply_input_right_valid
  21. 0021exact hprod
  22. 0022cases hq
  23. 0023have hself : exists ge_first_rp_cofactor_self ge_first_rn_cofactor_self ge_first_ip_cofactor_self ge_first_in_cofactor_self ge_second_rp_cofactor_self ge_second_rn_cofactor_self ge_second_ip_cofactor_self ge_second_in_cofactor_self. ((exists ge_representation_real_code_cofactor_selffirst ge_representation_imaginary_code_cofactor_selffirst. (((p) = ((ge_representation_real_code_cofactor_selffirst) + (ge_representation_imaginary_code_cofactor_selffirst)) * S ((ge_representation_real_code_cofactor_selffirst) + (ge_representation_imaginary_code_cofactor_selffirst)) + ((ge_representation_imaginary_code_cofactor_selffirst) + (ge_representation_imaginary_code_cofactor_selffirst))) /\ ((exists ge_balance_positive_cofactor_selffirstreal ge_balance_negative_cofactor_selffirstreal. (((((ge_representation_real_code_cofactor_selffirst) = 2 * (ge_balance_positive_cofactor_selffirstreal) /\ (ge_balance_negative_cofactor_selffirstreal) = 0) \/ exists ge_signed_half_cofactor_selffirstrealdecode. (((ge_representation_real_code_cofactor_selffirst) = 2 * ge_signed_half_cofactor_selffirstrealdecode + 1 /\ (ge_balance_positive_cofactor_selffirstreal) = 0) /\ (ge_balance_negative_cofactor_selffirstreal) = S ge_signed_half_cofactor_selffirstrealdecode))) /\ ((ge_first_rp_cofactor_self) + ge_balance_negative_cofactor_selffirstreal = (ge_first_rn_cofactor_self) + ge_balance_positive_cofactor_selffirstreal))) /\ (exists ge_balance_positive_cofactor_selffirstimaginary ge_balance_negative_cofactor_selffirstimaginary. (((((ge_representation_imaginary_code_cofactor_selffirst) = 2 * (ge_balance_positive_cofactor_selffirstimaginary) /\ (ge_balance_negative_cofactor_selffirstimaginary) = 0) \/ exists ge_signed_half_cofactor_selffirstimaginarydecode. (((ge_representation_imaginary_code_cofactor_selffirst) = 2 * ge_signed_half_cofactor_selffirstimaginarydecode + 1 /\ (ge_balance_positive_cofactor_selffirstimaginary) = 0) /\ (ge_balance_negative_cofactor_selffirstimaginary) = S ge_signed_half_cofactor_selffirstimaginarydecode))) /\ ((ge_first_ip_cofactor_self) + ge_balance_negative_cofactor_selffirstimaginary = (ge_first_in_cofactor_self) + ge_balance_positive_cofactor_selffirstimaginary)))))) /\ ((exists ge_representation_real_code_cofactor_selfsecond ge_representation_imaginary_code_cofactor_selfsecond. (((x1) = ((ge_representation_real_code_cofactor_selfsecond) + (ge_representation_imaginary_code_cofactor_selfsecond)) * S ((ge_representation_real_code_cofactor_selfsecond) + (ge_representation_imaginary_code_cofactor_selfsecond)) + ((ge_representation_imaginary_code_cofactor_selfsecond) + (ge_representation_imaginary_code_cofactor_selfsecond))) /\ ((exists ge_balance_positive_cofactor_selfsecondreal ge_balance_negative_cofactor_selfsecondreal. (((((ge_representation_real_code_cofactor_selfsecond) = 2 * (ge_balance_positive_cofactor_selfsecondreal) /\ (ge_balance_negative_cofactor_selfsecondreal) = 0) \/ exists ge_signed_half_cofactor_selfsecondrealdecode. (((ge_representation_real_code_cofactor_selfsecond) = 2 * ge_signed_half_cofactor_selfsecondrealdecode + 1 /\ (ge_balance_positive_cofactor_selfsecondreal) = 0) /\ (ge_balance_negative_cofactor_selfsecondreal) = S ge_signed_half_cofactor_selfsecondrealdecode))) /\ ((ge_second_rp_cofactor_self) + ge_balance_negative_cofactor_selfsecondreal = (ge_second_rn_cofactor_self) + ge_balance_positive_cofactor_selfsecondreal))) /\ (exists ge_balance_positive_cofactor_selfsecondimaginary ge_balance_negative_cofactor_selfsecondimaginary. (((((ge_representation_imaginary_code_cofactor_selfsecond) = 2 * (ge_balance_positive_cofactor_selfsecondimaginary) /\ (ge_balance_negative_cofactor_selfsecondimaginary) = 0) \/ exists ge_signed_half_cofactor_selfsecondimaginarydecode. (((ge_representation_imaginary_code_cofactor_selfsecond) = 2 * ge_signed_half_cofactor_selfsecondimaginarydecode + 1 /\ (ge_balance_positive_cofactor_selfsecondimaginary) = 0) /\ (ge_balance_negative_cofactor_selfsecondimaginary) = S ge_signed_half_cofactor_selfsecondimaginarydecode))) /\ ((ge_second_ip_cofactor_self) + ge_balance_negative_cofactor_selfsecondimaginary = (ge_second_in_cofactor_self) + ge_balance_positive_cofactor_selfsecondimaginary)))))) /\ (exists ge_representation_real_code_cofactor_selfoutput ge_representation_imaginary_code_cofactor_selfoutput. (((p) = ((ge_representation_real_code_cofactor_selfoutput) + (ge_representation_imaginary_code_cofactor_selfoutput)) * S ((ge_representation_real_code_cofactor_selfoutput) + (ge_representation_imaginary_code_cofactor_selfoutput)) + ((ge_representation_imaginary_code_cofactor_selfoutput) + (ge_representation_imaginary_code_cofactor_selfoutput))) /\ ((exists ge_balance_positive_cofactor_selfoutputreal ge_balance_negative_cofactor_selfoutputreal. (((((ge_representation_real_code_cofactor_selfoutput) = 2 * (ge_balance_positive_cofactor_selfoutputreal) /\ (ge_balance_negative_cofactor_selfoutputreal) = 0) \/ exists ge_signed_half_cofactor_selfoutputrealdecode. (((ge_representation_real_code_cofactor_selfoutput) = 2 * ge_signed_half_cofactor_selfoutputrealdecode + 1 /\ (ge_balance_positive_cofactor_selfoutputreal) = 0) /\ (ge_balance_negative_cofactor_selfoutputreal) = S ge_signed_half_cofactor_selfoutputrealdecode))) /\ ((((((((ge_first_rp_cofactor_self) * (ge_second_rp_cofactor_self))) + (((ge_first_rn_cofactor_self) * (ge_second_rn_cofactor_self))))) + (((((ge_first_ip_cofactor_self) * (ge_second_in_cofactor_self))) + (((ge_first_in_cofactor_self) * (ge_second_ip_cofactor_self))))))) + ge_balance_negative_cofactor_selfoutputreal = (((((((ge_first_rp_cofactor_self) * (ge_second_rn_cofactor_self))) + (((ge_first_rn_cofactor_self) * (ge_second_rp_cofactor_self))))) + (((((ge_first_ip_cofactor_self) * (ge_second_ip_cofactor_self))) + (((ge_first_in_cofactor_self) * (ge_second_in_cofactor_self))))))) + ge_balance_positive_cofactor_selfoutputreal))) /\ (exists ge_balance_positive_cofactor_selfoutputimaginary ge_balance_negative_cofactor_selfoutputimaginary. (((((ge_representation_imaginary_code_cofactor_selfoutput) = 2 * (ge_balance_positive_cofactor_selfoutputimaginary) /\ (ge_balance_negative_cofactor_selfoutputimaginary) = 0) \/ exists ge_signed_half_cofactor_selfoutputimaginarydecode. (((ge_representation_imaginary_code_cofactor_selfoutput) = 2 * ge_signed_half_cofactor_selfoutputimaginarydecode + 1 /\ (ge_balance_positive_cofactor_selfoutputimaginary) = 0) /\ (ge_balance_negative_cofactor_selfoutputimaginary) = S ge_signed_half_cofactor_selfoutputimaginarydecode))) /\ ((((((((ge_first_rp_cofactor_self) * (ge_second_ip_cofactor_self))) + (((ge_first_rn_cofactor_self) * (ge_second_in_cofactor_self))))) + (((((ge_first_ip_cofactor_self) * (ge_second_rp_cofactor_self))) + (((ge_first_in_cofactor_self) * (ge_second_rn_cofactor_self))))))) + ge_balance_negative_cofactor_selfoutputimaginary = (((((((ge_first_rp_cofactor_self) * (ge_second_in_cofactor_self))) + (((ge_first_rn_cofactor_self) * (ge_second_ip_cofactor_self))))) + (((((ge_first_ip_cofactor_self) * (ge_second_rn_cofactor_self))) + (((ge_first_in_cofactor_self) * (ge_second_rp_cofactor_self))))))) + ge_balance_positive_cofactor_selfoutputimaginary))))))))
  24. 0024specialize gaussian_multiply_associative (p)
  25. 0025specialize gaussian_multiply_associative (x)
  26. 0026specialize gaussian_multiply_associative (b)
  27. 0027specialize gaussian_multiply_associative (a)
  28. 0028specialize gaussian_multiply_associative (x1)
  29. 0029specialize gaussian_multiply_associative (p)
  30. 0030apply gaussian_multiply_associative
  31. 0031exact hdiv_witness
  32. 0032exact hprod
  33. 0033exact hq_witness
  34. 0034have heq : x1=6
  35. 0035specialize gaussian_multiply_cancel_left (p)
  36. 0036specialize gaussian_multiply_cancel_left (x1)
  37. 0037specialize gaussian_multiply_cancel_left (6)
  38. 0038specialize gaussian_multiply_cancel_left (p)
  39. 0039apply gaussian_multiply_cancel_left
  40. 0040exact hn
  41. 0041exact hself
  42. 0042specialize gaussian_multiply_one_right (p)
  43. 0043apply gaussian_multiply_one_right
  44. 0044specialize gaussian_multiply_input_left_valid (p)
  45. 0045specialize gaussian_multiply_input_left_valid (x)
  46. 0046specialize gaussian_multiply_input_left_valid (a)
  47. 0047apply gaussian_multiply_input_left_valid
  48. 0048exact hdiv_witness
  49. 0049exists (x)
  50. 0050specialize gaussian_multiply_commutative (x)
  51. 0051specialize gaussian_multiply_commutative (b)
  52. 0052specialize gaussian_multiply_commutative (6)
  53. 0053apply gaussian_multiply_commutative
  54. 0054specialize gaussian_multiply_output_transport (x)
  55. 0055specialize gaussian_multiply_output_transport (b)
  56. 0056specialize gaussian_multiply_output_transport (x1)
  57. 0057specialize gaussian_multiply_output_transport (6)
  58. 0058apply gaussian_multiply_output_transport
  59. 0059exact heq
  60. 0060exact hq_witness