Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Exact expanded first-order arithmetic statement
forall d z. (exists ge_real_positive_decision_divisor ge_real_negative_decision_divisor ge_imaginary_positive_decision_divisor ge_imaginary_negative_decision_divisor. (exists ge_real_code_decision_divisordecode ge_imaginary_code_decision_divisordecode. (((d) = ((ge_real_code_decision_divisordecode) + (ge_imaginary_code_decision_divisordecode)) * S ((ge_real_code_decision_divisordecode) + (ge_imaginary_code_decision_divisordecode)) + ((ge_imaginary_code_decision_divisordecode) + (ge_imaginary_code_decision_divisordecode))) /\ (((((ge_real_code_decision_divisordecode) = 2 * (ge_real_positive_decision_divisor) /\ (ge_real_negative_decision_divisor) = 0) \/ exists ge_signed_half_ge_decision_divisordecode_real. (((ge_real_code_decision_divisordecode) = 2 * ge_signed_half_ge_decision_divisordecode_real + 1 /\ (ge_real_positive_decision_divisor) = 0) /\ (ge_real_negative_decision_divisor) = S ge_signed_half_ge_decision_divisordecode_real))) /\ ((((ge_imaginary_code_decision_divisordecode) = 2 * (ge_imaginary_positive_decision_divisor) /\ (ge_imaginary_negative_decision_divisor) = 0) \/ exists ge_signed_half_ge_decision_divisordecode_imaginary. (((ge_imaginary_code_decision_divisordecode) = 2 * ge_signed_half_ge_decision_divisordecode_imaginary + 1 /\ (ge_imaginary_positive_decision_divisor) = 0) /\ (ge_imaginary_negative_decision_divisor) = S ge_signed_half_ge_decision_divisordecode_imaginary))))))) -> (exists ge_real_positive_decision_dividend ge_real_negative_decision_dividend ge_imaginary_positive_decision_dividend ge_imaginary_negative_decision_dividend. (exists ge_real_code_decision_dividenddecode ge_imaginary_code_decision_dividenddecode. (((z) = ((ge_real_code_decision_dividenddecode) + (ge_imaginary_code_decision_dividenddecode)) * S ((ge_real_code_decision_dividenddecode) + (ge_imaginary_code_decision_dividenddecode)) + ((ge_imaginary_code_decision_dividenddecode) + (ge_imaginary_code_decision_dividenddecode))) /\ (((((ge_real_code_decision_dividenddecode) = 2 * (ge_real_positive_decision_dividend) /\ (ge_real_negative_decision_dividend) = 0) \/ exists ge_signed_half_ge_decision_dividenddecode_real. (((ge_real_code_decision_dividenddecode) = 2 * ge_signed_half_ge_decision_dividenddecode_real + 1 /\ (ge_real_positive_decision_dividend) = 0) /\ (ge_real_negative_decision_dividend) = S ge_signed_half_ge_decision_dividenddecode_real))) /\ ((((ge_imaginary_code_decision_dividenddecode) = 2 * (ge_imaginary_positive_decision_dividend) /\ (ge_imaginary_negative_decision_dividend) = 0) \/ exists ge_signed_half_ge_decision_dividenddecode_imaginary. (((ge_imaginary_code_decision_dividenddecode) = 2 * ge_signed_half_ge_decision_dividenddecode_imaginary + 1 /\ (ge_imaginary_positive_decision_dividend) = 0) /\ (ge_imaginary_negative_decision_dividend) = S ge_signed_half_ge_decision_dividenddecode_imaginary))))))) -> (exists gr_quotient_decision_yes. (exists ge_first_rp_decision_yesproduct ge_first_rn_decision_yesproduct ge_first_ip_decision_yesproduct ge_first_in_decision_yesproduct ge_second_rp_decision_yesproduct ge_second_rn_decision_yesproduct ge_second_ip_decision_yesproduct ge_second_in_decision_yesproduct. ((exists ge_representation_real_code_decision_yesproductfirst ge_representation_imaginary_code_decision_yesproductfirst. (((d) = ((ge_representation_real_code_decision_yesproductfirst) + (ge_representation_imaginary_code_decision_yesproductfirst)) * S ((ge_representation_real_code_decision_yesproductfirst) + (ge_representation_imaginary_code_decision_yesproductfirst)) + ((ge_representation_imaginary_code_decision_yesproductfirst) + (ge_representation_imaginary_code_decision_yesproductfirst))) /\ ((exists ge_balance_positive_decision_yesproductfirstreal ge_balance_negative_decision_yesproductfirstreal. (((((ge_representation_real_code_decision_yesproductfirst) = 2 * (ge_balance_positive_decision_yesproductfirstreal) /\ (ge_balance_negative_decision_yesproductfirstreal) = 0) \/ exists ge_signed_half_decision_yesproductfirstrealdecode. (((ge_representation_real_code_decision_yesproductfirst) = 2 * ge_signed_half_decision_yesproductfirstrealdecode + 1 /\ (ge_balance_positive_decision_yesproductfirstreal) = 0) /\ (ge_balance_negative_decision_yesproductfirstreal) = S ge_signed_half_decision_yesproductfirstrealdecode))) /\ ((ge_first_rp_decision_yesproduct) + ge_balance_negative_decision_yesproductfirstreal = (ge_first_rn_decision_yesproduct) + ge_balance_positive_decision_yesproductfirstreal))) /\ (exists ge_balance_positive_decision_yesproductfirstimaginary ge_balance_negative_decision_yesproductfirstimaginary. (((((ge_representation_imaginary_code_decision_yesproductfirst) = 2 * (ge_balance_positive_decision_yesproductfirstimaginary) /\ (ge_balance_negative_decision_yesproductfirstimaginary) = 0) \/ exists ge_signed_half_decision_yesproductfirstimaginarydecode. (((ge_representation_imaginary_code_decision_yesproductfirst) = 2 * ge_signed_half_decision_yesproductfirstimaginarydecode + 1 /\ (ge_balance_positive_decision_yesproductfirstimaginary) = 0) /\ (ge_balance_negative_decision_yesproductfirstimaginary) = S ge_signed_half_decision_yesproductfirstimaginarydecode))) /\ ((ge_first_ip_decision_yesproduct) + ge_balance_negative_decision_yesproductfirstimaginary = (ge_first_in_decision_yesproduct) + ge_balance_positive_decision_yesproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_decision_yesproductsecond ge_representation_imaginary_code_decision_yesproductsecond. (((gr_quotient_decision_yes) = ((ge_representation_real_code_decision_yesproductsecond) + (ge_representation_imaginary_code_decision_yesproductsecond)) * S ((ge_representation_real_code_decision_yesproductsecond) + (ge_representation_imaginary_code_decision_yesproductsecond)) + ((ge_representation_imaginary_code_decision_yesproductsecond) + (ge_representation_imaginary_code_decision_yesproductsecond))) /\ ((exists ge_balance_positive_decision_yesproductsecondreal ge_balance_negative_decision_yesproductsecondreal. (((((ge_representation_real_code_decision_yesproductsecond) = 2 * (ge_balance_positive_decision_yesproductsecondreal) /\ (ge_balance_negative_decision_yesproductsecondreal) = 0) \/ exists ge_signed_half_decision_yesproductsecondrealdecode. (((ge_representation_real_code_decision_yesproductsecond) = 2 * ge_signed_half_decision_yesproductsecondrealdecode + 1 /\ (ge_balance_positive_decision_yesproductsecondreal) = 0) /\ (ge_balance_negative_decision_yesproductsecondreal) = S ge_signed_half_decision_yesproductsecondrealdecode))) /\ ((ge_second_rp_decision_yesproduct) + ge_balance_negative_decision_yesproductsecondreal = (ge_second_rn_decision_yesproduct) + ge_balance_positive_decision_yesproductsecondreal))) /\ (exists ge_balance_positive_decision_yesproductsecondimaginary ge_balance_negative_decision_yesproductsecondimaginary. (((((ge_representation_imaginary_code_decision_yesproductsecond) = 2 * (ge_balance_positive_decision_yesproductsecondimaginary) /\ (ge_balance_negative_decision_yesproductsecondimaginary) = 0) \/ exists ge_signed_half_decision_yesproductsecondimaginarydecode. (((ge_representation_imaginary_code_decision_yesproductsecond) = 2 * ge_signed_half_decision_yesproductsecondimaginarydecode + 1 /\ (ge_balance_positive_decision_yesproductsecondimaginary) = 0) /\ (ge_balance_negative_decision_yesproductsecondimaginary) = S ge_signed_half_decision_yesproductsecondimaginarydecode))) /\ ((ge_second_ip_decision_yesproduct) + ge_balance_negative_decision_yesproductsecondimaginary = (ge_second_in_decision_yesproduct) + ge_balance_positive_decision_yesproductsecondimaginary)))))) /\ (exists ge_representation_real_code_decision_yesproductoutput ge_representation_imaginary_code_decision_yesproductoutput. (((z) = ((ge_representation_real_code_decision_yesproductoutput) + (ge_representation_imaginary_code_decision_yesproductoutput)) * S ((ge_representation_real_code_decision_yesproductoutput) + (ge_representation_imaginary_code_decision_yesproductoutput)) + ((ge_representation_imaginary_code_decision_yesproductoutput) + (ge_representation_imaginary_code_decision_yesproductoutput))) /\ ((exists ge_balance_positive_decision_yesproductoutputreal ge_balance_negative_decision_yesproductoutputreal. (((((ge_representation_real_code_decision_yesproductoutput) = 2 * (ge_balance_positive_decision_yesproductoutputreal) /\ (ge_balance_negative_decision_yesproductoutputreal) = 0) \/ exists ge_signed_half_decision_yesproductoutputrealdecode. (((ge_representation_real_code_decision_yesproductoutput) = 2 * ge_signed_half_decision_yesproductoutputrealdecode + 1 /\ (ge_balance_positive_decision_yesproductoutputreal) = 0) /\ (ge_balance_negative_decision_yesproductoutputreal) = S ge_signed_half_decision_yesproductoutputrealdecode))) /\ ((((((((ge_first_rp_decision_yesproduct) * (ge_second_rp_decision_yesproduct))) + (((ge_first_rn_decision_yesproduct) * (ge_second_rn_decision_yesproduct))))) + (((((ge_first_ip_decision_yesproduct) * (ge_second_in_decision_yesproduct))) + (((ge_first_in_decision_yesproduct) * (ge_second_ip_decision_yesproduct))))))) + ge_balance_negative_decision_yesproductoutputreal = (((((((ge_first_rp_decision_yesproduct) * (ge_second_rn_decision_yesproduct))) + (((ge_first_rn_decision_yesproduct) * (ge_second_rp_decision_yesproduct))))) + (((((ge_first_ip_decision_yesproduct) * (ge_second_ip_decision_yesproduct))) + (((ge_first_in_decision_yesproduct) * (ge_second_in_decision_yesproduct))))))) + ge_balance_positive_decision_yesproductoutputreal))) /\ (exists ge_balance_positive_decision_yesproductoutputimaginary ge_balance_negative_decision_yesproductoutputimaginary. (((((ge_representation_imaginary_code_decision_yesproductoutput) = 2 * (ge_balance_positive_decision_yesproductoutputimaginary) /\ (ge_balance_negative_decision_yesproductoutputimaginary) = 0) \/ exists ge_signed_half_decision_yesproductoutputimaginarydecode. (((ge_representation_imaginary_code_decision_yesproductoutput) = 2 * ge_signed_half_decision_yesproductoutputimaginarydecode + 1 /\ (ge_balance_positive_decision_yesproductoutputimaginary) = 0) /\ (ge_balance_negative_decision_yesproductoutputimaginary) = S ge_signed_half_decision_yesproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_decision_yesproduct) * (ge_second_ip_decision_yesproduct))) + (((ge_first_rn_decision_yesproduct) * (ge_second_in_decision_yesproduct))))) + (((((ge_first_ip_decision_yesproduct) * (ge_second_rp_decision_yesproduct))) + (((ge_first_in_decision_yesproduct) * (ge_second_rn_decision_yesproduct))))))) + ge_balance_negative_decision_yesproductoutputimaginary = (((((((ge_first_rp_decision_yesproduct) * (ge_second_in_decision_yesproduct))) + (((ge_first_rn_decision_yesproduct) * (ge_second_ip_decision_yesproduct))))) + (((((ge_first_ip_decision_yesproduct) * (ge_second_rn_decision_yesproduct))) + (((ge_first_in_decision_yesproduct) * (ge_second_rp_decision_yesproduct))))))) + ge_balance_positive_decision_yesproductoutputimaginary)))))))))) \/ ~(exists gr_quotient_decision_no. (exists ge_first_rp_decision_noproduct ge_first_rn_decision_noproduct ge_first_ip_decision_noproduct ge_first_in_decision_noproduct ge_second_rp_decision_noproduct ge_second_rn_decision_noproduct ge_second_ip_decision_noproduct ge_second_in_decision_noproduct. ((exists ge_representation_real_code_decision_noproductfirst ge_representation_imaginary_code_decision_noproductfirst. (((d) = ((ge_representation_real_code_decision_noproductfirst) + (ge_representation_imaginary_code_decision_noproductfirst)) * S ((ge_representation_real_code_decision_noproductfirst) + (ge_representation_imaginary_code_decision_noproductfirst)) + ((ge_representation_imaginary_code_decision_noproductfirst) + (ge_representation_imaginary_code_decision_noproductfirst))) /\ ((exists ge_balance_positive_decision_noproductfirstreal ge_balance_negative_decision_noproductfirstreal. (((((ge_representation_real_code_decision_noproductfirst) = 2 * (ge_balance_positive_decision_noproductfirstreal) /\ (ge_balance_negative_decision_noproductfirstreal) = 0) \/ exists ge_signed_half_decision_noproductfirstrealdecode. (((ge_representation_real_code_decision_noproductfirst) = 2 * ge_signed_half_decision_noproductfirstrealdecode + 1 /\ (ge_balance_positive_decision_noproductfirstreal) = 0) /\ (ge_balance_negative_decision_noproductfirstreal) = S ge_signed_half_decision_noproductfirstrealdecode))) /\ ((ge_first_rp_decision_noproduct) + ge_balance_negative_decision_noproductfirstreal = (ge_first_rn_decision_noproduct) + ge_balance_positive_decision_noproductfirstreal))) /\ (exists ge_balance_positive_decision_noproductfirstimaginary ge_balance_negative_decision_noproductfirstimaginary. (((((ge_representation_imaginary_code_decision_noproductfirst) = 2 * (ge_balance_positive_decision_noproductfirstimaginary) /\ (ge_balance_negative_decision_noproductfirstimaginary) = 0) \/ exists ge_signed_half_decision_noproductfirstimaginarydecode. (((ge_representation_imaginary_code_decision_noproductfirst) = 2 * ge_signed_half_decision_noproductfirstimaginarydecode + 1 /\ (ge_balance_positive_decision_noproductfirstimaginary) = 0) /\ (ge_balance_negative_decision_noproductfirstimaginary) = S ge_signed_half_decision_noproductfirstimaginarydecode))) /\ ((ge_first_ip_decision_noproduct) + ge_balance_negative_decision_noproductfirstimaginary = (ge_first_in_decision_noproduct) + ge_balance_positive_decision_noproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_decision_noproductsecond ge_representation_imaginary_code_decision_noproductsecond. (((gr_quotient_decision_no) = ((ge_representation_real_code_decision_noproductsecond) + (ge_representation_imaginary_code_decision_noproductsecond)) * S ((ge_representation_real_code_decision_noproductsecond) + (ge_representation_imaginary_code_decision_noproductsecond)) + ((ge_representation_imaginary_code_decision_noproductsecond) + (ge_representation_imaginary_code_decision_noproductsecond))) /\ ((exists ge_balance_positive_decision_noproductsecondreal ge_balance_negative_decision_noproductsecondreal. (((((ge_representation_real_code_decision_noproductsecond) = 2 * (ge_balance_positive_decision_noproductsecondreal) /\ (ge_balance_negative_decision_noproductsecondreal) = 0) \/ exists ge_signed_half_decision_noproductsecondrealdecode. (((ge_representation_real_code_decision_noproductsecond) = 2 * ge_signed_half_decision_noproductsecondrealdecode + 1 /\ (ge_balance_positive_decision_noproductsecondreal) = 0) /\ (ge_balance_negative_decision_noproductsecondreal) = S ge_signed_half_decision_noproductsecondrealdecode))) /\ ((ge_second_rp_decision_noproduct) + ge_balance_negative_decision_noproductsecondreal = (ge_second_rn_decision_noproduct) + ge_balance_positive_decision_noproductsecondreal))) /\ (exists ge_balance_positive_decision_noproductsecondimaginary ge_balance_negative_decision_noproductsecondimaginary. (((((ge_representation_imaginary_code_decision_noproductsecond) = 2 * (ge_balance_positive_decision_noproductsecondimaginary) /\ (ge_balance_negative_decision_noproductsecondimaginary) = 0) \/ exists ge_signed_half_decision_noproductsecondimaginarydecode. (((ge_representation_imaginary_code_decision_noproductsecond) = 2 * ge_signed_half_decision_noproductsecondimaginarydecode + 1 /\ (ge_balance_positive_decision_noproductsecondimaginary) = 0) /\ (ge_balance_negative_decision_noproductsecondimaginary) = S ge_signed_half_decision_noproductsecondimaginarydecode))) /\ ((ge_second_ip_decision_noproduct) + ge_balance_negative_decision_noproductsecondimaginary = (ge_second_in_decision_noproduct) + ge_balance_positive_decision_noproductsecondimaginary)))))) /\ (exists ge_representation_real_code_decision_noproductoutput ge_representation_imaginary_code_decision_noproductoutput. (((z) = ((ge_representation_real_code_decision_noproductoutput) + (ge_representation_imaginary_code_decision_noproductoutput)) * S ((ge_representation_real_code_decision_noproductoutput) + (ge_representation_imaginary_code_decision_noproductoutput)) + ((ge_representation_imaginary_code_decision_noproductoutput) + (ge_representation_imaginary_code_decision_noproductoutput))) /\ ((exists ge_balance_positive_decision_noproductoutputreal ge_balance_negative_decision_noproductoutputreal. (((((ge_representation_real_code_decision_noproductoutput) = 2 * (ge_balance_positive_decision_noproductoutputreal) /\ (ge_balance_negative_decision_noproductoutputreal) = 0) \/ exists ge_signed_half_decision_noproductoutputrealdecode. (((ge_representation_real_code_decision_noproductoutput) = 2 * ge_signed_half_decision_noproductoutputrealdecode + 1 /\ (ge_balance_positive_decision_noproductoutputreal) = 0) /\ (ge_balance_negative_decision_noproductoutputreal) = S ge_signed_half_decision_noproductoutputrealdecode))) /\ ((((((((ge_first_rp_decision_noproduct) * (ge_second_rp_decision_noproduct))) + (((ge_first_rn_decision_noproduct) * (ge_second_rn_decision_noproduct))))) + (((((ge_first_ip_decision_noproduct) * (ge_second_in_decision_noproduct))) + (((ge_first_in_decision_noproduct) * (ge_second_ip_decision_noproduct))))))) + ge_balance_negative_decision_noproductoutputreal = (((((((ge_first_rp_decision_noproduct) * (ge_second_rn_decision_noproduct))) + (((ge_first_rn_decision_noproduct) * (ge_second_rp_decision_noproduct))))) + (((((ge_first_ip_decision_noproduct) * (ge_second_ip_decision_noproduct))) + (((ge_first_in_decision_noproduct) * (ge_second_in_decision_noproduct))))))) + ge_balance_positive_decision_noproductoutputreal))) /\ (exists ge_balance_positive_decision_noproductoutputimaginary ge_balance_negative_decision_noproductoutputimaginary. (((((ge_representation_imaginary_code_decision_noproductoutput) = 2 * (ge_balance_positive_decision_noproductoutputimaginary) /\ (ge_balance_negative_decision_noproductoutputimaginary) = 0) \/ exists ge_signed_half_decision_noproductoutputimaginarydecode. (((ge_representation_imaginary_code_decision_noproductoutput) = 2 * ge_signed_half_decision_noproductoutputimaginarydecode + 1 /\ (ge_balance_positive_decision_noproductoutputimaginary) = 0) /\ (ge_balance_negative_decision_noproductoutputimaginary) = S ge_signed_half_decision_noproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_decision_noproduct) * (ge_second_ip_decision_noproduct))) + (((ge_first_rn_decision_noproduct) * (ge_second_in_decision_noproduct))))) + (((((ge_first_ip_decision_noproduct) * (ge_second_rp_decision_noproduct))) + (((ge_first_in_decision_noproduct) * (ge_second_rn_decision_noproduct))))))) + ge_balance_negative_decision_noproductoutputimaginary = (((((((ge_first_rp_decision_noproduct) * (ge_second_in_decision_noproduct))) + (((ge_first_rn_decision_noproduct) * (ge_second_ip_decision_noproduct))))) + (((((ge_first_ip_decision_noproduct) * (ge_second_rn_decision_noproduct))) + (((ge_first_in_decision_noproduct) * (ge_second_rp_decision_noproduct))))))) + ge_balance_positive_decision_noproductoutputimaginary))))))))))Constructive proof overview
Generated structural guide
Constructively decide actual Gaussian divisibility by computing Euclidean quotient/remainder data; handle a zero divisor explicitly.
The unchanged tactic script uses 7 declared prerequisites and contains 72 exact native proof lines.
Alpha v34 checked-use · first admitted v30 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
eq_decidable Stable theorem; checked-use authorized GF002A gaussian_multiply_zero_right GF000C gaussian_zero_valid GF0047 gaussian_zero_divides_only_zero gaussian_euclidean_division_exists Alpha theorem; checked-use authorized GF0051 gaussian_division_zero_remainder_divides GF0052 gaussian_division_divisible_remainder_zeroDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (5)
01Fix variables and assumptionsL1–4
02Establish hdcL5–8
03Separate the logical casesL9–9
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
cases hdc
04Establish hzcL10–13
05Separate the logical casesL14–15
06Construct an explicit witnessL16–16
Supply the displayed value, then prove that it has the required property.
- L16
exists (0)
07Calculate and transport equalitiesL17–18
08Use earlier factsL19–21
09Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
right
10Fix variables and assumptionsL23–23
Work with arbitrary variables or the premises of the current implication.
- L23
intro hdiv
11Use earlier factsL24–26
12Calculate and transport equalitiesL27–27
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L27
rewrite hdc_left at hdiv
13Use earlier factsL28–28
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L28
exact hdiv
14Establish hexL29–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian euclidean division exists.
- L29
have hex : ∃ q. ∃ r. ∃ U. ∃ V. ZPairValid(q) ∧ (ZPairValid(r) ∧ ((∃ x. GMul(d,q,x) ∧ ZPairAdd(x,r,z)) ∧ (GNorm(r,U) ∧ (GNorm(d,V) ∧ Lt(U,V)))))Definitions: ZPairValidGNormZPairAddGMulLt - L30
specialize gaussian_euclidean_division_exists (z) - L31
specialize gaussian_euclidean_division_exists (d) - L32
apply gaussian_euclidean_division_exists - L33
exact hz - L34
exact hd - L35
exact hdc_right
15Separate the logical casesL36–44
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
cases hex - L37
cases hex_witness - L38
cases hex_witness_witness - L39
cases hex_witness_witness_witness - L40
cases hex_witness_witness_witness_witness - L41
cases hex_witness_witness_witness_witness_right - L42
cases hex_witness_witness_witness_witness_right_right - L43
cases hex_witness_witness_witness_witness_right_right_right - L44
cases hex_witness_witness_witness_witness_right_right_right_right
16Establish hrcL45–48
17Separate the logical casesL49–50
18Use earlier factsL51–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L51
specialize gaussian_division_zero_remainder_divides (z) - L52
specialize gaussian_division_zero_remainder_divides (d) - L53
specialize gaussian_division_zero_remainder_divides (x) - L54
specialize gaussian_division_zero_remainder_divides (x1) - L55
apply gaussian_division_zero_remainder_divides - L56
exact hex_witness_witness_witness_witness_right_right_left - L57
exact hrc_left
19Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
right
20Fix variables and assumptionsL59–59
Work with arbitrary variables or the premises of the current implication.
- L59
intro hdiv
21Use earlier factsL60–69
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L60
apply hrc_right - L61
specialize gaussian_division_divisible_remainder_zero (z) - L62
specialize gaussian_division_divisible_remainder_zero (d) - L63
specialize gaussian_division_divisible_remainder_zero (x) - L64
specialize gaussian_division_divisible_remainder_zero (x1) - L65
specialize gaussian_division_divisible_remainder_zero (x2) - L66
specialize gaussian_division_divisible_remainder_zero (x3) - L67
apply gaussian_division_divisible_remainder_zero - L68
exact hex_witness_witness_witness_witness_right_right_left - L69
exact hex_witness_witness_witness_witness_right_right_right_left
Original exact command ledger · 72 lines
- 0001
intro d - 0002
intro z - 0003
intro hd - 0004
intro hz - 0005
have hdc : d=0 \/ ~(d=0) - 0006
specialize eq_decidable (d) - 0007
specialize eq_decidable (0) - 0008
apply eq_decidable - 0009
cases hdc - 0010
have hzc : z=0 \/ ~(z=0) - 0011
specialize eq_decidable (z) - 0012
specialize eq_decidable (0) - 0013
apply eq_decidable - 0014
cases hzc - 0015
left - 0016
exists (0) - 0017
rewrite hdc_left - 0018
rewrite hzc_left - 0019
specialize gaussian_multiply_zero_right (0) - 0020
apply gaussian_multiply_zero_right - 0021
exact gaussian_zero_valid - 0022
right - 0023
intro hdiv - 0024
apply hzc_right - 0025
specialize gaussian_zero_divides_only_zero (z) - 0026
apply gaussian_zero_divides_only_zero - 0027
rewrite hdc_left at hdiv - 0028
exact hdiv - 0029
have hex : exists q r U V. (((exists ge_real_positive_decision_actual_divisionquotient ge_real_negative_decision_actual_divisionquotient ge_imaginary_positive_decision_actual_divisionquotient ge_imaginary_negative_decision_actual_divisionquotient. (exists ge_real_code_decision_actual_divisionquotientdecode ge_imaginary_code_decision_actual_divisionquotientdecode. (((q) = ((ge_real_code_decision_actual_divisionquotientdecode) + (ge_imaginary_code_decision_actual_divisionquotientdecode)) * S ((ge_real_code_decision_actual_divisionquotientdecode) + (ge_imaginary_code_decision_actual_divisionquotientdecode)) + ((ge_imaginary_code_decision_actual_divisionquotientdecode) + (ge_imaginary_code_decision_actual_divisionquotientdecode))) /\ (((((ge_real_code_decision_actual_divisionquotientdecode) = 2 * (ge_real_positive_decision_actual_divisionquotient) /\ (ge_real_negative_decision_actual_divisionquotient) = 0) \/ exists ge_signed_half_ge_decision_actual_divisionquotientdecode_real. (((ge_real_code_decision_actual_divisionquotientdecode) = 2 * ge_signed_half_ge_decision_actual_divisionquotientdecode_real + 1 /\ (ge_real_positive_decision_actual_divisionquotient) = 0) /\ (ge_real_negative_decision_actual_divisionquotient) = S ge_signed_half_ge_decision_actual_divisionquotientdecode_real))) /\ ((((ge_imaginary_code_decision_actual_divisionquotientdecode) = 2 * (ge_imaginary_positive_decision_actual_divisionquotient) /\ (ge_imaginary_negative_decision_actual_divisionquotient) = 0) \/ exists ge_signed_half_ge_decision_actual_divisionquotientdecode_imaginary. (((ge_imaginary_code_decision_actual_divisionquotientdecode) = 2 * ge_signed_half_ge_decision_actual_divisionquotientdecode_imaginary + 1 /\ (ge_imaginary_positive_decision_actual_divisionquotient) = 0) /\ (ge_imaginary_negative_decision_actual_divisionquotient) = S ge_signed_half_ge_decision_actual_divisionquotientdecode_imaginary))))))) /\ ((exists ge_real_positive_decision_actual_divisionremainder ge_real_negative_decision_actual_divisionremainder ge_imaginary_positive_decision_actual_divisionremainder ge_imaginary_negative_decision_actual_divisionremainder. (exists ge_real_code_decision_actual_divisionremainderdecode ge_imaginary_code_decision_actual_divisionremainderdecode. (((r) = ((ge_real_code_decision_actual_divisionremainderdecode) + (ge_imaginary_code_decision_actual_divisionremainderdecode)) * S ((ge_real_code_decision_actual_divisionremainderdecode) + (ge_imaginary_code_decision_actual_divisionremainderdecode)) + ((ge_imaginary_code_decision_actual_divisionremainderdecode) + (ge_imaginary_code_decision_actual_divisionremainderdecode))) /\ (((((ge_real_code_decision_actual_divisionremainderdecode) = 2 * (ge_real_positive_decision_actual_divisionremainder) /\ (ge_real_negative_decision_actual_divisionremainder) = 0) \/ exists ge_signed_half_ge_decision_actual_divisionremainderdecode_real. (((ge_real_code_decision_actual_divisionremainderdecode) = 2 * ge_signed_half_ge_decision_actual_divisionremainderdecode_real + 1 /\ (ge_real_positive_decision_actual_divisionremainder) = 0) /\ (ge_real_negative_decision_actual_divisionremainder) = S ge_signed_half_ge_decision_actual_divisionremainderdecode_real))) /\ ((((ge_imaginary_code_decision_actual_divisionremainderdecode) = 2 * (ge_imaginary_positive_decision_actual_divisionremainder) /\ (ge_imaginary_negative_decision_actual_divisionremainder) = 0) \/ exists ge_signed_half_ge_decision_actual_divisionremainderdecode_imaginary. (((ge_imaginary_code_decision_actual_divisionremainderdecode) = 2 * ge_signed_half_ge_decision_actual_divisionremainderdecode_imaginary + 1 /\ (ge_imaginary_positive_decision_actual_divisionremainder) = 0) /\ (ge_imaginary_negative_decision_actual_divisionremainder) = S ge_signed_half_ge_decision_actual_divisionremainderdecode_imaginary))))))) /\ ((exists ge_division_product_decision_actual_divisionequation. ((exists ge_first_rp_decision_actual_divisionequationproduct ge_first_rn_decision_actual_divisionequationproduct ge_first_ip_decision_actual_divisionequationproduct ge_first_in_decision_actual_divisionequationproduct ge_second_rp_decision_actual_divisionequationproduct ge_second_rn_decision_actual_divisionequationproduct ge_second_ip_decision_actual_divisionequationproduct ge_second_in_decision_actual_divisionequationproduct. ((exists ge_representation_real_code_decision_actual_divisionequationproductfirst ge_representation_imaginary_code_decision_actual_divisionequationproductfirst. (((d) = ((ge_representation_real_code_decision_actual_divisionequationproductfirst) + (ge_representation_imaginary_code_decision_actual_divisionequationproductfirst)) * S ((ge_representation_real_code_decision_actual_divisionequationproductfirst) + (ge_representation_imaginary_code_decision_actual_divisionequationproductfirst)) + ((ge_representation_imaginary_code_decision_actual_divisionequationproductfirst) + (ge_representation_imaginary_code_decision_actual_divisionequationproductfirst))) /\ ((exists ge_balance_positive_decision_actual_divisionequationproductfirstreal ge_balance_negative_decision_actual_divisionequationproductfirstreal. (((((ge_representation_real_code_decision_actual_divisionequationproductfirst) = 2 * (ge_balance_positive_decision_actual_divisionequationproductfirstreal) /\ (ge_balance_negative_decision_actual_divisionequationproductfirstreal) = 0) \/ exists ge_signed_half_decision_actual_divisionequationproductfirstrealdecode. (((ge_representation_real_code_decision_actual_divisionequationproductfirst) = 2 * ge_signed_half_decision_actual_divisionequationproductfirstrealdecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationproductfirstreal) = 0) /\ (ge_balance_negative_decision_actual_divisionequationproductfirstreal) = S ge_signed_half_decision_actual_divisionequationproductfirstrealdecode))) /\ ((ge_first_rp_decision_actual_divisionequationproduct) + ge_balance_negative_decision_actual_divisionequationproductfirstreal = (ge_first_rn_decision_actual_divisionequationproduct) + ge_balance_positive_decision_actual_divisionequationproductfirstreal))) /\ (exists ge_balance_positive_decision_actual_divisionequationproductfirstimaginary ge_balance_negative_decision_actual_divisionequationproductfirstimaginary. (((((ge_representation_imaginary_code_decision_actual_divisionequationproductfirst) = 2 * (ge_balance_positive_decision_actual_divisionequationproductfirstimaginary) /\ (ge_balance_negative_decision_actual_divisionequationproductfirstimaginary) = 0) \/ exists ge_signed_half_decision_actual_divisionequationproductfirstimaginarydecode. (((ge_representation_imaginary_code_decision_actual_divisionequationproductfirst) = 2 * ge_signed_half_decision_actual_divisionequationproductfirstimaginarydecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationproductfirstimaginary) = 0) /\ (ge_balance_negative_decision_actual_divisionequationproductfirstimaginary) = S ge_signed_half_decision_actual_divisionequationproductfirstimaginarydecode))) /\ ((ge_first_ip_decision_actual_divisionequationproduct) + ge_balance_negative_decision_actual_divisionequationproductfirstimaginary = (ge_first_in_decision_actual_divisionequationproduct) + ge_balance_positive_decision_actual_divisionequationproductfirstimaginary)))))) /\ ((exists ge_representation_real_code_decision_actual_divisionequationproductsecond ge_representation_imaginary_code_decision_actual_divisionequationproductsecond. (((q) = ((ge_representation_real_code_decision_actual_divisionequationproductsecond) + (ge_representation_imaginary_code_decision_actual_divisionequationproductsecond)) * S ((ge_representation_real_code_decision_actual_divisionequationproductsecond) + (ge_representation_imaginary_code_decision_actual_divisionequationproductsecond)) + ((ge_representation_imaginary_code_decision_actual_divisionequationproductsecond) + (ge_representation_imaginary_code_decision_actual_divisionequationproductsecond))) /\ ((exists ge_balance_positive_decision_actual_divisionequationproductsecondreal ge_balance_negative_decision_actual_divisionequationproductsecondreal. (((((ge_representation_real_code_decision_actual_divisionequationproductsecond) = 2 * (ge_balance_positive_decision_actual_divisionequationproductsecondreal) /\ (ge_balance_negative_decision_actual_divisionequationproductsecondreal) = 0) \/ exists ge_signed_half_decision_actual_divisionequationproductsecondrealdecode. (((ge_representation_real_code_decision_actual_divisionequationproductsecond) = 2 * ge_signed_half_decision_actual_divisionequationproductsecondrealdecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationproductsecondreal) = 0) /\ (ge_balance_negative_decision_actual_divisionequationproductsecondreal) = S ge_signed_half_decision_actual_divisionequationproductsecondrealdecode))) /\ ((ge_second_rp_decision_actual_divisionequationproduct) + ge_balance_negative_decision_actual_divisionequationproductsecondreal = (ge_second_rn_decision_actual_divisionequationproduct) + ge_balance_positive_decision_actual_divisionequationproductsecondreal))) /\ (exists ge_balance_positive_decision_actual_divisionequationproductsecondimaginary ge_balance_negative_decision_actual_divisionequationproductsecondimaginary. (((((ge_representation_imaginary_code_decision_actual_divisionequationproductsecond) = 2 * (ge_balance_positive_decision_actual_divisionequationproductsecondimaginary) /\ (ge_balance_negative_decision_actual_divisionequationproductsecondimaginary) = 0) \/ exists ge_signed_half_decision_actual_divisionequationproductsecondimaginarydecode. (((ge_representation_imaginary_code_decision_actual_divisionequationproductsecond) = 2 * ge_signed_half_decision_actual_divisionequationproductsecondimaginarydecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationproductsecondimaginary) = 0) /\ (ge_balance_negative_decision_actual_divisionequationproductsecondimaginary) = S ge_signed_half_decision_actual_divisionequationproductsecondimaginarydecode))) /\ ((ge_second_ip_decision_actual_divisionequationproduct) + ge_balance_negative_decision_actual_divisionequationproductsecondimaginary = (ge_second_in_decision_actual_divisionequationproduct) + ge_balance_positive_decision_actual_divisionequationproductsecondimaginary)))))) /\ (exists ge_representation_real_code_decision_actual_divisionequationproductoutput ge_representation_imaginary_code_decision_actual_divisionequationproductoutput. (((ge_division_product_decision_actual_divisionequation) = ((ge_representation_real_code_decision_actual_divisionequationproductoutput) + (ge_representation_imaginary_code_decision_actual_divisionequationproductoutput)) * S ((ge_representation_real_code_decision_actual_divisionequationproductoutput) + (ge_representation_imaginary_code_decision_actual_divisionequationproductoutput)) + ((ge_representation_imaginary_code_decision_actual_divisionequationproductoutput) + (ge_representation_imaginary_code_decision_actual_divisionequationproductoutput))) /\ ((exists ge_balance_positive_decision_actual_divisionequationproductoutputreal ge_balance_negative_decision_actual_divisionequationproductoutputreal. (((((ge_representation_real_code_decision_actual_divisionequationproductoutput) = 2 * (ge_balance_positive_decision_actual_divisionequationproductoutputreal) /\ (ge_balance_negative_decision_actual_divisionequationproductoutputreal) = 0) \/ exists ge_signed_half_decision_actual_divisionequationproductoutputrealdecode. (((ge_representation_real_code_decision_actual_divisionequationproductoutput) = 2 * ge_signed_half_decision_actual_divisionequationproductoutputrealdecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationproductoutputreal) = 0) /\ (ge_balance_negative_decision_actual_divisionequationproductoutputreal) = S ge_signed_half_decision_actual_divisionequationproductoutputrealdecode))) /\ ((((((((ge_first_rp_decision_actual_divisionequationproduct) * (ge_second_rp_decision_actual_divisionequationproduct))) + (((ge_first_rn_decision_actual_divisionequationproduct) * (ge_second_rn_decision_actual_divisionequationproduct))))) + (((((ge_first_ip_decision_actual_divisionequationproduct) * (ge_second_in_decision_actual_divisionequationproduct))) + (((ge_first_in_decision_actual_divisionequationproduct) * (ge_second_ip_decision_actual_divisionequationproduct))))))) + ge_balance_negative_decision_actual_divisionequationproductoutputreal = (((((((ge_first_rp_decision_actual_divisionequationproduct) * (ge_second_rn_decision_actual_divisionequationproduct))) + (((ge_first_rn_decision_actual_divisionequationproduct) * (ge_second_rp_decision_actual_divisionequationproduct))))) + (((((ge_first_ip_decision_actual_divisionequationproduct) * (ge_second_ip_decision_actual_divisionequationproduct))) + (((ge_first_in_decision_actual_divisionequationproduct) * (ge_second_in_decision_actual_divisionequationproduct))))))) + ge_balance_positive_decision_actual_divisionequationproductoutputreal))) /\ (exists ge_balance_positive_decision_actual_divisionequationproductoutputimaginary ge_balance_negative_decision_actual_divisionequationproductoutputimaginary. (((((ge_representation_imaginary_code_decision_actual_divisionequationproductoutput) = 2 * (ge_balance_positive_decision_actual_divisionequationproductoutputimaginary) /\ (ge_balance_negative_decision_actual_divisionequationproductoutputimaginary) = 0) \/ exists ge_signed_half_decision_actual_divisionequationproductoutputimaginarydecode. (((ge_representation_imaginary_code_decision_actual_divisionequationproductoutput) = 2 * ge_signed_half_decision_actual_divisionequationproductoutputimaginarydecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationproductoutputimaginary) = 0) /\ (ge_balance_negative_decision_actual_divisionequationproductoutputimaginary) = S ge_signed_half_decision_actual_divisionequationproductoutputimaginarydecode))) /\ ((((((((ge_first_rp_decision_actual_divisionequationproduct) * (ge_second_ip_decision_actual_divisionequationproduct))) + (((ge_first_rn_decision_actual_divisionequationproduct) * (ge_second_in_decision_actual_divisionequationproduct))))) + (((((ge_first_ip_decision_actual_divisionequationproduct) * (ge_second_rp_decision_actual_divisionequationproduct))) + (((ge_first_in_decision_actual_divisionequationproduct) * (ge_second_rn_decision_actual_divisionequationproduct))))))) + ge_balance_negative_decision_actual_divisionequationproductoutputimaginary = (((((((ge_first_rp_decision_actual_divisionequationproduct) * (ge_second_in_decision_actual_divisionequationproduct))) + (((ge_first_rn_decision_actual_divisionequationproduct) * (ge_second_ip_decision_actual_divisionequationproduct))))) + (((((ge_first_ip_decision_actual_divisionequationproduct) * (ge_second_rn_decision_actual_divisionequationproduct))) + (((ge_first_in_decision_actual_divisionequationproduct) * (ge_second_rp_decision_actual_divisionequationproduct))))))) + ge_balance_positive_decision_actual_divisionequationproductoutputimaginary))))))))) /\ (exists ge_first_rp_decision_actual_divisionequationsum ge_first_rn_decision_actual_divisionequationsum ge_first_ip_decision_actual_divisionequationsum ge_first_in_decision_actual_divisionequationsum ge_second_rp_decision_actual_divisionequationsum ge_second_rn_decision_actual_divisionequationsum ge_second_ip_decision_actual_divisionequationsum ge_second_in_decision_actual_divisionequationsum. ((exists ge_representation_real_code_decision_actual_divisionequationsumfirst ge_representation_imaginary_code_decision_actual_divisionequationsumfirst. (((ge_division_product_decision_actual_divisionequation) = ((ge_representation_real_code_decision_actual_divisionequationsumfirst) + (ge_representation_imaginary_code_decision_actual_divisionequationsumfirst)) * S ((ge_representation_real_code_decision_actual_divisionequationsumfirst) + (ge_representation_imaginary_code_decision_actual_divisionequationsumfirst)) + ((ge_representation_imaginary_code_decision_actual_divisionequationsumfirst) + (ge_representation_imaginary_code_decision_actual_divisionequationsumfirst))) /\ ((exists ge_balance_positive_decision_actual_divisionequationsumfirstreal ge_balance_negative_decision_actual_divisionequationsumfirstreal. (((((ge_representation_real_code_decision_actual_divisionequationsumfirst) = 2 * (ge_balance_positive_decision_actual_divisionequationsumfirstreal) /\ (ge_balance_negative_decision_actual_divisionequationsumfirstreal) = 0) \/ exists ge_signed_half_decision_actual_divisionequationsumfirstrealdecode. (((ge_representation_real_code_decision_actual_divisionequationsumfirst) = 2 * ge_signed_half_decision_actual_divisionequationsumfirstrealdecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationsumfirstreal) = 0) /\ (ge_balance_negative_decision_actual_divisionequationsumfirstreal) = S ge_signed_half_decision_actual_divisionequationsumfirstrealdecode))) /\ ((ge_first_rp_decision_actual_divisionequationsum) + ge_balance_negative_decision_actual_divisionequationsumfirstreal = (ge_first_rn_decision_actual_divisionequationsum) + ge_balance_positive_decision_actual_divisionequationsumfirstreal))) /\ (exists ge_balance_positive_decision_actual_divisionequationsumfirstimaginary ge_balance_negative_decision_actual_divisionequationsumfirstimaginary. (((((ge_representation_imaginary_code_decision_actual_divisionequationsumfirst) = 2 * (ge_balance_positive_decision_actual_divisionequationsumfirstimaginary) /\ (ge_balance_negative_decision_actual_divisionequationsumfirstimaginary) = 0) \/ exists ge_signed_half_decision_actual_divisionequationsumfirstimaginarydecode. (((ge_representation_imaginary_code_decision_actual_divisionequationsumfirst) = 2 * ge_signed_half_decision_actual_divisionequationsumfirstimaginarydecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationsumfirstimaginary) = 0) /\ (ge_balance_negative_decision_actual_divisionequationsumfirstimaginary) = S ge_signed_half_decision_actual_divisionequationsumfirstimaginarydecode))) /\ ((ge_first_ip_decision_actual_divisionequationsum) + ge_balance_negative_decision_actual_divisionequationsumfirstimaginary = (ge_first_in_decision_actual_divisionequationsum) + ge_balance_positive_decision_actual_divisionequationsumfirstimaginary)))))) /\ ((exists ge_representation_real_code_decision_actual_divisionequationsumsecond ge_representation_imaginary_code_decision_actual_divisionequationsumsecond. (((r) = ((ge_representation_real_code_decision_actual_divisionequationsumsecond) + (ge_representation_imaginary_code_decision_actual_divisionequationsumsecond)) * S ((ge_representation_real_code_decision_actual_divisionequationsumsecond) + (ge_representation_imaginary_code_decision_actual_divisionequationsumsecond)) + ((ge_representation_imaginary_code_decision_actual_divisionequationsumsecond) + (ge_representation_imaginary_code_decision_actual_divisionequationsumsecond))) /\ ((exists ge_balance_positive_decision_actual_divisionequationsumsecondreal ge_balance_negative_decision_actual_divisionequationsumsecondreal. (((((ge_representation_real_code_decision_actual_divisionequationsumsecond) = 2 * (ge_balance_positive_decision_actual_divisionequationsumsecondreal) /\ (ge_balance_negative_decision_actual_divisionequationsumsecondreal) = 0) \/ exists ge_signed_half_decision_actual_divisionequationsumsecondrealdecode. (((ge_representation_real_code_decision_actual_divisionequationsumsecond) = 2 * ge_signed_half_decision_actual_divisionequationsumsecondrealdecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationsumsecondreal) = 0) /\ (ge_balance_negative_decision_actual_divisionequationsumsecondreal) = S ge_signed_half_decision_actual_divisionequationsumsecondrealdecode))) /\ ((ge_second_rp_decision_actual_divisionequationsum) + ge_balance_negative_decision_actual_divisionequationsumsecondreal = (ge_second_rn_decision_actual_divisionequationsum) + ge_balance_positive_decision_actual_divisionequationsumsecondreal))) /\ (exists ge_balance_positive_decision_actual_divisionequationsumsecondimaginary ge_balance_negative_decision_actual_divisionequationsumsecondimaginary. (((((ge_representation_imaginary_code_decision_actual_divisionequationsumsecond) = 2 * (ge_balance_positive_decision_actual_divisionequationsumsecondimaginary) /\ (ge_balance_negative_decision_actual_divisionequationsumsecondimaginary) = 0) \/ exists ge_signed_half_decision_actual_divisionequationsumsecondimaginarydecode. (((ge_representation_imaginary_code_decision_actual_divisionequationsumsecond) = 2 * ge_signed_half_decision_actual_divisionequationsumsecondimaginarydecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationsumsecondimaginary) = 0) /\ (ge_balance_negative_decision_actual_divisionequationsumsecondimaginary) = S ge_signed_half_decision_actual_divisionequationsumsecondimaginarydecode))) /\ ((ge_second_ip_decision_actual_divisionequationsum) + ge_balance_negative_decision_actual_divisionequationsumsecondimaginary = (ge_second_in_decision_actual_divisionequationsum) + ge_balance_positive_decision_actual_divisionequationsumsecondimaginary)))))) /\ (exists ge_representation_real_code_decision_actual_divisionequationsumoutput ge_representation_imaginary_code_decision_actual_divisionequationsumoutput. (((z) = ((ge_representation_real_code_decision_actual_divisionequationsumoutput) + (ge_representation_imaginary_code_decision_actual_divisionequationsumoutput)) * S ((ge_representation_real_code_decision_actual_divisionequationsumoutput) + (ge_representation_imaginary_code_decision_actual_divisionequationsumoutput)) + ((ge_representation_imaginary_code_decision_actual_divisionequationsumoutput) + (ge_representation_imaginary_code_decision_actual_divisionequationsumoutput))) /\ ((exists ge_balance_positive_decision_actual_divisionequationsumoutputreal ge_balance_negative_decision_actual_divisionequationsumoutputreal. (((((ge_representation_real_code_decision_actual_divisionequationsumoutput) = 2 * (ge_balance_positive_decision_actual_divisionequationsumoutputreal) /\ (ge_balance_negative_decision_actual_divisionequationsumoutputreal) = 0) \/ exists ge_signed_half_decision_actual_divisionequationsumoutputrealdecode. (((ge_representation_real_code_decision_actual_divisionequationsumoutput) = 2 * ge_signed_half_decision_actual_divisionequationsumoutputrealdecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationsumoutputreal) = 0) /\ (ge_balance_negative_decision_actual_divisionequationsumoutputreal) = S ge_signed_half_decision_actual_divisionequationsumoutputrealdecode))) /\ ((((ge_first_rp_decision_actual_divisionequationsum) + (ge_second_rp_decision_actual_divisionequationsum))) + ge_balance_negative_decision_actual_divisionequationsumoutputreal = (((ge_first_rn_decision_actual_divisionequationsum) + (ge_second_rn_decision_actual_divisionequationsum))) + ge_balance_positive_decision_actual_divisionequationsumoutputreal))) /\ (exists ge_balance_positive_decision_actual_divisionequationsumoutputimaginary ge_balance_negative_decision_actual_divisionequationsumoutputimaginary. (((((ge_representation_imaginary_code_decision_actual_divisionequationsumoutput) = 2 * (ge_balance_positive_decision_actual_divisionequationsumoutputimaginary) /\ (ge_balance_negative_decision_actual_divisionequationsumoutputimaginary) = 0) \/ exists ge_signed_half_decision_actual_divisionequationsumoutputimaginarydecode. (((ge_representation_imaginary_code_decision_actual_divisionequationsumoutput) = 2 * ge_signed_half_decision_actual_divisionequationsumoutputimaginarydecode + 1 /\ (ge_balance_positive_decision_actual_divisionequationsumoutputimaginary) = 0) /\ (ge_balance_negative_decision_actual_divisionequationsumoutputimaginary) = S ge_signed_half_decision_actual_divisionequationsumoutputimaginarydecode))) /\ ((((ge_first_ip_decision_actual_divisionequationsum) + (ge_second_ip_decision_actual_divisionequationsum))) + ge_balance_negative_decision_actual_divisionequationsumoutputimaginary = (((ge_first_in_decision_actual_divisionequationsum) + (ge_second_in_decision_actual_divisionequationsum))) + ge_balance_positive_decision_actual_divisionequationsumoutputimaginary))))))))))) /\ ((exists ge_norm_rp_decision_actual_divisionsmallnorm ge_norm_rn_decision_actual_divisionsmallnorm ge_norm_ip_decision_actual_divisionsmallnorm ge_norm_in_decision_actual_divisionsmallnorm. ((exists ge_representation_real_code_decision_actual_divisionsmallnormrepresentation ge_representation_imaginary_code_decision_actual_divisionsmallnormrepresentation. (((r) = ((ge_representation_real_code_decision_actual_divisionsmallnormrepresentation) + (ge_representation_imaginary_code_decision_actual_divisionsmallnormrepresentation)) * S ((ge_representation_real_code_decision_actual_divisionsmallnormrepresentation) + (ge_representation_imaginary_code_decision_actual_divisionsmallnormrepresentation)) + ((ge_representation_imaginary_code_decision_actual_divisionsmallnormrepresentation) + (ge_representation_imaginary_code_decision_actual_divisionsmallnormrepresentation))) /\ ((exists ge_balance_positive_decision_actual_divisionsmallnormrepresentationreal ge_balance_negative_decision_actual_divisionsmallnormrepresentationreal. (((((ge_representation_real_code_decision_actual_divisionsmallnormrepresentation) = 2 * (ge_balance_positive_decision_actual_divisionsmallnormrepresentationreal) /\ (ge_balance_negative_decision_actual_divisionsmallnormrepresentationreal) = 0) \/ exists ge_signed_half_decision_actual_divisionsmallnormrepresentationrealdecode. (((ge_representation_real_code_decision_actual_divisionsmallnormrepresentation) = 2 * ge_signed_half_decision_actual_divisionsmallnormrepresentationrealdecode + 1 /\ (ge_balance_positive_decision_actual_divisionsmallnormrepresentationreal) = 0) /\ (ge_balance_negative_decision_actual_divisionsmallnormrepresentationreal) = S ge_signed_half_decision_actual_divisionsmallnormrepresentationrealdecode))) /\ ((ge_norm_rp_decision_actual_divisionsmallnorm) + ge_balance_negative_decision_actual_divisionsmallnormrepresentationreal = (ge_norm_rn_decision_actual_divisionsmallnorm) + ge_balance_positive_decision_actual_divisionsmallnormrepresentationreal))) /\ (exists ge_balance_positive_decision_actual_divisionsmallnormrepresentationimaginary ge_balance_negative_decision_actual_divisionsmallnormrepresentationimaginary. (((((ge_representation_imaginary_code_decision_actual_divisionsmallnormrepresentation) = 2 * (ge_balance_positive_decision_actual_divisionsmallnormrepresentationimaginary) /\ (ge_balance_negative_decision_actual_divisionsmallnormrepresentationimaginary) = 0) \/ exists ge_signed_half_decision_actual_divisionsmallnormrepresentationimaginarydecode. (((ge_representation_imaginary_code_decision_actual_divisionsmallnormrepresentation) = 2 * ge_signed_half_decision_actual_divisionsmallnormrepresentationimaginarydecode + 1 /\ (ge_balance_positive_decision_actual_divisionsmallnormrepresentationimaginary) = 0) /\ (ge_balance_negative_decision_actual_divisionsmallnormrepresentationimaginary) = S ge_signed_half_decision_actual_divisionsmallnormrepresentationimaginarydecode))) /\ ((ge_norm_ip_decision_actual_divisionsmallnorm) + ge_balance_negative_decision_actual_divisionsmallnormrepresentationimaginary = (ge_norm_in_decision_actual_divisionsmallnorm) + ge_balance_positive_decision_actual_divisionsmallnormrepresentationimaginary)))))) /\ (exists ge_real_square_decision_actual_divisionsmallnormsquare ge_imaginary_square_decision_actual_divisionsmallnormsquare. ((((((ge_norm_rp_decision_actual_divisionsmallnorm) * (ge_norm_rp_decision_actual_divisionsmallnorm))) + (((ge_norm_rn_decision_actual_divisionsmallnorm) * (ge_norm_rn_decision_actual_divisionsmallnorm)))) = ((ge_real_square_decision_actual_divisionsmallnormsquare) + (((((ge_norm_rp_decision_actual_divisionsmallnorm) * (ge_norm_rn_decision_actual_divisionsmallnorm))) + (((ge_norm_rn_decision_actual_divisionsmallnorm) * (ge_norm_rp_decision_actual_divisionsmallnorm))))))) /\ ((((((ge_norm_ip_decision_actual_divisionsmallnorm) * (ge_norm_ip_decision_actual_divisionsmallnorm))) + (((ge_norm_in_decision_actual_divisionsmallnorm) * (ge_norm_in_decision_actual_divisionsmallnorm)))) = ((ge_imaginary_square_decision_actual_divisionsmallnormsquare) + (((((ge_norm_ip_decision_actual_divisionsmallnorm) * (ge_norm_in_decision_actual_divisionsmallnorm))) + (((ge_norm_in_decision_actual_divisionsmallnorm) * (ge_norm_ip_decision_actual_divisionsmallnorm))))))) /\ ((U) = ge_real_square_decision_actual_divisionsmallnormsquare + ge_imaginary_square_decision_actual_divisionsmallnormsquare)))))) /\ ((exists ge_norm_rp_decision_actual_divisionlargenorm ge_norm_rn_decision_actual_divisionlargenorm ge_norm_ip_decision_actual_divisionlargenorm ge_norm_in_decision_actual_divisionlargenorm. ((exists ge_representation_real_code_decision_actual_divisionlargenormrepresentation ge_representation_imaginary_code_decision_actual_divisionlargenormrepresentation. (((d) = ((ge_representation_real_code_decision_actual_divisionlargenormrepresentation) + (ge_representation_imaginary_code_decision_actual_divisionlargenormrepresentation)) * S ((ge_representation_real_code_decision_actual_divisionlargenormrepresentation) + (ge_representation_imaginary_code_decision_actual_divisionlargenormrepresentation)) + ((ge_representation_imaginary_code_decision_actual_divisionlargenormrepresentation) + (ge_representation_imaginary_code_decision_actual_divisionlargenormrepresentation))) /\ ((exists ge_balance_positive_decision_actual_divisionlargenormrepresentationreal ge_balance_negative_decision_actual_divisionlargenormrepresentationreal. (((((ge_representation_real_code_decision_actual_divisionlargenormrepresentation) = 2 * (ge_balance_positive_decision_actual_divisionlargenormrepresentationreal) /\ (ge_balance_negative_decision_actual_divisionlargenormrepresentationreal) = 0) \/ exists ge_signed_half_decision_actual_divisionlargenormrepresentationrealdecode. (((ge_representation_real_code_decision_actual_divisionlargenormrepresentation) = 2 * ge_signed_half_decision_actual_divisionlargenormrepresentationrealdecode + 1 /\ (ge_balance_positive_decision_actual_divisionlargenormrepresentationreal) = 0) /\ (ge_balance_negative_decision_actual_divisionlargenormrepresentationreal) = S ge_signed_half_decision_actual_divisionlargenormrepresentationrealdecode))) /\ ((ge_norm_rp_decision_actual_divisionlargenorm) + ge_balance_negative_decision_actual_divisionlargenormrepresentationreal = (ge_norm_rn_decision_actual_divisionlargenorm) + ge_balance_positive_decision_actual_divisionlargenormrepresentationreal))) /\ (exists ge_balance_positive_decision_actual_divisionlargenormrepresentationimaginary ge_balance_negative_decision_actual_divisionlargenormrepresentationimaginary. (((((ge_representation_imaginary_code_decision_actual_divisionlargenormrepresentation) = 2 * (ge_balance_positive_decision_actual_divisionlargenormrepresentationimaginary) /\ (ge_balance_negative_decision_actual_divisionlargenormrepresentationimaginary) = 0) \/ exists ge_signed_half_decision_actual_divisionlargenormrepresentationimaginarydecode. (((ge_representation_imaginary_code_decision_actual_divisionlargenormrepresentation) = 2 * ge_signed_half_decision_actual_divisionlargenormrepresentationimaginarydecode + 1 /\ (ge_balance_positive_decision_actual_divisionlargenormrepresentationimaginary) = 0) /\ (ge_balance_negative_decision_actual_divisionlargenormrepresentationimaginary) = S ge_signed_half_decision_actual_divisionlargenormrepresentationimaginarydecode))) /\ ((ge_norm_ip_decision_actual_divisionlargenorm) + ge_balance_negative_decision_actual_divisionlargenormrepresentationimaginary = (ge_norm_in_decision_actual_divisionlargenorm) + ge_balance_positive_decision_actual_divisionlargenormrepresentationimaginary)))))) /\ (exists ge_real_square_decision_actual_divisionlargenormsquare ge_imaginary_square_decision_actual_divisionlargenormsquare. ((((((ge_norm_rp_decision_actual_divisionlargenorm) * (ge_norm_rp_decision_actual_divisionlargenorm))) + (((ge_norm_rn_decision_actual_divisionlargenorm) * (ge_norm_rn_decision_actual_divisionlargenorm)))) = ((ge_real_square_decision_actual_divisionlargenormsquare) + (((((ge_norm_rp_decision_actual_divisionlargenorm) * (ge_norm_rn_decision_actual_divisionlargenorm))) + (((ge_norm_rn_decision_actual_divisionlargenorm) * (ge_norm_rp_decision_actual_divisionlargenorm))))))) /\ ((((((ge_norm_ip_decision_actual_divisionlargenorm) * (ge_norm_ip_decision_actual_divisionlargenorm))) + (((ge_norm_in_decision_actual_divisionlargenorm) * (ge_norm_in_decision_actual_divisionlargenorm)))) = ((ge_imaginary_square_decision_actual_divisionlargenormsquare) + (((((ge_norm_ip_decision_actual_divisionlargenorm) * (ge_norm_in_decision_actual_divisionlargenorm))) + (((ge_norm_in_decision_actual_divisionlargenorm) * (ge_norm_ip_decision_actual_divisionlargenorm))))))) /\ ((V) = ge_real_square_decision_actual_divisionlargenormsquare + ge_imaginary_square_decision_actual_divisionlargenormsquare)))))) /\ (exists ge_gap_decision_actual_divisionstrict. ge_gap_decision_actual_divisionstrict + S (U) = (V)))))))) - 0030
specialize gaussian_euclidean_division_exists (z) - 0031
specialize gaussian_euclidean_division_exists (d) - 0032
apply gaussian_euclidean_division_exists - 0033
exact hz - 0034
exact hd - 0035
exact hdc_right - 0036
cases hex - 0037
cases hex_witness - 0038
cases hex_witness_witness - 0039
cases hex_witness_witness_witness - 0040
cases hex_witness_witness_witness_witness - 0041
cases hex_witness_witness_witness_witness_right - 0042
cases hex_witness_witness_witness_witness_right_right - 0043
cases hex_witness_witness_witness_witness_right_right_right - 0044
cases hex_witness_witness_witness_witness_right_right_right_right - 0045
have hrc : x1=0 \/ ~(x1=0) - 0046
specialize eq_decidable (x1) - 0047
specialize eq_decidable (0) - 0048
apply eq_decidable - 0049
cases hrc - 0050
left - 0051
specialize gaussian_division_zero_remainder_divides (z) - 0052
specialize gaussian_division_zero_remainder_divides (d) - 0053
specialize gaussian_division_zero_remainder_divides (x) - 0054
specialize gaussian_division_zero_remainder_divides (x1) - 0055
apply gaussian_division_zero_remainder_divides - 0056
exact hex_witness_witness_witness_witness_right_right_left - 0057
exact hrc_left - 0058
right - 0059
intro hdiv - 0060
apply hrc_right - 0061
specialize gaussian_division_divisible_remainder_zero (z) - 0062
specialize gaussian_division_divisible_remainder_zero (d) - 0063
specialize gaussian_division_divisible_remainder_zero (x) - 0064
specialize gaussian_division_divisible_remainder_zero (x1) - 0065
specialize gaussian_division_divisible_remainder_zero (x2) - 0066
specialize gaussian_division_divisible_remainder_zero (x3) - 0067
apply gaussian_division_divisible_remainder_zero - 0068
exact hex_witness_witness_witness_witness_right_right_left - 0069
exact hex_witness_witness_witness_witness_right_right_right_left - 0070
exact hex_witness_witness_witness_witness_right_right_right_right_left - 0071
exact hex_witness_witness_witness_witness_right_right_right_right_right - 0072
exact hdiv