GF0075

gaussian_factor_search_coordinate_row

Finite induction checks every imaginary coordinate below k, returning an actual proper divisor or a proof that none is present.

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

∀ k. ∀ z. ∀ N. ∀ rc. ZPairValid(z) → (∃ x. Lt(x,k)GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N)) ∨ (∀ x. Lt(x,k) → ¬GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N))

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

Definition DAG

Actual proof prerequisites

gaussian_search_no_index_below_zerogaussian_proper_norm_divisor_decidablegaussian_search_pair_validfinite_lt_succ_eq_or_lt · checked external prerequisitelt_of_lt_of_le · checked external prerequisitele_succ_self · checked external prerequisitezero_add · checked external prerequisitegaussian_search_proper_divisor_code_transport
Original expanded first-order statement
forall k z N rc. (exists ge_real_positive_row_target ge_real_negative_row_target ge_imaginary_positive_row_target ge_imaginary_negative_row_target. (exists ge_real_code_row_targetdecode ge_imaginary_code_row_targetdecode. (((z) = ((ge_real_code_row_targetdecode) + (ge_imaginary_code_row_targetdecode)) * S ((ge_real_code_row_targetdecode) + (ge_imaginary_code_row_targetdecode)) + ((ge_imaginary_code_row_targetdecode) + (ge_imaginary_code_row_targetdecode))) /\ (((((ge_real_code_row_targetdecode) = 2 * (ge_real_positive_row_target) /\ (ge_real_negative_row_target) = 0) \/ exists ge_signed_half_ge_row_targetdecode_real. (((ge_real_code_row_targetdecode) = 2 * ge_signed_half_ge_row_targetdecode_real + 1 /\ (ge_real_positive_row_target) = 0) /\ (ge_real_negative_row_target) = S ge_signed_half_ge_row_targetdecode_real))) /\ ((((ge_imaginary_code_row_targetdecode) = 2 * (ge_imaginary_positive_row_target) /\ (ge_imaginary_negative_row_target) = 0) \/ exists ge_signed_half_ge_row_targetdecode_imaginary. (((ge_imaginary_code_row_targetdecode) = 2 * ge_signed_half_ge_row_targetdecode_imaginary + 1 /\ (ge_imaginary_positive_row_target) = 0) /\ (ge_imaginary_negative_row_target) = S ge_signed_half_ge_row_targetdecode_imaginary))))))) -> ((exists gr_row_coordinate_row_scan. ((exists ge_gap_row_scanfound_index. ge_gap_row_scanfound_index + S (gr_row_coordinate_row_scan) = (k)) /\ (((~(exists gr_inverse_row_scanfoundnonunit. (exists ge_first_rp_row_scanfoundnonunitidentity ge_first_rn_row_scanfoundnonunitidentity ge_first_ip_row_scanfoundnonunitidentity ge_first_in_row_scanfoundnonunitidentity ge_second_rp_row_scanfoundnonunitidentity ge_second_rn_row_scanfoundnonunitidentity ge_second_ip_row_scanfoundnonunitidentity ge_second_in_row_scanfoundnonunitidentity. ((exists ge_representation_real_code_row_scanfoundnonunitidentityfirst ge_representation_imaginary_code_row_scanfoundnonunitidentityfirst. (((((rc) + (gr_row_coordinate_row_scan)) * S ((rc) + (gr_row_coordinate_row_scan)) + ((gr_row_coordinate_row_scan) + (gr_row_coordinate_row_scan))) = ((ge_representation_real_code_row_scanfoundnonunitidentityfirst) + (ge_representation_imaginary_code_row_scanfoundnonunitidentityfirst)) * S ((ge_representation_real_code_row_scanfoundnonunitidentityfirst) + (ge_representation_imaginary_code_row_scanfoundnonunitidentityfirst)) + ((ge_representation_imaginary_code_row_scanfoundnonunitidentityfirst) + (ge_representation_imaginary_code_row_scanfoundnonunitidentityfirst))) /\ ((exists ge_balance_positive_row_scanfoundnonunitidentityfirstreal ge_balance_negative_row_scanfoundnonunitidentityfirstreal. (((((ge_representation_real_code_row_scanfoundnonunitidentityfirst) = 2 * (ge_balance_positive_row_scanfoundnonunitidentityfirstreal) /\ (ge_balance_negative_row_scanfoundnonunitidentityfirstreal) = 0) \/ exists ge_signed_half_row_scanfoundnonunitidentityfirstrealdecode. (((ge_representation_real_code_row_scanfoundnonunitidentityfirst) = 2 * ge_signed_half_row_scanfoundnonunitidentityfirstrealdecode + 1 /\ (ge_balance_positive_row_scanfoundnonunitidentityfirstreal) = 0) /\ (ge_balance_negative_row_scanfoundnonunitidentityfirstreal) = S ge_signed_half_row_scanfoundnonunitidentityfirstrealdecode))) /\ ((ge_first_rp_row_scanfoundnonunitidentity) + ge_balance_negative_row_scanfoundnonunitidentityfirstreal = (ge_first_rn_row_scanfoundnonunitidentity) + ge_balance_positive_row_scanfoundnonunitidentityfirstreal))) /\ (exists ge_balance_positive_row_scanfoundnonunitidentityfirstimaginary ge_balance_negative_row_scanfoundnonunitidentityfirstimaginary. (((((ge_representation_imaginary_code_row_scanfoundnonunitidentityfirst) = 2 * (ge_balance_positive_row_scanfoundnonunitidentityfirstimaginary) /\ (ge_balance_negative_row_scanfoundnonunitidentityfirstimaginary) = 0) \/ exists ge_signed_half_row_scanfoundnonunitidentityfirstimaginarydecode. (((ge_representation_imaginary_code_row_scanfoundnonunitidentityfirst) = 2 * ge_signed_half_row_scanfoundnonunitidentityfirstimaginarydecode + 1 /\ (ge_balance_positive_row_scanfoundnonunitidentityfirstimaginary) = 0) /\ (ge_balance_negative_row_scanfoundnonunitidentityfirstimaginary) = S ge_signed_half_row_scanfoundnonunitidentityfirstimaginarydecode))) /\ ((ge_first_ip_row_scanfoundnonunitidentity) + ge_balance_negative_row_scanfoundnonunitidentityfirstimaginary = (ge_first_in_row_scanfoundnonunitidentity) + ge_balance_positive_row_scanfoundnonunitidentityfirstimaginary)))))) /\ ((exists ge_representation_real_code_row_scanfoundnonunitidentitysecond ge_representation_imaginary_code_row_scanfoundnonunitidentitysecond. (((gr_inverse_row_scanfoundnonunit) = ((ge_representation_real_code_row_scanfoundnonunitidentitysecond) + (ge_representation_imaginary_code_row_scanfoundnonunitidentitysecond)) * S ((ge_representation_real_code_row_scanfoundnonunitidentitysecond) + (ge_representation_imaginary_code_row_scanfoundnonunitidentitysecond)) + ((ge_representation_imaginary_code_row_scanfoundnonunitidentitysecond) + (ge_representation_imaginary_code_row_scanfoundnonunitidentitysecond))) /\ ((exists ge_balance_positive_row_scanfoundnonunitidentitysecondreal ge_balance_negative_row_scanfoundnonunitidentitysecondreal. (((((ge_representation_real_code_row_scanfoundnonunitidentitysecond) = 2 * (ge_balance_positive_row_scanfoundnonunitidentitysecondreal) /\ (ge_balance_negative_row_scanfoundnonunitidentitysecondreal) = 0) \/ exists ge_signed_half_row_scanfoundnonunitidentitysecondrealdecode. (((ge_representation_real_code_row_scanfoundnonunitidentitysecond) = 2 * ge_signed_half_row_scanfoundnonunitidentitysecondrealdecode + 1 /\ (ge_balance_positive_row_scanfoundnonunitidentitysecondreal) = 0) /\ (ge_balance_negative_row_scanfoundnonunitidentitysecondreal) = S ge_signed_half_row_scanfoundnonunitidentitysecondrealdecode))) /\ ((ge_second_rp_row_scanfoundnonunitidentity) + ge_balance_negative_row_scanfoundnonunitidentitysecondreal = (ge_second_rn_row_scanfoundnonunitidentity) + ge_balance_positive_row_scanfoundnonunitidentitysecondreal))) /\ (exists ge_balance_positive_row_scanfoundnonunitidentitysecondimaginary ge_balance_negative_row_scanfoundnonunitidentitysecondimaginary. (((((ge_representation_imaginary_code_row_scanfoundnonunitidentitysecond) = 2 * (ge_balance_positive_row_scanfoundnonunitidentitysecondimaginary) /\ (ge_balance_negative_row_scanfoundnonunitidentitysecondimaginary) = 0) \/ exists ge_signed_half_row_scanfoundnonunitidentitysecondimaginarydecode. (((ge_representation_imaginary_code_row_scanfoundnonunitidentitysecond) = 2 * ge_signed_half_row_scanfoundnonunitidentitysecondimaginarydecode + 1 /\ (ge_balance_positive_row_scanfoundnonunitidentitysecondimaginary) = 0) /\ (ge_balance_negative_row_scanfoundnonunitidentitysecondimaginary) = S ge_signed_half_row_scanfoundnonunitidentitysecondimaginarydecode))) /\ ((ge_second_ip_row_scanfoundnonunitidentity) + ge_balance_negative_row_scanfoundnonunitidentitysecondimaginary = (ge_second_in_row_scanfoundnonunitidentity) + ge_balance_positive_row_scanfoundnonunitidentitysecondimaginary)))))) /\ (exists ge_representation_real_code_row_scanfoundnonunitidentityoutput ge_representation_imaginary_code_row_scanfoundnonunitidentityoutput. (((6) = ((ge_representation_real_code_row_scanfoundnonunitidentityoutput) + (ge_representation_imaginary_code_row_scanfoundnonunitidentityoutput)) * S ((ge_representation_real_code_row_scanfoundnonunitidentityoutput) + (ge_representation_imaginary_code_row_scanfoundnonunitidentityoutput)) + ((ge_representation_imaginary_code_row_scanfoundnonunitidentityoutput) + (ge_representation_imaginary_code_row_scanfoundnonunitidentityoutput))) /\ ((exists ge_balance_positive_row_scanfoundnonunitidentityoutputreal ge_balance_negative_row_scanfoundnonunitidentityoutputreal. (((((ge_representation_real_code_row_scanfoundnonunitidentityoutput) = 2 * (ge_balance_positive_row_scanfoundnonunitidentityoutputreal) /\ (ge_balance_negative_row_scanfoundnonunitidentityoutputreal) = 0) \/ exists ge_signed_half_row_scanfoundnonunitidentityoutputrealdecode. (((ge_representation_real_code_row_scanfoundnonunitidentityoutput) = 2 * ge_signed_half_row_scanfoundnonunitidentityoutputrealdecode + 1 /\ (ge_balance_positive_row_scanfoundnonunitidentityoutputreal) = 0) /\ (ge_balance_negative_row_scanfoundnonunitidentityoutputreal) = S ge_signed_half_row_scanfoundnonunitidentityoutputrealdecode))) /\ ((((((((ge_first_rp_row_scanfoundnonunitidentity) * (ge_second_rp_row_scanfoundnonunitidentity))) + (((ge_first_rn_row_scanfoundnonunitidentity) * (ge_second_rn_row_scanfoundnonunitidentity))))) + (((((ge_first_ip_row_scanfoundnonunitidentity) * (ge_second_in_row_scanfoundnonunitidentity))) + (((ge_first_in_row_scanfoundnonunitidentity) * (ge_second_ip_row_scanfoundnonunitidentity))))))) + ge_balance_negative_row_scanfoundnonunitidentityoutputreal = (((((((ge_first_rp_row_scanfoundnonunitidentity) * (ge_second_rn_row_scanfoundnonunitidentity))) + (((ge_first_rn_row_scanfoundnonunitidentity) * (ge_second_rp_row_scanfoundnonunitidentity))))) + (((((ge_first_ip_row_scanfoundnonunitidentity) * (ge_second_ip_row_scanfoundnonunitidentity))) + (((ge_first_in_row_scanfoundnonunitidentity) * (ge_second_in_row_scanfoundnonunitidentity))))))) + ge_balance_positive_row_scanfoundnonunitidentityoutputreal))) /\ (exists ge_balance_positive_row_scanfoundnonunitidentityoutputimaginary ge_balance_negative_row_scanfoundnonunitidentityoutputimaginary. (((((ge_representation_imaginary_code_row_scanfoundnonunitidentityoutput) = 2 * (ge_balance_positive_row_scanfoundnonunitidentityoutputimaginary) /\ (ge_balance_negative_row_scanfoundnonunitidentityoutputimaginary) = 0) \/ exists ge_signed_half_row_scanfoundnonunitidentityoutputimaginarydecode. (((ge_representation_imaginary_code_row_scanfoundnonunitidentityoutput) = 2 * ge_signed_half_row_scanfoundnonunitidentityoutputimaginarydecode + 1 /\ (ge_balance_positive_row_scanfoundnonunitidentityoutputimaginary) = 0) /\ (ge_balance_negative_row_scanfoundnonunitidentityoutputimaginary) = S ge_signed_half_row_scanfoundnonunitidentityoutputimaginarydecode))) /\ ((((((((ge_first_rp_row_scanfoundnonunitidentity) * (ge_second_ip_row_scanfoundnonunitidentity))) + (((ge_first_rn_row_scanfoundnonunitidentity) * (ge_second_in_row_scanfoundnonunitidentity))))) + (((((ge_first_ip_row_scanfoundnonunitidentity) * (ge_second_rp_row_scanfoundnonunitidentity))) + (((ge_first_in_row_scanfoundnonunitidentity) * (ge_second_rn_row_scanfoundnonunitidentity))))))) + ge_balance_negative_row_scanfoundnonunitidentityoutputimaginary = (((((((ge_first_rp_row_scanfoundnonunitidentity) * (ge_second_in_row_scanfoundnonunitidentity))) + (((ge_first_rn_row_scanfoundnonunitidentity) * (ge_second_ip_row_scanfoundnonunitidentity))))) + (((((ge_first_ip_row_scanfoundnonunitidentity) * (ge_second_rn_row_scanfoundnonunitidentity))) + (((ge_first_in_row_scanfoundnonunitidentity) * (ge_second_rp_row_scanfoundnonunitidentity))))))) + ge_balance_positive_row_scanfoundnonunitidentityoutputimaginary))))))))))) /\ ((exists gr_quotient_row_scanfoundquotient. (exists ge_first_rp_row_scanfoundquotientproduct ge_first_rn_row_scanfoundquotientproduct ge_first_ip_row_scanfoundquotientproduct ge_first_in_row_scanfoundquotientproduct ge_second_rp_row_scanfoundquotientproduct ge_second_rn_row_scanfoundquotientproduct ge_second_ip_row_scanfoundquotientproduct ge_second_in_row_scanfoundquotientproduct. ((exists ge_representation_real_code_row_scanfoundquotientproductfirst ge_representation_imaginary_code_row_scanfoundquotientproductfirst. (((((rc) + (gr_row_coordinate_row_scan)) * S ((rc) + (gr_row_coordinate_row_scan)) + ((gr_row_coordinate_row_scan) + (gr_row_coordinate_row_scan))) = ((ge_representation_real_code_row_scanfoundquotientproductfirst) + (ge_representation_imaginary_code_row_scanfoundquotientproductfirst)) * S ((ge_representation_real_code_row_scanfoundquotientproductfirst) + (ge_representation_imaginary_code_row_scanfoundquotientproductfirst)) + ((ge_representation_imaginary_code_row_scanfoundquotientproductfirst) + (ge_representation_imaginary_code_row_scanfoundquotientproductfirst))) /\ ((exists ge_balance_positive_row_scanfoundquotientproductfirstreal ge_balance_negative_row_scanfoundquotientproductfirstreal. (((((ge_representation_real_code_row_scanfoundquotientproductfirst) = 2 * (ge_balance_positive_row_scanfoundquotientproductfirstreal) /\ (ge_balance_negative_row_scanfoundquotientproductfirstreal) = 0) \/ exists ge_signed_half_row_scanfoundquotientproductfirstrealdecode. (((ge_representation_real_code_row_scanfoundquotientproductfirst) = 2 * ge_signed_half_row_scanfoundquotientproductfirstrealdecode + 1 /\ (ge_balance_positive_row_scanfoundquotientproductfirstreal) = 0) /\ (ge_balance_negative_row_scanfoundquotientproductfirstreal) = S ge_signed_half_row_scanfoundquotientproductfirstrealdecode))) /\ ((ge_first_rp_row_scanfoundquotientproduct) + ge_balance_negative_row_scanfoundquotientproductfirstreal = (ge_first_rn_row_scanfoundquotientproduct) + ge_balance_positive_row_scanfoundquotientproductfirstreal))) /\ (exists ge_balance_positive_row_scanfoundquotientproductfirstimaginary ge_balance_negative_row_scanfoundquotientproductfirstimaginary. (((((ge_representation_imaginary_code_row_scanfoundquotientproductfirst) = 2 * (ge_balance_positive_row_scanfoundquotientproductfirstimaginary) /\ (ge_balance_negative_row_scanfoundquotientproductfirstimaginary) = 0) \/ exists ge_signed_half_row_scanfoundquotientproductfirstimaginarydecode. (((ge_representation_imaginary_code_row_scanfoundquotientproductfirst) = 2 * ge_signed_half_row_scanfoundquotientproductfirstimaginarydecode + 1 /\ (ge_balance_positive_row_scanfoundquotientproductfirstimaginary) = 0) /\ (ge_balance_negative_row_scanfoundquotientproductfirstimaginary) = S ge_signed_half_row_scanfoundquotientproductfirstimaginarydecode))) /\ ((ge_first_ip_row_scanfoundquotientproduct) + ge_balance_negative_row_scanfoundquotientproductfirstimaginary = (ge_first_in_row_scanfoundquotientproduct) + ge_balance_positive_row_scanfoundquotientproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_row_scanfoundquotientproductsecond ge_representation_imaginary_code_row_scanfoundquotientproductsecond. (((gr_quotient_row_scanfoundquotient) = ((ge_representation_real_code_row_scanfoundquotientproductsecond) + (ge_representation_imaginary_code_row_scanfoundquotientproductsecond)) * S ((ge_representation_real_code_row_scanfoundquotientproductsecond) + (ge_representation_imaginary_code_row_scanfoundquotientproductsecond)) + ((ge_representation_imaginary_code_row_scanfoundquotientproductsecond) + (ge_representation_imaginary_code_row_scanfoundquotientproductsecond))) /\ ((exists ge_balance_positive_row_scanfoundquotientproductsecondreal ge_balance_negative_row_scanfoundquotientproductsecondreal. (((((ge_representation_real_code_row_scanfoundquotientproductsecond) = 2 * (ge_balance_positive_row_scanfoundquotientproductsecondreal) /\ (ge_balance_negative_row_scanfoundquotientproductsecondreal) = 0) \/ exists ge_signed_half_row_scanfoundquotientproductsecondrealdecode. (((ge_representation_real_code_row_scanfoundquotientproductsecond) = 2 * ge_signed_half_row_scanfoundquotientproductsecondrealdecode + 1 /\ (ge_balance_positive_row_scanfoundquotientproductsecondreal) = 0) /\ (ge_balance_negative_row_scanfoundquotientproductsecondreal) = S ge_signed_half_row_scanfoundquotientproductsecondrealdecode))) /\ ((ge_second_rp_row_scanfoundquotientproduct) + ge_balance_negative_row_scanfoundquotientproductsecondreal = (ge_second_rn_row_scanfoundquotientproduct) + ge_balance_positive_row_scanfoundquotientproductsecondreal))) /\ (exists ge_balance_positive_row_scanfoundquotientproductsecondimaginary ge_balance_negative_row_scanfoundquotientproductsecondimaginary. (((((ge_representation_imaginary_code_row_scanfoundquotientproductsecond) = 2 * (ge_balance_positive_row_scanfoundquotientproductsecondimaginary) /\ (ge_balance_negative_row_scanfoundquotientproductsecondimaginary) = 0) \/ exists ge_signed_half_row_scanfoundquotientproductsecondimaginarydecode. (((ge_representation_imaginary_code_row_scanfoundquotientproductsecond) = 2 * ge_signed_half_row_scanfoundquotientproductsecondimaginarydecode + 1 /\ (ge_balance_positive_row_scanfoundquotientproductsecondimaginary) = 0) /\ (ge_balance_negative_row_scanfoundquotientproductsecondimaginary) = S ge_signed_half_row_scanfoundquotientproductsecondimaginarydecode))) /\ ((ge_second_ip_row_scanfoundquotientproduct) + ge_balance_negative_row_scanfoundquotientproductsecondimaginary = (ge_second_in_row_scanfoundquotientproduct) + ge_balance_positive_row_scanfoundquotientproductsecondimaginary)))))) /\ (exists ge_representation_real_code_row_scanfoundquotientproductoutput ge_representation_imaginary_code_row_scanfoundquotientproductoutput. (((z) = ((ge_representation_real_code_row_scanfoundquotientproductoutput) + (ge_representation_imaginary_code_row_scanfoundquotientproductoutput)) * S ((ge_representation_real_code_row_scanfoundquotientproductoutput) + (ge_representation_imaginary_code_row_scanfoundquotientproductoutput)) + ((ge_representation_imaginary_code_row_scanfoundquotientproductoutput) + (ge_representation_imaginary_code_row_scanfoundquotientproductoutput))) /\ ((exists ge_balance_positive_row_scanfoundquotientproductoutputreal ge_balance_negative_row_scanfoundquotientproductoutputreal. (((((ge_representation_real_code_row_scanfoundquotientproductoutput) = 2 * (ge_balance_positive_row_scanfoundquotientproductoutputreal) /\ (ge_balance_negative_row_scanfoundquotientproductoutputreal) = 0) \/ exists ge_signed_half_row_scanfoundquotientproductoutputrealdecode. (((ge_representation_real_code_row_scanfoundquotientproductoutput) = 2 * ge_signed_half_row_scanfoundquotientproductoutputrealdecode + 1 /\ (ge_balance_positive_row_scanfoundquotientproductoutputreal) = 0) /\ (ge_balance_negative_row_scanfoundquotientproductoutputreal) = S ge_signed_half_row_scanfoundquotientproductoutputrealdecode))) /\ ((((((((ge_first_rp_row_scanfoundquotientproduct) * (ge_second_rp_row_scanfoundquotientproduct))) + (((ge_first_rn_row_scanfoundquotientproduct) * (ge_second_rn_row_scanfoundquotientproduct))))) + (((((ge_first_ip_row_scanfoundquotientproduct) * (ge_second_in_row_scanfoundquotientproduct))) + (((ge_first_in_row_scanfoundquotientproduct) * (ge_second_ip_row_scanfoundquotientproduct))))))) + ge_balance_negative_row_scanfoundquotientproductoutputreal = (((((((ge_first_rp_row_scanfoundquotientproduct) * (ge_second_rn_row_scanfoundquotientproduct))) + (((ge_first_rn_row_scanfoundquotientproduct) * (ge_second_rp_row_scanfoundquotientproduct))))) + (((((ge_first_ip_row_scanfoundquotientproduct) * (ge_second_ip_row_scanfoundquotientproduct))) + (((ge_first_in_row_scanfoundquotientproduct) * (ge_second_in_row_scanfoundquotientproduct))))))) + ge_balance_positive_row_scanfoundquotientproductoutputreal))) /\ (exists ge_balance_positive_row_scanfoundquotientproductoutputimaginary ge_balance_negative_row_scanfoundquotientproductoutputimaginary. (((((ge_representation_imaginary_code_row_scanfoundquotientproductoutput) = 2 * (ge_balance_positive_row_scanfoundquotientproductoutputimaginary) /\ (ge_balance_negative_row_scanfoundquotientproductoutputimaginary) = 0) \/ exists ge_signed_half_row_scanfoundquotientproductoutputimaginarydecode. (((ge_representation_imaginary_code_row_scanfoundquotientproductoutput) = 2 * ge_signed_half_row_scanfoundquotientproductoutputimaginarydecode + 1 /\ (ge_balance_positive_row_scanfoundquotientproductoutputimaginary) = 0) /\ (ge_balance_negative_row_scanfoundquotientproductoutputimaginary) = S ge_signed_half_row_scanfoundquotientproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_row_scanfoundquotientproduct) * (ge_second_ip_row_scanfoundquotientproduct))) + (((ge_first_rn_row_scanfoundquotientproduct) * (ge_second_in_row_scanfoundquotientproduct))))) + (((((ge_first_ip_row_scanfoundquotientproduct) * (ge_second_rp_row_scanfoundquotientproduct))) + (((ge_first_in_row_scanfoundquotientproduct) * (ge_second_rn_row_scanfoundquotientproduct))))))) + ge_balance_negative_row_scanfoundquotientproductoutputimaginary = (((((((ge_first_rp_row_scanfoundquotientproduct) * (ge_second_in_row_scanfoundquotientproduct))) + (((ge_first_rn_row_scanfoundquotientproduct) * (ge_second_ip_row_scanfoundquotientproduct))))) + (((((ge_first_ip_row_scanfoundquotientproduct) * (ge_second_rn_row_scanfoundquotientproduct))) + (((ge_first_in_row_scanfoundquotientproduct) * (ge_second_rp_row_scanfoundquotientproduct))))))) + ge_balance_positive_row_scanfoundquotientproductoutputimaginary)))))))))) /\ (exists gr_proper_divisor_norm_row_scanfound. ((exists ge_norm_rp_row_scanfoundnorm ge_norm_rn_row_scanfoundnorm ge_norm_ip_row_scanfoundnorm ge_norm_in_row_scanfoundnorm. ((exists ge_representation_real_code_row_scanfoundnormrepresentation ge_representation_imaginary_code_row_scanfoundnormrepresentation. (((((rc) + (gr_row_coordinate_row_scan)) * S ((rc) + (gr_row_coordinate_row_scan)) + ((gr_row_coordinate_row_scan) + (gr_row_coordinate_row_scan))) = ((ge_representation_real_code_row_scanfoundnormrepresentation) + (ge_representation_imaginary_code_row_scanfoundnormrepresentation)) * S ((ge_representation_real_code_row_scanfoundnormrepresentation) + (ge_representation_imaginary_code_row_scanfoundnormrepresentation)) + ((ge_representation_imaginary_code_row_scanfoundnormrepresentation) + (ge_representation_imaginary_code_row_scanfoundnormrepresentation))) /\ ((exists ge_balance_positive_row_scanfoundnormrepresentationreal ge_balance_negative_row_scanfoundnormrepresentationreal. (((((ge_representation_real_code_row_scanfoundnormrepresentation) = 2 * (ge_balance_positive_row_scanfoundnormrepresentationreal) /\ (ge_balance_negative_row_scanfoundnormrepresentationreal) = 0) \/ exists ge_signed_half_row_scanfoundnormrepresentationrealdecode. (((ge_representation_real_code_row_scanfoundnormrepresentation) = 2 * ge_signed_half_row_scanfoundnormrepresentationrealdecode + 1 /\ (ge_balance_positive_row_scanfoundnormrepresentationreal) = 0) /\ (ge_balance_negative_row_scanfoundnormrepresentationreal) = S ge_signed_half_row_scanfoundnormrepresentationrealdecode))) /\ ((ge_norm_rp_row_scanfoundnorm) + ge_balance_negative_row_scanfoundnormrepresentationreal = (ge_norm_rn_row_scanfoundnorm) + ge_balance_positive_row_scanfoundnormrepresentationreal))) /\ (exists ge_balance_positive_row_scanfoundnormrepresentationimaginary ge_balance_negative_row_scanfoundnormrepresentationimaginary. (((((ge_representation_imaginary_code_row_scanfoundnormrepresentation) = 2 * (ge_balance_positive_row_scanfoundnormrepresentationimaginary) /\ (ge_balance_negative_row_scanfoundnormrepresentationimaginary) = 0) \/ exists ge_signed_half_row_scanfoundnormrepresentationimaginarydecode. (((ge_representation_imaginary_code_row_scanfoundnormrepresentation) = 2 * ge_signed_half_row_scanfoundnormrepresentationimaginarydecode + 1 /\ (ge_balance_positive_row_scanfoundnormrepresentationimaginary) = 0) /\ (ge_balance_negative_row_scanfoundnormrepresentationimaginary) = S ge_signed_half_row_scanfoundnormrepresentationimaginarydecode))) /\ ((ge_norm_ip_row_scanfoundnorm) + ge_balance_negative_row_scanfoundnormrepresentationimaginary = (ge_norm_in_row_scanfoundnorm) + ge_balance_positive_row_scanfoundnormrepresentationimaginary)))))) /\ (exists ge_real_square_row_scanfoundnormsquare ge_imaginary_square_row_scanfoundnormsquare. ((((((ge_norm_rp_row_scanfoundnorm) * (ge_norm_rp_row_scanfoundnorm))) + (((ge_norm_rn_row_scanfoundnorm) * (ge_norm_rn_row_scanfoundnorm)))) = ((ge_real_square_row_scanfoundnormsquare) + (((((ge_norm_rp_row_scanfoundnorm) * (ge_norm_rn_row_scanfoundnorm))) + (((ge_norm_rn_row_scanfoundnorm) * (ge_norm_rp_row_scanfoundnorm))))))) /\ ((((((ge_norm_ip_row_scanfoundnorm) * (ge_norm_ip_row_scanfoundnorm))) + (((ge_norm_in_row_scanfoundnorm) * (ge_norm_in_row_scanfoundnorm)))) = ((ge_imaginary_square_row_scanfoundnormsquare) + (((((ge_norm_ip_row_scanfoundnorm) * (ge_norm_in_row_scanfoundnorm))) + (((ge_norm_in_row_scanfoundnorm) * (ge_norm_ip_row_scanfoundnorm))))))) /\ ((gr_proper_divisor_norm_row_scanfound) = ge_real_square_row_scanfoundnormsquare + ge_imaginary_square_row_scanfoundnormsquare)))))) /\ (exists ge_gap_row_scanfoundstrict. ge_gap_row_scanfoundstrict + S (gr_proper_divisor_norm_row_scanfound) = (N))))))))) \/ (forall gr_row_coordinate_row_scan. (exists ge_gap_row_scanabsent_index. ge_gap_row_scanabsent_index + S (gr_row_coordinate_row_scan) = (k)) -> ~(((~(exists gr_inverse_row_scanabsentnonunit. (exists ge_first_rp_row_scanabsentnonunitidentity ge_first_rn_row_scanabsentnonunitidentity ge_first_ip_row_scanabsentnonunitidentity ge_first_in_row_scanabsentnonunitidentity ge_second_rp_row_scanabsentnonunitidentity ge_second_rn_row_scanabsentnonunitidentity ge_second_ip_row_scanabsentnonunitidentity ge_second_in_row_scanabsentnonunitidentity. ((exists ge_representation_real_code_row_scanabsentnonunitidentityfirst ge_representation_imaginary_code_row_scanabsentnonunitidentityfirst. (((((rc) + (gr_row_coordinate_row_scan)) * S ((rc) + (gr_row_coordinate_row_scan)) + ((gr_row_coordinate_row_scan) + (gr_row_coordinate_row_scan))) = ((ge_representation_real_code_row_scanabsentnonunitidentityfirst) + (ge_representation_imaginary_code_row_scanabsentnonunitidentityfirst)) * S ((ge_representation_real_code_row_scanabsentnonunitidentityfirst) + (ge_representation_imaginary_code_row_scanabsentnonunitidentityfirst)) + ((ge_representation_imaginary_code_row_scanabsentnonunitidentityfirst) + (ge_representation_imaginary_code_row_scanabsentnonunitidentityfirst))) /\ ((exists ge_balance_positive_row_scanabsentnonunitidentityfirstreal ge_balance_negative_row_scanabsentnonunitidentityfirstreal. (((((ge_representation_real_code_row_scanabsentnonunitidentityfirst) = 2 * (ge_balance_positive_row_scanabsentnonunitidentityfirstreal) /\ (ge_balance_negative_row_scanabsentnonunitidentityfirstreal) = 0) \/ exists ge_signed_half_row_scanabsentnonunitidentityfirstrealdecode. (((ge_representation_real_code_row_scanabsentnonunitidentityfirst) = 2 * ge_signed_half_row_scanabsentnonunitidentityfirstrealdecode + 1 /\ (ge_balance_positive_row_scanabsentnonunitidentityfirstreal) = 0) /\ (ge_balance_negative_row_scanabsentnonunitidentityfirstreal) = S ge_signed_half_row_scanabsentnonunitidentityfirstrealdecode))) /\ ((ge_first_rp_row_scanabsentnonunitidentity) + ge_balance_negative_row_scanabsentnonunitidentityfirstreal = (ge_first_rn_row_scanabsentnonunitidentity) + ge_balance_positive_row_scanabsentnonunitidentityfirstreal))) /\ (exists ge_balance_positive_row_scanabsentnonunitidentityfirstimaginary ge_balance_negative_row_scanabsentnonunitidentityfirstimaginary. (((((ge_representation_imaginary_code_row_scanabsentnonunitidentityfirst) = 2 * (ge_balance_positive_row_scanabsentnonunitidentityfirstimaginary) /\ (ge_balance_negative_row_scanabsentnonunitidentityfirstimaginary) = 0) \/ exists ge_signed_half_row_scanabsentnonunitidentityfirstimaginarydecode. (((ge_representation_imaginary_code_row_scanabsentnonunitidentityfirst) = 2 * ge_signed_half_row_scanabsentnonunitidentityfirstimaginarydecode + 1 /\ (ge_balance_positive_row_scanabsentnonunitidentityfirstimaginary) = 0) /\ (ge_balance_negative_row_scanabsentnonunitidentityfirstimaginary) = S ge_signed_half_row_scanabsentnonunitidentityfirstimaginarydecode))) /\ ((ge_first_ip_row_scanabsentnonunitidentity) + ge_balance_negative_row_scanabsentnonunitidentityfirstimaginary = (ge_first_in_row_scanabsentnonunitidentity) + ge_balance_positive_row_scanabsentnonunitidentityfirstimaginary)))))) /\ ((exists ge_representation_real_code_row_scanabsentnonunitidentitysecond ge_representation_imaginary_code_row_scanabsentnonunitidentitysecond. (((gr_inverse_row_scanabsentnonunit) = ((ge_representation_real_code_row_scanabsentnonunitidentitysecond) + (ge_representation_imaginary_code_row_scanabsentnonunitidentitysecond)) * S ((ge_representation_real_code_row_scanabsentnonunitidentitysecond) + (ge_representation_imaginary_code_row_scanabsentnonunitidentitysecond)) + ((ge_representation_imaginary_code_row_scanabsentnonunitidentitysecond) + (ge_representation_imaginary_code_row_scanabsentnonunitidentitysecond))) /\ ((exists ge_balance_positive_row_scanabsentnonunitidentitysecondreal ge_balance_negative_row_scanabsentnonunitidentitysecondreal. (((((ge_representation_real_code_row_scanabsentnonunitidentitysecond) = 2 * (ge_balance_positive_row_scanabsentnonunitidentitysecondreal) /\ (ge_balance_negative_row_scanabsentnonunitidentitysecondreal) = 0) \/ exists ge_signed_half_row_scanabsentnonunitidentitysecondrealdecode. (((ge_representation_real_code_row_scanabsentnonunitidentitysecond) = 2 * ge_signed_half_row_scanabsentnonunitidentitysecondrealdecode + 1 /\ (ge_balance_positive_row_scanabsentnonunitidentitysecondreal) = 0) /\ (ge_balance_negative_row_scanabsentnonunitidentitysecondreal) = S ge_signed_half_row_scanabsentnonunitidentitysecondrealdecode))) /\ ((ge_second_rp_row_scanabsentnonunitidentity) + ge_balance_negative_row_scanabsentnonunitidentitysecondreal = (ge_second_rn_row_scanabsentnonunitidentity) + ge_balance_positive_row_scanabsentnonunitidentitysecondreal))) /\ (exists ge_balance_positive_row_scanabsentnonunitidentitysecondimaginary ge_balance_negative_row_scanabsentnonunitidentitysecondimaginary. (((((ge_representation_imaginary_code_row_scanabsentnonunitidentitysecond) = 2 * (ge_balance_positive_row_scanabsentnonunitidentitysecondimaginary) /\ (ge_balance_negative_row_scanabsentnonunitidentitysecondimaginary) = 0) \/ exists ge_signed_half_row_scanabsentnonunitidentitysecondimaginarydecode. (((ge_representation_imaginary_code_row_scanabsentnonunitidentitysecond) = 2 * ge_signed_half_row_scanabsentnonunitidentitysecondimaginarydecode + 1 /\ (ge_balance_positive_row_scanabsentnonunitidentitysecondimaginary) = 0) /\ (ge_balance_negative_row_scanabsentnonunitidentitysecondimaginary) = S ge_signed_half_row_scanabsentnonunitidentitysecondimaginarydecode))) /\ ((ge_second_ip_row_scanabsentnonunitidentity) + ge_balance_negative_row_scanabsentnonunitidentitysecondimaginary = (ge_second_in_row_scanabsentnonunitidentity) + ge_balance_positive_row_scanabsentnonunitidentitysecondimaginary)))))) /\ (exists ge_representation_real_code_row_scanabsentnonunitidentityoutput ge_representation_imaginary_code_row_scanabsentnonunitidentityoutput. (((6) = ((ge_representation_real_code_row_scanabsentnonunitidentityoutput) + (ge_representation_imaginary_code_row_scanabsentnonunitidentityoutput)) * S ((ge_representation_real_code_row_scanabsentnonunitidentityoutput) + (ge_representation_imaginary_code_row_scanabsentnonunitidentityoutput)) + ((ge_representation_imaginary_code_row_scanabsentnonunitidentityoutput) + (ge_representation_imaginary_code_row_scanabsentnonunitidentityoutput))) /\ ((exists ge_balance_positive_row_scanabsentnonunitidentityoutputreal ge_balance_negative_row_scanabsentnonunitidentityoutputreal. (((((ge_representation_real_code_row_scanabsentnonunitidentityoutput) = 2 * (ge_balance_positive_row_scanabsentnonunitidentityoutputreal) /\ (ge_balance_negative_row_scanabsentnonunitidentityoutputreal) = 0) \/ exists ge_signed_half_row_scanabsentnonunitidentityoutputrealdecode. (((ge_representation_real_code_row_scanabsentnonunitidentityoutput) = 2 * ge_signed_half_row_scanabsentnonunitidentityoutputrealdecode + 1 /\ (ge_balance_positive_row_scanabsentnonunitidentityoutputreal) = 0) /\ (ge_balance_negative_row_scanabsentnonunitidentityoutputreal) = S ge_signed_half_row_scanabsentnonunitidentityoutputrealdecode))) /\ ((((((((ge_first_rp_row_scanabsentnonunitidentity) * (ge_second_rp_row_scanabsentnonunitidentity))) + (((ge_first_rn_row_scanabsentnonunitidentity) * (ge_second_rn_row_scanabsentnonunitidentity))))) + (((((ge_first_ip_row_scanabsentnonunitidentity) * (ge_second_in_row_scanabsentnonunitidentity))) + (((ge_first_in_row_scanabsentnonunitidentity) * (ge_second_ip_row_scanabsentnonunitidentity))))))) + ge_balance_negative_row_scanabsentnonunitidentityoutputreal = (((((((ge_first_rp_row_scanabsentnonunitidentity) * (ge_second_rn_row_scanabsentnonunitidentity))) + (((ge_first_rn_row_scanabsentnonunitidentity) * (ge_second_rp_row_scanabsentnonunitidentity))))) + (((((ge_first_ip_row_scanabsentnonunitidentity) * (ge_second_ip_row_scanabsentnonunitidentity))) + (((ge_first_in_row_scanabsentnonunitidentity) * (ge_second_in_row_scanabsentnonunitidentity))))))) + ge_balance_positive_row_scanabsentnonunitidentityoutputreal))) /\ (exists ge_balance_positive_row_scanabsentnonunitidentityoutputimaginary ge_balance_negative_row_scanabsentnonunitidentityoutputimaginary. (((((ge_representation_imaginary_code_row_scanabsentnonunitidentityoutput) = 2 * (ge_balance_positive_row_scanabsentnonunitidentityoutputimaginary) /\ (ge_balance_negative_row_scanabsentnonunitidentityoutputimaginary) = 0) \/ exists ge_signed_half_row_scanabsentnonunitidentityoutputimaginarydecode. (((ge_representation_imaginary_code_row_scanabsentnonunitidentityoutput) = 2 * ge_signed_half_row_scanabsentnonunitidentityoutputimaginarydecode + 1 /\ (ge_balance_positive_row_scanabsentnonunitidentityoutputimaginary) = 0) /\ (ge_balance_negative_row_scanabsentnonunitidentityoutputimaginary) = S ge_signed_half_row_scanabsentnonunitidentityoutputimaginarydecode))) /\ ((((((((ge_first_rp_row_scanabsentnonunitidentity) * (ge_second_ip_row_scanabsentnonunitidentity))) + (((ge_first_rn_row_scanabsentnonunitidentity) * (ge_second_in_row_scanabsentnonunitidentity))))) + (((((ge_first_ip_row_scanabsentnonunitidentity) * (ge_second_rp_row_scanabsentnonunitidentity))) + (((ge_first_in_row_scanabsentnonunitidentity) * (ge_second_rn_row_scanabsentnonunitidentity))))))) + ge_balance_negative_row_scanabsentnonunitidentityoutputimaginary = (((((((ge_first_rp_row_scanabsentnonunitidentity) * (ge_second_in_row_scanabsentnonunitidentity))) + (((ge_first_rn_row_scanabsentnonunitidentity) * (ge_second_ip_row_scanabsentnonunitidentity))))) + (((((ge_first_ip_row_scanabsentnonunitidentity) * (ge_second_rn_row_scanabsentnonunitidentity))) + (((ge_first_in_row_scanabsentnonunitidentity) * (ge_second_rp_row_scanabsentnonunitidentity))))))) + ge_balance_positive_row_scanabsentnonunitidentityoutputimaginary))))))))))) /\ ((exists gr_quotient_row_scanabsentquotient. (exists ge_first_rp_row_scanabsentquotientproduct ge_first_rn_row_scanabsentquotientproduct ge_first_ip_row_scanabsentquotientproduct ge_first_in_row_scanabsentquotientproduct ge_second_rp_row_scanabsentquotientproduct ge_second_rn_row_scanabsentquotientproduct ge_second_ip_row_scanabsentquotientproduct ge_second_in_row_scanabsentquotientproduct. ((exists ge_representation_real_code_row_scanabsentquotientproductfirst ge_representation_imaginary_code_row_scanabsentquotientproductfirst. (((((rc) + (gr_row_coordinate_row_scan)) * S ((rc) + (gr_row_coordinate_row_scan)) + ((gr_row_coordinate_row_scan) + (gr_row_coordinate_row_scan))) = ((ge_representation_real_code_row_scanabsentquotientproductfirst) + (ge_representation_imaginary_code_row_scanabsentquotientproductfirst)) * S ((ge_representation_real_code_row_scanabsentquotientproductfirst) + (ge_representation_imaginary_code_row_scanabsentquotientproductfirst)) + ((ge_representation_imaginary_code_row_scanabsentquotientproductfirst) + (ge_representation_imaginary_code_row_scanabsentquotientproductfirst))) /\ ((exists ge_balance_positive_row_scanabsentquotientproductfirstreal ge_balance_negative_row_scanabsentquotientproductfirstreal. (((((ge_representation_real_code_row_scanabsentquotientproductfirst) = 2 * (ge_balance_positive_row_scanabsentquotientproductfirstreal) /\ (ge_balance_negative_row_scanabsentquotientproductfirstreal) = 0) \/ exists ge_signed_half_row_scanabsentquotientproductfirstrealdecode. (((ge_representation_real_code_row_scanabsentquotientproductfirst) = 2 * ge_signed_half_row_scanabsentquotientproductfirstrealdecode + 1 /\ (ge_balance_positive_row_scanabsentquotientproductfirstreal) = 0) /\ (ge_balance_negative_row_scanabsentquotientproductfirstreal) = S ge_signed_half_row_scanabsentquotientproductfirstrealdecode))) /\ ((ge_first_rp_row_scanabsentquotientproduct) + ge_balance_negative_row_scanabsentquotientproductfirstreal = (ge_first_rn_row_scanabsentquotientproduct) + ge_balance_positive_row_scanabsentquotientproductfirstreal))) /\ (exists ge_balance_positive_row_scanabsentquotientproductfirstimaginary ge_balance_negative_row_scanabsentquotientproductfirstimaginary. (((((ge_representation_imaginary_code_row_scanabsentquotientproductfirst) = 2 * (ge_balance_positive_row_scanabsentquotientproductfirstimaginary) /\ (ge_balance_negative_row_scanabsentquotientproductfirstimaginary) = 0) \/ exists ge_signed_half_row_scanabsentquotientproductfirstimaginarydecode. (((ge_representation_imaginary_code_row_scanabsentquotientproductfirst) = 2 * ge_signed_half_row_scanabsentquotientproductfirstimaginarydecode + 1 /\ (ge_balance_positive_row_scanabsentquotientproductfirstimaginary) = 0) /\ (ge_balance_negative_row_scanabsentquotientproductfirstimaginary) = S ge_signed_half_row_scanabsentquotientproductfirstimaginarydecode))) /\ ((ge_first_ip_row_scanabsentquotientproduct) + ge_balance_negative_row_scanabsentquotientproductfirstimaginary = (ge_first_in_row_scanabsentquotientproduct) + ge_balance_positive_row_scanabsentquotientproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_row_scanabsentquotientproductsecond ge_representation_imaginary_code_row_scanabsentquotientproductsecond. (((gr_quotient_row_scanabsentquotient) = ((ge_representation_real_code_row_scanabsentquotientproductsecond) + (ge_representation_imaginary_code_row_scanabsentquotientproductsecond)) * S ((ge_representation_real_code_row_scanabsentquotientproductsecond) + (ge_representation_imaginary_code_row_scanabsentquotientproductsecond)) + ((ge_representation_imaginary_code_row_scanabsentquotientproductsecond) + (ge_representation_imaginary_code_row_scanabsentquotientproductsecond))) /\ ((exists ge_balance_positive_row_scanabsentquotientproductsecondreal ge_balance_negative_row_scanabsentquotientproductsecondreal. (((((ge_representation_real_code_row_scanabsentquotientproductsecond) = 2 * (ge_balance_positive_row_scanabsentquotientproductsecondreal) /\ (ge_balance_negative_row_scanabsentquotientproductsecondreal) = 0) \/ exists ge_signed_half_row_scanabsentquotientproductsecondrealdecode. (((ge_representation_real_code_row_scanabsentquotientproductsecond) = 2 * ge_signed_half_row_scanabsentquotientproductsecondrealdecode + 1 /\ (ge_balance_positive_row_scanabsentquotientproductsecondreal) = 0) /\ (ge_balance_negative_row_scanabsentquotientproductsecondreal) = S ge_signed_half_row_scanabsentquotientproductsecondrealdecode))) /\ ((ge_second_rp_row_scanabsentquotientproduct) + ge_balance_negative_row_scanabsentquotientproductsecondreal = (ge_second_rn_row_scanabsentquotientproduct) + ge_balance_positive_row_scanabsentquotientproductsecondreal))) /\ (exists ge_balance_positive_row_scanabsentquotientproductsecondimaginary ge_balance_negative_row_scanabsentquotientproductsecondimaginary. (((((ge_representation_imaginary_code_row_scanabsentquotientproductsecond) = 2 * (ge_balance_positive_row_scanabsentquotientproductsecondimaginary) /\ (ge_balance_negative_row_scanabsentquotientproductsecondimaginary) = 0) \/ exists ge_signed_half_row_scanabsentquotientproductsecondimaginarydecode. (((ge_representation_imaginary_code_row_scanabsentquotientproductsecond) = 2 * ge_signed_half_row_scanabsentquotientproductsecondimaginarydecode + 1 /\ (ge_balance_positive_row_scanabsentquotientproductsecondimaginary) = 0) /\ (ge_balance_negative_row_scanabsentquotientproductsecondimaginary) = S ge_signed_half_row_scanabsentquotientproductsecondimaginarydecode))) /\ ((ge_second_ip_row_scanabsentquotientproduct) + ge_balance_negative_row_scanabsentquotientproductsecondimaginary = (ge_second_in_row_scanabsentquotientproduct) + ge_balance_positive_row_scanabsentquotientproductsecondimaginary)))))) /\ (exists ge_representation_real_code_row_scanabsentquotientproductoutput ge_representation_imaginary_code_row_scanabsentquotientproductoutput. (((z) = ((ge_representation_real_code_row_scanabsentquotientproductoutput) + (ge_representation_imaginary_code_row_scanabsentquotientproductoutput)) * S ((ge_representation_real_code_row_scanabsentquotientproductoutput) + (ge_representation_imaginary_code_row_scanabsentquotientproductoutput)) + ((ge_representation_imaginary_code_row_scanabsentquotientproductoutput) + (ge_representation_imaginary_code_row_scanabsentquotientproductoutput))) /\ ((exists ge_balance_positive_row_scanabsentquotientproductoutputreal ge_balance_negative_row_scanabsentquotientproductoutputreal. (((((ge_representation_real_code_row_scanabsentquotientproductoutput) = 2 * (ge_balance_positive_row_scanabsentquotientproductoutputreal) /\ (ge_balance_negative_row_scanabsentquotientproductoutputreal) = 0) \/ exists ge_signed_half_row_scanabsentquotientproductoutputrealdecode. (((ge_representation_real_code_row_scanabsentquotientproductoutput) = 2 * ge_signed_half_row_scanabsentquotientproductoutputrealdecode + 1 /\ (ge_balance_positive_row_scanabsentquotientproductoutputreal) = 0) /\ (ge_balance_negative_row_scanabsentquotientproductoutputreal) = S ge_signed_half_row_scanabsentquotientproductoutputrealdecode))) /\ ((((((((ge_first_rp_row_scanabsentquotientproduct) * (ge_second_rp_row_scanabsentquotientproduct))) + (((ge_first_rn_row_scanabsentquotientproduct) * (ge_second_rn_row_scanabsentquotientproduct))))) + (((((ge_first_ip_row_scanabsentquotientproduct) * (ge_second_in_row_scanabsentquotientproduct))) + (((ge_first_in_row_scanabsentquotientproduct) * (ge_second_ip_row_scanabsentquotientproduct))))))) + ge_balance_negative_row_scanabsentquotientproductoutputreal = (((((((ge_first_rp_row_scanabsentquotientproduct) * (ge_second_rn_row_scanabsentquotientproduct))) + (((ge_first_rn_row_scanabsentquotientproduct) * (ge_second_rp_row_scanabsentquotientproduct))))) + (((((ge_first_ip_row_scanabsentquotientproduct) * (ge_second_ip_row_scanabsentquotientproduct))) + (((ge_first_in_row_scanabsentquotientproduct) * (ge_second_in_row_scanabsentquotientproduct))))))) + ge_balance_positive_row_scanabsentquotientproductoutputreal))) /\ (exists ge_balance_positive_row_scanabsentquotientproductoutputimaginary ge_balance_negative_row_scanabsentquotientproductoutputimaginary. (((((ge_representation_imaginary_code_row_scanabsentquotientproductoutput) = 2 * (ge_balance_positive_row_scanabsentquotientproductoutputimaginary) /\ (ge_balance_negative_row_scanabsentquotientproductoutputimaginary) = 0) \/ exists ge_signed_half_row_scanabsentquotientproductoutputimaginarydecode. (((ge_representation_imaginary_code_row_scanabsentquotientproductoutput) = 2 * ge_signed_half_row_scanabsentquotientproductoutputimaginarydecode + 1 /\ (ge_balance_positive_row_scanabsentquotientproductoutputimaginary) = 0) /\ (ge_balance_negative_row_scanabsentquotientproductoutputimaginary) = S ge_signed_half_row_scanabsentquotientproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_row_scanabsentquotientproduct) * (ge_second_ip_row_scanabsentquotientproduct))) + (((ge_first_rn_row_scanabsentquotientproduct) * (ge_second_in_row_scanabsentquotientproduct))))) + (((((ge_first_ip_row_scanabsentquotientproduct) * (ge_second_rp_row_scanabsentquotientproduct))) + (((ge_first_in_row_scanabsentquotientproduct) * (ge_second_rn_row_scanabsentquotientproduct))))))) + ge_balance_negative_row_scanabsentquotientproductoutputimaginary = (((((((ge_first_rp_row_scanabsentquotientproduct) * (ge_second_in_row_scanabsentquotientproduct))) + (((ge_first_rn_row_scanabsentquotientproduct) * (ge_second_ip_row_scanabsentquotientproduct))))) + (((((ge_first_ip_row_scanabsentquotientproduct) * (ge_second_rn_row_scanabsentquotientproduct))) + (((ge_first_in_row_scanabsentquotientproduct) * (ge_second_rp_row_scanabsentquotientproduct))))))) + ge_balance_positive_row_scanabsentquotientproductoutputimaginary)))))))))) /\ (exists gr_proper_divisor_norm_row_scanabsent. ((exists ge_norm_rp_row_scanabsentnorm ge_norm_rn_row_scanabsentnorm ge_norm_ip_row_scanabsentnorm ge_norm_in_row_scanabsentnorm. ((exists ge_representation_real_code_row_scanabsentnormrepresentation ge_representation_imaginary_code_row_scanabsentnormrepresentation. (((((rc) + (gr_row_coordinate_row_scan)) * S ((rc) + (gr_row_coordinate_row_scan)) + ((gr_row_coordinate_row_scan) + (gr_row_coordinate_row_scan))) = ((ge_representation_real_code_row_scanabsentnormrepresentation) + (ge_representation_imaginary_code_row_scanabsentnormrepresentation)) * S ((ge_representation_real_code_row_scanabsentnormrepresentation) + (ge_representation_imaginary_code_row_scanabsentnormrepresentation)) + ((ge_representation_imaginary_code_row_scanabsentnormrepresentation) + (ge_representation_imaginary_code_row_scanabsentnormrepresentation))) /\ ((exists ge_balance_positive_row_scanabsentnormrepresentationreal ge_balance_negative_row_scanabsentnormrepresentationreal. (((((ge_representation_real_code_row_scanabsentnormrepresentation) = 2 * (ge_balance_positive_row_scanabsentnormrepresentationreal) /\ (ge_balance_negative_row_scanabsentnormrepresentationreal) = 0) \/ exists ge_signed_half_row_scanabsentnormrepresentationrealdecode. (((ge_representation_real_code_row_scanabsentnormrepresentation) = 2 * ge_signed_half_row_scanabsentnormrepresentationrealdecode + 1 /\ (ge_balance_positive_row_scanabsentnormrepresentationreal) = 0) /\ (ge_balance_negative_row_scanabsentnormrepresentationreal) = S ge_signed_half_row_scanabsentnormrepresentationrealdecode))) /\ ((ge_norm_rp_row_scanabsentnorm) + ge_balance_negative_row_scanabsentnormrepresentationreal = (ge_norm_rn_row_scanabsentnorm) + ge_balance_positive_row_scanabsentnormrepresentationreal))) /\ (exists ge_balance_positive_row_scanabsentnormrepresentationimaginary ge_balance_negative_row_scanabsentnormrepresentationimaginary. (((((ge_representation_imaginary_code_row_scanabsentnormrepresentation) = 2 * (ge_balance_positive_row_scanabsentnormrepresentationimaginary) /\ (ge_balance_negative_row_scanabsentnormrepresentationimaginary) = 0) \/ exists ge_signed_half_row_scanabsentnormrepresentationimaginarydecode. (((ge_representation_imaginary_code_row_scanabsentnormrepresentation) = 2 * ge_signed_half_row_scanabsentnormrepresentationimaginarydecode + 1 /\ (ge_balance_positive_row_scanabsentnormrepresentationimaginary) = 0) /\ (ge_balance_negative_row_scanabsentnormrepresentationimaginary) = S ge_signed_half_row_scanabsentnormrepresentationimaginarydecode))) /\ ((ge_norm_ip_row_scanabsentnorm) + ge_balance_negative_row_scanabsentnormrepresentationimaginary = (ge_norm_in_row_scanabsentnorm) + ge_balance_positive_row_scanabsentnormrepresentationimaginary)))))) /\ (exists ge_real_square_row_scanabsentnormsquare ge_imaginary_square_row_scanabsentnormsquare. ((((((ge_norm_rp_row_scanabsentnorm) * (ge_norm_rp_row_scanabsentnorm))) + (((ge_norm_rn_row_scanabsentnorm) * (ge_norm_rn_row_scanabsentnorm)))) = ((ge_real_square_row_scanabsentnormsquare) + (((((ge_norm_rp_row_scanabsentnorm) * (ge_norm_rn_row_scanabsentnorm))) + (((ge_norm_rn_row_scanabsentnorm) * (ge_norm_rp_row_scanabsentnorm))))))) /\ ((((((ge_norm_ip_row_scanabsentnorm) * (ge_norm_ip_row_scanabsentnorm))) + (((ge_norm_in_row_scanabsentnorm) * (ge_norm_in_row_scanabsentnorm)))) = ((ge_imaginary_square_row_scanabsentnormsquare) + (((((ge_norm_ip_row_scanabsentnorm) * (ge_norm_in_row_scanabsentnorm))) + (((ge_norm_in_row_scanabsentnorm) * (ge_norm_ip_row_scanabsentnorm))))))) /\ ((gr_proper_divisor_norm_row_scanabsent) = ge_real_square_row_scanabsentnormsquare + ge_imaginary_square_row_scanabsentnormsquare)))))) /\ (exists ge_gap_row_scanabsentstrict. ge_gap_row_scanabsentstrict + S (gr_proper_divisor_norm_row_scanabsent) = (N)))))))))

Complete tactic proof in conservative notation

All 78 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

78 script commands · 23 reading checkpoints · 3 local claims

This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.

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 (4)
01Induction on kL1–5

Split the argument into the base and successor obligations. The induction hypothesis is available only in the successor branch.

  1. L1
    induction k
  2. L2
    intro z
  3. L3
    intro N
  4. L4
    intro rc
  5. L5
    intro hz
02Separate the logical casesL6–6

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

  1. L6
    right
03Fix variables and assumptionsL7–9

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

  1. L7
    intro ic
  2. L8
    intro hi
  3. L9
    intro hp
04Use earlier factsL10–12

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

  1. L10
    specialize gaussian_search_no_index_below_zero (ic)
  2. L11
    apply gaussian_search_no_index_below_zero
  3. L12
    exact hi
05Fix variables and assumptionsL13–16

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

  1. L13
    intro z
  2. L14
    intro N
  3. L15
    intro rc
  4. L16
    intro hz
06Establish hpreviousL17–22

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

  1. L17
    have hprevious : (∃ x. Lt(x,k) ∧ GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N)) ∨ (∀ x. Lt(x,k) → ¬GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N))Definitions: Lt(x,k)GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N)Original native command in the exact edition
  2. L18
    specialize IH (z)
  3. L19
    specialize IH (N)
  4. L20
    specialize IH (rc)
  5. L21
    apply IH
  6. L22
    exact hz
07Separate the logical casesL23–26

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

  1. L23
    cases hprevious
  2. L24
    cases hprevious_left
  3. L25
    cases hprevious_left_witness
  4. L26
    left
08Construct an explicit witnessL27–27

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

  1. L27
    exists (x)
09Separate the logical casesL28–28

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

  1. L28
    split
10Use earlier factsL29–36

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

  1. L29
    specialize lt_of_lt_of_le (x)
  2. L30
    specialize lt_of_lt_of_le (k)
  3. L31
    specialize lt_of_lt_of_le (S k)
  4. L32
    apply lt_of_lt_of_le
  5. L33
    exact hprevious_left_witness_left
  6. L34
    specialize le_succ_self (k)
  7. L35
    apply le_succ_self
  8. L36
    exact hprevious_left_witness_right
11Establish hlastL37–45

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

  1. L37
    have hlast : GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N) ∨ ¬GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N)Definitions: GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N)Original native command in the exact edition
  2. L38
    specialize gaussian_proper_norm_divisor_decidable (((rc) + (k)) * S ((rc) + (k)) + ((k) + (k)))
  3. L39
    specialize gaussian_proper_norm_divisor_decidable (z)
  4. L40
    specialize gaussian_proper_norm_divisor_decidable (N)
  5. L41
    apply gaussian_proper_norm_divisor_decidable
  6. L42
    specialize gaussian_search_pair_valid (rc)
  7. L43
    specialize gaussian_search_pair_valid (k)
  8. L44
    apply gaussian_search_pair_valid
  9. L45
    exact hz
12Separate the logical casesL46–47

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

  1. L46
    cases hlast
  2. L47
    left
13Construct an explicit witnessL48–48

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

  1. L48
    exists (k)
14Separate the logical casesL49–49

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

  1. L49
    split
15Construct an explicit witnessL50–50

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

  1. L50
    exists 0
16Use earlier factsL51–52

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

  1. L51
    apply zero_add
  2. L52
    exact hlast_left
17Separate the logical casesL53–53

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

  1. L53
    right
18Fix variables and assumptionsL54–56

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

  1. L54
    intro ic
  2. L55
    intro hi
  3. L56
    intro hp
19Establish hcL57–61

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.

  1. L57
    have hc : ic = k ∨ Lt(ic,k)Definitions: Lt(ic,k)Original native command in the exact edition
  2. L58
    specialize finite_lt_succ_eq_or_lt (k)
  3. L59
    specialize finite_lt_succ_eq_or_lt (ic)
  4. L60
    apply finite_lt_succ_eq_or_lt
  5. L61
    exact hi
20Separate the logical casesL62–62

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

  1. L62
    cases hc
21Use earlier factsL63–68

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

  1. L63
    apply hlast_right
  2. L64
    specialize gaussian_search_proper_divisor_code_transport (((rc) + (ic)) * S ((rc) + (ic)) + ((ic) + (ic)))
  3. L65
    specialize gaussian_search_proper_divisor_code_transport (((rc) + (k)) * S ((rc) + (k)) + ((k) + (k)))
  4. L66
    specialize gaussian_search_proper_divisor_code_transport (z)
  5. L67
    specialize gaussian_search_proper_divisor_code_transport (N)
  6. L68
    apply gaussian_search_proper_divisor_code_transport
22Calculate and transport equalitiesL69–73

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L69
    rewrite hc_left
  2. L70
    rewrite hc_left
  3. L71
    rewrite hc_left
  4. L72
    rewrite hc_left
  5. L73
    refl
23Use earlier factsL74–78

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

  1. L74
    exact hp
  2. L75
    specialize hprevious_right (ic)
  3. L76
    apply hprevious_right
  4. L77
    exact hc_right
  5. L78
    exact hp

Library-wide reading audit

Original defined command ledger · 78 lines
  1. 0001induction k
  2. 0002intro z
  3. 0003intro N
  4. 0004intro rc
  5. 0005intro hz
  6. 0006right
  7. 0007intro ic
  8. 0008intro hi
  9. 0009intro hp
  10. 0010specialize gaussian_search_no_index_below_zero (ic)
  11. 0011apply gaussian_search_no_index_below_zero
  12. 0012exact hi
  13. 0013intro z
  14. 0014intro N
  15. 0015intro rc
  16. 0016intro hz
  17. 0017have hprevious : (∃ x. Lt(x,k)GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N)) ∨ (∀ x. Lt(x,k) → ¬GProperNormDivisor((rc + x) · S (rc + x) + (x + x),z,N))
  18. 0018specialize IH (z)
  19. 0019specialize IH (N)
  20. 0020specialize IH (rc)
  21. 0021apply IH
  22. 0022exact hz
  23. 0023cases hprevious
  24. 0024cases hprevious_left
  25. 0025cases hprevious_left_witness
  26. 0026left
  27. 0027exists (x)
  28. 0028split
  29. 0029specialize lt_of_lt_of_le (x)
  30. 0030specialize lt_of_lt_of_le (k)
  31. 0031specialize lt_of_lt_of_le (S k)
  32. 0032apply lt_of_lt_of_le
  33. 0033exact hprevious_left_witness_left
  34. 0034specialize le_succ_self (k)
  35. 0035apply le_succ_self
  36. 0036exact hprevious_left_witness_right
  37. 0037have hlast : GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N) ∨ ¬GProperNormDivisor((rc + k) · S (rc + k) + (k + k),z,N)
  38. 0038specialize gaussian_proper_norm_divisor_decidable (((rc) + (k)) * S ((rc) + (k)) + ((k) + (k)))
  39. 0039specialize gaussian_proper_norm_divisor_decidable (z)
  40. 0040specialize gaussian_proper_norm_divisor_decidable (N)
  41. 0041apply gaussian_proper_norm_divisor_decidable
  42. 0042specialize gaussian_search_pair_valid (rc)
  43. 0043specialize gaussian_search_pair_valid (k)
  44. 0044apply gaussian_search_pair_valid
  45. 0045exact hz
  46. 0046cases hlast
  47. 0047left
  48. 0048exists (k)
  49. 0049split
  50. 0050exists 0
  51. 0051apply zero_add
  52. 0052exact hlast_left
  53. 0053right
  54. 0054intro ic
  55. 0055intro hi
  56. 0056intro hp
  57. 0057have hc : ic = k ∨ Lt(ic,k)
  58. 0058specialize finite_lt_succ_eq_or_lt (k)
  59. 0059specialize finite_lt_succ_eq_or_lt (ic)
  60. 0060apply finite_lt_succ_eq_or_lt
  61. 0061exact hi
  62. 0062cases hc
  63. 0063apply hlast_right
  64. 0064specialize gaussian_search_proper_divisor_code_transport (((rc) + (ic)) * S ((rc) + (ic)) + ((ic) + (ic)))
  65. 0065specialize gaussian_search_proper_divisor_code_transport (((rc) + (k)) * S ((rc) + (k)) + ((k) + (k)))
  66. 0066specialize gaussian_search_proper_divisor_code_transport (z)
  67. 0067specialize gaussian_search_proper_divisor_code_transport (N)
  68. 0068apply gaussian_search_proper_divisor_code_transport
  69. 0069rewrite hc_left
  70. 0070rewrite hc_left
  71. 0071rewrite hc_left
  72. 0072rewrite hc_left
  73. 0073refl
  74. 0074exact hp
  75. 0075specialize hprevious_right (ic)
  76. 0076apply hprevious_right
  77. 0077exact hc_right
  78. 0078exact hp