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 a b c t. (exists ge_first_rp_cancel_first ge_first_rn_cancel_first ge_first_ip_cancel_first ge_first_in_cancel_first ge_second_rp_cancel_first ge_second_rn_cancel_first ge_second_ip_cancel_first ge_second_in_cancel_first. ((exists ge_representation_real_code_cancel_firstfirst ge_representation_imaginary_code_cancel_firstfirst. (((a) = ((ge_representation_real_code_cancel_firstfirst) + (ge_representation_imaginary_code_cancel_firstfirst)) * S ((ge_representation_real_code_cancel_firstfirst) + (ge_representation_imaginary_code_cancel_firstfirst)) + ((ge_representation_imaginary_code_cancel_firstfirst) + (ge_representation_imaginary_code_cancel_firstfirst))) /\ ((exists ge_balance_positive_cancel_firstfirstreal ge_balance_negative_cancel_firstfirstreal. (((((ge_representation_real_code_cancel_firstfirst) = 2 * (ge_balance_positive_cancel_firstfirstreal) /\ (ge_balance_negative_cancel_firstfirstreal) = 0) \/ exists ge_signed_half_cancel_firstfirstrealdecode. (((ge_representation_real_code_cancel_firstfirst) = 2 * ge_signed_half_cancel_firstfirstrealdecode + 1 /\ (ge_balance_positive_cancel_firstfirstreal) = 0) /\ (ge_balance_negative_cancel_firstfirstreal) = S ge_signed_half_cancel_firstfirstrealdecode))) /\ ((ge_first_rp_cancel_first) + ge_balance_negative_cancel_firstfirstreal = (ge_first_rn_cancel_first) + ge_balance_positive_cancel_firstfirstreal))) /\ (exists ge_balance_positive_cancel_firstfirstimaginary ge_balance_negative_cancel_firstfirstimaginary. (((((ge_representation_imaginary_code_cancel_firstfirst) = 2 * (ge_balance_positive_cancel_firstfirstimaginary) /\ (ge_balance_negative_cancel_firstfirstimaginary) = 0) \/ exists ge_signed_half_cancel_firstfirstimaginarydecode. (((ge_representation_imaginary_code_cancel_firstfirst) = 2 * ge_signed_half_cancel_firstfirstimaginarydecode + 1 /\ (ge_balance_positive_cancel_firstfirstimaginary) = 0) /\ (ge_balance_negative_cancel_firstfirstimaginary) = S ge_signed_half_cancel_firstfirstimaginarydecode))) /\ ((ge_first_ip_cancel_first) + ge_balance_negative_cancel_firstfirstimaginary = (ge_first_in_cancel_first) + ge_balance_positive_cancel_firstfirstimaginary)))))) /\ ((exists ge_representation_real_code_cancel_firstsecond ge_representation_imaginary_code_cancel_firstsecond. (((b) = ((ge_representation_real_code_cancel_firstsecond) + (ge_representation_imaginary_code_cancel_firstsecond)) * S ((ge_representation_real_code_cancel_firstsecond) + (ge_representation_imaginary_code_cancel_firstsecond)) + ((ge_representation_imaginary_code_cancel_firstsecond) + (ge_representation_imaginary_code_cancel_firstsecond))) /\ ((exists ge_balance_positive_cancel_firstsecondreal ge_balance_negative_cancel_firstsecondreal. (((((ge_representation_real_code_cancel_firstsecond) = 2 * (ge_balance_positive_cancel_firstsecondreal) /\ (ge_balance_negative_cancel_firstsecondreal) = 0) \/ exists ge_signed_half_cancel_firstsecondrealdecode. (((ge_representation_real_code_cancel_firstsecond) = 2 * ge_signed_half_cancel_firstsecondrealdecode + 1 /\ (ge_balance_positive_cancel_firstsecondreal) = 0) /\ (ge_balance_negative_cancel_firstsecondreal) = S ge_signed_half_cancel_firstsecondrealdecode))) /\ ((ge_second_rp_cancel_first) + ge_balance_negative_cancel_firstsecondreal = (ge_second_rn_cancel_first) + ge_balance_positive_cancel_firstsecondreal))) /\ (exists ge_balance_positive_cancel_firstsecondimaginary ge_balance_negative_cancel_firstsecondimaginary. (((((ge_representation_imaginary_code_cancel_firstsecond) = 2 * (ge_balance_positive_cancel_firstsecondimaginary) /\ (ge_balance_negative_cancel_firstsecondimaginary) = 0) \/ exists ge_signed_half_cancel_firstsecondimaginarydecode. (((ge_representation_imaginary_code_cancel_firstsecond) = 2 * ge_signed_half_cancel_firstsecondimaginarydecode + 1 /\ (ge_balance_positive_cancel_firstsecondimaginary) = 0) /\ (ge_balance_negative_cancel_firstsecondimaginary) = S ge_signed_half_cancel_firstsecondimaginarydecode))) /\ ((ge_second_ip_cancel_first) + ge_balance_negative_cancel_firstsecondimaginary = (ge_second_in_cancel_first) + ge_balance_positive_cancel_firstsecondimaginary)))))) /\ (exists ge_representation_real_code_cancel_firstoutput ge_representation_imaginary_code_cancel_firstoutput. (((t) = ((ge_representation_real_code_cancel_firstoutput) + (ge_representation_imaginary_code_cancel_firstoutput)) * S ((ge_representation_real_code_cancel_firstoutput) + (ge_representation_imaginary_code_cancel_firstoutput)) + ((ge_representation_imaginary_code_cancel_firstoutput) + (ge_representation_imaginary_code_cancel_firstoutput))) /\ ((exists ge_balance_positive_cancel_firstoutputreal ge_balance_negative_cancel_firstoutputreal. (((((ge_representation_real_code_cancel_firstoutput) = 2 * (ge_balance_positive_cancel_firstoutputreal) /\ (ge_balance_negative_cancel_firstoutputreal) = 0) \/ exists ge_signed_half_cancel_firstoutputrealdecode. (((ge_representation_real_code_cancel_firstoutput) = 2 * ge_signed_half_cancel_firstoutputrealdecode + 1 /\ (ge_balance_positive_cancel_firstoutputreal) = 0) /\ (ge_balance_negative_cancel_firstoutputreal) = S ge_signed_half_cancel_firstoutputrealdecode))) /\ ((((ge_first_rp_cancel_first) + (ge_second_rp_cancel_first))) + ge_balance_negative_cancel_firstoutputreal = (((ge_first_rn_cancel_first) + (ge_second_rn_cancel_first))) + ge_balance_positive_cancel_firstoutputreal))) /\ (exists ge_balance_positive_cancel_firstoutputimaginary ge_balance_negative_cancel_firstoutputimaginary. (((((ge_representation_imaginary_code_cancel_firstoutput) = 2 * (ge_balance_positive_cancel_firstoutputimaginary) /\ (ge_balance_negative_cancel_firstoutputimaginary) = 0) \/ exists ge_signed_half_cancel_firstoutputimaginarydecode. (((ge_representation_imaginary_code_cancel_firstoutput) = 2 * ge_signed_half_cancel_firstoutputimaginarydecode + 1 /\ (ge_balance_positive_cancel_firstoutputimaginary) = 0) /\ (ge_balance_negative_cancel_firstoutputimaginary) = S ge_signed_half_cancel_firstoutputimaginarydecode))) /\ ((((ge_first_ip_cancel_first) + (ge_second_ip_cancel_first))) + ge_balance_negative_cancel_firstoutputimaginary = (((ge_first_in_cancel_first) + (ge_second_in_cancel_first))) + ge_balance_positive_cancel_firstoutputimaginary))))))))) -> (exists ge_first_rp_cancel_second ge_first_rn_cancel_second ge_first_ip_cancel_second ge_first_in_cancel_second ge_second_rp_cancel_second ge_second_rn_cancel_second ge_second_ip_cancel_second ge_second_in_cancel_second. ((exists ge_representation_real_code_cancel_secondfirst ge_representation_imaginary_code_cancel_secondfirst. (((a) = ((ge_representation_real_code_cancel_secondfirst) + (ge_representation_imaginary_code_cancel_secondfirst)) * S ((ge_representation_real_code_cancel_secondfirst) + (ge_representation_imaginary_code_cancel_secondfirst)) + ((ge_representation_imaginary_code_cancel_secondfirst) + (ge_representation_imaginary_code_cancel_secondfirst))) /\ ((exists ge_balance_positive_cancel_secondfirstreal ge_balance_negative_cancel_secondfirstreal. (((((ge_representation_real_code_cancel_secondfirst) = 2 * (ge_balance_positive_cancel_secondfirstreal) /\ (ge_balance_negative_cancel_secondfirstreal) = 0) \/ exists ge_signed_half_cancel_secondfirstrealdecode. (((ge_representation_real_code_cancel_secondfirst) = 2 * ge_signed_half_cancel_secondfirstrealdecode + 1 /\ (ge_balance_positive_cancel_secondfirstreal) = 0) /\ (ge_balance_negative_cancel_secondfirstreal) = S ge_signed_half_cancel_secondfirstrealdecode))) /\ ((ge_first_rp_cancel_second) + ge_balance_negative_cancel_secondfirstreal = (ge_first_rn_cancel_second) + ge_balance_positive_cancel_secondfirstreal))) /\ (exists ge_balance_positive_cancel_secondfirstimaginary ge_balance_negative_cancel_secondfirstimaginary. (((((ge_representation_imaginary_code_cancel_secondfirst) = 2 * (ge_balance_positive_cancel_secondfirstimaginary) /\ (ge_balance_negative_cancel_secondfirstimaginary) = 0) \/ exists ge_signed_half_cancel_secondfirstimaginarydecode. (((ge_representation_imaginary_code_cancel_secondfirst) = 2 * ge_signed_half_cancel_secondfirstimaginarydecode + 1 /\ (ge_balance_positive_cancel_secondfirstimaginary) = 0) /\ (ge_balance_negative_cancel_secondfirstimaginary) = S ge_signed_half_cancel_secondfirstimaginarydecode))) /\ ((ge_first_ip_cancel_second) + ge_balance_negative_cancel_secondfirstimaginary = (ge_first_in_cancel_second) + ge_balance_positive_cancel_secondfirstimaginary)))))) /\ ((exists ge_representation_real_code_cancel_secondsecond ge_representation_imaginary_code_cancel_secondsecond. (((c) = ((ge_representation_real_code_cancel_secondsecond) + (ge_representation_imaginary_code_cancel_secondsecond)) * S ((ge_representation_real_code_cancel_secondsecond) + (ge_representation_imaginary_code_cancel_secondsecond)) + ((ge_representation_imaginary_code_cancel_secondsecond) + (ge_representation_imaginary_code_cancel_secondsecond))) /\ ((exists ge_balance_positive_cancel_secondsecondreal ge_balance_negative_cancel_secondsecondreal. (((((ge_representation_real_code_cancel_secondsecond) = 2 * (ge_balance_positive_cancel_secondsecondreal) /\ (ge_balance_negative_cancel_secondsecondreal) = 0) \/ exists ge_signed_half_cancel_secondsecondrealdecode. (((ge_representation_real_code_cancel_secondsecond) = 2 * ge_signed_half_cancel_secondsecondrealdecode + 1 /\ (ge_balance_positive_cancel_secondsecondreal) = 0) /\ (ge_balance_negative_cancel_secondsecondreal) = S ge_signed_half_cancel_secondsecondrealdecode))) /\ ((ge_second_rp_cancel_second) + ge_balance_negative_cancel_secondsecondreal = (ge_second_rn_cancel_second) + ge_balance_positive_cancel_secondsecondreal))) /\ (exists ge_balance_positive_cancel_secondsecondimaginary ge_balance_negative_cancel_secondsecondimaginary. (((((ge_representation_imaginary_code_cancel_secondsecond) = 2 * (ge_balance_positive_cancel_secondsecondimaginary) /\ (ge_balance_negative_cancel_secondsecondimaginary) = 0) \/ exists ge_signed_half_cancel_secondsecondimaginarydecode. (((ge_representation_imaginary_code_cancel_secondsecond) = 2 * ge_signed_half_cancel_secondsecondimaginarydecode + 1 /\ (ge_balance_positive_cancel_secondsecondimaginary) = 0) /\ (ge_balance_negative_cancel_secondsecondimaginary) = S ge_signed_half_cancel_secondsecondimaginarydecode))) /\ ((ge_second_ip_cancel_second) + ge_balance_negative_cancel_secondsecondimaginary = (ge_second_in_cancel_second) + ge_balance_positive_cancel_secondsecondimaginary)))))) /\ (exists ge_representation_real_code_cancel_secondoutput ge_representation_imaginary_code_cancel_secondoutput. (((t) = ((ge_representation_real_code_cancel_secondoutput) + (ge_representation_imaginary_code_cancel_secondoutput)) * S ((ge_representation_real_code_cancel_secondoutput) + (ge_representation_imaginary_code_cancel_secondoutput)) + ((ge_representation_imaginary_code_cancel_secondoutput) + (ge_representation_imaginary_code_cancel_secondoutput))) /\ ((exists ge_balance_positive_cancel_secondoutputreal ge_balance_negative_cancel_secondoutputreal. (((((ge_representation_real_code_cancel_secondoutput) = 2 * (ge_balance_positive_cancel_secondoutputreal) /\ (ge_balance_negative_cancel_secondoutputreal) = 0) \/ exists ge_signed_half_cancel_secondoutputrealdecode. (((ge_representation_real_code_cancel_secondoutput) = 2 * ge_signed_half_cancel_secondoutputrealdecode + 1 /\ (ge_balance_positive_cancel_secondoutputreal) = 0) /\ (ge_balance_negative_cancel_secondoutputreal) = S ge_signed_half_cancel_secondoutputrealdecode))) /\ ((((ge_first_rp_cancel_second) + (ge_second_rp_cancel_second))) + ge_balance_negative_cancel_secondoutputreal = (((ge_first_rn_cancel_second) + (ge_second_rn_cancel_second))) + ge_balance_positive_cancel_secondoutputreal))) /\ (exists ge_balance_positive_cancel_secondoutputimaginary ge_balance_negative_cancel_secondoutputimaginary. (((((ge_representation_imaginary_code_cancel_secondoutput) = 2 * (ge_balance_positive_cancel_secondoutputimaginary) /\ (ge_balance_negative_cancel_secondoutputimaginary) = 0) \/ exists ge_signed_half_cancel_secondoutputimaginarydecode. (((ge_representation_imaginary_code_cancel_secondoutput) = 2 * ge_signed_half_cancel_secondoutputimaginarydecode + 1 /\ (ge_balance_positive_cancel_secondoutputimaginary) = 0) /\ (ge_balance_negative_cancel_secondoutputimaginary) = S ge_signed_half_cancel_secondoutputimaginarydecode))) /\ ((((ge_first_ip_cancel_second) + (ge_second_ip_cancel_second))) + ge_balance_negative_cancel_secondoutputimaginary = (((ge_first_in_cancel_second) + (ge_second_in_cancel_second))) + ge_balance_positive_cancel_secondoutputimaginary))))))))) -> b=cConstructive proof overview
Generated structural guide
The actual canonical Gaussian additive operation is cancellative, proved in both signed coordinates.
The unchanged tactic script uses 7 declared prerequisites and contains 112 exact native proof lines.
Alpha v34 checked-use · first admitted v30 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
GF0001 gaussian_valid_has_representation GF0004 gaussian_add_input_left_valid GF0005 gaussian_add_input_right_valid gaussian_add_for_representations Alpha theorem; checked-use authorized GF0020 gaussian_codes_equal_of_representations GF0023 gaussian_ring_raw_add_cancel_left gaussian_representation_equal Alpha theorem; checked-use authorizedDirect 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–6
02Establish hAL7–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian valid has representation.
- L7
have hA : ∃ rp. ∃ rn. ∃ ip. ∃ inn. ZPairRep(a,rp,rn,ip,inn)Definitions: ZPairRep - L8
specialize gaussian_valid_has_representation (a) - L9
apply gaussian_valid_has_representation - L10
specialize gaussian_add_input_left_valid (a) - L11
specialize gaussian_add_input_left_valid (b) - L12
specialize gaussian_add_input_left_valid (t) - L13
apply gaussian_add_input_left_valid - L14
exact hAB
03Separate the logical casesL15–18
04Establish hBL19–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian valid has representation.
- L19
have hB : ∃ rp. ∃ rn. ∃ ip. ∃ inn. ZPairRep(b,rp,rn,ip,inn)Definitions: ZPairRep - L20
specialize gaussian_valid_has_representation (b) - L21
apply gaussian_valid_has_representation - L22
specialize gaussian_add_input_right_valid (a) - L23
specialize gaussian_add_input_right_valid (b) - L24
specialize gaussian_add_input_right_valid (t) - L25
apply gaussian_add_input_right_valid - L26
exact hAB
05Separate the logical casesL27–30
06Establish hCL31–38
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply gaussian valid has representation.
- L31
have hC : ∃ rp. ∃ rn. ∃ ip. ∃ inn. ZPairRep(c,rp,rn,ip,inn)Definitions: ZPairRep - L32
specialize gaussian_valid_has_representation (c) - L33
apply gaussian_valid_has_representation - L34
specialize gaussian_add_input_right_valid (a) - L35
specialize gaussian_add_input_right_valid (c) - L36
specialize gaussian_add_input_right_valid (t) - L37
apply gaussian_add_input_right_valid - L38
exact hAC
07Separate the logical casesL39–42
08Establish hleftL43–52
Establish this local claim before using it. It is not an additional assumption.
- L43
have hleft : ZPairRep(t,x + x4,x1 + x5,x2 + x6,x3 + x7)Definitions: ZPairRep - L44
specialize gaussian_add_for_representations (a) - L45
specialize gaussian_add_for_representations (b) - L46
specialize gaussian_add_for_representations (t) - L47
specialize gaussian_add_for_representations (x) - L48
specialize gaussian_add_for_representations (x1) - L49
specialize gaussian_add_for_representations (x2) - L50
specialize gaussian_add_for_representations (x3) - L51
specialize gaussian_add_for_representations (x4) - L52
specialize gaussian_add_for_representations (x5)
09Use earlier factsL53–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
10Establish hrightL59–68
Establish this local claim before using it. It is not an additional assumption.
- L59
have hright : ZPairRep(t,x + x8,x1 + x9,x2 + x10,x3 + x11)Definitions: ZPairRep - L60
specialize gaussian_add_for_representations (a) - L61
specialize gaussian_add_for_representations (c) - L62
specialize gaussian_add_for_representations (t) - L63
specialize gaussian_add_for_representations (x) - L64
specialize gaussian_add_for_representations (x1) - L65
specialize gaussian_add_for_representations (x2) - L66
specialize gaussian_add_for_representations (x3) - L67
specialize gaussian_add_for_representations (x8) - L68
specialize gaussian_add_for_representations (x9)
11Use earlier factsL69–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
specialize gaussian_add_for_representations (x10) - L70
specialize gaussian_add_for_representations (x11) - L71
apply gaussian_add_for_representations - L72
exact hA_witness_witness_witness_witness - L73
exact hC_witness_witness_witness_witness - L74
exact hAC - L75
specialize gaussian_codes_equal_of_representations (b) - L76
specialize gaussian_codes_equal_of_representations (c) - L77
specialize gaussian_codes_equal_of_representations (x4) - L78
specialize gaussian_codes_equal_of_representations (x5)
12Use earlier factsL79–88
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L79
specialize gaussian_codes_equal_of_representations (x6) - L80
specialize gaussian_codes_equal_of_representations (x7) - L81
specialize gaussian_codes_equal_of_representations (x8) - L82
specialize gaussian_codes_equal_of_representations (x9) - L83
specialize gaussian_codes_equal_of_representations (x10) - L84
specialize gaussian_codes_equal_of_representations (x11) - L85
apply gaussian_codes_equal_of_representations - L86
exact hB_witness_witness_witness_witness - L87
exact hC_witness_witness_witness_witness - L88
specialize gaussian_ring_raw_add_cancel_left (x)
13Use earlier factsL89–98
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L89
specialize gaussian_ring_raw_add_cancel_left (x1) - L90
specialize gaussian_ring_raw_add_cancel_left (x2) - L91
specialize gaussian_ring_raw_add_cancel_left (x3) - L92
specialize gaussian_ring_raw_add_cancel_left (x4) - L93
specialize gaussian_ring_raw_add_cancel_left (x5) - L94
specialize gaussian_ring_raw_add_cancel_left (x6) - L95
specialize gaussian_ring_raw_add_cancel_left (x7) - L96
specialize gaussian_ring_raw_add_cancel_left (x8) - L97
specialize gaussian_ring_raw_add_cancel_left (x9) - L98
specialize gaussian_ring_raw_add_cancel_left (x10)
14Use earlier factsL99–108
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L99
specialize gaussian_ring_raw_add_cancel_left (x11) - L100
apply gaussian_ring_raw_add_cancel_left - L101
specialize gaussian_representation_equal (t) - L102
specialize gaussian_representation_equal (((x) + (x4))) - L103
specialize gaussian_representation_equal (((x1) + (x5))) - L104
specialize gaussian_representation_equal (((x2) + (x6))) - L105
specialize gaussian_representation_equal (((x3) + (x7))) - L106
specialize gaussian_representation_equal (((x) + (x8))) - L107
specialize gaussian_representation_equal (((x1) + (x9))) - L108
specialize gaussian_representation_equal (((x2) + (x10)))
Original exact command ledger · 112 lines
- 0001
intro a - 0002
intro b - 0003
intro c - 0004
intro t - 0005
intro hAB - 0006
intro hAC - 0007
have hA : exists rp rn ip inn. (exists ge_representation_real_code_chosen_hA ge_representation_imaginary_code_chosen_hA. (((a) = ((ge_representation_real_code_chosen_hA) + (ge_representation_imaginary_code_chosen_hA)) * S ((ge_representation_real_code_chosen_hA) + (ge_representation_imaginary_code_chosen_hA)) + ((ge_representation_imaginary_code_chosen_hA) + (ge_representation_imaginary_code_chosen_hA))) /\ ((exists ge_balance_positive_chosen_hAreal ge_balance_negative_chosen_hAreal. (((((ge_representation_real_code_chosen_hA) = 2 * (ge_balance_positive_chosen_hAreal) /\ (ge_balance_negative_chosen_hAreal) = 0) \/ exists ge_signed_half_chosen_hArealdecode. (((ge_representation_real_code_chosen_hA) = 2 * ge_signed_half_chosen_hArealdecode + 1 /\ (ge_balance_positive_chosen_hAreal) = 0) /\ (ge_balance_negative_chosen_hAreal) = S ge_signed_half_chosen_hArealdecode))) /\ ((rp) + ge_balance_negative_chosen_hAreal = (rn) + ge_balance_positive_chosen_hAreal))) /\ (exists ge_balance_positive_chosen_hAimaginary ge_balance_negative_chosen_hAimaginary. (((((ge_representation_imaginary_code_chosen_hA) = 2 * (ge_balance_positive_chosen_hAimaginary) /\ (ge_balance_negative_chosen_hAimaginary) = 0) \/ exists ge_signed_half_chosen_hAimaginarydecode. (((ge_representation_imaginary_code_chosen_hA) = 2 * ge_signed_half_chosen_hAimaginarydecode + 1 /\ (ge_balance_positive_chosen_hAimaginary) = 0) /\ (ge_balance_negative_chosen_hAimaginary) = S ge_signed_half_chosen_hAimaginarydecode))) /\ ((ip) + ge_balance_negative_chosen_hAimaginary = (inn) + ge_balance_positive_chosen_hAimaginary)))))) - 0008
specialize gaussian_valid_has_representation (a) - 0009
apply gaussian_valid_has_representation - 0010
specialize gaussian_add_input_left_valid (a) - 0011
specialize gaussian_add_input_left_valid (b) - 0012
specialize gaussian_add_input_left_valid (t) - 0013
apply gaussian_add_input_left_valid - 0014
exact hAB - 0015
cases hA - 0016
cases hA_witness - 0017
cases hA_witness_witness - 0018
cases hA_witness_witness_witness - 0019
have hB : exists rp rn ip inn. (exists ge_representation_real_code_chosen_hB ge_representation_imaginary_code_chosen_hB. (((b) = ((ge_representation_real_code_chosen_hB) + (ge_representation_imaginary_code_chosen_hB)) * S ((ge_representation_real_code_chosen_hB) + (ge_representation_imaginary_code_chosen_hB)) + ((ge_representation_imaginary_code_chosen_hB) + (ge_representation_imaginary_code_chosen_hB))) /\ ((exists ge_balance_positive_chosen_hBreal ge_balance_negative_chosen_hBreal. (((((ge_representation_real_code_chosen_hB) = 2 * (ge_balance_positive_chosen_hBreal) /\ (ge_balance_negative_chosen_hBreal) = 0) \/ exists ge_signed_half_chosen_hBrealdecode. (((ge_representation_real_code_chosen_hB) = 2 * ge_signed_half_chosen_hBrealdecode + 1 /\ (ge_balance_positive_chosen_hBreal) = 0) /\ (ge_balance_negative_chosen_hBreal) = S ge_signed_half_chosen_hBrealdecode))) /\ ((rp) + ge_balance_negative_chosen_hBreal = (rn) + ge_balance_positive_chosen_hBreal))) /\ (exists ge_balance_positive_chosen_hBimaginary ge_balance_negative_chosen_hBimaginary. (((((ge_representation_imaginary_code_chosen_hB) = 2 * (ge_balance_positive_chosen_hBimaginary) /\ (ge_balance_negative_chosen_hBimaginary) = 0) \/ exists ge_signed_half_chosen_hBimaginarydecode. (((ge_representation_imaginary_code_chosen_hB) = 2 * ge_signed_half_chosen_hBimaginarydecode + 1 /\ (ge_balance_positive_chosen_hBimaginary) = 0) /\ (ge_balance_negative_chosen_hBimaginary) = S ge_signed_half_chosen_hBimaginarydecode))) /\ ((ip) + ge_balance_negative_chosen_hBimaginary = (inn) + ge_balance_positive_chosen_hBimaginary)))))) - 0020
specialize gaussian_valid_has_representation (b) - 0021
apply gaussian_valid_has_representation - 0022
specialize gaussian_add_input_right_valid (a) - 0023
specialize gaussian_add_input_right_valid (b) - 0024
specialize gaussian_add_input_right_valid (t) - 0025
apply gaussian_add_input_right_valid - 0026
exact hAB - 0027
cases hB - 0028
cases hB_witness - 0029
cases hB_witness_witness - 0030
cases hB_witness_witness_witness - 0031
have hC : exists rp rn ip inn. (exists ge_representation_real_code_chosen_hC ge_representation_imaginary_code_chosen_hC. (((c) = ((ge_representation_real_code_chosen_hC) + (ge_representation_imaginary_code_chosen_hC)) * S ((ge_representation_real_code_chosen_hC) + (ge_representation_imaginary_code_chosen_hC)) + ((ge_representation_imaginary_code_chosen_hC) + (ge_representation_imaginary_code_chosen_hC))) /\ ((exists ge_balance_positive_chosen_hCreal ge_balance_negative_chosen_hCreal. (((((ge_representation_real_code_chosen_hC) = 2 * (ge_balance_positive_chosen_hCreal) /\ (ge_balance_negative_chosen_hCreal) = 0) \/ exists ge_signed_half_chosen_hCrealdecode. (((ge_representation_real_code_chosen_hC) = 2 * ge_signed_half_chosen_hCrealdecode + 1 /\ (ge_balance_positive_chosen_hCreal) = 0) /\ (ge_balance_negative_chosen_hCreal) = S ge_signed_half_chosen_hCrealdecode))) /\ ((rp) + ge_balance_negative_chosen_hCreal = (rn) + ge_balance_positive_chosen_hCreal))) /\ (exists ge_balance_positive_chosen_hCimaginary ge_balance_negative_chosen_hCimaginary. (((((ge_representation_imaginary_code_chosen_hC) = 2 * (ge_balance_positive_chosen_hCimaginary) /\ (ge_balance_negative_chosen_hCimaginary) = 0) \/ exists ge_signed_half_chosen_hCimaginarydecode. (((ge_representation_imaginary_code_chosen_hC) = 2 * ge_signed_half_chosen_hCimaginarydecode + 1 /\ (ge_balance_positive_chosen_hCimaginary) = 0) /\ (ge_balance_negative_chosen_hCimaginary) = S ge_signed_half_chosen_hCimaginarydecode))) /\ ((ip) + ge_balance_negative_chosen_hCimaginary = (inn) + ge_balance_positive_chosen_hCimaginary)))))) - 0032
specialize gaussian_valid_has_representation (c) - 0033
apply gaussian_valid_has_representation - 0034
specialize gaussian_add_input_right_valid (a) - 0035
specialize gaussian_add_input_right_valid (c) - 0036
specialize gaussian_add_input_right_valid (t) - 0037
apply gaussian_add_input_right_valid - 0038
exact hAC - 0039
cases hC - 0040
cases hC_witness - 0041
cases hC_witness_witness - 0042
cases hC_witness_witness_witness - 0043
have hleft : exists ge_representation_real_code_cancel_sum_left ge_representation_imaginary_code_cancel_sum_left. (((t) = ((ge_representation_real_code_cancel_sum_left) + (ge_representation_imaginary_code_cancel_sum_left)) * S ((ge_representation_real_code_cancel_sum_left) + (ge_representation_imaginary_code_cancel_sum_left)) + ((ge_representation_imaginary_code_cancel_sum_left) + (ge_representation_imaginary_code_cancel_sum_left))) /\ ((exists ge_balance_positive_cancel_sum_leftreal ge_balance_negative_cancel_sum_leftreal. (((((ge_representation_real_code_cancel_sum_left) = 2 * (ge_balance_positive_cancel_sum_leftreal) /\ (ge_balance_negative_cancel_sum_leftreal) = 0) \/ exists ge_signed_half_cancel_sum_leftrealdecode. (((ge_representation_real_code_cancel_sum_left) = 2 * ge_signed_half_cancel_sum_leftrealdecode + 1 /\ (ge_balance_positive_cancel_sum_leftreal) = 0) /\ (ge_balance_negative_cancel_sum_leftreal) = S ge_signed_half_cancel_sum_leftrealdecode))) /\ ((((x) + (x4))) + ge_balance_negative_cancel_sum_leftreal = (((x1) + (x5))) + ge_balance_positive_cancel_sum_leftreal))) /\ (exists ge_balance_positive_cancel_sum_leftimaginary ge_balance_negative_cancel_sum_leftimaginary. (((((ge_representation_imaginary_code_cancel_sum_left) = 2 * (ge_balance_positive_cancel_sum_leftimaginary) /\ (ge_balance_negative_cancel_sum_leftimaginary) = 0) \/ exists ge_signed_half_cancel_sum_leftimaginarydecode. (((ge_representation_imaginary_code_cancel_sum_left) = 2 * ge_signed_half_cancel_sum_leftimaginarydecode + 1 /\ (ge_balance_positive_cancel_sum_leftimaginary) = 0) /\ (ge_balance_negative_cancel_sum_leftimaginary) = S ge_signed_half_cancel_sum_leftimaginarydecode))) /\ ((((x2) + (x6))) + ge_balance_negative_cancel_sum_leftimaginary = (((x3) + (x7))) + ge_balance_positive_cancel_sum_leftimaginary))))) - 0044
specialize gaussian_add_for_representations (a) - 0045
specialize gaussian_add_for_representations (b) - 0046
specialize gaussian_add_for_representations (t) - 0047
specialize gaussian_add_for_representations (x) - 0048
specialize gaussian_add_for_representations (x1) - 0049
specialize gaussian_add_for_representations (x2) - 0050
specialize gaussian_add_for_representations (x3) - 0051
specialize gaussian_add_for_representations (x4) - 0052
specialize gaussian_add_for_representations (x5) - 0053
specialize gaussian_add_for_representations (x6) - 0054
specialize gaussian_add_for_representations (x7) - 0055
apply gaussian_add_for_representations - 0056
exact hA_witness_witness_witness_witness - 0057
exact hB_witness_witness_witness_witness - 0058
exact hAB - 0059
have hright : exists ge_representation_real_code_cancel_sum_right ge_representation_imaginary_code_cancel_sum_right. (((t) = ((ge_representation_real_code_cancel_sum_right) + (ge_representation_imaginary_code_cancel_sum_right)) * S ((ge_representation_real_code_cancel_sum_right) + (ge_representation_imaginary_code_cancel_sum_right)) + ((ge_representation_imaginary_code_cancel_sum_right) + (ge_representation_imaginary_code_cancel_sum_right))) /\ ((exists ge_balance_positive_cancel_sum_rightreal ge_balance_negative_cancel_sum_rightreal. (((((ge_representation_real_code_cancel_sum_right) = 2 * (ge_balance_positive_cancel_sum_rightreal) /\ (ge_balance_negative_cancel_sum_rightreal) = 0) \/ exists ge_signed_half_cancel_sum_rightrealdecode. (((ge_representation_real_code_cancel_sum_right) = 2 * ge_signed_half_cancel_sum_rightrealdecode + 1 /\ (ge_balance_positive_cancel_sum_rightreal) = 0) /\ (ge_balance_negative_cancel_sum_rightreal) = S ge_signed_half_cancel_sum_rightrealdecode))) /\ ((((x) + (x8))) + ge_balance_negative_cancel_sum_rightreal = (((x1) + (x9))) + ge_balance_positive_cancel_sum_rightreal))) /\ (exists ge_balance_positive_cancel_sum_rightimaginary ge_balance_negative_cancel_sum_rightimaginary. (((((ge_representation_imaginary_code_cancel_sum_right) = 2 * (ge_balance_positive_cancel_sum_rightimaginary) /\ (ge_balance_negative_cancel_sum_rightimaginary) = 0) \/ exists ge_signed_half_cancel_sum_rightimaginarydecode. (((ge_representation_imaginary_code_cancel_sum_right) = 2 * ge_signed_half_cancel_sum_rightimaginarydecode + 1 /\ (ge_balance_positive_cancel_sum_rightimaginary) = 0) /\ (ge_balance_negative_cancel_sum_rightimaginary) = S ge_signed_half_cancel_sum_rightimaginarydecode))) /\ ((((x2) + (x10))) + ge_balance_negative_cancel_sum_rightimaginary = (((x3) + (x11))) + ge_balance_positive_cancel_sum_rightimaginary))))) - 0060
specialize gaussian_add_for_representations (a) - 0061
specialize gaussian_add_for_representations (c) - 0062
specialize gaussian_add_for_representations (t) - 0063
specialize gaussian_add_for_representations (x) - 0064
specialize gaussian_add_for_representations (x1) - 0065
specialize gaussian_add_for_representations (x2) - 0066
specialize gaussian_add_for_representations (x3) - 0067
specialize gaussian_add_for_representations (x8) - 0068
specialize gaussian_add_for_representations (x9) - 0069
specialize gaussian_add_for_representations (x10) - 0070
specialize gaussian_add_for_representations (x11) - 0071
apply gaussian_add_for_representations - 0072
exact hA_witness_witness_witness_witness - 0073
exact hC_witness_witness_witness_witness - 0074
exact hAC - 0075
specialize gaussian_codes_equal_of_representations (b) - 0076
specialize gaussian_codes_equal_of_representations (c) - 0077
specialize gaussian_codes_equal_of_representations (x4) - 0078
specialize gaussian_codes_equal_of_representations (x5) - 0079
specialize gaussian_codes_equal_of_representations (x6) - 0080
specialize gaussian_codes_equal_of_representations (x7) - 0081
specialize gaussian_codes_equal_of_representations (x8) - 0082
specialize gaussian_codes_equal_of_representations (x9) - 0083
specialize gaussian_codes_equal_of_representations (x10) - 0084
specialize gaussian_codes_equal_of_representations (x11) - 0085
apply gaussian_codes_equal_of_representations - 0086
exact hB_witness_witness_witness_witness - 0087
exact hC_witness_witness_witness_witness - 0088
specialize gaussian_ring_raw_add_cancel_left (x) - 0089
specialize gaussian_ring_raw_add_cancel_left (x1) - 0090
specialize gaussian_ring_raw_add_cancel_left (x2) - 0091
specialize gaussian_ring_raw_add_cancel_left (x3) - 0092
specialize gaussian_ring_raw_add_cancel_left (x4) - 0093
specialize gaussian_ring_raw_add_cancel_left (x5) - 0094
specialize gaussian_ring_raw_add_cancel_left (x6) - 0095
specialize gaussian_ring_raw_add_cancel_left (x7) - 0096
specialize gaussian_ring_raw_add_cancel_left (x8) - 0097
specialize gaussian_ring_raw_add_cancel_left (x9) - 0098
specialize gaussian_ring_raw_add_cancel_left (x10) - 0099
specialize gaussian_ring_raw_add_cancel_left (x11) - 0100
apply gaussian_ring_raw_add_cancel_left - 0101
specialize gaussian_representation_equal (t) - 0102
specialize gaussian_representation_equal (((x) + (x4))) - 0103
specialize gaussian_representation_equal (((x1) + (x5))) - 0104
specialize gaussian_representation_equal (((x2) + (x6))) - 0105
specialize gaussian_representation_equal (((x3) + (x7))) - 0106
specialize gaussian_representation_equal (((x) + (x8))) - 0107
specialize gaussian_representation_equal (((x1) + (x9))) - 0108
specialize gaussian_representation_equal (((x2) + (x10))) - 0109
specialize gaussian_representation_equal (((x3) + (x11))) - 0110
apply gaussian_representation_equal - 0111
exact hleft - 0112
exact hright