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 ac bc. (exists ge_real_positive_euclidean_input_dividend ge_real_negative_euclidean_input_dividend ge_imaginary_positive_euclidean_input_dividend ge_imaginary_negative_euclidean_input_dividend. (exists ge_real_code_euclidean_input_dividenddecode ge_imaginary_code_euclidean_input_dividenddecode. (((ac) = ((ge_real_code_euclidean_input_dividenddecode) + (ge_imaginary_code_euclidean_input_dividenddecode)) * S ((ge_real_code_euclidean_input_dividenddecode) + (ge_imaginary_code_euclidean_input_dividenddecode)) + ((ge_imaginary_code_euclidean_input_dividenddecode) + (ge_imaginary_code_euclidean_input_dividenddecode))) /\ (((((ge_real_code_euclidean_input_dividenddecode) = 2 * (ge_real_positive_euclidean_input_dividend) /\ (ge_real_negative_euclidean_input_dividend) = 0) \/ exists ge_signed_half_ge_euclidean_input_dividenddecode_real. (((ge_real_code_euclidean_input_dividenddecode) = 2 * ge_signed_half_ge_euclidean_input_dividenddecode_real + 1 /\ (ge_real_positive_euclidean_input_dividend) = 0) /\ (ge_real_negative_euclidean_input_dividend) = S ge_signed_half_ge_euclidean_input_dividenddecode_real))) /\ ((((ge_imaginary_code_euclidean_input_dividenddecode) = 2 * (ge_imaginary_positive_euclidean_input_dividend) /\ (ge_imaginary_negative_euclidean_input_dividend) = 0) \/ exists ge_signed_half_ge_euclidean_input_dividenddecode_imaginary. (((ge_imaginary_code_euclidean_input_dividenddecode) = 2 * ge_signed_half_ge_euclidean_input_dividenddecode_imaginary + 1 /\ (ge_imaginary_positive_euclidean_input_dividend) = 0) /\ (ge_imaginary_negative_euclidean_input_dividend) = S ge_signed_half_ge_euclidean_input_dividenddecode_imaginary))))))) -> (exists ge_real_positive_euclidean_input_divisor ge_real_negative_euclidean_input_divisor ge_imaginary_positive_euclidean_input_divisor ge_imaginary_negative_euclidean_input_divisor. (exists ge_real_code_euclidean_input_divisordecode ge_imaginary_code_euclidean_input_divisordecode. (((bc) = ((ge_real_code_euclidean_input_divisordecode) + (ge_imaginary_code_euclidean_input_divisordecode)) * S ((ge_real_code_euclidean_input_divisordecode) + (ge_imaginary_code_euclidean_input_divisordecode)) + ((ge_imaginary_code_euclidean_input_divisordecode) + (ge_imaginary_code_euclidean_input_divisordecode))) /\ (((((ge_real_code_euclidean_input_divisordecode) = 2 * (ge_real_positive_euclidean_input_divisor) /\ (ge_real_negative_euclidean_input_divisor) = 0) \/ exists ge_signed_half_ge_euclidean_input_divisordecode_real. (((ge_real_code_euclidean_input_divisordecode) = 2 * ge_signed_half_ge_euclidean_input_divisordecode_real + 1 /\ (ge_real_positive_euclidean_input_divisor) = 0) /\ (ge_real_negative_euclidean_input_divisor) = S ge_signed_half_ge_euclidean_input_divisordecode_real))) /\ ((((ge_imaginary_code_euclidean_input_divisordecode) = 2 * (ge_imaginary_positive_euclidean_input_divisor) /\ (ge_imaginary_negative_euclidean_input_divisor) = 0) \/ exists ge_signed_half_ge_euclidean_input_divisordecode_imaginary. (((ge_imaginary_code_euclidean_input_divisordecode) = 2 * ge_signed_half_ge_euclidean_input_divisordecode_imaginary + 1 /\ (ge_imaginary_positive_euclidean_input_divisor) = 0) /\ (ge_imaginary_negative_euclidean_input_divisor) = S ge_signed_half_ge_euclidean_input_divisordecode_imaginary))))))) -> ~(bc = 0) -> exists qc rc U V. (((exists ge_real_positive_euclidean_canonical_outputquotient ge_real_negative_euclidean_canonical_outputquotient ge_imaginary_positive_euclidean_canonical_outputquotient ge_imaginary_negative_euclidean_canonical_outputquotient. (exists ge_real_code_euclidean_canonical_outputquotientdecode ge_imaginary_code_euclidean_canonical_outputquotientdecode. (((qc) = ((ge_real_code_euclidean_canonical_outputquotientdecode) + (ge_imaginary_code_euclidean_canonical_outputquotientdecode)) * S ((ge_real_code_euclidean_canonical_outputquotientdecode) + (ge_imaginary_code_euclidean_canonical_outputquotientdecode)) + ((ge_imaginary_code_euclidean_canonical_outputquotientdecode) + (ge_imaginary_code_euclidean_canonical_outputquotientdecode))) /\ (((((ge_real_code_euclidean_canonical_outputquotientdecode) = 2 * (ge_real_positive_euclidean_canonical_outputquotient) /\ (ge_real_negative_euclidean_canonical_outputquotient) = 0) \/ exists ge_signed_half_ge_euclidean_canonical_outputquotientdecode_real. (((ge_real_code_euclidean_canonical_outputquotientdecode) = 2 * ge_signed_half_ge_euclidean_canonical_outputquotientdecode_real + 1 /\ (ge_real_positive_euclidean_canonical_outputquotient) = 0) /\ (ge_real_negative_euclidean_canonical_outputquotient) = S ge_signed_half_ge_euclidean_canonical_outputquotientdecode_real))) /\ ((((ge_imaginary_code_euclidean_canonical_outputquotientdecode) = 2 * (ge_imaginary_positive_euclidean_canonical_outputquotient) /\ (ge_imaginary_negative_euclidean_canonical_outputquotient) = 0) \/ exists ge_signed_half_ge_euclidean_canonical_outputquotientdecode_imaginary. (((ge_imaginary_code_euclidean_canonical_outputquotientdecode) = 2 * ge_signed_half_ge_euclidean_canonical_outputquotientdecode_imaginary + 1 /\ (ge_imaginary_positive_euclidean_canonical_outputquotient) = 0) /\ (ge_imaginary_negative_euclidean_canonical_outputquotient) = S ge_signed_half_ge_euclidean_canonical_outputquotientdecode_imaginary))))))) /\ ((exists ge_real_positive_euclidean_canonical_outputremainder ge_real_negative_euclidean_canonical_outputremainder ge_imaginary_positive_euclidean_canonical_outputremainder ge_imaginary_negative_euclidean_canonical_outputremainder. (exists ge_real_code_euclidean_canonical_outputremainderdecode ge_imaginary_code_euclidean_canonical_outputremainderdecode. (((rc) = ((ge_real_code_euclidean_canonical_outputremainderdecode) + (ge_imaginary_code_euclidean_canonical_outputremainderdecode)) * S ((ge_real_code_euclidean_canonical_outputremainderdecode) + (ge_imaginary_code_euclidean_canonical_outputremainderdecode)) + ((ge_imaginary_code_euclidean_canonical_outputremainderdecode) + (ge_imaginary_code_euclidean_canonical_outputremainderdecode))) /\ (((((ge_real_code_euclidean_canonical_outputremainderdecode) = 2 * (ge_real_positive_euclidean_canonical_outputremainder) /\ (ge_real_negative_euclidean_canonical_outputremainder) = 0) \/ exists ge_signed_half_ge_euclidean_canonical_outputremainderdecode_real. (((ge_real_code_euclidean_canonical_outputremainderdecode) = 2 * ge_signed_half_ge_euclidean_canonical_outputremainderdecode_real + 1 /\ (ge_real_positive_euclidean_canonical_outputremainder) = 0) /\ (ge_real_negative_euclidean_canonical_outputremainder) = S ge_signed_half_ge_euclidean_canonical_outputremainderdecode_real))) /\ ((((ge_imaginary_code_euclidean_canonical_outputremainderdecode) = 2 * (ge_imaginary_positive_euclidean_canonical_outputremainder) /\ (ge_imaginary_negative_euclidean_canonical_outputremainder) = 0) \/ exists ge_signed_half_ge_euclidean_canonical_outputremainderdecode_imaginary. (((ge_imaginary_code_euclidean_canonical_outputremainderdecode) = 2 * ge_signed_half_ge_euclidean_canonical_outputremainderdecode_imaginary + 1 /\ (ge_imaginary_positive_euclidean_canonical_outputremainder) = 0) /\ (ge_imaginary_negative_euclidean_canonical_outputremainder) = S ge_signed_half_ge_euclidean_canonical_outputremainderdecode_imaginary))))))) /\ ((exists ge_division_product_euclidean_canonical_outputequation. ((exists ge_first_rp_euclidean_canonical_outputequationproduct ge_first_rn_euclidean_canonical_outputequationproduct ge_first_ip_euclidean_canonical_outputequationproduct ge_first_in_euclidean_canonical_outputequationproduct ge_second_rp_euclidean_canonical_outputequationproduct ge_second_rn_euclidean_canonical_outputequationproduct ge_second_ip_euclidean_canonical_outputequationproduct ge_second_in_euclidean_canonical_outputequationproduct. ((exists ge_representation_real_code_euclidean_canonical_outputequationproductfirst ge_representation_imaginary_code_euclidean_canonical_outputequationproductfirst. (((bc) = ((ge_representation_real_code_euclidean_canonical_outputequationproductfirst) + (ge_representation_imaginary_code_euclidean_canonical_outputequationproductfirst)) * S ((ge_representation_real_code_euclidean_canonical_outputequationproductfirst) + (ge_representation_imaginary_code_euclidean_canonical_outputequationproductfirst)) + ((ge_representation_imaginary_code_euclidean_canonical_outputequationproductfirst) + (ge_representation_imaginary_code_euclidean_canonical_outputequationproductfirst))) /\ ((exists ge_balance_positive_euclidean_canonical_outputequationproductfirstreal ge_balance_negative_euclidean_canonical_outputequationproductfirstreal. (((((ge_representation_real_code_euclidean_canonical_outputequationproductfirst) = 2 * (ge_balance_positive_euclidean_canonical_outputequationproductfirstreal) /\ (ge_balance_negative_euclidean_canonical_outputequationproductfirstreal) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationproductfirstrealdecode. (((ge_representation_real_code_euclidean_canonical_outputequationproductfirst) = 2 * ge_signed_half_euclidean_canonical_outputequationproductfirstrealdecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationproductfirstreal) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationproductfirstreal) = S ge_signed_half_euclidean_canonical_outputequationproductfirstrealdecode))) /\ ((ge_first_rp_euclidean_canonical_outputequationproduct) + ge_balance_negative_euclidean_canonical_outputequationproductfirstreal = (ge_first_rn_euclidean_canonical_outputequationproduct) + ge_balance_positive_euclidean_canonical_outputequationproductfirstreal))) /\ (exists ge_balance_positive_euclidean_canonical_outputequationproductfirstimaginary ge_balance_negative_euclidean_canonical_outputequationproductfirstimaginary. (((((ge_representation_imaginary_code_euclidean_canonical_outputequationproductfirst) = 2 * (ge_balance_positive_euclidean_canonical_outputequationproductfirstimaginary) /\ (ge_balance_negative_euclidean_canonical_outputequationproductfirstimaginary) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationproductfirstimaginarydecode. (((ge_representation_imaginary_code_euclidean_canonical_outputequationproductfirst) = 2 * ge_signed_half_euclidean_canonical_outputequationproductfirstimaginarydecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationproductfirstimaginary) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationproductfirstimaginary) = S ge_signed_half_euclidean_canonical_outputequationproductfirstimaginarydecode))) /\ ((ge_first_ip_euclidean_canonical_outputequationproduct) + ge_balance_negative_euclidean_canonical_outputequationproductfirstimaginary = (ge_first_in_euclidean_canonical_outputequationproduct) + ge_balance_positive_euclidean_canonical_outputequationproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_euclidean_canonical_outputequationproductsecond ge_representation_imaginary_code_euclidean_canonical_outputequationproductsecond. (((qc) = ((ge_representation_real_code_euclidean_canonical_outputequationproductsecond) + (ge_representation_imaginary_code_euclidean_canonical_outputequationproductsecond)) * S ((ge_representation_real_code_euclidean_canonical_outputequationproductsecond) + (ge_representation_imaginary_code_euclidean_canonical_outputequationproductsecond)) + ((ge_representation_imaginary_code_euclidean_canonical_outputequationproductsecond) + (ge_representation_imaginary_code_euclidean_canonical_outputequationproductsecond))) /\ ((exists ge_balance_positive_euclidean_canonical_outputequationproductsecondreal ge_balance_negative_euclidean_canonical_outputequationproductsecondreal. (((((ge_representation_real_code_euclidean_canonical_outputequationproductsecond) = 2 * (ge_balance_positive_euclidean_canonical_outputequationproductsecondreal) /\ (ge_balance_negative_euclidean_canonical_outputequationproductsecondreal) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationproductsecondrealdecode. (((ge_representation_real_code_euclidean_canonical_outputequationproductsecond) = 2 * ge_signed_half_euclidean_canonical_outputequationproductsecondrealdecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationproductsecondreal) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationproductsecondreal) = S ge_signed_half_euclidean_canonical_outputequationproductsecondrealdecode))) /\ ((ge_second_rp_euclidean_canonical_outputequationproduct) + ge_balance_negative_euclidean_canonical_outputequationproductsecondreal = (ge_second_rn_euclidean_canonical_outputequationproduct) + ge_balance_positive_euclidean_canonical_outputequationproductsecondreal))) /\ (exists ge_balance_positive_euclidean_canonical_outputequationproductsecondimaginary ge_balance_negative_euclidean_canonical_outputequationproductsecondimaginary. (((((ge_representation_imaginary_code_euclidean_canonical_outputequationproductsecond) = 2 * (ge_balance_positive_euclidean_canonical_outputequationproductsecondimaginary) /\ (ge_balance_negative_euclidean_canonical_outputequationproductsecondimaginary) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationproductsecondimaginarydecode. (((ge_representation_imaginary_code_euclidean_canonical_outputequationproductsecond) = 2 * ge_signed_half_euclidean_canonical_outputequationproductsecondimaginarydecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationproductsecondimaginary) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationproductsecondimaginary) = S ge_signed_half_euclidean_canonical_outputequationproductsecondimaginarydecode))) /\ ((ge_second_ip_euclidean_canonical_outputequationproduct) + ge_balance_negative_euclidean_canonical_outputequationproductsecondimaginary = (ge_second_in_euclidean_canonical_outputequationproduct) + ge_balance_positive_euclidean_canonical_outputequationproductsecondimaginary)))))) /\ (exists ge_representation_real_code_euclidean_canonical_outputequationproductoutput ge_representation_imaginary_code_euclidean_canonical_outputequationproductoutput. (((ge_division_product_euclidean_canonical_outputequation) = ((ge_representation_real_code_euclidean_canonical_outputequationproductoutput) + (ge_representation_imaginary_code_euclidean_canonical_outputequationproductoutput)) * S ((ge_representation_real_code_euclidean_canonical_outputequationproductoutput) + (ge_representation_imaginary_code_euclidean_canonical_outputequationproductoutput)) + ((ge_representation_imaginary_code_euclidean_canonical_outputequationproductoutput) + (ge_representation_imaginary_code_euclidean_canonical_outputequationproductoutput))) /\ ((exists ge_balance_positive_euclidean_canonical_outputequationproductoutputreal ge_balance_negative_euclidean_canonical_outputequationproductoutputreal. (((((ge_representation_real_code_euclidean_canonical_outputequationproductoutput) = 2 * (ge_balance_positive_euclidean_canonical_outputequationproductoutputreal) /\ (ge_balance_negative_euclidean_canonical_outputequationproductoutputreal) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationproductoutputrealdecode. (((ge_representation_real_code_euclidean_canonical_outputequationproductoutput) = 2 * ge_signed_half_euclidean_canonical_outputequationproductoutputrealdecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationproductoutputreal) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationproductoutputreal) = S ge_signed_half_euclidean_canonical_outputequationproductoutputrealdecode))) /\ ((((((((ge_first_rp_euclidean_canonical_outputequationproduct) * (ge_second_rp_euclidean_canonical_outputequationproduct))) + (((ge_first_rn_euclidean_canonical_outputequationproduct) * (ge_second_rn_euclidean_canonical_outputequationproduct))))) + (((((ge_first_ip_euclidean_canonical_outputequationproduct) * (ge_second_in_euclidean_canonical_outputequationproduct))) + (((ge_first_in_euclidean_canonical_outputequationproduct) * (ge_second_ip_euclidean_canonical_outputequationproduct))))))) + ge_balance_negative_euclidean_canonical_outputequationproductoutputreal = (((((((ge_first_rp_euclidean_canonical_outputequationproduct) * (ge_second_rn_euclidean_canonical_outputequationproduct))) + (((ge_first_rn_euclidean_canonical_outputequationproduct) * (ge_second_rp_euclidean_canonical_outputequationproduct))))) + (((((ge_first_ip_euclidean_canonical_outputequationproduct) * (ge_second_ip_euclidean_canonical_outputequationproduct))) + (((ge_first_in_euclidean_canonical_outputequationproduct) * (ge_second_in_euclidean_canonical_outputequationproduct))))))) + ge_balance_positive_euclidean_canonical_outputequationproductoutputreal))) /\ (exists ge_balance_positive_euclidean_canonical_outputequationproductoutputimaginary ge_balance_negative_euclidean_canonical_outputequationproductoutputimaginary. (((((ge_representation_imaginary_code_euclidean_canonical_outputequationproductoutput) = 2 * (ge_balance_positive_euclidean_canonical_outputequationproductoutputimaginary) /\ (ge_balance_negative_euclidean_canonical_outputequationproductoutputimaginary) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationproductoutputimaginarydecode. (((ge_representation_imaginary_code_euclidean_canonical_outputequationproductoutput) = 2 * ge_signed_half_euclidean_canonical_outputequationproductoutputimaginarydecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationproductoutputimaginary) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationproductoutputimaginary) = S ge_signed_half_euclidean_canonical_outputequationproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_euclidean_canonical_outputequationproduct) * (ge_second_ip_euclidean_canonical_outputequationproduct))) + (((ge_first_rn_euclidean_canonical_outputequationproduct) * (ge_second_in_euclidean_canonical_outputequationproduct))))) + (((((ge_first_ip_euclidean_canonical_outputequationproduct) * (ge_second_rp_euclidean_canonical_outputequationproduct))) + (((ge_first_in_euclidean_canonical_outputequationproduct) * (ge_second_rn_euclidean_canonical_outputequationproduct))))))) + ge_balance_negative_euclidean_canonical_outputequationproductoutputimaginary = (((((((ge_first_rp_euclidean_canonical_outputequationproduct) * (ge_second_in_euclidean_canonical_outputequationproduct))) + (((ge_first_rn_euclidean_canonical_outputequationproduct) * (ge_second_ip_euclidean_canonical_outputequationproduct))))) + (((((ge_first_ip_euclidean_canonical_outputequationproduct) * (ge_second_rn_euclidean_canonical_outputequationproduct))) + (((ge_first_in_euclidean_canonical_outputequationproduct) * (ge_second_rp_euclidean_canonical_outputequationproduct))))))) + ge_balance_positive_euclidean_canonical_outputequationproductoutputimaginary))))))))) /\ (exists ge_first_rp_euclidean_canonical_outputequationsum ge_first_rn_euclidean_canonical_outputequationsum ge_first_ip_euclidean_canonical_outputequationsum ge_first_in_euclidean_canonical_outputequationsum ge_second_rp_euclidean_canonical_outputequationsum ge_second_rn_euclidean_canonical_outputequationsum ge_second_ip_euclidean_canonical_outputequationsum ge_second_in_euclidean_canonical_outputequationsum. ((exists ge_representation_real_code_euclidean_canonical_outputequationsumfirst ge_representation_imaginary_code_euclidean_canonical_outputequationsumfirst. (((ge_division_product_euclidean_canonical_outputequation) = ((ge_representation_real_code_euclidean_canonical_outputequationsumfirst) + (ge_representation_imaginary_code_euclidean_canonical_outputequationsumfirst)) * S ((ge_representation_real_code_euclidean_canonical_outputequationsumfirst) + (ge_representation_imaginary_code_euclidean_canonical_outputequationsumfirst)) + ((ge_representation_imaginary_code_euclidean_canonical_outputequationsumfirst) + (ge_representation_imaginary_code_euclidean_canonical_outputequationsumfirst))) /\ ((exists ge_balance_positive_euclidean_canonical_outputequationsumfirstreal ge_balance_negative_euclidean_canonical_outputequationsumfirstreal. (((((ge_representation_real_code_euclidean_canonical_outputequationsumfirst) = 2 * (ge_balance_positive_euclidean_canonical_outputequationsumfirstreal) /\ (ge_balance_negative_euclidean_canonical_outputequationsumfirstreal) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationsumfirstrealdecode. (((ge_representation_real_code_euclidean_canonical_outputequationsumfirst) = 2 * ge_signed_half_euclidean_canonical_outputequationsumfirstrealdecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationsumfirstreal) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationsumfirstreal) = S ge_signed_half_euclidean_canonical_outputequationsumfirstrealdecode))) /\ ((ge_first_rp_euclidean_canonical_outputequationsum) + ge_balance_negative_euclidean_canonical_outputequationsumfirstreal = (ge_first_rn_euclidean_canonical_outputequationsum) + ge_balance_positive_euclidean_canonical_outputequationsumfirstreal))) /\ (exists ge_balance_positive_euclidean_canonical_outputequationsumfirstimaginary ge_balance_negative_euclidean_canonical_outputequationsumfirstimaginary. (((((ge_representation_imaginary_code_euclidean_canonical_outputequationsumfirst) = 2 * (ge_balance_positive_euclidean_canonical_outputequationsumfirstimaginary) /\ (ge_balance_negative_euclidean_canonical_outputequationsumfirstimaginary) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationsumfirstimaginarydecode. (((ge_representation_imaginary_code_euclidean_canonical_outputequationsumfirst) = 2 * ge_signed_half_euclidean_canonical_outputequationsumfirstimaginarydecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationsumfirstimaginary) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationsumfirstimaginary) = S ge_signed_half_euclidean_canonical_outputequationsumfirstimaginarydecode))) /\ ((ge_first_ip_euclidean_canonical_outputequationsum) + ge_balance_negative_euclidean_canonical_outputequationsumfirstimaginary = (ge_first_in_euclidean_canonical_outputequationsum) + ge_balance_positive_euclidean_canonical_outputequationsumfirstimaginary)))))) /\ ((exists ge_representation_real_code_euclidean_canonical_outputequationsumsecond ge_representation_imaginary_code_euclidean_canonical_outputequationsumsecond. (((rc) = ((ge_representation_real_code_euclidean_canonical_outputequationsumsecond) + (ge_representation_imaginary_code_euclidean_canonical_outputequationsumsecond)) * S ((ge_representation_real_code_euclidean_canonical_outputequationsumsecond) + (ge_representation_imaginary_code_euclidean_canonical_outputequationsumsecond)) + ((ge_representation_imaginary_code_euclidean_canonical_outputequationsumsecond) + (ge_representation_imaginary_code_euclidean_canonical_outputequationsumsecond))) /\ ((exists ge_balance_positive_euclidean_canonical_outputequationsumsecondreal ge_balance_negative_euclidean_canonical_outputequationsumsecondreal. (((((ge_representation_real_code_euclidean_canonical_outputequationsumsecond) = 2 * (ge_balance_positive_euclidean_canonical_outputequationsumsecondreal) /\ (ge_balance_negative_euclidean_canonical_outputequationsumsecondreal) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationsumsecondrealdecode. (((ge_representation_real_code_euclidean_canonical_outputequationsumsecond) = 2 * ge_signed_half_euclidean_canonical_outputequationsumsecondrealdecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationsumsecondreal) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationsumsecondreal) = S ge_signed_half_euclidean_canonical_outputequationsumsecondrealdecode))) /\ ((ge_second_rp_euclidean_canonical_outputequationsum) + ge_balance_negative_euclidean_canonical_outputequationsumsecondreal = (ge_second_rn_euclidean_canonical_outputequationsum) + ge_balance_positive_euclidean_canonical_outputequationsumsecondreal))) /\ (exists ge_balance_positive_euclidean_canonical_outputequationsumsecondimaginary ge_balance_negative_euclidean_canonical_outputequationsumsecondimaginary. (((((ge_representation_imaginary_code_euclidean_canonical_outputequationsumsecond) = 2 * (ge_balance_positive_euclidean_canonical_outputequationsumsecondimaginary) /\ (ge_balance_negative_euclidean_canonical_outputequationsumsecondimaginary) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationsumsecondimaginarydecode. (((ge_representation_imaginary_code_euclidean_canonical_outputequationsumsecond) = 2 * ge_signed_half_euclidean_canonical_outputequationsumsecondimaginarydecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationsumsecondimaginary) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationsumsecondimaginary) = S ge_signed_half_euclidean_canonical_outputequationsumsecondimaginarydecode))) /\ ((ge_second_ip_euclidean_canonical_outputequationsum) + ge_balance_negative_euclidean_canonical_outputequationsumsecondimaginary = (ge_second_in_euclidean_canonical_outputequationsum) + ge_balance_positive_euclidean_canonical_outputequationsumsecondimaginary)))))) /\ (exists ge_representation_real_code_euclidean_canonical_outputequationsumoutput ge_representation_imaginary_code_euclidean_canonical_outputequationsumoutput. (((ac) = ((ge_representation_real_code_euclidean_canonical_outputequationsumoutput) + (ge_representation_imaginary_code_euclidean_canonical_outputequationsumoutput)) * S ((ge_representation_real_code_euclidean_canonical_outputequationsumoutput) + (ge_representation_imaginary_code_euclidean_canonical_outputequationsumoutput)) + ((ge_representation_imaginary_code_euclidean_canonical_outputequationsumoutput) + (ge_representation_imaginary_code_euclidean_canonical_outputequationsumoutput))) /\ ((exists ge_balance_positive_euclidean_canonical_outputequationsumoutputreal ge_balance_negative_euclidean_canonical_outputequationsumoutputreal. (((((ge_representation_real_code_euclidean_canonical_outputequationsumoutput) = 2 * (ge_balance_positive_euclidean_canonical_outputequationsumoutputreal) /\ (ge_balance_negative_euclidean_canonical_outputequationsumoutputreal) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationsumoutputrealdecode. (((ge_representation_real_code_euclidean_canonical_outputequationsumoutput) = 2 * ge_signed_half_euclidean_canonical_outputequationsumoutputrealdecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationsumoutputreal) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationsumoutputreal) = S ge_signed_half_euclidean_canonical_outputequationsumoutputrealdecode))) /\ ((((ge_first_rp_euclidean_canonical_outputequationsum) + (ge_second_rp_euclidean_canonical_outputequationsum))) + ge_balance_negative_euclidean_canonical_outputequationsumoutputreal = (((ge_first_rn_euclidean_canonical_outputequationsum) + (ge_second_rn_euclidean_canonical_outputequationsum))) + ge_balance_positive_euclidean_canonical_outputequationsumoutputreal))) /\ (exists ge_balance_positive_euclidean_canonical_outputequationsumoutputimaginary ge_balance_negative_euclidean_canonical_outputequationsumoutputimaginary. (((((ge_representation_imaginary_code_euclidean_canonical_outputequationsumoutput) = 2 * (ge_balance_positive_euclidean_canonical_outputequationsumoutputimaginary) /\ (ge_balance_negative_euclidean_canonical_outputequationsumoutputimaginary) = 0) \/ exists ge_signed_half_euclidean_canonical_outputequationsumoutputimaginarydecode. (((ge_representation_imaginary_code_euclidean_canonical_outputequationsumoutput) = 2 * ge_signed_half_euclidean_canonical_outputequationsumoutputimaginarydecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputequationsumoutputimaginary) = 0) /\ (ge_balance_negative_euclidean_canonical_outputequationsumoutputimaginary) = S ge_signed_half_euclidean_canonical_outputequationsumoutputimaginarydecode))) /\ ((((ge_first_ip_euclidean_canonical_outputequationsum) + (ge_second_ip_euclidean_canonical_outputequationsum))) + ge_balance_negative_euclidean_canonical_outputequationsumoutputimaginary = (((ge_first_in_euclidean_canonical_outputequationsum) + (ge_second_in_euclidean_canonical_outputequationsum))) + ge_balance_positive_euclidean_canonical_outputequationsumoutputimaginary))))))))))) /\ ((exists ge_norm_rp_euclidean_canonical_outputsmallnorm ge_norm_rn_euclidean_canonical_outputsmallnorm ge_norm_ip_euclidean_canonical_outputsmallnorm ge_norm_in_euclidean_canonical_outputsmallnorm. ((exists ge_representation_real_code_euclidean_canonical_outputsmallnormrepresentation ge_representation_imaginary_code_euclidean_canonical_outputsmallnormrepresentation. (((rc) = ((ge_representation_real_code_euclidean_canonical_outputsmallnormrepresentation) + (ge_representation_imaginary_code_euclidean_canonical_outputsmallnormrepresentation)) * S ((ge_representation_real_code_euclidean_canonical_outputsmallnormrepresentation) + (ge_representation_imaginary_code_euclidean_canonical_outputsmallnormrepresentation)) + ((ge_representation_imaginary_code_euclidean_canonical_outputsmallnormrepresentation) + (ge_representation_imaginary_code_euclidean_canonical_outputsmallnormrepresentation))) /\ ((exists ge_balance_positive_euclidean_canonical_outputsmallnormrepresentationreal ge_balance_negative_euclidean_canonical_outputsmallnormrepresentationreal. (((((ge_representation_real_code_euclidean_canonical_outputsmallnormrepresentation) = 2 * (ge_balance_positive_euclidean_canonical_outputsmallnormrepresentationreal) /\ (ge_balance_negative_euclidean_canonical_outputsmallnormrepresentationreal) = 0) \/ exists ge_signed_half_euclidean_canonical_outputsmallnormrepresentationrealdecode. (((ge_representation_real_code_euclidean_canonical_outputsmallnormrepresentation) = 2 * ge_signed_half_euclidean_canonical_outputsmallnormrepresentationrealdecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputsmallnormrepresentationreal) = 0) /\ (ge_balance_negative_euclidean_canonical_outputsmallnormrepresentationreal) = S ge_signed_half_euclidean_canonical_outputsmallnormrepresentationrealdecode))) /\ ((ge_norm_rp_euclidean_canonical_outputsmallnorm) + ge_balance_negative_euclidean_canonical_outputsmallnormrepresentationreal = (ge_norm_rn_euclidean_canonical_outputsmallnorm) + ge_balance_positive_euclidean_canonical_outputsmallnormrepresentationreal))) /\ (exists ge_balance_positive_euclidean_canonical_outputsmallnormrepresentationimaginary ge_balance_negative_euclidean_canonical_outputsmallnormrepresentationimaginary. (((((ge_representation_imaginary_code_euclidean_canonical_outputsmallnormrepresentation) = 2 * (ge_balance_positive_euclidean_canonical_outputsmallnormrepresentationimaginary) /\ (ge_balance_negative_euclidean_canonical_outputsmallnormrepresentationimaginary) = 0) \/ exists ge_signed_half_euclidean_canonical_outputsmallnormrepresentationimaginarydecode. (((ge_representation_imaginary_code_euclidean_canonical_outputsmallnormrepresentation) = 2 * ge_signed_half_euclidean_canonical_outputsmallnormrepresentationimaginarydecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputsmallnormrepresentationimaginary) = 0) /\ (ge_balance_negative_euclidean_canonical_outputsmallnormrepresentationimaginary) = S ge_signed_half_euclidean_canonical_outputsmallnormrepresentationimaginarydecode))) /\ ((ge_norm_ip_euclidean_canonical_outputsmallnorm) + ge_balance_negative_euclidean_canonical_outputsmallnormrepresentationimaginary = (ge_norm_in_euclidean_canonical_outputsmallnorm) + ge_balance_positive_euclidean_canonical_outputsmallnormrepresentationimaginary)))))) /\ (exists ge_real_square_euclidean_canonical_outputsmallnormsquare ge_imaginary_square_euclidean_canonical_outputsmallnormsquare. ((((((ge_norm_rp_euclidean_canonical_outputsmallnorm) * (ge_norm_rp_euclidean_canonical_outputsmallnorm))) + (((ge_norm_rn_euclidean_canonical_outputsmallnorm) * (ge_norm_rn_euclidean_canonical_outputsmallnorm)))) = ((ge_real_square_euclidean_canonical_outputsmallnormsquare) + (((((ge_norm_rp_euclidean_canonical_outputsmallnorm) * (ge_norm_rn_euclidean_canonical_outputsmallnorm))) + (((ge_norm_rn_euclidean_canonical_outputsmallnorm) * (ge_norm_rp_euclidean_canonical_outputsmallnorm))))))) /\ ((((((ge_norm_ip_euclidean_canonical_outputsmallnorm) * (ge_norm_ip_euclidean_canonical_outputsmallnorm))) + (((ge_norm_in_euclidean_canonical_outputsmallnorm) * (ge_norm_in_euclidean_canonical_outputsmallnorm)))) = ((ge_imaginary_square_euclidean_canonical_outputsmallnormsquare) + (((((ge_norm_ip_euclidean_canonical_outputsmallnorm) * (ge_norm_in_euclidean_canonical_outputsmallnorm))) + (((ge_norm_in_euclidean_canonical_outputsmallnorm) * (ge_norm_ip_euclidean_canonical_outputsmallnorm))))))) /\ ((U) = ge_real_square_euclidean_canonical_outputsmallnormsquare + ge_imaginary_square_euclidean_canonical_outputsmallnormsquare)))))) /\ ((exists ge_norm_rp_euclidean_canonical_outputlargenorm ge_norm_rn_euclidean_canonical_outputlargenorm ge_norm_ip_euclidean_canonical_outputlargenorm ge_norm_in_euclidean_canonical_outputlargenorm. ((exists ge_representation_real_code_euclidean_canonical_outputlargenormrepresentation ge_representation_imaginary_code_euclidean_canonical_outputlargenormrepresentation. (((bc) = ((ge_representation_real_code_euclidean_canonical_outputlargenormrepresentation) + (ge_representation_imaginary_code_euclidean_canonical_outputlargenormrepresentation)) * S ((ge_representation_real_code_euclidean_canonical_outputlargenormrepresentation) + (ge_representation_imaginary_code_euclidean_canonical_outputlargenormrepresentation)) + ((ge_representation_imaginary_code_euclidean_canonical_outputlargenormrepresentation) + (ge_representation_imaginary_code_euclidean_canonical_outputlargenormrepresentation))) /\ ((exists ge_balance_positive_euclidean_canonical_outputlargenormrepresentationreal ge_balance_negative_euclidean_canonical_outputlargenormrepresentationreal. (((((ge_representation_real_code_euclidean_canonical_outputlargenormrepresentation) = 2 * (ge_balance_positive_euclidean_canonical_outputlargenormrepresentationreal) /\ (ge_balance_negative_euclidean_canonical_outputlargenormrepresentationreal) = 0) \/ exists ge_signed_half_euclidean_canonical_outputlargenormrepresentationrealdecode. (((ge_representation_real_code_euclidean_canonical_outputlargenormrepresentation) = 2 * ge_signed_half_euclidean_canonical_outputlargenormrepresentationrealdecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputlargenormrepresentationreal) = 0) /\ (ge_balance_negative_euclidean_canonical_outputlargenormrepresentationreal) = S ge_signed_half_euclidean_canonical_outputlargenormrepresentationrealdecode))) /\ ((ge_norm_rp_euclidean_canonical_outputlargenorm) + ge_balance_negative_euclidean_canonical_outputlargenormrepresentationreal = (ge_norm_rn_euclidean_canonical_outputlargenorm) + ge_balance_positive_euclidean_canonical_outputlargenormrepresentationreal))) /\ (exists ge_balance_positive_euclidean_canonical_outputlargenormrepresentationimaginary ge_balance_negative_euclidean_canonical_outputlargenormrepresentationimaginary. (((((ge_representation_imaginary_code_euclidean_canonical_outputlargenormrepresentation) = 2 * (ge_balance_positive_euclidean_canonical_outputlargenormrepresentationimaginary) /\ (ge_balance_negative_euclidean_canonical_outputlargenormrepresentationimaginary) = 0) \/ exists ge_signed_half_euclidean_canonical_outputlargenormrepresentationimaginarydecode. (((ge_representation_imaginary_code_euclidean_canonical_outputlargenormrepresentation) = 2 * ge_signed_half_euclidean_canonical_outputlargenormrepresentationimaginarydecode + 1 /\ (ge_balance_positive_euclidean_canonical_outputlargenormrepresentationimaginary) = 0) /\ (ge_balance_negative_euclidean_canonical_outputlargenormrepresentationimaginary) = S ge_signed_half_euclidean_canonical_outputlargenormrepresentationimaginarydecode))) /\ ((ge_norm_ip_euclidean_canonical_outputlargenorm) + ge_balance_negative_euclidean_canonical_outputlargenormrepresentationimaginary = (ge_norm_in_euclidean_canonical_outputlargenorm) + ge_balance_positive_euclidean_canonical_outputlargenormrepresentationimaginary)))))) /\ (exists ge_real_square_euclidean_canonical_outputlargenormsquare ge_imaginary_square_euclidean_canonical_outputlargenormsquare. ((((((ge_norm_rp_euclidean_canonical_outputlargenorm) * (ge_norm_rp_euclidean_canonical_outputlargenorm))) + (((ge_norm_rn_euclidean_canonical_outputlargenorm) * (ge_norm_rn_euclidean_canonical_outputlargenorm)))) = ((ge_real_square_euclidean_canonical_outputlargenormsquare) + (((((ge_norm_rp_euclidean_canonical_outputlargenorm) * (ge_norm_rn_euclidean_canonical_outputlargenorm))) + (((ge_norm_rn_euclidean_canonical_outputlargenorm) * (ge_norm_rp_euclidean_canonical_outputlargenorm))))))) /\ ((((((ge_norm_ip_euclidean_canonical_outputlargenorm) * (ge_norm_ip_euclidean_canonical_outputlargenorm))) + (((ge_norm_in_euclidean_canonical_outputlargenorm) * (ge_norm_in_euclidean_canonical_outputlargenorm)))) = ((ge_imaginary_square_euclidean_canonical_outputlargenormsquare) + (((((ge_norm_ip_euclidean_canonical_outputlargenorm) * (ge_norm_in_euclidean_canonical_outputlargenorm))) + (((ge_norm_in_euclidean_canonical_outputlargenorm) * (ge_norm_ip_euclidean_canonical_outputlargenorm))))))) /\ ((V) = ge_real_square_euclidean_canonical_outputlargenormsquare + ge_imaginary_square_euclidean_canonical_outputlargenormsquare)))))) /\ (exists ge_gap_euclidean_canonical_outputstrict. ge_gap_euclidean_canonical_outputstrict + S (U) = (V))))))))Constructive proof overview
Generated structural guide
Full constructive Gaussian Euclidean division: every canonical dividend and nonzero canonical divisor produce actual canonical quotient and remainder codes satisfying a=bq+r and strict decrease of their actual squared norms.
The unchanged tactic script uses 7 declared prerequisites and contains 149 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
GI0044 gaussian_decode_representation GI0047 gaussian_representation_zero_iff GI003A gaussian_signed_euclidean_division_exists GI003F gaussian_representation_exists GI0045 gaussian_representation_is_gaussian GI005C gaussian_division_remainder_of_representations GI004D gaussian_norm_of_representationDirect 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 (7)
01Fix variables and assumptionsL1–5
02Separate the logical casesL6–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
03Establish hAL14–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian decode representation.
- L14
have hA : ZPairRep(ac,x,x1,x2,x3)Definitions: ZPairRep - L15
specialize gaussian_decode_representation ac - L16
specialize gaussian_decode_representation x - L17
specialize gaussian_decode_representation x1 - L18
specialize gaussian_decode_representation x2 - L19
specialize gaussian_decode_representation x3 - L20
apply gaussian_decode_representation - L21
exact hfirst_witness_witness_witness_witness
04Establish hBL22–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian decode representation.
- L22
have hB : ZPairRep(bc,x4,x5,x6,x7)Definitions: ZPairRep - L23
specialize gaussian_decode_representation bc - L24
specialize gaussian_decode_representation x4 - L25
specialize gaussian_decode_representation x5 - L26
specialize gaussian_decode_representation x6 - L27
specialize gaussian_decode_representation x7 - L28
apply gaussian_decode_representation - L29
exact hsecond_witness_witness_witness_witness
05Establish hzeroL30–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian representation zero iff.
- L30
have hzero : (bc = 0 -> (x4 = x5 /\ x6 = x7)) /\ ((x4 = x5 /\ x6 = x7) -> bc = 0) - L31
specialize gaussian_representation_zero_iff bc - L32
specialize gaussian_representation_zero_iff x4 - L33
specialize gaussian_representation_zero_iff x5 - L34
specialize gaussian_representation_zero_iff x6 - L35
specialize gaussian_representation_zero_iff x7 - L36
apply gaussian_representation_zero_iff - L37
exact hB
06Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases hzero
07Establish hraw_nonzeroL39–43
08Establish hdivisionL44–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian signed euclidean division exists.
- L44
have hdivision : ∃ i. ∃ j. ∃ k. ∃ l. ∃ o. ∃ p. ∃ s. ∃ t. ∃ U. ∃ V. GaussianSignedDivisionRemainder(x,x1,x2,x3,x4,x5,x6,x7,i,j,k,l,o,p,s,t,U,V)Definitions: GaussianSignedDivisionRemainder - L45
specialize gaussian_signed_euclidean_division_exists x - L46
specialize gaussian_signed_euclidean_division_exists x1 - L47
specialize gaussian_signed_euclidean_division_exists x2 - L48
specialize gaussian_signed_euclidean_division_exists x3 - L49
specialize gaussian_signed_euclidean_division_exists x4 - L50
specialize gaussian_signed_euclidean_division_exists x5 - L51
specialize gaussian_signed_euclidean_division_exists x6 - L52
specialize gaussian_signed_euclidean_division_exists x7 - L53
apply gaussian_signed_euclidean_division_exists
09Use earlier factsL54–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
exact hraw_nonzero
10Separate the logical casesL55–64
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
cases hdivision - L56
cases hdivision_witness - L57
cases hdivision_witness_witness - L58
cases hdivision_witness_witness_witness - L59
cases hdivision_witness_witness_witness_witness - L60
cases hdivision_witness_witness_witness_witness_witness - L61
cases hdivision_witness_witness_witness_witness_witness_witness - L62
cases hdivision_witness_witness_witness_witness_witness_witness_witness - L63
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness - L64
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness
11Separate the logical casesL65–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness - L66
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right - L67
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right
12Establish hQL68–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian representation exists.
13Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
cases hQ
14Establish hRL75–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian representation exists.
15Separate the logical casesL81–81
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L81
cases hR
16Construct an explicit witnessL82–85
17Separate the logical casesL86–86
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L86
split
18Use earlier factsL87–93
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L87
specialize gaussian_representation_is_gaussian x18 - L88
specialize gaussian_representation_is_gaussian x8 - L89
specialize gaussian_representation_is_gaussian x9 - L90
specialize gaussian_representation_is_gaussian x10 - L91
specialize gaussian_representation_is_gaussian x11 - L92
apply gaussian_representation_is_gaussian - L93
exact hQ_witness
19Separate the logical casesL94–94
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L94
split
20Use earlier factsL95–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L95
specialize gaussian_representation_is_gaussian x19 - L96
specialize gaussian_representation_is_gaussian x12 - L97
specialize gaussian_representation_is_gaussian x13 - L98
specialize gaussian_representation_is_gaussian x14 - L99
specialize gaussian_representation_is_gaussian x15 - L100
apply gaussian_representation_is_gaussian - L101
exact hR_witness
21Separate the logical casesL102–102
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L102
split
22Use earlier factsL103–112
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
specialize gaussian_division_remainder_of_representations ac - L104
specialize gaussian_division_remainder_of_representations bc - L105
specialize gaussian_division_remainder_of_representations x18 - L106
specialize gaussian_division_remainder_of_representations x19 - L107
specialize gaussian_division_remainder_of_representations x - L108
specialize gaussian_division_remainder_of_representations x1 - L109
specialize gaussian_division_remainder_of_representations x2 - L110
specialize gaussian_division_remainder_of_representations x3 - L111
specialize gaussian_division_remainder_of_representations x4 - L112
specialize gaussian_division_remainder_of_representations x5
23Use earlier factsL113–122
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L113
specialize gaussian_division_remainder_of_representations x6 - L114
specialize gaussian_division_remainder_of_representations x7 - L115
specialize gaussian_division_remainder_of_representations x8 - L116
specialize gaussian_division_remainder_of_representations x9 - L117
specialize gaussian_division_remainder_of_representations x10 - L118
specialize gaussian_division_remainder_of_representations x11 - L119
specialize gaussian_division_remainder_of_representations x12 - L120
specialize gaussian_division_remainder_of_representations x13 - L121
specialize gaussian_division_remainder_of_representations x14 - L122
specialize gaussian_division_remainder_of_representations x15
24Use earlier factsL123–128
Instantiate or apply named facts and discharge the corresponding proof obligations.
25Separate the logical casesL129–129
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L129
split
26Use earlier factsL130–138
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L130
specialize gaussian_norm_of_representation x19 - L131
specialize gaussian_norm_of_representation x12 - L132
specialize gaussian_norm_of_representation x13 - L133
specialize gaussian_norm_of_representation x14 - L134
specialize gaussian_norm_of_representation x15 - L135
specialize gaussian_norm_of_representation x16 - L136
apply gaussian_norm_of_representation - L137
exact hR_witness - L138
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left
27Separate the logical casesL139–139
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L139
split
28Use earlier factsL140–149
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L140
specialize gaussian_norm_of_representation bc - L141
specialize gaussian_norm_of_representation x4 - L142
specialize gaussian_norm_of_representation x5 - L143
specialize gaussian_norm_of_representation x6 - L144
specialize gaussian_norm_of_representation x7 - L145
specialize gaussian_norm_of_representation x17 - L146
apply gaussian_norm_of_representation - L147
exact hB - L148
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left - L149
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right
Original exact command ledger · 149 lines
- 0001
intro ac - 0002
intro bc - 0003
intro hfirst - 0004
intro hsecond - 0005
intro hnonzero - 0006
cases hfirst - 0007
cases hfirst_witness - 0008
cases hfirst_witness_witness - 0009
cases hfirst_witness_witness_witness - 0010
cases hsecond - 0011
cases hsecond_witness - 0012
cases hsecond_witness_witness - 0013
cases hsecond_witness_witness_witness - 0014
have hA : exists ge_representation_real_code_euclidean_dividend_rep ge_representation_imaginary_code_euclidean_dividend_rep. (((ac) = ((ge_representation_real_code_euclidean_dividend_rep) + (ge_representation_imaginary_code_euclidean_dividend_rep)) * S ((ge_representation_real_code_euclidean_dividend_rep) + (ge_representation_imaginary_code_euclidean_dividend_rep)) + ((ge_representation_imaginary_code_euclidean_dividend_rep) + (ge_representation_imaginary_code_euclidean_dividend_rep))) /\ ((exists ge_balance_positive_euclidean_dividend_repreal ge_balance_negative_euclidean_dividend_repreal. (((((ge_representation_real_code_euclidean_dividend_rep) = 2 * (ge_balance_positive_euclidean_dividend_repreal) /\ (ge_balance_negative_euclidean_dividend_repreal) = 0) \/ exists ge_signed_half_euclidean_dividend_reprealdecode. (((ge_representation_real_code_euclidean_dividend_rep) = 2 * ge_signed_half_euclidean_dividend_reprealdecode + 1 /\ (ge_balance_positive_euclidean_dividend_repreal) = 0) /\ (ge_balance_negative_euclidean_dividend_repreal) = S ge_signed_half_euclidean_dividend_reprealdecode))) /\ ((x) + ge_balance_negative_euclidean_dividend_repreal = (x1) + ge_balance_positive_euclidean_dividend_repreal))) /\ (exists ge_balance_positive_euclidean_dividend_repimaginary ge_balance_negative_euclidean_dividend_repimaginary. (((((ge_representation_imaginary_code_euclidean_dividend_rep) = 2 * (ge_balance_positive_euclidean_dividend_repimaginary) /\ (ge_balance_negative_euclidean_dividend_repimaginary) = 0) \/ exists ge_signed_half_euclidean_dividend_repimaginarydecode. (((ge_representation_imaginary_code_euclidean_dividend_rep) = 2 * ge_signed_half_euclidean_dividend_repimaginarydecode + 1 /\ (ge_balance_positive_euclidean_dividend_repimaginary) = 0) /\ (ge_balance_negative_euclidean_dividend_repimaginary) = S ge_signed_half_euclidean_dividend_repimaginarydecode))) /\ ((x2) + ge_balance_negative_euclidean_dividend_repimaginary = (x3) + ge_balance_positive_euclidean_dividend_repimaginary))))) - 0015
specialize gaussian_decode_representation ac - 0016
specialize gaussian_decode_representation x - 0017
specialize gaussian_decode_representation x1 - 0018
specialize gaussian_decode_representation x2 - 0019
specialize gaussian_decode_representation x3 - 0020
apply gaussian_decode_representation - 0021
exact hfirst_witness_witness_witness_witness - 0022
have hB : exists ge_representation_real_code_euclidean_divisor_rep ge_representation_imaginary_code_euclidean_divisor_rep. (((bc) = ((ge_representation_real_code_euclidean_divisor_rep) + (ge_representation_imaginary_code_euclidean_divisor_rep)) * S ((ge_representation_real_code_euclidean_divisor_rep) + (ge_representation_imaginary_code_euclidean_divisor_rep)) + ((ge_representation_imaginary_code_euclidean_divisor_rep) + (ge_representation_imaginary_code_euclidean_divisor_rep))) /\ ((exists ge_balance_positive_euclidean_divisor_repreal ge_balance_negative_euclidean_divisor_repreal. (((((ge_representation_real_code_euclidean_divisor_rep) = 2 * (ge_balance_positive_euclidean_divisor_repreal) /\ (ge_balance_negative_euclidean_divisor_repreal) = 0) \/ exists ge_signed_half_euclidean_divisor_reprealdecode. (((ge_representation_real_code_euclidean_divisor_rep) = 2 * ge_signed_half_euclidean_divisor_reprealdecode + 1 /\ (ge_balance_positive_euclidean_divisor_repreal) = 0) /\ (ge_balance_negative_euclidean_divisor_repreal) = S ge_signed_half_euclidean_divisor_reprealdecode))) /\ ((x4) + ge_balance_negative_euclidean_divisor_repreal = (x5) + ge_balance_positive_euclidean_divisor_repreal))) /\ (exists ge_balance_positive_euclidean_divisor_repimaginary ge_balance_negative_euclidean_divisor_repimaginary. (((((ge_representation_imaginary_code_euclidean_divisor_rep) = 2 * (ge_balance_positive_euclidean_divisor_repimaginary) /\ (ge_balance_negative_euclidean_divisor_repimaginary) = 0) \/ exists ge_signed_half_euclidean_divisor_repimaginarydecode. (((ge_representation_imaginary_code_euclidean_divisor_rep) = 2 * ge_signed_half_euclidean_divisor_repimaginarydecode + 1 /\ (ge_balance_positive_euclidean_divisor_repimaginary) = 0) /\ (ge_balance_negative_euclidean_divisor_repimaginary) = S ge_signed_half_euclidean_divisor_repimaginarydecode))) /\ ((x6) + ge_balance_negative_euclidean_divisor_repimaginary = (x7) + ge_balance_positive_euclidean_divisor_repimaginary))))) - 0023
specialize gaussian_decode_representation bc - 0024
specialize gaussian_decode_representation x4 - 0025
specialize gaussian_decode_representation x5 - 0026
specialize gaussian_decode_representation x6 - 0027
specialize gaussian_decode_representation x7 - 0028
apply gaussian_decode_representation - 0029
exact hsecond_witness_witness_witness_witness - 0030
have hzero : (bc = 0 -> (x4 = x5 /\ x6 = x7)) /\ ((x4 = x5 /\ x6 = x7) -> bc = 0) - 0031
specialize gaussian_representation_zero_iff bc - 0032
specialize gaussian_representation_zero_iff x4 - 0033
specialize gaussian_representation_zero_iff x5 - 0034
specialize gaussian_representation_zero_iff x6 - 0035
specialize gaussian_representation_zero_iff x7 - 0036
apply gaussian_representation_zero_iff - 0037
exact hB - 0038
cases hzero - 0039
have hraw_nonzero : ~(x4 = x5 /\ x6 = x7) - 0040
intro hvanishing - 0041
apply hnonzero - 0042
apply hzero_right - 0043
exact hvanishing - 0044
have hdivision : exists i j k l o p s t U V. (((((((((((((((x4) * (i))) + (((x5) * (j))))) + (((((x6) * (l))) + (((x7) * (k))))))) + (o))) + (x1)) = ((x) + (((((((((x4) * (j))) + (((x5) * (i))))) + (((((x6) * (k))) + (((x7) * (l))))))) + (p))))) /\ (((((((((((x4) * (k))) + (((x5) * (l))))) + (((((x6) * (i))) + (((x7) * (j))))))) + (s))) + (x3)) = ((x2) + (((((((((x4) * (l))) + (((x5) * (k))))) + (((((x6) * (j))) + (((x7) * (i))))))) + (t))))))) /\ ((exists ge_real_square_euclidean_raw_constructremainder ge_imaginary_square_euclidean_raw_constructremainder. ((((((o) * (o))) + (((p) * (p)))) = ((ge_real_square_euclidean_raw_constructremainder) + (((((o) * (p))) + (((p) * (o))))))) /\ ((((((s) * (s))) + (((t) * (t)))) = ((ge_imaginary_square_euclidean_raw_constructremainder) + (((((s) * (t))) + (((t) * (s))))))) /\ ((U) = ge_real_square_euclidean_raw_constructremainder + ge_imaginary_square_euclidean_raw_constructremainder)))) /\ ((exists ge_real_square_euclidean_raw_constructdivisor ge_imaginary_square_euclidean_raw_constructdivisor. ((((((x4) * (x4))) + (((x5) * (x5)))) = ((ge_real_square_euclidean_raw_constructdivisor) + (((((x4) * (x5))) + (((x5) * (x4))))))) /\ ((((((x6) * (x6))) + (((x7) * (x7)))) = ((ge_imaginary_square_euclidean_raw_constructdivisor) + (((((x6) * (x7))) + (((x7) * (x6))))))) /\ ((V) = ge_real_square_euclidean_raw_constructdivisor + ge_imaginary_square_euclidean_raw_constructdivisor)))) /\ (exists ge_gap_euclidean_raw_constructstrict. ge_gap_euclidean_raw_constructstrict + S (U) = (V)))))) - 0045
specialize gaussian_signed_euclidean_division_exists x - 0046
specialize gaussian_signed_euclidean_division_exists x1 - 0047
specialize gaussian_signed_euclidean_division_exists x2 - 0048
specialize gaussian_signed_euclidean_division_exists x3 - 0049
specialize gaussian_signed_euclidean_division_exists x4 - 0050
specialize gaussian_signed_euclidean_division_exists x5 - 0051
specialize gaussian_signed_euclidean_division_exists x6 - 0052
specialize gaussian_signed_euclidean_division_exists x7 - 0053
apply gaussian_signed_euclidean_division_exists - 0054
exact hraw_nonzero - 0055
cases hdivision - 0056
cases hdivision_witness - 0057
cases hdivision_witness_witness - 0058
cases hdivision_witness_witness_witness - 0059
cases hdivision_witness_witness_witness_witness - 0060
cases hdivision_witness_witness_witness_witness_witness - 0061
cases hdivision_witness_witness_witness_witness_witness_witness - 0062
cases hdivision_witness_witness_witness_witness_witness_witness_witness - 0063
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness - 0064
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness - 0065
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness - 0066
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right - 0067
cases hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right - 0068
have hQ : exists qc. (exists ge_representation_real_code_euclidean_quotient_construct ge_representation_imaginary_code_euclidean_quotient_construct. (((qc) = ((ge_representation_real_code_euclidean_quotient_construct) + (ge_representation_imaginary_code_euclidean_quotient_construct)) * S ((ge_representation_real_code_euclidean_quotient_construct) + (ge_representation_imaginary_code_euclidean_quotient_construct)) + ((ge_representation_imaginary_code_euclidean_quotient_construct) + (ge_representation_imaginary_code_euclidean_quotient_construct))) /\ ((exists ge_balance_positive_euclidean_quotient_constructreal ge_balance_negative_euclidean_quotient_constructreal. (((((ge_representation_real_code_euclidean_quotient_construct) = 2 * (ge_balance_positive_euclidean_quotient_constructreal) /\ (ge_balance_negative_euclidean_quotient_constructreal) = 0) \/ exists ge_signed_half_euclidean_quotient_constructrealdecode. (((ge_representation_real_code_euclidean_quotient_construct) = 2 * ge_signed_half_euclidean_quotient_constructrealdecode + 1 /\ (ge_balance_positive_euclidean_quotient_constructreal) = 0) /\ (ge_balance_negative_euclidean_quotient_constructreal) = S ge_signed_half_euclidean_quotient_constructrealdecode))) /\ ((x8) + ge_balance_negative_euclidean_quotient_constructreal = (x9) + ge_balance_positive_euclidean_quotient_constructreal))) /\ (exists ge_balance_positive_euclidean_quotient_constructimaginary ge_balance_negative_euclidean_quotient_constructimaginary. (((((ge_representation_imaginary_code_euclidean_quotient_construct) = 2 * (ge_balance_positive_euclidean_quotient_constructimaginary) /\ (ge_balance_negative_euclidean_quotient_constructimaginary) = 0) \/ exists ge_signed_half_euclidean_quotient_constructimaginarydecode. (((ge_representation_imaginary_code_euclidean_quotient_construct) = 2 * ge_signed_half_euclidean_quotient_constructimaginarydecode + 1 /\ (ge_balance_positive_euclidean_quotient_constructimaginary) = 0) /\ (ge_balance_negative_euclidean_quotient_constructimaginary) = S ge_signed_half_euclidean_quotient_constructimaginarydecode))) /\ ((x10) + ge_balance_negative_euclidean_quotient_constructimaginary = (x11) + ge_balance_positive_euclidean_quotient_constructimaginary)))))) - 0069
specialize gaussian_representation_exists x8 - 0070
specialize gaussian_representation_exists x9 - 0071
specialize gaussian_representation_exists x10 - 0072
specialize gaussian_representation_exists x11 - 0073
apply gaussian_representation_exists - 0074
cases hQ - 0075
have hR : exists rc. (exists ge_representation_real_code_euclidean_remainder_construct ge_representation_imaginary_code_euclidean_remainder_construct. (((rc) = ((ge_representation_real_code_euclidean_remainder_construct) + (ge_representation_imaginary_code_euclidean_remainder_construct)) * S ((ge_representation_real_code_euclidean_remainder_construct) + (ge_representation_imaginary_code_euclidean_remainder_construct)) + ((ge_representation_imaginary_code_euclidean_remainder_construct) + (ge_representation_imaginary_code_euclidean_remainder_construct))) /\ ((exists ge_balance_positive_euclidean_remainder_constructreal ge_balance_negative_euclidean_remainder_constructreal. (((((ge_representation_real_code_euclidean_remainder_construct) = 2 * (ge_balance_positive_euclidean_remainder_constructreal) /\ (ge_balance_negative_euclidean_remainder_constructreal) = 0) \/ exists ge_signed_half_euclidean_remainder_constructrealdecode. (((ge_representation_real_code_euclidean_remainder_construct) = 2 * ge_signed_half_euclidean_remainder_constructrealdecode + 1 /\ (ge_balance_positive_euclidean_remainder_constructreal) = 0) /\ (ge_balance_negative_euclidean_remainder_constructreal) = S ge_signed_half_euclidean_remainder_constructrealdecode))) /\ ((x12) + ge_balance_negative_euclidean_remainder_constructreal = (x13) + ge_balance_positive_euclidean_remainder_constructreal))) /\ (exists ge_balance_positive_euclidean_remainder_constructimaginary ge_balance_negative_euclidean_remainder_constructimaginary. (((((ge_representation_imaginary_code_euclidean_remainder_construct) = 2 * (ge_balance_positive_euclidean_remainder_constructimaginary) /\ (ge_balance_negative_euclidean_remainder_constructimaginary) = 0) \/ exists ge_signed_half_euclidean_remainder_constructimaginarydecode. (((ge_representation_imaginary_code_euclidean_remainder_construct) = 2 * ge_signed_half_euclidean_remainder_constructimaginarydecode + 1 /\ (ge_balance_positive_euclidean_remainder_constructimaginary) = 0) /\ (ge_balance_negative_euclidean_remainder_constructimaginary) = S ge_signed_half_euclidean_remainder_constructimaginarydecode))) /\ ((x14) + ge_balance_negative_euclidean_remainder_constructimaginary = (x15) + ge_balance_positive_euclidean_remainder_constructimaginary)))))) - 0076
specialize gaussian_representation_exists x12 - 0077
specialize gaussian_representation_exists x13 - 0078
specialize gaussian_representation_exists x14 - 0079
specialize gaussian_representation_exists x15 - 0080
apply gaussian_representation_exists - 0081
cases hR - 0082
exists x18 - 0083
exists x19 - 0084
exists x16 - 0085
exists x17 - 0086
split - 0087
specialize gaussian_representation_is_gaussian x18 - 0088
specialize gaussian_representation_is_gaussian x8 - 0089
specialize gaussian_representation_is_gaussian x9 - 0090
specialize gaussian_representation_is_gaussian x10 - 0091
specialize gaussian_representation_is_gaussian x11 - 0092
apply gaussian_representation_is_gaussian - 0093
exact hQ_witness - 0094
split - 0095
specialize gaussian_representation_is_gaussian x19 - 0096
specialize gaussian_representation_is_gaussian x12 - 0097
specialize gaussian_representation_is_gaussian x13 - 0098
specialize gaussian_representation_is_gaussian x14 - 0099
specialize gaussian_representation_is_gaussian x15 - 0100
apply gaussian_representation_is_gaussian - 0101
exact hR_witness - 0102
split - 0103
specialize gaussian_division_remainder_of_representations ac - 0104
specialize gaussian_division_remainder_of_representations bc - 0105
specialize gaussian_division_remainder_of_representations x18 - 0106
specialize gaussian_division_remainder_of_representations x19 - 0107
specialize gaussian_division_remainder_of_representations x - 0108
specialize gaussian_division_remainder_of_representations x1 - 0109
specialize gaussian_division_remainder_of_representations x2 - 0110
specialize gaussian_division_remainder_of_representations x3 - 0111
specialize gaussian_division_remainder_of_representations x4 - 0112
specialize gaussian_division_remainder_of_representations x5 - 0113
specialize gaussian_division_remainder_of_representations x6 - 0114
specialize gaussian_division_remainder_of_representations x7 - 0115
specialize gaussian_division_remainder_of_representations x8 - 0116
specialize gaussian_division_remainder_of_representations x9 - 0117
specialize gaussian_division_remainder_of_representations x10 - 0118
specialize gaussian_division_remainder_of_representations x11 - 0119
specialize gaussian_division_remainder_of_representations x12 - 0120
specialize gaussian_division_remainder_of_representations x13 - 0121
specialize gaussian_division_remainder_of_representations x14 - 0122
specialize gaussian_division_remainder_of_representations x15 - 0123
apply gaussian_division_remainder_of_representations - 0124
exact hA - 0125
exact hB - 0126
exact hQ_witness - 0127
exact hR_witness - 0128
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_left - 0129
split - 0130
specialize gaussian_norm_of_representation x19 - 0131
specialize gaussian_norm_of_representation x12 - 0132
specialize gaussian_norm_of_representation x13 - 0133
specialize gaussian_norm_of_representation x14 - 0134
specialize gaussian_norm_of_representation x15 - 0135
specialize gaussian_norm_of_representation x16 - 0136
apply gaussian_norm_of_representation - 0137
exact hR_witness - 0138
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_left - 0139
split - 0140
specialize gaussian_norm_of_representation bc - 0141
specialize gaussian_norm_of_representation x4 - 0142
specialize gaussian_norm_of_representation x5 - 0143
specialize gaussian_norm_of_representation x6 - 0144
specialize gaussian_norm_of_representation x7 - 0145
specialize gaussian_norm_of_representation x17 - 0146
apply gaussian_norm_of_representation - 0147
exact hB - 0148
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left - 0149
exact hdivision_witness_witness_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right