GF004B

gaussian_common_divisor_add

A common Gaussian divisor divides the actual sum, with the sum of quotient codes genuinely constructed.

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

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.

Inputs are genuine canonical signed-pair codes, not arbitrary naturals. Products start at the actual Gaussian identity, whose code is six. The factor list uses the proved prime-divisor property; irreducibility alone is not silently renamed primality. Uniqueness supplies equal lengths, a bounded bijection, and an actual unit at each match, including repeated factors. Units have empty factorizations and zero is excluded. Sorted primary representatives, Gaussian prime classification, and Eisenstein factorization are separate targets.

Exact theorem in conservative defined notation

∀ d. ∀ a. ∀ b. ∀ c. GDvd(d,a)GDvd(d,b)ZPairAdd(a,b,c)GDvd(d,c)

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall d a b c. (exists gr_quotient_sum_first_divisor. (exists ge_first_rp_sum_first_divisorproduct ge_first_rn_sum_first_divisorproduct ge_first_ip_sum_first_divisorproduct ge_first_in_sum_first_divisorproduct ge_second_rp_sum_first_divisorproduct ge_second_rn_sum_first_divisorproduct ge_second_ip_sum_first_divisorproduct ge_second_in_sum_first_divisorproduct. ((exists ge_representation_real_code_sum_first_divisorproductfirst ge_representation_imaginary_code_sum_first_divisorproductfirst. (((d) = ((ge_representation_real_code_sum_first_divisorproductfirst) + (ge_representation_imaginary_code_sum_first_divisorproductfirst)) * S ((ge_representation_real_code_sum_first_divisorproductfirst) + (ge_representation_imaginary_code_sum_first_divisorproductfirst)) + ((ge_representation_imaginary_code_sum_first_divisorproductfirst) + (ge_representation_imaginary_code_sum_first_divisorproductfirst))) /\ ((exists ge_balance_positive_sum_first_divisorproductfirstreal ge_balance_negative_sum_first_divisorproductfirstreal. (((((ge_representation_real_code_sum_first_divisorproductfirst) = 2 * (ge_balance_positive_sum_first_divisorproductfirstreal) /\ (ge_balance_negative_sum_first_divisorproductfirstreal) = 0) \/ exists ge_signed_half_sum_first_divisorproductfirstrealdecode. (((ge_representation_real_code_sum_first_divisorproductfirst) = 2 * ge_signed_half_sum_first_divisorproductfirstrealdecode + 1 /\ (ge_balance_positive_sum_first_divisorproductfirstreal) = 0) /\ (ge_balance_negative_sum_first_divisorproductfirstreal) = S ge_signed_half_sum_first_divisorproductfirstrealdecode))) /\ ((ge_first_rp_sum_first_divisorproduct) + ge_balance_negative_sum_first_divisorproductfirstreal = (ge_first_rn_sum_first_divisorproduct) + ge_balance_positive_sum_first_divisorproductfirstreal))) /\ (exists ge_balance_positive_sum_first_divisorproductfirstimaginary ge_balance_negative_sum_first_divisorproductfirstimaginary. (((((ge_representation_imaginary_code_sum_first_divisorproductfirst) = 2 * (ge_balance_positive_sum_first_divisorproductfirstimaginary) /\ (ge_balance_negative_sum_first_divisorproductfirstimaginary) = 0) \/ exists ge_signed_half_sum_first_divisorproductfirstimaginarydecode. (((ge_representation_imaginary_code_sum_first_divisorproductfirst) = 2 * ge_signed_half_sum_first_divisorproductfirstimaginarydecode + 1 /\ (ge_balance_positive_sum_first_divisorproductfirstimaginary) = 0) /\ (ge_balance_negative_sum_first_divisorproductfirstimaginary) = S ge_signed_half_sum_first_divisorproductfirstimaginarydecode))) /\ ((ge_first_ip_sum_first_divisorproduct) + ge_balance_negative_sum_first_divisorproductfirstimaginary = (ge_first_in_sum_first_divisorproduct) + ge_balance_positive_sum_first_divisorproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_sum_first_divisorproductsecond ge_representation_imaginary_code_sum_first_divisorproductsecond. (((gr_quotient_sum_first_divisor) = ((ge_representation_real_code_sum_first_divisorproductsecond) + (ge_representation_imaginary_code_sum_first_divisorproductsecond)) * S ((ge_representation_real_code_sum_first_divisorproductsecond) + (ge_representation_imaginary_code_sum_first_divisorproductsecond)) + ((ge_representation_imaginary_code_sum_first_divisorproductsecond) + (ge_representation_imaginary_code_sum_first_divisorproductsecond))) /\ ((exists ge_balance_positive_sum_first_divisorproductsecondreal ge_balance_negative_sum_first_divisorproductsecondreal. (((((ge_representation_real_code_sum_first_divisorproductsecond) = 2 * (ge_balance_positive_sum_first_divisorproductsecondreal) /\ (ge_balance_negative_sum_first_divisorproductsecondreal) = 0) \/ exists ge_signed_half_sum_first_divisorproductsecondrealdecode. (((ge_representation_real_code_sum_first_divisorproductsecond) = 2 * ge_signed_half_sum_first_divisorproductsecondrealdecode + 1 /\ (ge_balance_positive_sum_first_divisorproductsecondreal) = 0) /\ (ge_balance_negative_sum_first_divisorproductsecondreal) = S ge_signed_half_sum_first_divisorproductsecondrealdecode))) /\ ((ge_second_rp_sum_first_divisorproduct) + ge_balance_negative_sum_first_divisorproductsecondreal = (ge_second_rn_sum_first_divisorproduct) + ge_balance_positive_sum_first_divisorproductsecondreal))) /\ (exists ge_balance_positive_sum_first_divisorproductsecondimaginary ge_balance_negative_sum_first_divisorproductsecondimaginary. (((((ge_representation_imaginary_code_sum_first_divisorproductsecond) = 2 * (ge_balance_positive_sum_first_divisorproductsecondimaginary) /\ (ge_balance_negative_sum_first_divisorproductsecondimaginary) = 0) \/ exists ge_signed_half_sum_first_divisorproductsecondimaginarydecode. (((ge_representation_imaginary_code_sum_first_divisorproductsecond) = 2 * ge_signed_half_sum_first_divisorproductsecondimaginarydecode + 1 /\ (ge_balance_positive_sum_first_divisorproductsecondimaginary) = 0) /\ (ge_balance_negative_sum_first_divisorproductsecondimaginary) = S ge_signed_half_sum_first_divisorproductsecondimaginarydecode))) /\ ((ge_second_ip_sum_first_divisorproduct) + ge_balance_negative_sum_first_divisorproductsecondimaginary = (ge_second_in_sum_first_divisorproduct) + ge_balance_positive_sum_first_divisorproductsecondimaginary)))))) /\ (exists ge_representation_real_code_sum_first_divisorproductoutput ge_representation_imaginary_code_sum_first_divisorproductoutput. (((a) = ((ge_representation_real_code_sum_first_divisorproductoutput) + (ge_representation_imaginary_code_sum_first_divisorproductoutput)) * S ((ge_representation_real_code_sum_first_divisorproductoutput) + (ge_representation_imaginary_code_sum_first_divisorproductoutput)) + ((ge_representation_imaginary_code_sum_first_divisorproductoutput) + (ge_representation_imaginary_code_sum_first_divisorproductoutput))) /\ ((exists ge_balance_positive_sum_first_divisorproductoutputreal ge_balance_negative_sum_first_divisorproductoutputreal. (((((ge_representation_real_code_sum_first_divisorproductoutput) = 2 * (ge_balance_positive_sum_first_divisorproductoutputreal) /\ (ge_balance_negative_sum_first_divisorproductoutputreal) = 0) \/ exists ge_signed_half_sum_first_divisorproductoutputrealdecode. (((ge_representation_real_code_sum_first_divisorproductoutput) = 2 * ge_signed_half_sum_first_divisorproductoutputrealdecode + 1 /\ (ge_balance_positive_sum_first_divisorproductoutputreal) = 0) /\ (ge_balance_negative_sum_first_divisorproductoutputreal) = S ge_signed_half_sum_first_divisorproductoutputrealdecode))) /\ ((((((((ge_first_rp_sum_first_divisorproduct) * (ge_second_rp_sum_first_divisorproduct))) + (((ge_first_rn_sum_first_divisorproduct) * (ge_second_rn_sum_first_divisorproduct))))) + (((((ge_first_ip_sum_first_divisorproduct) * (ge_second_in_sum_first_divisorproduct))) + (((ge_first_in_sum_first_divisorproduct) * (ge_second_ip_sum_first_divisorproduct))))))) + ge_balance_negative_sum_first_divisorproductoutputreal = (((((((ge_first_rp_sum_first_divisorproduct) * (ge_second_rn_sum_first_divisorproduct))) + (((ge_first_rn_sum_first_divisorproduct) * (ge_second_rp_sum_first_divisorproduct))))) + (((((ge_first_ip_sum_first_divisorproduct) * (ge_second_ip_sum_first_divisorproduct))) + (((ge_first_in_sum_first_divisorproduct) * (ge_second_in_sum_first_divisorproduct))))))) + ge_balance_positive_sum_first_divisorproductoutputreal))) /\ (exists ge_balance_positive_sum_first_divisorproductoutputimaginary ge_balance_negative_sum_first_divisorproductoutputimaginary. (((((ge_representation_imaginary_code_sum_first_divisorproductoutput) = 2 * (ge_balance_positive_sum_first_divisorproductoutputimaginary) /\ (ge_balance_negative_sum_first_divisorproductoutputimaginary) = 0) \/ exists ge_signed_half_sum_first_divisorproductoutputimaginarydecode. (((ge_representation_imaginary_code_sum_first_divisorproductoutput) = 2 * ge_signed_half_sum_first_divisorproductoutputimaginarydecode + 1 /\ (ge_balance_positive_sum_first_divisorproductoutputimaginary) = 0) /\ (ge_balance_negative_sum_first_divisorproductoutputimaginary) = S ge_signed_half_sum_first_divisorproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_sum_first_divisorproduct) * (ge_second_ip_sum_first_divisorproduct))) + (((ge_first_rn_sum_first_divisorproduct) * (ge_second_in_sum_first_divisorproduct))))) + (((((ge_first_ip_sum_first_divisorproduct) * (ge_second_rp_sum_first_divisorproduct))) + (((ge_first_in_sum_first_divisorproduct) * (ge_second_rn_sum_first_divisorproduct))))))) + ge_balance_negative_sum_first_divisorproductoutputimaginary = (((((((ge_first_rp_sum_first_divisorproduct) * (ge_second_in_sum_first_divisorproduct))) + (((ge_first_rn_sum_first_divisorproduct) * (ge_second_ip_sum_first_divisorproduct))))) + (((((ge_first_ip_sum_first_divisorproduct) * (ge_second_rn_sum_first_divisorproduct))) + (((ge_first_in_sum_first_divisorproduct) * (ge_second_rp_sum_first_divisorproduct))))))) + ge_balance_positive_sum_first_divisorproductoutputimaginary)))))))))) -> (exists gr_quotient_sum_second_divisor. (exists ge_first_rp_sum_second_divisorproduct ge_first_rn_sum_second_divisorproduct ge_first_ip_sum_second_divisorproduct ge_first_in_sum_second_divisorproduct ge_second_rp_sum_second_divisorproduct ge_second_rn_sum_second_divisorproduct ge_second_ip_sum_second_divisorproduct ge_second_in_sum_second_divisorproduct. ((exists ge_representation_real_code_sum_second_divisorproductfirst ge_representation_imaginary_code_sum_second_divisorproductfirst. (((d) = ((ge_representation_real_code_sum_second_divisorproductfirst) + (ge_representation_imaginary_code_sum_second_divisorproductfirst)) * S ((ge_representation_real_code_sum_second_divisorproductfirst) + (ge_representation_imaginary_code_sum_second_divisorproductfirst)) + ((ge_representation_imaginary_code_sum_second_divisorproductfirst) + (ge_representation_imaginary_code_sum_second_divisorproductfirst))) /\ ((exists ge_balance_positive_sum_second_divisorproductfirstreal ge_balance_negative_sum_second_divisorproductfirstreal. (((((ge_representation_real_code_sum_second_divisorproductfirst) = 2 * (ge_balance_positive_sum_second_divisorproductfirstreal) /\ (ge_balance_negative_sum_second_divisorproductfirstreal) = 0) \/ exists ge_signed_half_sum_second_divisorproductfirstrealdecode. (((ge_representation_real_code_sum_second_divisorproductfirst) = 2 * ge_signed_half_sum_second_divisorproductfirstrealdecode + 1 /\ (ge_balance_positive_sum_second_divisorproductfirstreal) = 0) /\ (ge_balance_negative_sum_second_divisorproductfirstreal) = S ge_signed_half_sum_second_divisorproductfirstrealdecode))) /\ ((ge_first_rp_sum_second_divisorproduct) + ge_balance_negative_sum_second_divisorproductfirstreal = (ge_first_rn_sum_second_divisorproduct) + ge_balance_positive_sum_second_divisorproductfirstreal))) /\ (exists ge_balance_positive_sum_second_divisorproductfirstimaginary ge_balance_negative_sum_second_divisorproductfirstimaginary. (((((ge_representation_imaginary_code_sum_second_divisorproductfirst) = 2 * (ge_balance_positive_sum_second_divisorproductfirstimaginary) /\ (ge_balance_negative_sum_second_divisorproductfirstimaginary) = 0) \/ exists ge_signed_half_sum_second_divisorproductfirstimaginarydecode. (((ge_representation_imaginary_code_sum_second_divisorproductfirst) = 2 * ge_signed_half_sum_second_divisorproductfirstimaginarydecode + 1 /\ (ge_balance_positive_sum_second_divisorproductfirstimaginary) = 0) /\ (ge_balance_negative_sum_second_divisorproductfirstimaginary) = S ge_signed_half_sum_second_divisorproductfirstimaginarydecode))) /\ ((ge_first_ip_sum_second_divisorproduct) + ge_balance_negative_sum_second_divisorproductfirstimaginary = (ge_first_in_sum_second_divisorproduct) + ge_balance_positive_sum_second_divisorproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_sum_second_divisorproductsecond ge_representation_imaginary_code_sum_second_divisorproductsecond. (((gr_quotient_sum_second_divisor) = ((ge_representation_real_code_sum_second_divisorproductsecond) + (ge_representation_imaginary_code_sum_second_divisorproductsecond)) * S ((ge_representation_real_code_sum_second_divisorproductsecond) + (ge_representation_imaginary_code_sum_second_divisorproductsecond)) + ((ge_representation_imaginary_code_sum_second_divisorproductsecond) + (ge_representation_imaginary_code_sum_second_divisorproductsecond))) /\ ((exists ge_balance_positive_sum_second_divisorproductsecondreal ge_balance_negative_sum_second_divisorproductsecondreal. (((((ge_representation_real_code_sum_second_divisorproductsecond) = 2 * (ge_balance_positive_sum_second_divisorproductsecondreal) /\ (ge_balance_negative_sum_second_divisorproductsecondreal) = 0) \/ exists ge_signed_half_sum_second_divisorproductsecondrealdecode. (((ge_representation_real_code_sum_second_divisorproductsecond) = 2 * ge_signed_half_sum_second_divisorproductsecondrealdecode + 1 /\ (ge_balance_positive_sum_second_divisorproductsecondreal) = 0) /\ (ge_balance_negative_sum_second_divisorproductsecondreal) = S ge_signed_half_sum_second_divisorproductsecondrealdecode))) /\ ((ge_second_rp_sum_second_divisorproduct) + ge_balance_negative_sum_second_divisorproductsecondreal = (ge_second_rn_sum_second_divisorproduct) + ge_balance_positive_sum_second_divisorproductsecondreal))) /\ (exists ge_balance_positive_sum_second_divisorproductsecondimaginary ge_balance_negative_sum_second_divisorproductsecondimaginary. (((((ge_representation_imaginary_code_sum_second_divisorproductsecond) = 2 * (ge_balance_positive_sum_second_divisorproductsecondimaginary) /\ (ge_balance_negative_sum_second_divisorproductsecondimaginary) = 0) \/ exists ge_signed_half_sum_second_divisorproductsecondimaginarydecode. (((ge_representation_imaginary_code_sum_second_divisorproductsecond) = 2 * ge_signed_half_sum_second_divisorproductsecondimaginarydecode + 1 /\ (ge_balance_positive_sum_second_divisorproductsecondimaginary) = 0) /\ (ge_balance_negative_sum_second_divisorproductsecondimaginary) = S ge_signed_half_sum_second_divisorproductsecondimaginarydecode))) /\ ((ge_second_ip_sum_second_divisorproduct) + ge_balance_negative_sum_second_divisorproductsecondimaginary = (ge_second_in_sum_second_divisorproduct) + ge_balance_positive_sum_second_divisorproductsecondimaginary)))))) /\ (exists ge_representation_real_code_sum_second_divisorproductoutput ge_representation_imaginary_code_sum_second_divisorproductoutput. (((b) = ((ge_representation_real_code_sum_second_divisorproductoutput) + (ge_representation_imaginary_code_sum_second_divisorproductoutput)) * S ((ge_representation_real_code_sum_second_divisorproductoutput) + (ge_representation_imaginary_code_sum_second_divisorproductoutput)) + ((ge_representation_imaginary_code_sum_second_divisorproductoutput) + (ge_representation_imaginary_code_sum_second_divisorproductoutput))) /\ ((exists ge_balance_positive_sum_second_divisorproductoutputreal ge_balance_negative_sum_second_divisorproductoutputreal. (((((ge_representation_real_code_sum_second_divisorproductoutput) = 2 * (ge_balance_positive_sum_second_divisorproductoutputreal) /\ (ge_balance_negative_sum_second_divisorproductoutputreal) = 0) \/ exists ge_signed_half_sum_second_divisorproductoutputrealdecode. (((ge_representation_real_code_sum_second_divisorproductoutput) = 2 * ge_signed_half_sum_second_divisorproductoutputrealdecode + 1 /\ (ge_balance_positive_sum_second_divisorproductoutputreal) = 0) /\ (ge_balance_negative_sum_second_divisorproductoutputreal) = S ge_signed_half_sum_second_divisorproductoutputrealdecode))) /\ ((((((((ge_first_rp_sum_second_divisorproduct) * (ge_second_rp_sum_second_divisorproduct))) + (((ge_first_rn_sum_second_divisorproduct) * (ge_second_rn_sum_second_divisorproduct))))) + (((((ge_first_ip_sum_second_divisorproduct) * (ge_second_in_sum_second_divisorproduct))) + (((ge_first_in_sum_second_divisorproduct) * (ge_second_ip_sum_second_divisorproduct))))))) + ge_balance_negative_sum_second_divisorproductoutputreal = (((((((ge_first_rp_sum_second_divisorproduct) * (ge_second_rn_sum_second_divisorproduct))) + (((ge_first_rn_sum_second_divisorproduct) * (ge_second_rp_sum_second_divisorproduct))))) + (((((ge_first_ip_sum_second_divisorproduct) * (ge_second_ip_sum_second_divisorproduct))) + (((ge_first_in_sum_second_divisorproduct) * (ge_second_in_sum_second_divisorproduct))))))) + ge_balance_positive_sum_second_divisorproductoutputreal))) /\ (exists ge_balance_positive_sum_second_divisorproductoutputimaginary ge_balance_negative_sum_second_divisorproductoutputimaginary. (((((ge_representation_imaginary_code_sum_second_divisorproductoutput) = 2 * (ge_balance_positive_sum_second_divisorproductoutputimaginary) /\ (ge_balance_negative_sum_second_divisorproductoutputimaginary) = 0) \/ exists ge_signed_half_sum_second_divisorproductoutputimaginarydecode. (((ge_representation_imaginary_code_sum_second_divisorproductoutput) = 2 * ge_signed_half_sum_second_divisorproductoutputimaginarydecode + 1 /\ (ge_balance_positive_sum_second_divisorproductoutputimaginary) = 0) /\ (ge_balance_negative_sum_second_divisorproductoutputimaginary) = S ge_signed_half_sum_second_divisorproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_sum_second_divisorproduct) * (ge_second_ip_sum_second_divisorproduct))) + (((ge_first_rn_sum_second_divisorproduct) * (ge_second_in_sum_second_divisorproduct))))) + (((((ge_first_ip_sum_second_divisorproduct) * (ge_second_rp_sum_second_divisorproduct))) + (((ge_first_in_sum_second_divisorproduct) * (ge_second_rn_sum_second_divisorproduct))))))) + ge_balance_negative_sum_second_divisorproductoutputimaginary = (((((((ge_first_rp_sum_second_divisorproduct) * (ge_second_in_sum_second_divisorproduct))) + (((ge_first_rn_sum_second_divisorproduct) * (ge_second_ip_sum_second_divisorproduct))))) + (((((ge_first_ip_sum_second_divisorproduct) * (ge_second_rn_sum_second_divisorproduct))) + (((ge_first_in_sum_second_divisorproduct) * (ge_second_rp_sum_second_divisorproduct))))))) + ge_balance_positive_sum_second_divisorproductoutputimaginary)))))))))) -> (exists ge_first_rp_sum_given ge_first_rn_sum_given ge_first_ip_sum_given ge_first_in_sum_given ge_second_rp_sum_given ge_second_rn_sum_given ge_second_ip_sum_given ge_second_in_sum_given. ((exists ge_representation_real_code_sum_givenfirst ge_representation_imaginary_code_sum_givenfirst. (((a) = ((ge_representation_real_code_sum_givenfirst) + (ge_representation_imaginary_code_sum_givenfirst)) * S ((ge_representation_real_code_sum_givenfirst) + (ge_representation_imaginary_code_sum_givenfirst)) + ((ge_representation_imaginary_code_sum_givenfirst) + (ge_representation_imaginary_code_sum_givenfirst))) /\ ((exists ge_balance_positive_sum_givenfirstreal ge_balance_negative_sum_givenfirstreal. (((((ge_representation_real_code_sum_givenfirst) = 2 * (ge_balance_positive_sum_givenfirstreal) /\ (ge_balance_negative_sum_givenfirstreal) = 0) \/ exists ge_signed_half_sum_givenfirstrealdecode. (((ge_representation_real_code_sum_givenfirst) = 2 * ge_signed_half_sum_givenfirstrealdecode + 1 /\ (ge_balance_positive_sum_givenfirstreal) = 0) /\ (ge_balance_negative_sum_givenfirstreal) = S ge_signed_half_sum_givenfirstrealdecode))) /\ ((ge_first_rp_sum_given) + ge_balance_negative_sum_givenfirstreal = (ge_first_rn_sum_given) + ge_balance_positive_sum_givenfirstreal))) /\ (exists ge_balance_positive_sum_givenfirstimaginary ge_balance_negative_sum_givenfirstimaginary. (((((ge_representation_imaginary_code_sum_givenfirst) = 2 * (ge_balance_positive_sum_givenfirstimaginary) /\ (ge_balance_negative_sum_givenfirstimaginary) = 0) \/ exists ge_signed_half_sum_givenfirstimaginarydecode. (((ge_representation_imaginary_code_sum_givenfirst) = 2 * ge_signed_half_sum_givenfirstimaginarydecode + 1 /\ (ge_balance_positive_sum_givenfirstimaginary) = 0) /\ (ge_balance_negative_sum_givenfirstimaginary) = S ge_signed_half_sum_givenfirstimaginarydecode))) /\ ((ge_first_ip_sum_given) + ge_balance_negative_sum_givenfirstimaginary = (ge_first_in_sum_given) + ge_balance_positive_sum_givenfirstimaginary)))))) /\ ((exists ge_representation_real_code_sum_givensecond ge_representation_imaginary_code_sum_givensecond. (((b) = ((ge_representation_real_code_sum_givensecond) + (ge_representation_imaginary_code_sum_givensecond)) * S ((ge_representation_real_code_sum_givensecond) + (ge_representation_imaginary_code_sum_givensecond)) + ((ge_representation_imaginary_code_sum_givensecond) + (ge_representation_imaginary_code_sum_givensecond))) /\ ((exists ge_balance_positive_sum_givensecondreal ge_balance_negative_sum_givensecondreal. (((((ge_representation_real_code_sum_givensecond) = 2 * (ge_balance_positive_sum_givensecondreal) /\ (ge_balance_negative_sum_givensecondreal) = 0) \/ exists ge_signed_half_sum_givensecondrealdecode. (((ge_representation_real_code_sum_givensecond) = 2 * ge_signed_half_sum_givensecondrealdecode + 1 /\ (ge_balance_positive_sum_givensecondreal) = 0) /\ (ge_balance_negative_sum_givensecondreal) = S ge_signed_half_sum_givensecondrealdecode))) /\ ((ge_second_rp_sum_given) + ge_balance_negative_sum_givensecondreal = (ge_second_rn_sum_given) + ge_balance_positive_sum_givensecondreal))) /\ (exists ge_balance_positive_sum_givensecondimaginary ge_balance_negative_sum_givensecondimaginary. (((((ge_representation_imaginary_code_sum_givensecond) = 2 * (ge_balance_positive_sum_givensecondimaginary) /\ (ge_balance_negative_sum_givensecondimaginary) = 0) \/ exists ge_signed_half_sum_givensecondimaginarydecode. (((ge_representation_imaginary_code_sum_givensecond) = 2 * ge_signed_half_sum_givensecondimaginarydecode + 1 /\ (ge_balance_positive_sum_givensecondimaginary) = 0) /\ (ge_balance_negative_sum_givensecondimaginary) = S ge_signed_half_sum_givensecondimaginarydecode))) /\ ((ge_second_ip_sum_given) + ge_balance_negative_sum_givensecondimaginary = (ge_second_in_sum_given) + ge_balance_positive_sum_givensecondimaginary)))))) /\ (exists ge_representation_real_code_sum_givenoutput ge_representation_imaginary_code_sum_givenoutput. (((c) = ((ge_representation_real_code_sum_givenoutput) + (ge_representation_imaginary_code_sum_givenoutput)) * S ((ge_representation_real_code_sum_givenoutput) + (ge_representation_imaginary_code_sum_givenoutput)) + ((ge_representation_imaginary_code_sum_givenoutput) + (ge_representation_imaginary_code_sum_givenoutput))) /\ ((exists ge_balance_positive_sum_givenoutputreal ge_balance_negative_sum_givenoutputreal. (((((ge_representation_real_code_sum_givenoutput) = 2 * (ge_balance_positive_sum_givenoutputreal) /\ (ge_balance_negative_sum_givenoutputreal) = 0) \/ exists ge_signed_half_sum_givenoutputrealdecode. (((ge_representation_real_code_sum_givenoutput) = 2 * ge_signed_half_sum_givenoutputrealdecode + 1 /\ (ge_balance_positive_sum_givenoutputreal) = 0) /\ (ge_balance_negative_sum_givenoutputreal) = S ge_signed_half_sum_givenoutputrealdecode))) /\ ((((ge_first_rp_sum_given) + (ge_second_rp_sum_given))) + ge_balance_negative_sum_givenoutputreal = (((ge_first_rn_sum_given) + (ge_second_rn_sum_given))) + ge_balance_positive_sum_givenoutputreal))) /\ (exists ge_balance_positive_sum_givenoutputimaginary ge_balance_negative_sum_givenoutputimaginary. (((((ge_representation_imaginary_code_sum_givenoutput) = 2 * (ge_balance_positive_sum_givenoutputimaginary) /\ (ge_balance_negative_sum_givenoutputimaginary) = 0) \/ exists ge_signed_half_sum_givenoutputimaginarydecode. (((ge_representation_imaginary_code_sum_givenoutput) = 2 * ge_signed_half_sum_givenoutputimaginarydecode + 1 /\ (ge_balance_positive_sum_givenoutputimaginary) = 0) /\ (ge_balance_negative_sum_givenoutputimaginary) = S ge_signed_half_sum_givenoutputimaginarydecode))) /\ ((((ge_first_ip_sum_given) + (ge_second_ip_sum_given))) + ge_balance_negative_sum_givenoutputimaginary = (((ge_first_in_sum_given) + (ge_second_in_sum_given))) + ge_balance_positive_sum_givenoutputimaginary))))))))) -> (exists gr_quotient_sum_result. (exists ge_first_rp_sum_resultproduct ge_first_rn_sum_resultproduct ge_first_ip_sum_resultproduct ge_first_in_sum_resultproduct ge_second_rp_sum_resultproduct ge_second_rn_sum_resultproduct ge_second_ip_sum_resultproduct ge_second_in_sum_resultproduct. ((exists ge_representation_real_code_sum_resultproductfirst ge_representation_imaginary_code_sum_resultproductfirst. (((d) = ((ge_representation_real_code_sum_resultproductfirst) + (ge_representation_imaginary_code_sum_resultproductfirst)) * S ((ge_representation_real_code_sum_resultproductfirst) + (ge_representation_imaginary_code_sum_resultproductfirst)) + ((ge_representation_imaginary_code_sum_resultproductfirst) + (ge_representation_imaginary_code_sum_resultproductfirst))) /\ ((exists ge_balance_positive_sum_resultproductfirstreal ge_balance_negative_sum_resultproductfirstreal. (((((ge_representation_real_code_sum_resultproductfirst) = 2 * (ge_balance_positive_sum_resultproductfirstreal) /\ (ge_balance_negative_sum_resultproductfirstreal) = 0) \/ exists ge_signed_half_sum_resultproductfirstrealdecode. (((ge_representation_real_code_sum_resultproductfirst) = 2 * ge_signed_half_sum_resultproductfirstrealdecode + 1 /\ (ge_balance_positive_sum_resultproductfirstreal) = 0) /\ (ge_balance_negative_sum_resultproductfirstreal) = S ge_signed_half_sum_resultproductfirstrealdecode))) /\ ((ge_first_rp_sum_resultproduct) + ge_balance_negative_sum_resultproductfirstreal = (ge_first_rn_sum_resultproduct) + ge_balance_positive_sum_resultproductfirstreal))) /\ (exists ge_balance_positive_sum_resultproductfirstimaginary ge_balance_negative_sum_resultproductfirstimaginary. (((((ge_representation_imaginary_code_sum_resultproductfirst) = 2 * (ge_balance_positive_sum_resultproductfirstimaginary) /\ (ge_balance_negative_sum_resultproductfirstimaginary) = 0) \/ exists ge_signed_half_sum_resultproductfirstimaginarydecode. (((ge_representation_imaginary_code_sum_resultproductfirst) = 2 * ge_signed_half_sum_resultproductfirstimaginarydecode + 1 /\ (ge_balance_positive_sum_resultproductfirstimaginary) = 0) /\ (ge_balance_negative_sum_resultproductfirstimaginary) = S ge_signed_half_sum_resultproductfirstimaginarydecode))) /\ ((ge_first_ip_sum_resultproduct) + ge_balance_negative_sum_resultproductfirstimaginary = (ge_first_in_sum_resultproduct) + ge_balance_positive_sum_resultproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_sum_resultproductsecond ge_representation_imaginary_code_sum_resultproductsecond. (((gr_quotient_sum_result) = ((ge_representation_real_code_sum_resultproductsecond) + (ge_representation_imaginary_code_sum_resultproductsecond)) * S ((ge_representation_real_code_sum_resultproductsecond) + (ge_representation_imaginary_code_sum_resultproductsecond)) + ((ge_representation_imaginary_code_sum_resultproductsecond) + (ge_representation_imaginary_code_sum_resultproductsecond))) /\ ((exists ge_balance_positive_sum_resultproductsecondreal ge_balance_negative_sum_resultproductsecondreal. (((((ge_representation_real_code_sum_resultproductsecond) = 2 * (ge_balance_positive_sum_resultproductsecondreal) /\ (ge_balance_negative_sum_resultproductsecondreal) = 0) \/ exists ge_signed_half_sum_resultproductsecondrealdecode. (((ge_representation_real_code_sum_resultproductsecond) = 2 * ge_signed_half_sum_resultproductsecondrealdecode + 1 /\ (ge_balance_positive_sum_resultproductsecondreal) = 0) /\ (ge_balance_negative_sum_resultproductsecondreal) = S ge_signed_half_sum_resultproductsecondrealdecode))) /\ ((ge_second_rp_sum_resultproduct) + ge_balance_negative_sum_resultproductsecondreal = (ge_second_rn_sum_resultproduct) + ge_balance_positive_sum_resultproductsecondreal))) /\ (exists ge_balance_positive_sum_resultproductsecondimaginary ge_balance_negative_sum_resultproductsecondimaginary. (((((ge_representation_imaginary_code_sum_resultproductsecond) = 2 * (ge_balance_positive_sum_resultproductsecondimaginary) /\ (ge_balance_negative_sum_resultproductsecondimaginary) = 0) \/ exists ge_signed_half_sum_resultproductsecondimaginarydecode. (((ge_representation_imaginary_code_sum_resultproductsecond) = 2 * ge_signed_half_sum_resultproductsecondimaginarydecode + 1 /\ (ge_balance_positive_sum_resultproductsecondimaginary) = 0) /\ (ge_balance_negative_sum_resultproductsecondimaginary) = S ge_signed_half_sum_resultproductsecondimaginarydecode))) /\ ((ge_second_ip_sum_resultproduct) + ge_balance_negative_sum_resultproductsecondimaginary = (ge_second_in_sum_resultproduct) + ge_balance_positive_sum_resultproductsecondimaginary)))))) /\ (exists ge_representation_real_code_sum_resultproductoutput ge_representation_imaginary_code_sum_resultproductoutput. (((c) = ((ge_representation_real_code_sum_resultproductoutput) + (ge_representation_imaginary_code_sum_resultproductoutput)) * S ((ge_representation_real_code_sum_resultproductoutput) + (ge_representation_imaginary_code_sum_resultproductoutput)) + ((ge_representation_imaginary_code_sum_resultproductoutput) + (ge_representation_imaginary_code_sum_resultproductoutput))) /\ ((exists ge_balance_positive_sum_resultproductoutputreal ge_balance_negative_sum_resultproductoutputreal. (((((ge_representation_real_code_sum_resultproductoutput) = 2 * (ge_balance_positive_sum_resultproductoutputreal) /\ (ge_balance_negative_sum_resultproductoutputreal) = 0) \/ exists ge_signed_half_sum_resultproductoutputrealdecode. (((ge_representation_real_code_sum_resultproductoutput) = 2 * ge_signed_half_sum_resultproductoutputrealdecode + 1 /\ (ge_balance_positive_sum_resultproductoutputreal) = 0) /\ (ge_balance_negative_sum_resultproductoutputreal) = S ge_signed_half_sum_resultproductoutputrealdecode))) /\ ((((((((ge_first_rp_sum_resultproduct) * (ge_second_rp_sum_resultproduct))) + (((ge_first_rn_sum_resultproduct) * (ge_second_rn_sum_resultproduct))))) + (((((ge_first_ip_sum_resultproduct) * (ge_second_in_sum_resultproduct))) + (((ge_first_in_sum_resultproduct) * (ge_second_ip_sum_resultproduct))))))) + ge_balance_negative_sum_resultproductoutputreal = (((((((ge_first_rp_sum_resultproduct) * (ge_second_rn_sum_resultproduct))) + (((ge_first_rn_sum_resultproduct) * (ge_second_rp_sum_resultproduct))))) + (((((ge_first_ip_sum_resultproduct) * (ge_second_ip_sum_resultproduct))) + (((ge_first_in_sum_resultproduct) * (ge_second_in_sum_resultproduct))))))) + ge_balance_positive_sum_resultproductoutputreal))) /\ (exists ge_balance_positive_sum_resultproductoutputimaginary ge_balance_negative_sum_resultproductoutputimaginary. (((((ge_representation_imaginary_code_sum_resultproductoutput) = 2 * (ge_balance_positive_sum_resultproductoutputimaginary) /\ (ge_balance_negative_sum_resultproductoutputimaginary) = 0) \/ exists ge_signed_half_sum_resultproductoutputimaginarydecode. (((ge_representation_imaginary_code_sum_resultproductoutput) = 2 * ge_signed_half_sum_resultproductoutputimaginarydecode + 1 /\ (ge_balance_positive_sum_resultproductoutputimaginary) = 0) /\ (ge_balance_negative_sum_resultproductoutputimaginary) = S ge_signed_half_sum_resultproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_sum_resultproduct) * (ge_second_ip_sum_resultproduct))) + (((ge_first_rn_sum_resultproduct) * (ge_second_in_sum_resultproduct))))) + (((((ge_first_ip_sum_resultproduct) * (ge_second_rp_sum_resultproduct))) + (((ge_first_in_sum_resultproduct) * (ge_second_rn_sum_resultproduct))))))) + ge_balance_negative_sum_resultproductoutputimaginary = (((((((ge_first_rp_sum_resultproduct) * (ge_second_in_sum_resultproduct))) + (((ge_first_rn_sum_resultproduct) * (ge_second_ip_sum_resultproduct))))) + (((((ge_first_ip_sum_resultproduct) * (ge_second_rn_sum_resultproduct))) + (((ge_first_in_sum_resultproduct) * (ge_second_rp_sum_resultproduct))))))) + ge_balance_positive_sum_resultproductoutputimaginary))))))))))

Complete tactic proof in conservative notation

All 37 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

37 script commands · 8 reading checkpoints · 1 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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (2)
01Fix variables and assumptionsL1–7

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

  1. L1
    intro d
  2. L2
    intro a
  3. L3
    intro b
  4. L4
    intro c
  5. L5
    intro hA
  6. L6
    intro hB
  7. L7
    intro hsum
02Separate the logical casesL8–9

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

  1. L8
    cases hA
  2. L9
    cases hB
03Establish hqL10–19

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

  1. L10
    have hq : ∃ q. ZPairAdd(x,x1,q)Definitions: ZPairAdd(x,x1,q)Original native command in the exact edition
  2. L11
    specialize gaussian_add_exists (x)
  3. L12
    specialize gaussian_add_exists (x1)
  4. L13
    apply gaussian_add_exists
  5. L14
    specialize gaussian_multiply_input_right_valid (d)
  6. L15
    specialize gaussian_multiply_input_right_valid (x)
  7. L16
    specialize gaussian_multiply_input_right_valid (a)
  8. L17
    apply gaussian_multiply_input_right_valid
  9. L18
    exact hA_witness
  10. L19
    specialize gaussian_multiply_input_right_valid (d)
04Use earlier factsL20–23

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

  1. L20
    specialize gaussian_multiply_input_right_valid (x1)
  2. L21
    specialize gaussian_multiply_input_right_valid (b)
  3. L22
    apply gaussian_multiply_input_right_valid
  4. L23
    exact hB_witness
05Separate the logical casesL24–24

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

  1. L24
    cases hq
06Construct an explicit witnessL25–25

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

  1. L25
    exists (x2)
07Use earlier factsL26–35

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

  1. L26
    specialize gaussian_multiply_add_compose (d)
  2. L27
    specialize gaussian_multiply_add_compose (x)
  3. L28
    specialize gaussian_multiply_add_compose (x1)
  4. L29
    specialize gaussian_multiply_add_compose (x2)
  5. L30
    specialize gaussian_multiply_add_compose (a)
  6. L31
    specialize gaussian_multiply_add_compose (b)
  7. L32
    specialize gaussian_multiply_add_compose (c)
  8. L33
    apply gaussian_multiply_add_compose
  9. L34
    exact hq_witness
  10. L35
    exact hA_witness
08Use earlier factsL36–37

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

  1. L36
    exact hB_witness
  2. L37
    exact hsum

Library-wide reading audit

Original defined command ledger · 37 lines
  1. 0001intro d
  2. 0002intro a
  3. 0003intro b
  4. 0004intro c
  5. 0005intro hA
  6. 0006intro hB
  7. 0007intro hsum
  8. 0008cases hA
  9. 0009cases hB
  10. 0010have hq : ∃ q. ZPairAdd(x,x1,q)
  11. 0011specialize gaussian_add_exists (x)
  12. 0012specialize gaussian_add_exists (x1)
  13. 0013apply gaussian_add_exists
  14. 0014specialize gaussian_multiply_input_right_valid (d)
  15. 0015specialize gaussian_multiply_input_right_valid (x)
  16. 0016specialize gaussian_multiply_input_right_valid (a)
  17. 0017apply gaussian_multiply_input_right_valid
  18. 0018exact hA_witness
  19. 0019specialize gaussian_multiply_input_right_valid (d)
  20. 0020specialize gaussian_multiply_input_right_valid (x1)
  21. 0021specialize gaussian_multiply_input_right_valid (b)
  22. 0022apply gaussian_multiply_input_right_valid
  23. 0023exact hB_witness
  24. 0024cases hq
  25. 0025exists (x2)
  26. 0026specialize gaussian_multiply_add_compose (d)
  27. 0027specialize gaussian_multiply_add_compose (x)
  28. 0028specialize gaussian_multiply_add_compose (x1)
  29. 0029specialize gaussian_multiply_add_compose (x2)
  30. 0030specialize gaussian_multiply_add_compose (a)
  31. 0031specialize gaussian_multiply_add_compose (b)
  32. 0032specialize gaussian_multiply_add_compose (c)
  33. 0033apply gaussian_multiply_add_compose
  34. 0034exact hq_witness
  35. 0035exact hA_witness
  36. 0036exact hB_witness
  37. 0037exact hsum